From d93c49bf802ddbe7c0ff9eebda8f49e8fe9e2506 Mon Sep 17 00:00:00 2001 From: yejiaxing <591141169@qq.com> Date: Tue, 16 Jan 2024 13:03:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E6=A1=86=E6=9E=B6=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 19 + .env | 17 + .env.development | 37 + .env.production | 37 + .env.test | 37 + .eslintignore | 8 + .eslintrc-auto-import.json | 259 +++ .eslintrc.js | 72 + .gitignore | 11 + .prettierignore | 11 + .stylelintignore | 6 + LICENSE | 21 + build/vite/index.ts | 107 + build/vite/optimize.ts | 112 + index.html | 152 ++ package.json | 134 ++ postcss.config.js | 5 + prettier.config.js | 22 + public/favicon.ico | Bin 0 -> 4286 bytes public/home.png | Bin 0 -> 74352 bytes public/logo.gif | Bin 0 -> 6334 bytes src/App.vue | 75 + src/api/bpm/activity/index.ts | 8 + src/api/bpm/definition/index.ts | 21 + src/api/bpm/form/index.ts | 56 + src/api/bpm/leave/index.ts | 27 + src/api/bpm/model/index.ts | 59 + src/api/bpm/processInstance/index.ts | 41 + src/api/bpm/task/index.ts | 53 + src/api/bpm/taskAssignRule/index.ts | 29 + src/api/bpm/userGroup/index.ts | 47 + src/api/home/index.ts | 22 + src/api/infra/apiAccessLog/index.ts | 30 + src/api/infra/apiErrorLog/index.ts | 48 + src/api/infra/codegen/index.ts | 123 ++ src/api/infra/config/index.ts | 48 + src/api/infra/dataSourceConfig/index.ts | 35 + src/api/infra/dbDoc/index.ts | 16 + src/api/infra/file/index.ts | 17 + src/api/infra/fileConfig/index.ts | 61 + src/api/infra/job/index.ts | 63 + src/api/infra/jobLog/index.ts | 33 + src/api/infra/redis/index.ts | 8 + src/api/infra/redis/types.ts | 176 ++ src/api/login/index.ts | 72 + src/api/login/oauth2/index.ts | 41 + src/api/login/types.ts | 28 + src/api/mes/index.ts | 0 src/api/redis/index.ts | 21 + src/api/scp/index.ts | 0 src/api/system/area/index.ts | 19 + src/api/system/dept/index.ts | 43 + src/api/system/dict/dict.data.ts | 49 + src/api/system/dict/dict.type.ts | 44 + src/api/system/errorCode/index.ts | 40 + src/api/system/loginLog/index.ts | 24 + src/api/system/mail/account/index.ts | 41 + src/api/system/mail/log/index.ts | 30 + src/api/system/mail/template/index.ts | 50 + src/api/system/menu/index.ts | 49 + src/api/system/notice/index.ts | 37 + src/api/system/notify/message/index.ts | 48 + src/api/system/notify/template/index.ts | 49 + src/api/system/oauth2/client.ts | 47 + src/api/system/oauth2/token.ts | 22 + src/api/system/operatelog/index.ts | 33 + src/api/system/permission/index.ts | 42 + src/api/system/post/index.ts | 46 + src/api/system/role/index.ts | 61 + src/api/system/sensitiveWord/index.ts | 58 + src/api/system/serialNumber/index.ts | 42 + src/api/system/sms/smsChannel/index.ts | 43 + src/api/system/sms/smsLog/index.ts | 39 + src/api/system/sms/smsTemplate/index.ts | 60 + src/api/system/sysconfig/index.ts | 60 + src/api/system/tenant/index.ts | 62 + src/api/system/tenantPackage/index.ts | 42 + src/api/system/user/index.ts | 76 + src/api/system/user/profile.ts | 77 + src/api/system/user/socialUser.ts | 31 + src/api/wms/accountcalendar/index.ts | 60 + src/api/wms/areabasic/index.ts | 63 + src/api/wms/backflushRecordDetailb/index.ts | 66 + src/api/wms/backflushRequestDetailb/index.ts | 60 + src/api/wms/balance/index.ts | 114 + src/api/wms/barbasic/index.ts | 56 + src/api/wms/barcode/index.ts | 59 + src/api/wms/bom/index.ts | 61 + src/api/wms/bomDismantle/index.ts | 26 + src/api/wms/businesstype/index.ts | 65 + src/api/wms/carrier/index.ts | 68 + src/api/wms/condition/index.ts | 56 + src/api/wms/configuration/index.ts | 56 + src/api/wms/configurationsetting/index.ts | 58 + src/api/wms/consumeRecordDetailb/index.ts | 63 + src/api/wms/consumereRequestDetailb/index.ts | 61 + .../wms/containerBindRecordDetail/index.ts | 57 + src/api/wms/containerBindRecordMain/index.ts | 69 + src/api/wms/containerDetail/index.ts | 52 + .../wms/containerInitRecordDetail/index.ts | 55 + src/api/wms/containerInitRecordMain/index.ts | 68 + src/api/wms/containerMain/index.ts | 61 + .../wms/containerRepairRecordDetail/index.ts | 53 + .../wms/containerRepairRecordMain/index.ts | 69 + .../wms/containerUnbindRecordDetail/index.ts | 57 + .../wms/containerUnbindRecordMain/index.ts | 69 + src/api/wms/countJobDetail/index.ts | 62 + src/api/wms/countJobMain/index.ts | 87 + src/api/wms/countPlanDetail/index.ts | 52 + src/api/wms/countPlanMain/index.ts | 104 + src/api/wms/countRecordDetail/index.ts | 72 + src/api/wms/countRecordMain/index.ts | 70 + src/api/wms/countRequestDetail/index.ts | 67 + src/api/wms/countRequestMain/index.ts | 112 + src/api/wms/countadjustRecordDetail/index.ts | 69 + src/api/wms/countadjustRecordMain/index.ts | 63 + src/api/wms/countadjustRequestDetail/index.ts | 68 + src/api/wms/countadjustRequestMain/index.ts | 93 + src/api/wms/currencyexchange/index.ts | 57 + src/api/wms/customer/index.ts | 71 + src/api/wms/customerdock/index.ts | 64 + src/api/wms/customeritem/index.ts | 64 + .../wms/customerreceiptRecordDetail/index.ts | 78 + .../wms/customerreceiptRecordMain/index.ts | 74 + .../wms/customerreceiptRequestDetail/index.ts | 68 + .../wms/customerreceiptRequestMain/index.ts | 98 + src/api/wms/customerreturnJobDetail/index.ts | 65 + src/api/wms/customerreturnJobMain/index.ts | 115 + .../wms/customerreturnRecordDetail/index.ts | 78 + src/api/wms/customerreturnRecordMain/index.ts | 76 + .../wms/customerreturnRequestDetail/index.ts | 67 + .../wms/customerreturnRequestMain/index.ts | 110 + .../wms/customersettleRecordDetail/index.ts | 71 + src/api/wms/customersettleRecordMain/index.ts | 67 + .../wms/customersettleRequestDetail/index.ts | 65 + .../wms/customersettleRequestMain/index.ts | 96 + src/api/wms/deliverJobDetail/index.ts | 65 + src/api/wms/deliverJobMain/index.ts | 115 + src/api/wms/deliverPlanDetail/index.ts | 53 + src/api/wms/deliverPlanMain/index.ts | 93 + src/api/wms/deliverRecordDetail/index.ts | 76 + src/api/wms/deliverRecordMain/index.ts | 76 + src/api/wms/deliverRequestDetail/index.ts | 67 + src/api/wms/deliverRequestMain/index.ts | 103 + src/api/wms/demandforecastingDetail/index.ts | 46 + src/api/wms/demandforecastingMain/index.ts | 59 + src/api/wms/detail/index.ts | 35 + src/api/wms/dismantleRecordDetailb/index.ts | 66 + src/api/wms/dismantleRequestDetailb/index.ts | 61 + src/api/wms/dock/index.ts | 67 + src/api/wms/documentsetting/index.ts | 60 + src/api/wms/enterprise/index.ts | 64 + src/api/wms/expectin/index.ts | 55 + src/api/wms/expectout/index.ts | 56 + src/api/wms/file/index.ts | 12 + src/api/wms/index.ts | 0 src/api/wms/inspectJobDetail/index.ts | 60 + src/api/wms/inspectJobMain/index.ts | 96 + src/api/wms/inspectRecordDetail/index.ts | 76 + src/api/wms/inspectRecordMain/index.ts | 82 + src/api/wms/inspectRequestDetail/index.ts | 58 + src/api/wms/inspectRequestMain/index.ts | 106 + .../wms/inventorychangeRecordDetail/index.ts | 82 + .../wms/inventorychangeRecordMain/index.ts | 62 + .../wms/inventorychangeRequestDetail/index.ts | 81 + .../wms/inventorychangeRequestMain/index.ts | 91 + .../wms/inventoryinitRecordDetail/index.ts | 75 + src/api/wms/inventoryinitRecordMain/index.ts | 67 + .../wms/inventoryinitRequestDetail/index.ts | 72 + src/api/wms/inventoryinitRequestMain/index.ts | 94 + src/api/wms/inventorymoveJobDetail/index.ts | 66 + src/api/wms/inventorymoveJobMain/index.ts | 103 + .../wms/inventorymoveRecordDetail/index.ts | 76 + src/api/wms/inventorymoveRecordMain/index.ts | 69 + .../wms/inventorymoveRequestDetail/index.ts | 70 + src/api/wms/inventorymoveRequestMain/index.ts | 97 + src/api/wms/issueJobDetail/index.ts | 71 + src/api/wms/issueJobMain/index.ts | 110 + src/api/wms/issueRecordDetail/index.ts | 77 + src/api/wms/issueRecordMain/index.ts | 75 + src/api/wms/issueRequestDetail/index.ts | 67 + src/api/wms/issueRequestMain/index.ts | 103 + src/api/wms/itembasic/index.ts | 80 + src/api/wms/itempackaging/index.ts | 65 + src/api/wms/jobsetting/index.ts | 62 + src/api/wms/labeltype/index.ts | 58 + src/api/wms/location/index.ts | 80 + src/api/wms/locationcapacity/index.ts | 51 + src/api/wms/locationgroup/index.ts | 63 + .../offlinesettlementRecordDetail/index.ts | 64 + .../wms/offlinesettlementRecordMain/index.ts | 62 + .../offlinesettlementRequestDetail/index.ts | 63 + .../wms/offlinesettlementRequestMain/index.ts | 62 + .../wms/onlinesettlementRecordDetail/index.ts | 64 + .../wms/onlinesettlementRecordMain/index.ts | 62 + .../onlinesettlementRequestDetail/index.ts | 63 + .../wms/onlinesettlementRequestMain/index.ts | 62 + src/api/wms/owner/index.ts | 71 + src/api/wms/package/index.ts | 96 + src/api/wms/packagemergeDetail/index.ts | 67 + src/api/wms/packagemergeMain/index.ts | 68 + src/api/wms/packageoverDetail/index.ts | 67 + src/api/wms/packageoverMain/index.ts | 63 + src/api/wms/packagesplitDetail/index.ts | 67 + src/api/wms/packagesplitMain/index.ts | 63 + src/api/wms/paramsetting/index.ts | 59 + src/api/wms/pickJobDetail/index.ts | 64 + src/api/wms/pickJobMain/index.ts | 81 + src/api/wms/pickRecordDetail/index.ts | 74 + src/api/wms/pickRecordMain/index.ts | 68 + src/api/wms/pickRequestDetail/index.ts | 62 + src/api/wms/pickRequestMain/index.ts | 66 + src/api/wms/preparetoissueDetail/index.ts | 47 + src/api/wms/preparetoissueMain/index.ts | 109 + src/api/wms/process/index.ts | 60 + .../wms/productdismantleJobDetail/index.ts | 70 + src/api/wms/productdismantleJobMain/index.ts | 82 + .../productdismantleRecordDetaila/index.ts | 72 + .../wms/productdismantleRecordMain/index.ts | 67 + .../productdismantleRequestDetaila/index.ts | 71 + .../wms/productdismantleRequestMain/index.ts | 101 + src/api/wms/productionDetail/index.ts | 47 + src/api/wms/productionMain/index.ts | 111 + src/api/wms/productionline/index.ts | 61 + src/api/wms/productionlineitem/index.ts | 69 + .../wms/productionreceiptJobDetail/index.ts | 67 + src/api/wms/productionreceiptJobMain/index.ts | 108 + .../productionreceiptRecordDetail/index.ts | 77 + .../wms/productionreceiptRecordMain/index.ts | 70 + .../wms/productionreturnJobDetail/index.ts | 66 + src/api/wms/productionreturnJobMain/index.ts | 107 + .../wms/productionreturnRecordDetail/index.ts | 76 + .../wms/productionreturnRecordMain/index.ts | 69 + .../productionreturnRequestDetail/index.ts | 72 + .../productionreturnRequestDetailNo/index.ts | 67 + .../wms/productionreturnRequestMain/index.ts | 104 + .../productionreturnRequestMainNo/index.ts | 104 + src/api/wms/productputawayJobDetail/index.ts | 66 + src/api/wms/productputawayJobMain/index.ts | 107 + .../wms/productputawayRecordDetail/index.ts | 76 + src/api/wms/productputawayRecordMain/index.ts | 70 + .../wms/productputawayRequestDetail/index.ts | 67 + .../wms/productputawayRequestMain/index.ts | 104 + src/api/wms/productreceiptJobDetail/index.ts | 71 + src/api/wms/productreceiptJobMain/index.ts | 109 + .../wms/productreceiptRecordDetail/index.ts | 76 + src/api/wms/productreceiptRecordMain/index.ts | 69 + .../wms/productreceiptRequestDetail/index.ts | 77 + .../wms/productreceiptRequestMain/index.ts | 102 + .../wms/productrepairRecordDetail/index.ts | 72 + src/api/wms/productrepairRecordMain/index.ts | 67 + .../wms/productrepairRequestDetaila/index.ts | 67 + src/api/wms/productrepairRequestMain/index.ts | 101 + src/api/wms/productscrapJobDetail/index.ts | 63 + src/api/wms/productscrapJobMain/index.ts | 79 + src/api/wms/productscrapRecordDetail/index.ts | 70 + src/api/wms/productscrapRecordMain/index.ts | 66 + .../wms/productscrapRequestDetail/index.ts | 65 + src/api/wms/productscrapRequestMain/index.ts | 98 + src/api/wms/project/index.ts | 58 + src/api/wms/purchaseDetail/index.ts | 72 + src/api/wms/purchaseMain/index.ts | 81 + src/api/wms/purchasePlanDetail/index.ts | 52 + src/api/wms/purchasePlanMain/index.ts | 87 + .../wms/purchaseclaimRecordDetail/index.ts | 66 + src/api/wms/purchaseclaimRecordMain/index.ts | 64 + .../wms/purchaseclaimRequestDetail/index.ts | 53 + src/api/wms/purchaseclaimRequestMain/index.ts | 86 + src/api/wms/purchaseprice/index.ts | 58 + src/api/wms/purchasereceiptJobDetail/index.ts | 75 + src/api/wms/purchasereceiptJobMain/index.ts | 99 + .../wms/purchasereceiptRecordDetail/index.ts | 103 + .../wms/purchasereceiptRecordMain/index.ts | 80 + .../wms/purchasereceiptRequestDetail/index.ts | 78 + .../wms/purchasereceiptRequestMain/index.ts | 108 + src/api/wms/purchasereturnJobDetail/index.ts | 68 + src/api/wms/purchasereturnJobMain/index.ts | 95 + .../wms/purchasereturnRecordDetail/index.ts | 80 + src/api/wms/purchasereturnRecordMain/index.ts | 76 + .../wms/purchasereturnRequestDetail/index.ts | 69 + .../wms/purchasereturnRequestMain/index.ts | 104 + src/api/wms/putawayJobDetail/index.ts | 66 + src/api/wms/putawayJobMain/index.ts | 88 + src/api/wms/putawayRecordDetail/index.ts | 76 + src/api/wms/putawayRecordMain/index.ts | 69 + src/api/wms/putawayRequestDetail/index.ts | 67 + src/api/wms/putawayRequestMain/index.ts | 97 + src/api/wms/recordsetting/index.ts | 52 + src/api/wms/remark/index.ts | 14 + src/api/wms/repleinshJobDetail/index.ts | 64 + src/api/wms/repleinshJobMain/index.ts | 106 + src/api/wms/repleinshRecordDetail/index.ts | 74 + src/api/wms/repleinshRecordMain/index.ts | 68 + src/api/wms/repleinshRequestDetail/index.ts | 62 + src/api/wms/repleinshRequestMain/index.ts | 102 + src/api/wms/requestsetting/index.ts | 56 + src/api/wms/rule/index.ts | 58 + src/api/wms/saleDetail/index.ts | 56 + src/api/wms/saleMain/index.ts | 63 + src/api/wms/saleprice/index.ts | 58 + src/api/wms/scrapJobDetail/index.ts | 63 + src/api/wms/scrapJobMain/index.ts | 79 + src/api/wms/scrapRecordDetail/index.ts | 70 + src/api/wms/scrapRecordMain/index.ts | 65 + src/api/wms/scrapRequestDetail/index.ts | 65 + src/api/wms/scrapRequestMain/index.ts | 98 + src/api/wms/shift/index.ts | 60 + src/api/wms/stdcostprice/index.ts | 58 + src/api/wms/strategy/index.ts | 41 + src/api/wms/supplier/index.ts | 72 + src/api/wms/supplierUser/index.ts | 54 + .../wms/supplierdeliverRecordDetail/index.ts | 87 + .../wms/supplierdeliverRecordMain/index.ts | 75 + .../wms/supplierdeliverRequestDetail/index.ts | 74 + .../wms/supplierdeliverRequestMain/index.ts | 103 + .../wms/supplierinvoiceRecordDeatil/index.ts | 73 + .../wms/supplierinvoiceRecordMain/index.ts | 63 + .../wms/supplierinvoiceRequestDetail/index.ts | 70 + .../wms/supplierinvoiceRequestMain/index.ts | 86 + src/api/wms/supplieritem/index.ts | 67 + src/api/wms/switch/index.ts | 50 + src/api/wms/systemcalendar/index.ts | 57 + src/api/wms/team/index.ts | 58 + src/api/wms/transaction/index.ts | 71 + src/api/wms/transactiontype/index.ts | 55 + src/api/wms/transferissueJobDetail/index.ts | 64 + src/api/wms/transferissueJobMain/index.ts | 101 + .../wms/transferissueRecordDetail/index.ts | 74 + src/api/wms/transferissueRecordMain/index.ts | 72 + .../wms/transferissueRequestDetail/index.ts | 66 + src/api/wms/transferissueRequestMain/index.ts | 100 + src/api/wms/transferlog/index.ts | 80 + src/api/wms/transferreceiptJobDetail/index.ts | 64 + src/api/wms/transferreceiptJobMain/index.ts | 85 + .../wms/transferreceiptRecordDetail/index.ts | 74 + .../wms/transferreceiptRecordMain/index.ts | 73 + .../wms/transferreceiptRequestDetail/index.ts | 65 + .../wms/transferreceiptRequestMain/index.ts | 100 + src/api/wms/unplannedissueJobDetail/index.ts | 63 + src/api/wms/unplannedissueJobMain/index.ts | 79 + .../wms/unplannedissueRecordDetail/index.ts | 70 + src/api/wms/unplannedissueRecordMain/index.ts | 66 + .../wms/unplannedissueRequestDetail/index.ts | 65 + .../wms/unplannedissueRequestMain/index.ts | 99 + .../wms/unplannedreceiptJobDetail/index.ts | 67 + src/api/wms/unplannedreceiptJobMain/index.ts | 79 + .../wms/unplannedreceiptRecordDetail/index.ts | 74 + .../wms/unplannedreceiptRecordMain/index.ts | 65 + .../unplannedreceiptRequestDetail/index.ts | 74 + .../wms/unplannedreceiptRequestMain/index.ts | 98 + src/api/wms/warehouse/index.ts | 61 + src/api/wms/workDetail/index.ts | 47 + src/api/wms/workMain/index.ts | 59 + src/api/wms/workshop/index.ts | 58 + src/api/wms/workstation/index.ts | 67 + src/assets/imgs/Eyes-closed.png | Bin 0 -> 6454 bytes src/assets/imgs/avatar.gif | Bin 0 -> 6334 bytes src/assets/imgs/avatar.jpg | Bin 0 -> 6264 bytes src/assets/imgs/code.png | Bin 0 -> 4871 bytes src/assets/imgs/eye.png | Bin 0 -> 8173 bytes src/assets/imgs/icon1.png | Bin 0 -> 4141 bytes src/assets/imgs/icon2.png | Bin 0 -> 5136 bytes src/assets/imgs/icon3.png | Bin 0 -> 10459 bytes src/assets/imgs/icon4.png | Bin 0 -> 10750 bytes src/assets/imgs/icon5.png | Bin 0 -> 6387 bytes src/assets/imgs/icon6.png | Bin 0 -> 5382 bytes src/assets/imgs/logo.png | Bin 0 -> 16773 bytes src/assets/imgs/logo1.png | Bin 0 -> 4927 bytes src/assets/imgs/logo_w.png | Bin 0 -> 17324 bytes src/assets/imgs/profile.jpg | Bin 0 -> 7885 bytes src/assets/imgs/wechat.png | Bin 0 -> 1881 bytes src/assets/svgs/403.svg | 1 + src/assets/svgs/404.svg | 1 + src/assets/svgs/500.svg | 1 + src/assets/svgs/icon.svg | 1 + src/assets/svgs/login-bg.svg | 1 + src/assets/svgs/login-box-bg.svg | 1 + src/assets/svgs/member_balance.svg | 1 + .../svgs/member_expenditure_balance.svg | 1 + src/assets/svgs/member_level.svg | 1 + src/assets/svgs/member_point.svg | 1 + src/assets/svgs/member_recharge_balance.svg | 1 + src/assets/svgs/message.svg | 1 + src/assets/svgs/money.svg | 1 + src/assets/svgs/pay/icon/alipay_app.svg | 1 + src/assets/svgs/pay/icon/alipay_bar.svg | 2 + src/assets/svgs/pay/icon/alipay_pc.svg | 1 + src/assets/svgs/pay/icon/alipay_qr.svg | 2 + src/assets/svgs/pay/icon/alipay_wap.svg | 1 + src/assets/svgs/pay/icon/mock.svg | 1 + src/assets/svgs/pay/icon/wx_app.svg | 2 + src/assets/svgs/pay/icon/wx_bar.svg | 1 + src/assets/svgs/pay/icon/wx_lite.svg | 1 + src/assets/svgs/pay/icon/wx_native.svg | 1 + src/assets/svgs/pay/icon/wx_pub.svg | 2 + src/assets/svgs/peoples.svg | 1 + src/assets/svgs/shopping.svg | 1 + src/components/Annex/index.ts | 3 + src/components/Annex/src/Annex.vue | 127 ++ src/components/Backtop/index.ts | 3 + src/components/Backtop/src/Backtop.vue | 17 + src/components/BasicForm/index.ts | 3 + src/components/BasicForm/src/BasicForm.vue | 568 +++++ src/components/Card/index.ts | 3 + src/components/Card/src/CardTitle.vue | 37 + src/components/ChangeRecord/index.ts | 3 + .../ChangeRecord/src/ChangeRecord.vue | 128 ++ src/components/ConfigGlobal/index.ts | 3 + .../ConfigGlobal/src/ConfigGlobal.vue | 63 + src/components/ContentDetailWrap/index.ts | 3 + .../src/ContentDetailWrap.vue | 58 + src/components/ContentWrap/index.ts | 3 + .../ContentWrap/src/ContentWrap.vue | 34 + src/components/CountTo/index.ts | 3 + src/components/CountTo/src/CountTo.vue | 182 ++ src/components/Crontab/index.ts | 2 + src/components/Crontab/src/Crontab.vue | 1011 +++++++++ src/components/Cropper/index.ts | 4 + src/components/Cropper/src/CopperModal.vue | 261 +++ src/components/Cropper/src/Cropper.vue | 183 ++ src/components/Cropper/src/CropperAvatar.vue | 142 ++ src/components/Cropper/src/types.ts | 8 + src/components/Descriptions/index.ts | 4 + .../Descriptions/src/Descriptions.vue | 186 ++ .../src/DescriptionsItemLabel.vue | 29 + src/components/Detail/index.ts | 3 + src/components/Detail/src/Detail.vue | 659 ++++++ src/components/DetailTable/index.ts | 3 + .../DetailTable/src/DetailTable.vue | 104 + src/components/Dialog/index.ts | 3 + src/components/Dialog/src/Dialog.vue | 140 ++ src/components/DictTag/index.ts | 3 + src/components/DictTag/src/DictTag.vue | 84 + src/components/DocAlert/index.vue | 34 + src/components/Echart/index.ts | 3 + src/components/Echart/src/Echart.vue | 115 + src/components/Editor/index.ts | 8 + src/components/Editor/src/Editor.vue | 202 ++ src/components/Error/index.ts | 3 + src/components/Error/src/Error.vue | 58 + src/components/Form/index.ts | 15 + src/components/Form/src/Form.vue | 363 +++ src/components/Form/src/componentMap.ts | 55 + .../Form/src/components/useRenderCheckbox.tsx | 26 + .../Form/src/components/useRenderRadio.tsx | 26 + .../Form/src/components/useRenderSelect.tsx | 57 + src/components/Form/src/helper.ts | 148 ++ src/components/Form/src/types.ts | 17 + src/components/HeaderSearch/index.vue | 190 ++ src/components/Highlight/index.ts | 3 + src/components/Highlight/src/Highlight.vue | 65 + src/components/Icon/index.ts | 4 + src/components/Icon/src/Icon.vue | 85 + src/components/Icon/src/IconSelect.vue | 229 ++ src/components/Icon/src/data.ts | 1961 +++++++++++++++++ src/components/ImageViewer/index.ts | 33 + .../ImageViewer/src/ImageViewer.vue | 35 + src/components/ImageViewer/src/types.ts | 9 + src/components/ImportForm/index.ts | 3 + src/components/ImportForm/src/ImportForm.vue | 329 +++ src/components/Infotip/index.ts | 3 + src/components/Infotip/src/Infotip.vue | 54 + src/components/InputPassword/index.ts | 3 + .../InputPassword/src/InputPassword.vue | 152 ++ src/components/Pagination/index.vue | 87 + src/components/Qrcode/index.ts | 3 + src/components/Qrcode/src/Qrcode.vue | 253 +++ src/components/Remarks/index.ts | 3 + src/components/Remarks/src/Remarks.vue | 119 + src/components/RouterSearch/index.vue | 76 + src/components/Search/index.ts | 3 + src/components/Search/src/Search.vue | 186 ++ src/components/SearchHigh/index.ts | 3 + src/components/SearchHigh/src/SearchHigh.vue | 342 +++ src/components/SearchTable/index.ts | 3 + .../SearchTable/src/SearchTable.vue | 167 ++ src/components/SearchTableCount/index.ts | 3 + .../SearchTableCount/src/SearchTableCount.vue | 222 ++ src/components/Sticky/index.ts | 3 + src/components/Sticky/src/Sticky.vue | 143 ++ src/components/Table/index.ts | 12 + src/components/Table/src/Table.vue | 337 +++ src/components/Table/src/helper.ts | 8 + src/components/Table/src/types.ts | 26 + src/components/TableForm/index.ts | 3 + src/components/TableForm/src/TableForm.vue | 468 ++++ src/components/TableFormCountPlan/index.ts | 3 + .../src/TableFormCountPlan.vue | 203 ++ src/components/TableHead/index.ts | 3 + src/components/TableHead/src/TableHead.vue | 160 ++ src/components/Tabs/index.ts | 3 + src/components/Tabs/src/Tabs.vue | 59 + src/components/Tooltip/index.ts | 3 + src/components/Tooltip/src/Tooltip.vue | 17 + src/components/UploadFile/index.ts | 5 + src/components/UploadFile/src/Preview.vue | 66 + src/components/UploadFile/src/UploadFile.vue | 177 ++ src/components/UploadFile/src/UploadImg.vue | 272 +++ src/components/UploadFile/src/UploadImgs.vue | 310 +++ src/components/Verifition/index.ts | 3 + src/components/Verifition/src/Verify.vue | 441 ++++ .../Verifition/src/Verify/VerifyPoints.vue | 250 +++ .../Verifition/src/Verify/VerifySlide.vue | 376 ++++ src/components/Verifition/src/Verify/index.ts | 4 + src/components/Verifition/src/utils/ase.ts | 14 + src/components/Verifition/src/utils/util.ts | 97 + src/components/XButton/index.ts | 5 + src/components/XButton/src/ButtonBase.vue | 97 + src/components/XButton/src/XButton.vue | 50 + src/components/XButton/src/XTextButton.vue | 49 + .../package/designer/ProcessDesigner.vue | 704 ++++++ .../package/designer/ProcessViewer.vue | 635 ++++++ .../package/designer/index.ts | 8 + .../package/designer/index2.ts | 8 + .../plugins/content-pad/contentPadProvider.js | 423 ++++ .../designer/plugins/content-pad/index.js | 6 + .../package/designer/plugins/defaultEmpty.js | 24 + .../descriptor/activitiDescriptor.json | 994 +++++++++ .../plugins/descriptor/camundaDescriptor.json | 1010 +++++++++ .../descriptor/flowableDescriptor.json | 1207 ++++++++++ .../activiti/activitiExtension.js | 83 + .../extension-moddle/activiti/index.js | 11 + .../extension-moddle/camunda/extension.js | 151 ++ .../plugins/extension-moddle/camunda/index.js | 8 + .../flowable/flowableExtension.js | 83 + .../extension-moddle/flowable/index.js | 10 + .../designer/plugins/palette/CustomPalette.js | 221 ++ .../package/designer/plugins/palette/index.js | 22 + .../plugins/palette/paletteProvider.js | 213 ++ .../plugins/translate/customTranslate.js | 44 + .../package/designer/plugins/translate/zh.js | 240 ++ .../bpmnProcessDesigner/package/index.ts | 11 + .../package/palette/ProcessPalette.vue | 45 + .../package/penal/PropertiesPanel.vue | 211 ++ .../package/penal/base/ElementBaseInfo.vue | 184 ++ .../penal/flow-condition/FlowCondition.vue | 191 ++ .../package/penal/form/ElementForm.vue | 465 ++++ .../package/penal/index.js | 7 + .../penal/listeners/ElementListeners.vue | 403 ++++ .../penal/listeners/UserTaskListeners.vue | 451 ++++ .../package/penal/listeners/template.js | 178 ++ .../package/penal/listeners/utilSelf.ts | 62 + .../multi-instance/ElementMultiInstance.vue | 254 +++ .../penal/other/ElementOtherConfig.vue | 55 + .../penal/properties/ElementProperties.vue | 169 ++ .../penal/signal-message/SignalAndMessage.vue | 113 + .../package/penal/task/ElementTask.vue | 86 + .../task/task-components/ReceiveTask.vue | 125 ++ .../penal/task/task-components/ScriptTask.vue | 99 + .../penal/task/task-components/UserTask.vue | 98 + .../package/theme/element-variables.scss | 70 + .../package/theme/index.scss | 2 + .../package/theme/process-designer.scss | 161 ++ .../package/theme/process-panel.scss | 107 + .../bpmnProcessDesigner/package/utils.ts | 77 + .../src/highlight/index.js | 5 + .../modules/custom-renderer/CustomRenderer.js | 14 + .../src/modules/custom-renderer/index.js | 6 + .../src/modules/rules/CustomRules.js | 16 + .../src/modules/rules/index.js | 6 + .../bpmnProcessDesigner/src/translations.ts | 25 + .../src/utils/directive/clickOutSide.js | 39 + .../bpmnProcessDesigner/src/utils/index.js | 10 + .../bpmnProcessDesigner/src/utils/xml2json.js | 50 + src/components/iFrame/index.ts | 3 + src/components/iFrame/src/IFrame.vue | 68 + src/components/index.ts | 6 + src/components/rowDrop/index.vue | 236 ++ src/config/axios/config.ts | 28 + src/config/axios/errorCode.ts | 6 + src/config/axios/index.ts | 59 + src/config/axios/service.ts | 239 ++ src/directives/index.ts | 13 + src/directives/permission/hasPermi.ts | 27 + src/directives/permission/hasRole.ts | 30 + src/hooks/event/useScrollTo.ts | 60 + src/hooks/web/useCache.ts | 27 + src/hooks/web/useConfigGlobal.ts | 9 + src/hooks/web/useCrudSchemas.ts | 374 ++++ src/hooks/web/useDesign.ts | 18 + src/hooks/web/useEmitt.ts | 22 + src/hooks/web/useForm.ts | 94 + src/hooks/web/useI18n.ts | 53 + src/hooks/web/useIcon.ts | 8 + src/hooks/web/useIntro.ts | 47 + src/hooks/web/useLocale.ts | 35 + src/hooks/web/useMessage.ts | 95 + src/hooks/web/useNProgress.ts | 33 + src/hooks/web/usePageLoading.ts | 18 + src/hooks/web/useTable.ts | 242 ++ src/hooks/web/useTimeAgo.ts | 49 + src/hooks/web/useTitle.ts | 24 + src/hooks/web/useValidator.ts | 62 + src/hooks/web/useWatermark.ts | 55 + src/layout/Layout.vue | 78 + src/layout/components/AppView.vue | 61 + src/layout/components/Breadcrumb/index.ts | 3 + .../components/Breadcrumb/src/Breadcrumb.vue | 128 ++ .../components/Breadcrumb/src/helper.ts | 31 + src/layout/components/Collapse/index.ts | 3 + .../components/Collapse/src/Collapse.vue | 36 + src/layout/components/ContextMenu/index.ts | 10 + .../ContextMenu/src/ContextMenu.vue | 76 + src/layout/components/Footer/index.ts | 3 + src/layout/components/Footer/src/Footer.vue | 24 + src/layout/components/LocaleDropdown/index.ts | 3 + .../LocaleDropdown/src/LocaleDropdown.vue | 52 + src/layout/components/Logo/index.ts | 3 + src/layout/components/Logo/src/Logo.vue | 88 + src/layout/components/Menu/index.ts | 3 + src/layout/components/Menu/src/Menu.vue | 290 +++ .../Menu/src/components/useRenderMenuItem.tsx | 59 + .../src/components/useRenderMenuTitle.tsx | 22 + src/layout/components/Menu/src/helper.ts | 54 + src/layout/components/Message/index.ts | 3 + src/layout/components/Message/src/Message.vue | 125 ++ src/layout/components/Screenfull/index.ts | 3 + .../components/Screenfull/src/Screenfull.vue | 32 + src/layout/components/Setting/index.ts | 3 + src/layout/components/Setting/src/Setting.vue | 299 +++ .../src/components/ColorRadioPicker.vue | 67 + .../src/components/InterfaceDisplay.vue | 224 ++ .../src/components/LayoutRadioPicker.vue | 172 ++ src/layout/components/SizeDropdown/index.ts | 3 + .../SizeDropdown/src/SizeDropdown.vue | 40 + src/layout/components/TabMenu/index.ts | 3 + src/layout/components/TabMenu/src/TabMenu.vue | 240 ++ src/layout/components/TabMenu/src/helper.ts | 51 + src/layout/components/TagsView/index.ts | 3 + .../components/TagsView/src/TagsView.vue | 585 +++++ src/layout/components/TagsView/src/helper.ts | 21 + src/layout/components/ThemeSwitch/index.ts | 3 + .../ThemeSwitch/src/ThemeSwitch.vue | 46 + src/layout/components/ToolHeader.vue | 91 + src/layout/components/UserInfo/index.ts | 3 + .../components/UserInfo/src/UserInfo.vue | 78 + src/layout/components/useRenderLayout.tsx | 306 +++ src/locales/en-US.ts | 459 ++++ src/locales/zh-CN.ts | 452 ++++ src/main.ts | 76 + src/permission.ts | 70 + src/plugins/animate.css/index.ts | 1 + src/plugins/echarts/index.ts | 45 + src/plugins/elementPlus/index.ts | 17 + src/plugins/formCreate/index.ts | 43 + src/plugins/svgIcon/index.ts | 3 + src/plugins/tongji/index.ts | 23 + src/plugins/unocss/index.ts | 1 + src/plugins/vueI18n/helper.ts | 3 + src/plugins/vueI18n/index.ts | 42 + src/router/index.ts | 28 + src/router/modules/remaining.ts | 370 ++++ src/store/index.ts | 10 + src/store/modules/app.ts | 274 +++ src/store/modules/dict.ts | 104 + src/store/modules/locale.ts | 59 + src/store/modules/permission.ts | 67 + src/store/modules/tagsView.ts | 140 ++ src/store/modules/user.ts | 91 + src/styles/global.module.scss | 6 + src/styles/index.scss | 35 + src/styles/theme.scss | 6 + src/styles/var.css | 66 + src/styles/variables.scss | 4 + src/types/components.d.ts | 56 + src/types/configGlobal.d.ts | 4 + src/types/contextMenu.d.ts | 7 + src/types/descriptions.d.ts | 13 + src/types/elementPlus.d.ts | 3 + src/types/form.d.ts | 44 + src/types/icon.d.ts | 5 + src/types/infoTip.d.ts | 4 + src/types/layout.d.ts | 1 + src/types/localeDropdown.d.ts | 10 + src/types/qrcode.d.ts | 9 + src/types/table.d.ts | 44 + src/types/tableForm.d.ts | 44 + src/types/theme.d.ts | 16 + src/utils/Logger.ts | 100 + src/utils/auth.ts | 92 + src/utils/color.ts | 153 ++ src/utils/constants.ts | 360 +++ src/utils/dict.ts | 275 +++ src/utils/disposition/defaultButtons.ts | 759 +++++++ src/utils/disposition/formFields.ts | 1954 ++++++++++++++++ src/utils/disposition/tableDetailsColumns.ts | 1431 ++++++++++++ src/utils/disposition/tableSummaryColumns.ts | 100 + src/utils/disposition/tabsList.ts | 40 + src/utils/domUtils.ts | 289 +++ src/utils/download.ts | 38 + src/utils/filt.ts | 157 ++ src/utils/formCreate.ts | 54 + src/utils/formRules.ts | 7 + src/utils/formatTime.ts | 232 ++ src/utils/formatter.ts | 12 + src/utils/index.ts | 245 ++ src/utils/is.ts | 105 + src/utils/jsencrypt.ts | 31 + src/utils/permission.ts | 45 + src/utils/propTypes.ts | 28 + src/utils/routerHelper.ts | 238 ++ src/utils/tree.ts | 399 ++++ src/utils/tsxHelper.ts | 16 + src/utils/validator.ts | 775 +++++++ src/views/Home/Index copy.vue | 381 ++++ src/views/Home/Index.vue | 14 + src/views/Home/Index2.vue | 319 +++ src/views/Home/components/material.vue | 336 +++ src/views/Home/components/produce.vue | 286 +++ src/views/Home/components/product.vue | 313 +++ src/views/Home/components/supplierIndex.vue | 452 ++++ src/views/Home/echarts-data.ts | 286 +++ src/views/Home/types.ts | 55 + src/views/Login/Login.vue | 104 + src/views/Login/components/LoginForm.vue | 278 +++ src/views/Login/components/LoginFormTitle.vue | 26 + src/views/Login/components/MobileForm.vue | 225 ++ src/views/Login/components/QrCodeForm.vue | 30 + src/views/Login/components/RegisterForm.vue | 142 ++ src/views/Login/components/SSOLogin.vue | 199 ++ src/views/Login/components/index.ts | 8 + src/views/Login/components/useLogin.ts | 42 + src/views/Profile/Index.vue | 64 + src/views/Profile/components/BasicInfo.vue | 92 + src/views/Profile/components/ProfileUser.vue | 99 + src/views/Profile/components/ResetPwd.vue | 73 + src/views/Profile/components/UserAvatar.vue | 39 + src/views/Profile/components/UserSocial.vue | 94 + src/views/Profile/components/index.ts | 7 + src/views/Redirect/Redirect.vue | 28 + src/views/bpm/definition/index.vue | 174 ++ src/views/bpm/form/editor/index.vue | 119 + src/views/bpm/form/index.vue | 165 ++ src/views/bpm/group/UserGroupForm.vue | 132 ++ src/views/bpm/group/index.vue | 149 ++ src/views/bpm/model/ModelForm.vue | 230 ++ src/views/bpm/model/ModelImportForm.vue | 140 ++ src/views/bpm/model/editor/index.vue | 105 + src/views/bpm/model/index.vue | 314 +++ src/views/bpm/oa/leave/create.vue | 89 + src/views/bpm/oa/leave/detail.vue | 51 + src/views/bpm/oa/leave/index.vue | 175 ++ .../bpm/processInstance/create/index.vue | 133 ++ .../detail/ProcessInstanceBpmnViewer.vue | 57 + .../detail/ProcessInstanceTaskList.vue | 97 + .../detail/TaskReturnDialogForm.vue | 90 + .../detail/TaskUpdateAssigneeForm.vue | 83 + .../bpm/processInstance/detail/index.vue | 285 +++ src/views/bpm/processInstance/index.vue | 186 ++ src/views/bpm/task/done/TaskDetail.vue | 51 + src/views/bpm/task/done/index.vue | 125 ++ src/views/bpm/task/todo/index.vue | 112 + .../bpm/taskAssignRule/TaskAssignRuleForm.vue | 250 +++ src/views/bpm/taskAssignRule/index.vue | 136 ++ src/views/error/403.vue | 8 + src/views/error/404.vue | 7 + src/views/error/500.vue | 7 + .../infra/apiAccessLog/ApiAccessLogDetail.vue | 67 + src/views/infra/apiAccessLog/index.vue | 167 ++ .../infra/apiErrorLog/ApiErrorLogDetail.vue | 81 + src/views/infra/apiErrorLog/index.vue | 249 +++ src/views/infra/build/index.vue | 143 ++ src/views/infra/codegen/PreviewCode.vue | 222 ++ .../codegen/components/BasicInfoForm.vue | 87 + .../codegen/components/ColumInfoForm.vue | 153 ++ .../codegen/components/GenerateInfoForm.vue | 391 ++++ src/views/infra/codegen/components/index.ts | 4 + src/views/infra/codegen/editTable.vue | 83 + src/views/infra/codegen/importTable.vue | 151 ++ src/views/infra/codegen/index.vue | 258 +++ src/views/infra/config/ConfigForm.vue | 131 ++ src/views/infra/config/index.vue | 169 ++ src/views/infra/customInterface/index.vue | 21 + .../dataSourceConfig/DataSourceConfigForm.vue | 111 + src/views/infra/dataSourceConfig/index.vue | 87 + src/views/infra/dbDoc/index.vue | 57 + src/views/infra/druid/index.vue | 25 + src/views/infra/file/FileForm.vue | 104 + src/views/infra/file/index.vue | 164 ++ src/views/infra/fileConfig/FileConfigForm.vue | 195 ++ src/views/infra/fileConfig/index.vue | 168 ++ src/views/infra/job/JobDetail.vue | 73 + src/views/infra/job/JobForm.vue | 131 ++ src/views/infra/job/index.vue | 255 +++ src/views/infra/job/logger/JobLogDetail.vue | 59 + src/views/infra/job/logger/index.vue | 196 ++ src/views/infra/redis/index.vue | 266 +++ src/views/infra/server/index.vue | 28 + src/views/infra/skywalking/index.vue | 25 + src/views/infra/swagger/index.vue | 26 + src/views/infra/testDemo/index.vue | 4 + src/views/infra/webSocket/index.vue | 118 + src/views/report/goview/index.vue | 10 + src/views/report/jmreport/index.vue | 13 + src/views/system/area/AreaForm.vue | 72 + src/views/system/area/index.vue | 73 + src/views/system/dept/DeptForm.vue | 173 ++ src/views/system/dept/index.vue | 149 ++ src/views/system/dict/DictTypeForm.vue | 124 ++ src/views/system/dict/data/DictDataForm.vue | 183 ++ src/views/system/dict/data/index.vue | 210 ++ src/views/system/dict/index.vue | 175 ++ src/views/system/errorCode/ErrorCodeForm.vue | 112 + src/views/system/errorCode/index.vue | 171 ++ src/views/system/loginlog/LoginLogDetail.vue | 51 + src/views/system/loginlog/index.vue | 140 ++ .../system/mail/account/MailAccountDetail.vue | 28 + .../system/mail/account/MailAccountForm.vue | 68 + src/views/system/mail/account/account.data.ts | 76 + src/views/system/mail/account/index.vue | 80 + src/views/system/mail/log/MailLogDetail.vue | 33 + src/views/system/mail/log/index.vue | 62 + src/views/system/mail/log/log.data.ts | 133 ++ .../system/mail/template/MailTemplateForm.vue | 74 + .../mail/template/MailTemplateSendForm.vue | 115 + src/views/system/mail/template/index.vue | 84 + .../system/mail/template/template.data.ts | 113 + src/views/system/menu/MenuForm.vue | 256 +++ src/views/system/menu/index.vue | 276 +++ src/views/system/notice/NoticeForm.vue | 132 ++ src/views/system/notice/index.vue | 136 ++ .../notify/message/NotifyMessageDetail.vue | 66 + src/views/system/notify/message/index.vue | 142 ++ .../notify/my/MyNotifyMessageDetail.vue | 48 + src/views/system/notify/my/index.vue | 216 ++ .../notify/template/NotifyTemplateForm.vue | 141 ++ .../template/NotifyTemplateSendForm.vue | 129 ++ src/views/system/notify/template/index.vue | 164 ++ src/views/system/oauth2/client/ClientForm.vue | 266 +++ src/views/system/oauth2/client/index.vue | 150 ++ src/views/system/oauth2/token/index.vue | 122 + .../system/operatelog/OperateLogDetail.vue | 82 + src/views/system/operatelog/index.vue | 159 ++ src/views/system/post/PostForm.vue | 125 ++ src/views/system/post/index.vue | 157 ++ src/views/system/role/RoleAssignMenuForm.vue | 160 ++ .../system/role/RoleDataPermissionForm.vue | 167 ++ src/views/system/role/RoleForm.vue | 126 ++ src/views/system/role/index.vue | 264 +++ .../sensitiveWord/SensitiveWordForm.vue | 131 ++ .../sensitiveWord/SensitiveWordTestForm.vue | 91 + src/views/system/sensitiveWord/index.vue | 191 ++ .../system/serialNumber/SerialNumberForm.vue | 124 ++ src/views/system/serialNumber/index.vue | 182 ++ .../system/sms/channel/SmsChannelForm.vue | 144 ++ src/views/system/sms/channel/index.vue | 144 ++ src/views/system/sms/log/SmsLogDetail.vue | 89 + src/views/system/sms/log/index.vue | 193 ++ .../system/sms/template/SmsTemplateForm.vue | 163 ++ .../sms/template/SmsTemplateSendForm.vue | 120 + src/views/system/sms/template/index.vue | 213 ++ src/views/system/sysconfig/index.vue | 307 +++ src/views/system/tenant/TenantForm.vue | 188 ++ src/views/system/tenant/index.vue | 192 ++ .../tenantPackage/TenantPackageForm.vue | 194 ++ src/views/system/tenantPackage/index.vue | 138 ++ src/views/system/user/DeptTree.vue | 63 + src/views/system/user/UserAssignRoleForm.vue | 96 + src/views/system/user/UserForm.vue | 218 ++ src/views/system/user/UserImportForm.vue | 135 ++ src/views/system/user/index.vue | 260 +++ stylelint.config.js | 233 ++ tsconfig.json | 45 + types/components.d.ts | 8 + types/custom-types.d.ts | 27 + types/env.d.ts | 32 + types/global.d.ts | 50 + types/router.d.ts | 81 + uno.config.ts | 105 + vite.config.ts | 81 + 870 files changed, 85291 insertions(+) create mode 100644 .editorconfig create mode 100644 .env create mode 100644 .env.development create mode 100644 .env.production create mode 100644 .env.test create mode 100644 .eslintignore create mode 100644 .eslintrc-auto-import.json create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 .prettierignore create mode 100644 .stylelintignore create mode 100644 LICENSE create mode 100644 build/vite/index.ts create mode 100644 build/vite/optimize.ts create mode 100644 index.html create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 prettier.config.js create mode 100644 public/favicon.ico create mode 100644 public/home.png create mode 100644 public/logo.gif create mode 100644 src/App.vue create mode 100644 src/api/bpm/activity/index.ts create mode 100644 src/api/bpm/definition/index.ts create mode 100644 src/api/bpm/form/index.ts create mode 100644 src/api/bpm/leave/index.ts create mode 100644 src/api/bpm/model/index.ts create mode 100644 src/api/bpm/processInstance/index.ts create mode 100644 src/api/bpm/task/index.ts create mode 100644 src/api/bpm/taskAssignRule/index.ts create mode 100644 src/api/bpm/userGroup/index.ts create mode 100644 src/api/home/index.ts create mode 100644 src/api/infra/apiAccessLog/index.ts create mode 100644 src/api/infra/apiErrorLog/index.ts create mode 100644 src/api/infra/codegen/index.ts create mode 100644 src/api/infra/config/index.ts create mode 100644 src/api/infra/dataSourceConfig/index.ts create mode 100644 src/api/infra/dbDoc/index.ts create mode 100644 src/api/infra/file/index.ts create mode 100644 src/api/infra/fileConfig/index.ts create mode 100644 src/api/infra/job/index.ts create mode 100644 src/api/infra/jobLog/index.ts create mode 100644 src/api/infra/redis/index.ts create mode 100644 src/api/infra/redis/types.ts create mode 100644 src/api/login/index.ts create mode 100644 src/api/login/oauth2/index.ts create mode 100644 src/api/login/types.ts create mode 100644 src/api/mes/index.ts create mode 100644 src/api/redis/index.ts create mode 100644 src/api/scp/index.ts create mode 100644 src/api/system/area/index.ts create mode 100644 src/api/system/dept/index.ts create mode 100644 src/api/system/dict/dict.data.ts create mode 100644 src/api/system/dict/dict.type.ts create mode 100644 src/api/system/errorCode/index.ts create mode 100644 src/api/system/loginLog/index.ts create mode 100644 src/api/system/mail/account/index.ts create mode 100644 src/api/system/mail/log/index.ts create mode 100644 src/api/system/mail/template/index.ts create mode 100644 src/api/system/menu/index.ts create mode 100644 src/api/system/notice/index.ts create mode 100644 src/api/system/notify/message/index.ts create mode 100644 src/api/system/notify/template/index.ts create mode 100644 src/api/system/oauth2/client.ts create mode 100644 src/api/system/oauth2/token.ts create mode 100644 src/api/system/operatelog/index.ts create mode 100644 src/api/system/permission/index.ts create mode 100644 src/api/system/post/index.ts create mode 100644 src/api/system/role/index.ts create mode 100644 src/api/system/sensitiveWord/index.ts create mode 100644 src/api/system/serialNumber/index.ts create mode 100644 src/api/system/sms/smsChannel/index.ts create mode 100644 src/api/system/sms/smsLog/index.ts create mode 100644 src/api/system/sms/smsTemplate/index.ts create mode 100644 src/api/system/sysconfig/index.ts create mode 100644 src/api/system/tenant/index.ts create mode 100644 src/api/system/tenantPackage/index.ts create mode 100644 src/api/system/user/index.ts create mode 100644 src/api/system/user/profile.ts create mode 100644 src/api/system/user/socialUser.ts create mode 100644 src/api/wms/accountcalendar/index.ts create mode 100644 src/api/wms/areabasic/index.ts create mode 100644 src/api/wms/backflushRecordDetailb/index.ts create mode 100644 src/api/wms/backflushRequestDetailb/index.ts create mode 100644 src/api/wms/balance/index.ts create mode 100644 src/api/wms/barbasic/index.ts create mode 100644 src/api/wms/barcode/index.ts create mode 100644 src/api/wms/bom/index.ts create mode 100644 src/api/wms/bomDismantle/index.ts create mode 100644 src/api/wms/businesstype/index.ts create mode 100644 src/api/wms/carrier/index.ts create mode 100644 src/api/wms/condition/index.ts create mode 100644 src/api/wms/configuration/index.ts create mode 100644 src/api/wms/configurationsetting/index.ts create mode 100644 src/api/wms/consumeRecordDetailb/index.ts create mode 100644 src/api/wms/consumereRequestDetailb/index.ts create mode 100644 src/api/wms/containerBindRecordDetail/index.ts create mode 100644 src/api/wms/containerBindRecordMain/index.ts create mode 100644 src/api/wms/containerDetail/index.ts create mode 100644 src/api/wms/containerInitRecordDetail/index.ts create mode 100644 src/api/wms/containerInitRecordMain/index.ts create mode 100644 src/api/wms/containerMain/index.ts create mode 100644 src/api/wms/containerRepairRecordDetail/index.ts create mode 100644 src/api/wms/containerRepairRecordMain/index.ts create mode 100644 src/api/wms/containerUnbindRecordDetail/index.ts create mode 100644 src/api/wms/containerUnbindRecordMain/index.ts create mode 100644 src/api/wms/countJobDetail/index.ts create mode 100644 src/api/wms/countJobMain/index.ts create mode 100644 src/api/wms/countPlanDetail/index.ts create mode 100644 src/api/wms/countPlanMain/index.ts create mode 100644 src/api/wms/countRecordDetail/index.ts create mode 100644 src/api/wms/countRecordMain/index.ts create mode 100644 src/api/wms/countRequestDetail/index.ts create mode 100644 src/api/wms/countRequestMain/index.ts create mode 100644 src/api/wms/countadjustRecordDetail/index.ts create mode 100644 src/api/wms/countadjustRecordMain/index.ts create mode 100644 src/api/wms/countadjustRequestDetail/index.ts create mode 100644 src/api/wms/countadjustRequestMain/index.ts create mode 100644 src/api/wms/currencyexchange/index.ts create mode 100644 src/api/wms/customer/index.ts create mode 100644 src/api/wms/customerdock/index.ts create mode 100644 src/api/wms/customeritem/index.ts create mode 100644 src/api/wms/customerreceiptRecordDetail/index.ts create mode 100644 src/api/wms/customerreceiptRecordMain/index.ts create mode 100644 src/api/wms/customerreceiptRequestDetail/index.ts create mode 100644 src/api/wms/customerreceiptRequestMain/index.ts create mode 100644 src/api/wms/customerreturnJobDetail/index.ts create mode 100644 src/api/wms/customerreturnJobMain/index.ts create mode 100644 src/api/wms/customerreturnRecordDetail/index.ts create mode 100644 src/api/wms/customerreturnRecordMain/index.ts create mode 100644 src/api/wms/customerreturnRequestDetail/index.ts create mode 100644 src/api/wms/customerreturnRequestMain/index.ts create mode 100644 src/api/wms/customersettleRecordDetail/index.ts create mode 100644 src/api/wms/customersettleRecordMain/index.ts create mode 100644 src/api/wms/customersettleRequestDetail/index.ts create mode 100644 src/api/wms/customersettleRequestMain/index.ts create mode 100644 src/api/wms/deliverJobDetail/index.ts create mode 100644 src/api/wms/deliverJobMain/index.ts create mode 100644 src/api/wms/deliverPlanDetail/index.ts create mode 100644 src/api/wms/deliverPlanMain/index.ts create mode 100644 src/api/wms/deliverRecordDetail/index.ts create mode 100644 src/api/wms/deliverRecordMain/index.ts create mode 100644 src/api/wms/deliverRequestDetail/index.ts create mode 100644 src/api/wms/deliverRequestMain/index.ts create mode 100644 src/api/wms/demandforecastingDetail/index.ts create mode 100644 src/api/wms/demandforecastingMain/index.ts create mode 100644 src/api/wms/detail/index.ts create mode 100644 src/api/wms/dismantleRecordDetailb/index.ts create mode 100644 src/api/wms/dismantleRequestDetailb/index.ts create mode 100644 src/api/wms/dock/index.ts create mode 100644 src/api/wms/documentsetting/index.ts create mode 100644 src/api/wms/enterprise/index.ts create mode 100644 src/api/wms/expectin/index.ts create mode 100644 src/api/wms/expectout/index.ts create mode 100644 src/api/wms/file/index.ts create mode 100644 src/api/wms/index.ts create mode 100644 src/api/wms/inspectJobDetail/index.ts create mode 100644 src/api/wms/inspectJobMain/index.ts create mode 100644 src/api/wms/inspectRecordDetail/index.ts create mode 100644 src/api/wms/inspectRecordMain/index.ts create mode 100644 src/api/wms/inspectRequestDetail/index.ts create mode 100644 src/api/wms/inspectRequestMain/index.ts create mode 100644 src/api/wms/inventorychangeRecordDetail/index.ts create mode 100644 src/api/wms/inventorychangeRecordMain/index.ts create mode 100644 src/api/wms/inventorychangeRequestDetail/index.ts create mode 100644 src/api/wms/inventorychangeRequestMain/index.ts create mode 100644 src/api/wms/inventoryinitRecordDetail/index.ts create mode 100644 src/api/wms/inventoryinitRecordMain/index.ts create mode 100644 src/api/wms/inventoryinitRequestDetail/index.ts create mode 100644 src/api/wms/inventoryinitRequestMain/index.ts create mode 100644 src/api/wms/inventorymoveJobDetail/index.ts create mode 100644 src/api/wms/inventorymoveJobMain/index.ts create mode 100644 src/api/wms/inventorymoveRecordDetail/index.ts create mode 100644 src/api/wms/inventorymoveRecordMain/index.ts create mode 100644 src/api/wms/inventorymoveRequestDetail/index.ts create mode 100644 src/api/wms/inventorymoveRequestMain/index.ts create mode 100644 src/api/wms/issueJobDetail/index.ts create mode 100644 src/api/wms/issueJobMain/index.ts create mode 100644 src/api/wms/issueRecordDetail/index.ts create mode 100644 src/api/wms/issueRecordMain/index.ts create mode 100644 src/api/wms/issueRequestDetail/index.ts create mode 100644 src/api/wms/issueRequestMain/index.ts create mode 100644 src/api/wms/itembasic/index.ts create mode 100644 src/api/wms/itempackaging/index.ts create mode 100644 src/api/wms/jobsetting/index.ts create mode 100644 src/api/wms/labeltype/index.ts create mode 100644 src/api/wms/location/index.ts create mode 100644 src/api/wms/locationcapacity/index.ts create mode 100644 src/api/wms/locationgroup/index.ts create mode 100644 src/api/wms/offlinesettlementRecordDetail/index.ts create mode 100644 src/api/wms/offlinesettlementRecordMain/index.ts create mode 100644 src/api/wms/offlinesettlementRequestDetail/index.ts create mode 100644 src/api/wms/offlinesettlementRequestMain/index.ts create mode 100644 src/api/wms/onlinesettlementRecordDetail/index.ts create mode 100644 src/api/wms/onlinesettlementRecordMain/index.ts create mode 100644 src/api/wms/onlinesettlementRequestDetail/index.ts create mode 100644 src/api/wms/onlinesettlementRequestMain/index.ts create mode 100644 src/api/wms/owner/index.ts create mode 100644 src/api/wms/package/index.ts create mode 100644 src/api/wms/packagemergeDetail/index.ts create mode 100644 src/api/wms/packagemergeMain/index.ts create mode 100644 src/api/wms/packageoverDetail/index.ts create mode 100644 src/api/wms/packageoverMain/index.ts create mode 100644 src/api/wms/packagesplitDetail/index.ts create mode 100644 src/api/wms/packagesplitMain/index.ts create mode 100644 src/api/wms/paramsetting/index.ts create mode 100644 src/api/wms/pickJobDetail/index.ts create mode 100644 src/api/wms/pickJobMain/index.ts create mode 100644 src/api/wms/pickRecordDetail/index.ts create mode 100644 src/api/wms/pickRecordMain/index.ts create mode 100644 src/api/wms/pickRequestDetail/index.ts create mode 100644 src/api/wms/pickRequestMain/index.ts create mode 100644 src/api/wms/preparetoissueDetail/index.ts create mode 100644 src/api/wms/preparetoissueMain/index.ts create mode 100644 src/api/wms/process/index.ts create mode 100644 src/api/wms/productdismantleJobDetail/index.ts create mode 100644 src/api/wms/productdismantleJobMain/index.ts create mode 100644 src/api/wms/productdismantleRecordDetaila/index.ts create mode 100644 src/api/wms/productdismantleRecordMain/index.ts create mode 100644 src/api/wms/productdismantleRequestDetaila/index.ts create mode 100644 src/api/wms/productdismantleRequestMain/index.ts create mode 100644 src/api/wms/productionDetail/index.ts create mode 100644 src/api/wms/productionMain/index.ts create mode 100644 src/api/wms/productionline/index.ts create mode 100644 src/api/wms/productionlineitem/index.ts create mode 100644 src/api/wms/productionreceiptJobDetail/index.ts create mode 100644 src/api/wms/productionreceiptJobMain/index.ts create mode 100644 src/api/wms/productionreceiptRecordDetail/index.ts create mode 100644 src/api/wms/productionreceiptRecordMain/index.ts create mode 100644 src/api/wms/productionreturnJobDetail/index.ts create mode 100644 src/api/wms/productionreturnJobMain/index.ts create mode 100644 src/api/wms/productionreturnRecordDetail/index.ts create mode 100644 src/api/wms/productionreturnRecordMain/index.ts create mode 100644 src/api/wms/productionreturnRequestDetail/index.ts create mode 100644 src/api/wms/productionreturnRequestDetailNo/index.ts create mode 100644 src/api/wms/productionreturnRequestMain/index.ts create mode 100644 src/api/wms/productionreturnRequestMainNo/index.ts create mode 100644 src/api/wms/productputawayJobDetail/index.ts create mode 100644 src/api/wms/productputawayJobMain/index.ts create mode 100644 src/api/wms/productputawayRecordDetail/index.ts create mode 100644 src/api/wms/productputawayRecordMain/index.ts create mode 100644 src/api/wms/productputawayRequestDetail/index.ts create mode 100644 src/api/wms/productputawayRequestMain/index.ts create mode 100644 src/api/wms/productreceiptJobDetail/index.ts create mode 100644 src/api/wms/productreceiptJobMain/index.ts create mode 100644 src/api/wms/productreceiptRecordDetail/index.ts create mode 100644 src/api/wms/productreceiptRecordMain/index.ts create mode 100644 src/api/wms/productreceiptRequestDetail/index.ts create mode 100644 src/api/wms/productreceiptRequestMain/index.ts create mode 100644 src/api/wms/productrepairRecordDetail/index.ts create mode 100644 src/api/wms/productrepairRecordMain/index.ts create mode 100644 src/api/wms/productrepairRequestDetaila/index.ts create mode 100644 src/api/wms/productrepairRequestMain/index.ts create mode 100644 src/api/wms/productscrapJobDetail/index.ts create mode 100644 src/api/wms/productscrapJobMain/index.ts create mode 100644 src/api/wms/productscrapRecordDetail/index.ts create mode 100644 src/api/wms/productscrapRecordMain/index.ts create mode 100644 src/api/wms/productscrapRequestDetail/index.ts create mode 100644 src/api/wms/productscrapRequestMain/index.ts create mode 100644 src/api/wms/project/index.ts create mode 100644 src/api/wms/purchaseDetail/index.ts create mode 100644 src/api/wms/purchaseMain/index.ts create mode 100644 src/api/wms/purchasePlanDetail/index.ts create mode 100644 src/api/wms/purchasePlanMain/index.ts create mode 100644 src/api/wms/purchaseclaimRecordDetail/index.ts create mode 100644 src/api/wms/purchaseclaimRecordMain/index.ts create mode 100644 src/api/wms/purchaseclaimRequestDetail/index.ts create mode 100644 src/api/wms/purchaseclaimRequestMain/index.ts create mode 100644 src/api/wms/purchaseprice/index.ts create mode 100644 src/api/wms/purchasereceiptJobDetail/index.ts create mode 100644 src/api/wms/purchasereceiptJobMain/index.ts create mode 100644 src/api/wms/purchasereceiptRecordDetail/index.ts create mode 100644 src/api/wms/purchasereceiptRecordMain/index.ts create mode 100644 src/api/wms/purchasereceiptRequestDetail/index.ts create mode 100644 src/api/wms/purchasereceiptRequestMain/index.ts create mode 100644 src/api/wms/purchasereturnJobDetail/index.ts create mode 100644 src/api/wms/purchasereturnJobMain/index.ts create mode 100644 src/api/wms/purchasereturnRecordDetail/index.ts create mode 100644 src/api/wms/purchasereturnRecordMain/index.ts create mode 100644 src/api/wms/purchasereturnRequestDetail/index.ts create mode 100644 src/api/wms/purchasereturnRequestMain/index.ts create mode 100644 src/api/wms/putawayJobDetail/index.ts create mode 100644 src/api/wms/putawayJobMain/index.ts create mode 100644 src/api/wms/putawayRecordDetail/index.ts create mode 100644 src/api/wms/putawayRecordMain/index.ts create mode 100644 src/api/wms/putawayRequestDetail/index.ts create mode 100644 src/api/wms/putawayRequestMain/index.ts create mode 100644 src/api/wms/recordsetting/index.ts create mode 100644 src/api/wms/remark/index.ts create mode 100644 src/api/wms/repleinshJobDetail/index.ts create mode 100644 src/api/wms/repleinshJobMain/index.ts create mode 100644 src/api/wms/repleinshRecordDetail/index.ts create mode 100644 src/api/wms/repleinshRecordMain/index.ts create mode 100644 src/api/wms/repleinshRequestDetail/index.ts create mode 100644 src/api/wms/repleinshRequestMain/index.ts create mode 100644 src/api/wms/requestsetting/index.ts create mode 100644 src/api/wms/rule/index.ts create mode 100644 src/api/wms/saleDetail/index.ts create mode 100644 src/api/wms/saleMain/index.ts create mode 100644 src/api/wms/saleprice/index.ts create mode 100644 src/api/wms/scrapJobDetail/index.ts create mode 100644 src/api/wms/scrapJobMain/index.ts create mode 100644 src/api/wms/scrapRecordDetail/index.ts create mode 100644 src/api/wms/scrapRecordMain/index.ts create mode 100644 src/api/wms/scrapRequestDetail/index.ts create mode 100644 src/api/wms/scrapRequestMain/index.ts create mode 100644 src/api/wms/shift/index.ts create mode 100644 src/api/wms/stdcostprice/index.ts create mode 100644 src/api/wms/strategy/index.ts create mode 100644 src/api/wms/supplier/index.ts create mode 100644 src/api/wms/supplierUser/index.ts create mode 100644 src/api/wms/supplierdeliverRecordDetail/index.ts create mode 100644 src/api/wms/supplierdeliverRecordMain/index.ts create mode 100644 src/api/wms/supplierdeliverRequestDetail/index.ts create mode 100644 src/api/wms/supplierdeliverRequestMain/index.ts create mode 100644 src/api/wms/supplierinvoiceRecordDeatil/index.ts create mode 100644 src/api/wms/supplierinvoiceRecordMain/index.ts create mode 100644 src/api/wms/supplierinvoiceRequestDetail/index.ts create mode 100644 src/api/wms/supplierinvoiceRequestMain/index.ts create mode 100644 src/api/wms/supplieritem/index.ts create mode 100644 src/api/wms/switch/index.ts create mode 100644 src/api/wms/systemcalendar/index.ts create mode 100644 src/api/wms/team/index.ts create mode 100644 src/api/wms/transaction/index.ts create mode 100644 src/api/wms/transactiontype/index.ts create mode 100644 src/api/wms/transferissueJobDetail/index.ts create mode 100644 src/api/wms/transferissueJobMain/index.ts create mode 100644 src/api/wms/transferissueRecordDetail/index.ts create mode 100644 src/api/wms/transferissueRecordMain/index.ts create mode 100644 src/api/wms/transferissueRequestDetail/index.ts create mode 100644 src/api/wms/transferissueRequestMain/index.ts create mode 100644 src/api/wms/transferlog/index.ts create mode 100644 src/api/wms/transferreceiptJobDetail/index.ts create mode 100644 src/api/wms/transferreceiptJobMain/index.ts create mode 100644 src/api/wms/transferreceiptRecordDetail/index.ts create mode 100644 src/api/wms/transferreceiptRecordMain/index.ts create mode 100644 src/api/wms/transferreceiptRequestDetail/index.ts create mode 100644 src/api/wms/transferreceiptRequestMain/index.ts create mode 100644 src/api/wms/unplannedissueJobDetail/index.ts create mode 100644 src/api/wms/unplannedissueJobMain/index.ts create mode 100644 src/api/wms/unplannedissueRecordDetail/index.ts create mode 100644 src/api/wms/unplannedissueRecordMain/index.ts create mode 100644 src/api/wms/unplannedissueRequestDetail/index.ts create mode 100644 src/api/wms/unplannedissueRequestMain/index.ts create mode 100644 src/api/wms/unplannedreceiptJobDetail/index.ts create mode 100644 src/api/wms/unplannedreceiptJobMain/index.ts create mode 100644 src/api/wms/unplannedreceiptRecordDetail/index.ts create mode 100644 src/api/wms/unplannedreceiptRecordMain/index.ts create mode 100644 src/api/wms/unplannedreceiptRequestDetail/index.ts create mode 100644 src/api/wms/unplannedreceiptRequestMain/index.ts create mode 100644 src/api/wms/warehouse/index.ts create mode 100644 src/api/wms/workDetail/index.ts create mode 100644 src/api/wms/workMain/index.ts create mode 100644 src/api/wms/workshop/index.ts create mode 100644 src/api/wms/workstation/index.ts create mode 100644 src/assets/imgs/Eyes-closed.png create mode 100644 src/assets/imgs/avatar.gif create mode 100644 src/assets/imgs/avatar.jpg create mode 100644 src/assets/imgs/code.png create mode 100644 src/assets/imgs/eye.png create mode 100644 src/assets/imgs/icon1.png create mode 100644 src/assets/imgs/icon2.png create mode 100644 src/assets/imgs/icon3.png create mode 100644 src/assets/imgs/icon4.png create mode 100644 src/assets/imgs/icon5.png create mode 100644 src/assets/imgs/icon6.png create mode 100644 src/assets/imgs/logo.png create mode 100644 src/assets/imgs/logo1.png create mode 100644 src/assets/imgs/logo_w.png create mode 100644 src/assets/imgs/profile.jpg create mode 100644 src/assets/imgs/wechat.png create mode 100644 src/assets/svgs/403.svg create mode 100644 src/assets/svgs/404.svg create mode 100644 src/assets/svgs/500.svg create mode 100644 src/assets/svgs/icon.svg create mode 100644 src/assets/svgs/login-bg.svg create mode 100644 src/assets/svgs/login-box-bg.svg create mode 100644 src/assets/svgs/member_balance.svg create mode 100644 src/assets/svgs/member_expenditure_balance.svg create mode 100644 src/assets/svgs/member_level.svg create mode 100644 src/assets/svgs/member_point.svg create mode 100644 src/assets/svgs/member_recharge_balance.svg create mode 100644 src/assets/svgs/message.svg create mode 100644 src/assets/svgs/money.svg create mode 100644 src/assets/svgs/pay/icon/alipay_app.svg create mode 100644 src/assets/svgs/pay/icon/alipay_bar.svg create mode 100644 src/assets/svgs/pay/icon/alipay_pc.svg create mode 100644 src/assets/svgs/pay/icon/alipay_qr.svg create mode 100644 src/assets/svgs/pay/icon/alipay_wap.svg create mode 100644 src/assets/svgs/pay/icon/mock.svg create mode 100644 src/assets/svgs/pay/icon/wx_app.svg create mode 100644 src/assets/svgs/pay/icon/wx_bar.svg create mode 100644 src/assets/svgs/pay/icon/wx_lite.svg create mode 100644 src/assets/svgs/pay/icon/wx_native.svg create mode 100644 src/assets/svgs/pay/icon/wx_pub.svg create mode 100644 src/assets/svgs/peoples.svg create mode 100644 src/assets/svgs/shopping.svg create mode 100644 src/components/Annex/index.ts create mode 100644 src/components/Annex/src/Annex.vue create mode 100644 src/components/Backtop/index.ts create mode 100644 src/components/Backtop/src/Backtop.vue create mode 100644 src/components/BasicForm/index.ts create mode 100644 src/components/BasicForm/src/BasicForm.vue create mode 100644 src/components/Card/index.ts create mode 100644 src/components/Card/src/CardTitle.vue create mode 100644 src/components/ChangeRecord/index.ts create mode 100644 src/components/ChangeRecord/src/ChangeRecord.vue create mode 100644 src/components/ConfigGlobal/index.ts create mode 100644 src/components/ConfigGlobal/src/ConfigGlobal.vue create mode 100644 src/components/ContentDetailWrap/index.ts create mode 100644 src/components/ContentDetailWrap/src/ContentDetailWrap.vue create mode 100644 src/components/ContentWrap/index.ts create mode 100644 src/components/ContentWrap/src/ContentWrap.vue create mode 100644 src/components/CountTo/index.ts create mode 100644 src/components/CountTo/src/CountTo.vue create mode 100644 src/components/Crontab/index.ts create mode 100644 src/components/Crontab/src/Crontab.vue create mode 100644 src/components/Cropper/index.ts create mode 100644 src/components/Cropper/src/CopperModal.vue create mode 100644 src/components/Cropper/src/Cropper.vue create mode 100644 src/components/Cropper/src/CropperAvatar.vue create mode 100644 src/components/Cropper/src/types.ts create mode 100644 src/components/Descriptions/index.ts create mode 100644 src/components/Descriptions/src/Descriptions.vue create mode 100644 src/components/Descriptions/src/DescriptionsItemLabel.vue create mode 100644 src/components/Detail/index.ts create mode 100644 src/components/Detail/src/Detail.vue create mode 100644 src/components/DetailTable/index.ts create mode 100644 src/components/DetailTable/src/DetailTable.vue create mode 100644 src/components/Dialog/index.ts create mode 100644 src/components/Dialog/src/Dialog.vue create mode 100644 src/components/DictTag/index.ts create mode 100644 src/components/DictTag/src/DictTag.vue create mode 100644 src/components/DocAlert/index.vue create mode 100644 src/components/Echart/index.ts create mode 100644 src/components/Echart/src/Echart.vue create mode 100644 src/components/Editor/index.ts create mode 100644 src/components/Editor/src/Editor.vue create mode 100644 src/components/Error/index.ts create mode 100644 src/components/Error/src/Error.vue create mode 100644 src/components/Form/index.ts create mode 100644 src/components/Form/src/Form.vue create mode 100644 src/components/Form/src/componentMap.ts create mode 100644 src/components/Form/src/components/useRenderCheckbox.tsx create mode 100644 src/components/Form/src/components/useRenderRadio.tsx create mode 100644 src/components/Form/src/components/useRenderSelect.tsx create mode 100644 src/components/Form/src/helper.ts create mode 100644 src/components/Form/src/types.ts create mode 100644 src/components/HeaderSearch/index.vue create mode 100644 src/components/Highlight/index.ts create mode 100644 src/components/Highlight/src/Highlight.vue create mode 100644 src/components/Icon/index.ts create mode 100644 src/components/Icon/src/Icon.vue create mode 100644 src/components/Icon/src/IconSelect.vue create mode 100644 src/components/Icon/src/data.ts create mode 100644 src/components/ImageViewer/index.ts create mode 100644 src/components/ImageViewer/src/ImageViewer.vue create mode 100644 src/components/ImageViewer/src/types.ts create mode 100644 src/components/ImportForm/index.ts create mode 100644 src/components/ImportForm/src/ImportForm.vue create mode 100644 src/components/Infotip/index.ts create mode 100644 src/components/Infotip/src/Infotip.vue create mode 100644 src/components/InputPassword/index.ts create mode 100644 src/components/InputPassword/src/InputPassword.vue create mode 100644 src/components/Pagination/index.vue create mode 100644 src/components/Qrcode/index.ts create mode 100644 src/components/Qrcode/src/Qrcode.vue create mode 100644 src/components/Remarks/index.ts create mode 100644 src/components/Remarks/src/Remarks.vue create mode 100644 src/components/RouterSearch/index.vue create mode 100644 src/components/Search/index.ts create mode 100644 src/components/Search/src/Search.vue create mode 100644 src/components/SearchHigh/index.ts create mode 100644 src/components/SearchHigh/src/SearchHigh.vue create mode 100644 src/components/SearchTable/index.ts create mode 100644 src/components/SearchTable/src/SearchTable.vue create mode 100644 src/components/SearchTableCount/index.ts create mode 100644 src/components/SearchTableCount/src/SearchTableCount.vue create mode 100644 src/components/Sticky/index.ts create mode 100644 src/components/Sticky/src/Sticky.vue create mode 100644 src/components/Table/index.ts create mode 100644 src/components/Table/src/Table.vue create mode 100644 src/components/Table/src/helper.ts create mode 100644 src/components/Table/src/types.ts create mode 100644 src/components/TableForm/index.ts create mode 100644 src/components/TableForm/src/TableForm.vue create mode 100644 src/components/TableFormCountPlan/index.ts create mode 100644 src/components/TableFormCountPlan/src/TableFormCountPlan.vue create mode 100644 src/components/TableHead/index.ts create mode 100644 src/components/TableHead/src/TableHead.vue create mode 100644 src/components/Tabs/index.ts create mode 100644 src/components/Tabs/src/Tabs.vue create mode 100644 src/components/Tooltip/index.ts create mode 100644 src/components/Tooltip/src/Tooltip.vue create mode 100644 src/components/UploadFile/index.ts create mode 100644 src/components/UploadFile/src/Preview.vue create mode 100644 src/components/UploadFile/src/UploadFile.vue create mode 100644 src/components/UploadFile/src/UploadImg.vue create mode 100644 src/components/UploadFile/src/UploadImgs.vue create mode 100644 src/components/Verifition/index.ts create mode 100644 src/components/Verifition/src/Verify.vue create mode 100644 src/components/Verifition/src/Verify/VerifyPoints.vue create mode 100644 src/components/Verifition/src/Verify/VerifySlide.vue create mode 100644 src/components/Verifition/src/Verify/index.ts create mode 100644 src/components/Verifition/src/utils/ase.ts create mode 100644 src/components/Verifition/src/utils/util.ts create mode 100644 src/components/XButton/index.ts create mode 100644 src/components/XButton/src/ButtonBase.vue create mode 100644 src/components/XButton/src/XButton.vue create mode 100644 src/components/XButton/src/XTextButton.vue create mode 100644 src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue create mode 100644 src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue create mode 100644 src/components/bpmnProcessDesigner/package/designer/index.ts create mode 100644 src/components/bpmnProcessDesigner/package/designer/index2.ts create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/contentPadProvider.js create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/index.js create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/defaultEmpty.js create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/activitiDescriptor.json create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/camundaDescriptor.json create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/activitiExtension.js create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/index.js create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/extension.js create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/index.js create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/flowableExtension.js create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/index.js create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/palette/CustomPalette.js create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/palette/index.js create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/palette/paletteProvider.js create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/translate/customTranslate.js create mode 100644 src/components/bpmnProcessDesigner/package/designer/plugins/translate/zh.js create mode 100644 src/components/bpmnProcessDesigner/package/index.ts create mode 100644 src/components/bpmnProcessDesigner/package/palette/ProcessPalette.vue create mode 100644 src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue create mode 100644 src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue create mode 100644 src/components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue create mode 100644 src/components/bpmnProcessDesigner/package/penal/form/ElementForm.vue create mode 100644 src/components/bpmnProcessDesigner/package/penal/index.js create mode 100644 src/components/bpmnProcessDesigner/package/penal/listeners/ElementListeners.vue create mode 100644 src/components/bpmnProcessDesigner/package/penal/listeners/UserTaskListeners.vue create mode 100644 src/components/bpmnProcessDesigner/package/penal/listeners/template.js create mode 100644 src/components/bpmnProcessDesigner/package/penal/listeners/utilSelf.ts create mode 100644 src/components/bpmnProcessDesigner/package/penal/multi-instance/ElementMultiInstance.vue create mode 100644 src/components/bpmnProcessDesigner/package/penal/other/ElementOtherConfig.vue create mode 100644 src/components/bpmnProcessDesigner/package/penal/properties/ElementProperties.vue create mode 100644 src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue create mode 100644 src/components/bpmnProcessDesigner/package/penal/task/ElementTask.vue create mode 100644 src/components/bpmnProcessDesigner/package/penal/task/task-components/ReceiveTask.vue create mode 100644 src/components/bpmnProcessDesigner/package/penal/task/task-components/ScriptTask.vue create mode 100644 src/components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue create mode 100644 src/components/bpmnProcessDesigner/package/theme/element-variables.scss create mode 100644 src/components/bpmnProcessDesigner/package/theme/index.scss create mode 100644 src/components/bpmnProcessDesigner/package/theme/process-designer.scss create mode 100644 src/components/bpmnProcessDesigner/package/theme/process-panel.scss create mode 100644 src/components/bpmnProcessDesigner/package/utils.ts create mode 100644 src/components/bpmnProcessDesigner/src/highlight/index.js create mode 100644 src/components/bpmnProcessDesigner/src/modules/custom-renderer/CustomRenderer.js create mode 100644 src/components/bpmnProcessDesigner/src/modules/custom-renderer/index.js create mode 100644 src/components/bpmnProcessDesigner/src/modules/rules/CustomRules.js create mode 100644 src/components/bpmnProcessDesigner/src/modules/rules/index.js create mode 100644 src/components/bpmnProcessDesigner/src/translations.ts create mode 100644 src/components/bpmnProcessDesigner/src/utils/directive/clickOutSide.js create mode 100644 src/components/bpmnProcessDesigner/src/utils/index.js create mode 100644 src/components/bpmnProcessDesigner/src/utils/xml2json.js create mode 100644 src/components/iFrame/index.ts create mode 100644 src/components/iFrame/src/IFrame.vue create mode 100644 src/components/index.ts create mode 100644 src/components/rowDrop/index.vue create mode 100644 src/config/axios/config.ts create mode 100644 src/config/axios/errorCode.ts create mode 100644 src/config/axios/index.ts create mode 100644 src/config/axios/service.ts create mode 100644 src/directives/index.ts create mode 100644 src/directives/permission/hasPermi.ts create mode 100644 src/directives/permission/hasRole.ts create mode 100644 src/hooks/event/useScrollTo.ts create mode 100644 src/hooks/web/useCache.ts create mode 100644 src/hooks/web/useConfigGlobal.ts create mode 100644 src/hooks/web/useCrudSchemas.ts create mode 100644 src/hooks/web/useDesign.ts create mode 100644 src/hooks/web/useEmitt.ts create mode 100644 src/hooks/web/useForm.ts create mode 100644 src/hooks/web/useI18n.ts create mode 100644 src/hooks/web/useIcon.ts create mode 100644 src/hooks/web/useIntro.ts create mode 100644 src/hooks/web/useLocale.ts create mode 100644 src/hooks/web/useMessage.ts create mode 100644 src/hooks/web/useNProgress.ts create mode 100644 src/hooks/web/usePageLoading.ts create mode 100644 src/hooks/web/useTable.ts create mode 100644 src/hooks/web/useTimeAgo.ts create mode 100644 src/hooks/web/useTitle.ts create mode 100644 src/hooks/web/useValidator.ts create mode 100644 src/hooks/web/useWatermark.ts create mode 100644 src/layout/Layout.vue create mode 100644 src/layout/components/AppView.vue create mode 100644 src/layout/components/Breadcrumb/index.ts create mode 100644 src/layout/components/Breadcrumb/src/Breadcrumb.vue create mode 100644 src/layout/components/Breadcrumb/src/helper.ts create mode 100644 src/layout/components/Collapse/index.ts create mode 100644 src/layout/components/Collapse/src/Collapse.vue create mode 100644 src/layout/components/ContextMenu/index.ts create mode 100644 src/layout/components/ContextMenu/src/ContextMenu.vue create mode 100644 src/layout/components/Footer/index.ts create mode 100644 src/layout/components/Footer/src/Footer.vue create mode 100644 src/layout/components/LocaleDropdown/index.ts create mode 100644 src/layout/components/LocaleDropdown/src/LocaleDropdown.vue create mode 100644 src/layout/components/Logo/index.ts create mode 100644 src/layout/components/Logo/src/Logo.vue create mode 100644 src/layout/components/Menu/index.ts create mode 100644 src/layout/components/Menu/src/Menu.vue create mode 100644 src/layout/components/Menu/src/components/useRenderMenuItem.tsx create mode 100644 src/layout/components/Menu/src/components/useRenderMenuTitle.tsx create mode 100644 src/layout/components/Menu/src/helper.ts create mode 100644 src/layout/components/Message/index.ts create mode 100644 src/layout/components/Message/src/Message.vue create mode 100644 src/layout/components/Screenfull/index.ts create mode 100644 src/layout/components/Screenfull/src/Screenfull.vue create mode 100644 src/layout/components/Setting/index.ts create mode 100644 src/layout/components/Setting/src/Setting.vue create mode 100644 src/layout/components/Setting/src/components/ColorRadioPicker.vue create mode 100644 src/layout/components/Setting/src/components/InterfaceDisplay.vue create mode 100644 src/layout/components/Setting/src/components/LayoutRadioPicker.vue create mode 100644 src/layout/components/SizeDropdown/index.ts create mode 100644 src/layout/components/SizeDropdown/src/SizeDropdown.vue create mode 100644 src/layout/components/TabMenu/index.ts create mode 100644 src/layout/components/TabMenu/src/TabMenu.vue create mode 100644 src/layout/components/TabMenu/src/helper.ts create mode 100644 src/layout/components/TagsView/index.ts create mode 100644 src/layout/components/TagsView/src/TagsView.vue create mode 100644 src/layout/components/TagsView/src/helper.ts create mode 100644 src/layout/components/ThemeSwitch/index.ts create mode 100644 src/layout/components/ThemeSwitch/src/ThemeSwitch.vue create mode 100644 src/layout/components/ToolHeader.vue create mode 100644 src/layout/components/UserInfo/index.ts create mode 100644 src/layout/components/UserInfo/src/UserInfo.vue create mode 100644 src/layout/components/useRenderLayout.tsx create mode 100644 src/locales/en-US.ts create mode 100644 src/locales/zh-CN.ts create mode 100644 src/main.ts create mode 100644 src/permission.ts create mode 100644 src/plugins/animate.css/index.ts create mode 100644 src/plugins/echarts/index.ts create mode 100644 src/plugins/elementPlus/index.ts create mode 100644 src/plugins/formCreate/index.ts create mode 100644 src/plugins/svgIcon/index.ts create mode 100644 src/plugins/tongji/index.ts create mode 100644 src/plugins/unocss/index.ts create mode 100644 src/plugins/vueI18n/helper.ts create mode 100644 src/plugins/vueI18n/index.ts create mode 100644 src/router/index.ts create mode 100644 src/router/modules/remaining.ts create mode 100644 src/store/index.ts create mode 100644 src/store/modules/app.ts create mode 100644 src/store/modules/dict.ts create mode 100644 src/store/modules/locale.ts create mode 100644 src/store/modules/permission.ts create mode 100644 src/store/modules/tagsView.ts create mode 100644 src/store/modules/user.ts create mode 100644 src/styles/global.module.scss create mode 100644 src/styles/index.scss create mode 100644 src/styles/theme.scss create mode 100644 src/styles/var.css create mode 100644 src/styles/variables.scss create mode 100644 src/types/components.d.ts create mode 100644 src/types/configGlobal.d.ts create mode 100644 src/types/contextMenu.d.ts create mode 100644 src/types/descriptions.d.ts create mode 100644 src/types/elementPlus.d.ts create mode 100644 src/types/form.d.ts create mode 100644 src/types/icon.d.ts create mode 100644 src/types/infoTip.d.ts create mode 100644 src/types/layout.d.ts create mode 100644 src/types/localeDropdown.d.ts create mode 100644 src/types/qrcode.d.ts create mode 100644 src/types/table.d.ts create mode 100644 src/types/tableForm.d.ts create mode 100644 src/types/theme.d.ts create mode 100644 src/utils/Logger.ts create mode 100644 src/utils/auth.ts create mode 100644 src/utils/color.ts create mode 100644 src/utils/constants.ts create mode 100644 src/utils/dict.ts create mode 100644 src/utils/disposition/defaultButtons.ts create mode 100644 src/utils/disposition/formFields.ts create mode 100644 src/utils/disposition/tableDetailsColumns.ts create mode 100644 src/utils/disposition/tableSummaryColumns.ts create mode 100644 src/utils/disposition/tabsList.ts create mode 100644 src/utils/domUtils.ts create mode 100644 src/utils/download.ts create mode 100644 src/utils/filt.ts create mode 100644 src/utils/formCreate.ts create mode 100644 src/utils/formRules.ts create mode 100644 src/utils/formatTime.ts create mode 100644 src/utils/formatter.ts create mode 100644 src/utils/index.ts create mode 100644 src/utils/is.ts create mode 100644 src/utils/jsencrypt.ts create mode 100644 src/utils/permission.ts create mode 100644 src/utils/propTypes.ts create mode 100644 src/utils/routerHelper.ts create mode 100644 src/utils/tree.ts create mode 100644 src/utils/tsxHelper.ts create mode 100644 src/utils/validator.ts create mode 100644 src/views/Home/Index copy.vue create mode 100644 src/views/Home/Index.vue create mode 100644 src/views/Home/Index2.vue create mode 100644 src/views/Home/components/material.vue create mode 100644 src/views/Home/components/produce.vue create mode 100644 src/views/Home/components/product.vue create mode 100644 src/views/Home/components/supplierIndex.vue create mode 100644 src/views/Home/echarts-data.ts create mode 100644 src/views/Home/types.ts create mode 100644 src/views/Login/Login.vue create mode 100644 src/views/Login/components/LoginForm.vue create mode 100644 src/views/Login/components/LoginFormTitle.vue create mode 100644 src/views/Login/components/MobileForm.vue create mode 100644 src/views/Login/components/QrCodeForm.vue create mode 100644 src/views/Login/components/RegisterForm.vue create mode 100644 src/views/Login/components/SSOLogin.vue create mode 100644 src/views/Login/components/index.ts create mode 100644 src/views/Login/components/useLogin.ts create mode 100644 src/views/Profile/Index.vue create mode 100644 src/views/Profile/components/BasicInfo.vue create mode 100644 src/views/Profile/components/ProfileUser.vue create mode 100644 src/views/Profile/components/ResetPwd.vue create mode 100644 src/views/Profile/components/UserAvatar.vue create mode 100644 src/views/Profile/components/UserSocial.vue create mode 100644 src/views/Profile/components/index.ts create mode 100644 src/views/Redirect/Redirect.vue create mode 100644 src/views/bpm/definition/index.vue create mode 100644 src/views/bpm/form/editor/index.vue create mode 100644 src/views/bpm/form/index.vue create mode 100644 src/views/bpm/group/UserGroupForm.vue create mode 100644 src/views/bpm/group/index.vue create mode 100644 src/views/bpm/model/ModelForm.vue create mode 100644 src/views/bpm/model/ModelImportForm.vue create mode 100644 src/views/bpm/model/editor/index.vue create mode 100644 src/views/bpm/model/index.vue create mode 100644 src/views/bpm/oa/leave/create.vue create mode 100644 src/views/bpm/oa/leave/detail.vue create mode 100644 src/views/bpm/oa/leave/index.vue create mode 100644 src/views/bpm/processInstance/create/index.vue create mode 100644 src/views/bpm/processInstance/detail/ProcessInstanceBpmnViewer.vue create mode 100644 src/views/bpm/processInstance/detail/ProcessInstanceTaskList.vue create mode 100644 src/views/bpm/processInstance/detail/TaskReturnDialogForm.vue create mode 100644 src/views/bpm/processInstance/detail/TaskUpdateAssigneeForm.vue create mode 100644 src/views/bpm/processInstance/detail/index.vue create mode 100644 src/views/bpm/processInstance/index.vue create mode 100644 src/views/bpm/task/done/TaskDetail.vue create mode 100644 src/views/bpm/task/done/index.vue create mode 100644 src/views/bpm/task/todo/index.vue create mode 100644 src/views/bpm/taskAssignRule/TaskAssignRuleForm.vue create mode 100644 src/views/bpm/taskAssignRule/index.vue create mode 100644 src/views/error/403.vue create mode 100644 src/views/error/404.vue create mode 100644 src/views/error/500.vue create mode 100644 src/views/infra/apiAccessLog/ApiAccessLogDetail.vue create mode 100644 src/views/infra/apiAccessLog/index.vue create mode 100644 src/views/infra/apiErrorLog/ApiErrorLogDetail.vue create mode 100644 src/views/infra/apiErrorLog/index.vue create mode 100644 src/views/infra/build/index.vue create mode 100644 src/views/infra/codegen/PreviewCode.vue create mode 100644 src/views/infra/codegen/components/BasicInfoForm.vue create mode 100644 src/views/infra/codegen/components/ColumInfoForm.vue create mode 100644 src/views/infra/codegen/components/GenerateInfoForm.vue create mode 100644 src/views/infra/codegen/components/index.ts create mode 100644 src/views/infra/codegen/editTable.vue create mode 100644 src/views/infra/codegen/importTable.vue create mode 100644 src/views/infra/codegen/index.vue create mode 100644 src/views/infra/config/ConfigForm.vue create mode 100644 src/views/infra/config/index.vue create mode 100644 src/views/infra/customInterface/index.vue create mode 100644 src/views/infra/dataSourceConfig/DataSourceConfigForm.vue create mode 100644 src/views/infra/dataSourceConfig/index.vue create mode 100644 src/views/infra/dbDoc/index.vue create mode 100644 src/views/infra/druid/index.vue create mode 100644 src/views/infra/file/FileForm.vue create mode 100644 src/views/infra/file/index.vue create mode 100644 src/views/infra/fileConfig/FileConfigForm.vue create mode 100644 src/views/infra/fileConfig/index.vue create mode 100644 src/views/infra/job/JobDetail.vue create mode 100644 src/views/infra/job/JobForm.vue create mode 100644 src/views/infra/job/index.vue create mode 100644 src/views/infra/job/logger/JobLogDetail.vue create mode 100644 src/views/infra/job/logger/index.vue create mode 100644 src/views/infra/redis/index.vue create mode 100644 src/views/infra/server/index.vue create mode 100644 src/views/infra/skywalking/index.vue create mode 100644 src/views/infra/swagger/index.vue create mode 100644 src/views/infra/testDemo/index.vue create mode 100644 src/views/infra/webSocket/index.vue create mode 100644 src/views/report/goview/index.vue create mode 100644 src/views/report/jmreport/index.vue create mode 100644 src/views/system/area/AreaForm.vue create mode 100644 src/views/system/area/index.vue create mode 100644 src/views/system/dept/DeptForm.vue create mode 100644 src/views/system/dept/index.vue create mode 100644 src/views/system/dict/DictTypeForm.vue create mode 100644 src/views/system/dict/data/DictDataForm.vue create mode 100644 src/views/system/dict/data/index.vue create mode 100644 src/views/system/dict/index.vue create mode 100644 src/views/system/errorCode/ErrorCodeForm.vue create mode 100644 src/views/system/errorCode/index.vue create mode 100644 src/views/system/loginlog/LoginLogDetail.vue create mode 100644 src/views/system/loginlog/index.vue create mode 100644 src/views/system/mail/account/MailAccountDetail.vue create mode 100644 src/views/system/mail/account/MailAccountForm.vue create mode 100644 src/views/system/mail/account/account.data.ts create mode 100644 src/views/system/mail/account/index.vue create mode 100644 src/views/system/mail/log/MailLogDetail.vue create mode 100644 src/views/system/mail/log/index.vue create mode 100644 src/views/system/mail/log/log.data.ts create mode 100644 src/views/system/mail/template/MailTemplateForm.vue create mode 100644 src/views/system/mail/template/MailTemplateSendForm.vue create mode 100644 src/views/system/mail/template/index.vue create mode 100644 src/views/system/mail/template/template.data.ts create mode 100644 src/views/system/menu/MenuForm.vue create mode 100644 src/views/system/menu/index.vue create mode 100644 src/views/system/notice/NoticeForm.vue create mode 100644 src/views/system/notice/index.vue create mode 100644 src/views/system/notify/message/NotifyMessageDetail.vue create mode 100644 src/views/system/notify/message/index.vue create mode 100644 src/views/system/notify/my/MyNotifyMessageDetail.vue create mode 100644 src/views/system/notify/my/index.vue create mode 100644 src/views/system/notify/template/NotifyTemplateForm.vue create mode 100644 src/views/system/notify/template/NotifyTemplateSendForm.vue create mode 100644 src/views/system/notify/template/index.vue create mode 100644 src/views/system/oauth2/client/ClientForm.vue create mode 100644 src/views/system/oauth2/client/index.vue create mode 100644 src/views/system/oauth2/token/index.vue create mode 100644 src/views/system/operatelog/OperateLogDetail.vue create mode 100644 src/views/system/operatelog/index.vue create mode 100644 src/views/system/post/PostForm.vue create mode 100644 src/views/system/post/index.vue create mode 100644 src/views/system/role/RoleAssignMenuForm.vue create mode 100644 src/views/system/role/RoleDataPermissionForm.vue create mode 100644 src/views/system/role/RoleForm.vue create mode 100644 src/views/system/role/index.vue create mode 100644 src/views/system/sensitiveWord/SensitiveWordForm.vue create mode 100644 src/views/system/sensitiveWord/SensitiveWordTestForm.vue create mode 100644 src/views/system/sensitiveWord/index.vue create mode 100644 src/views/system/serialNumber/SerialNumberForm.vue create mode 100644 src/views/system/serialNumber/index.vue create mode 100644 src/views/system/sms/channel/SmsChannelForm.vue create mode 100644 src/views/system/sms/channel/index.vue create mode 100644 src/views/system/sms/log/SmsLogDetail.vue create mode 100644 src/views/system/sms/log/index.vue create mode 100644 src/views/system/sms/template/SmsTemplateForm.vue create mode 100644 src/views/system/sms/template/SmsTemplateSendForm.vue create mode 100644 src/views/system/sms/template/index.vue create mode 100644 src/views/system/sysconfig/index.vue create mode 100644 src/views/system/tenant/TenantForm.vue create mode 100644 src/views/system/tenant/index.vue create mode 100644 src/views/system/tenantPackage/TenantPackageForm.vue create mode 100644 src/views/system/tenantPackage/index.vue create mode 100644 src/views/system/user/DeptTree.vue create mode 100644 src/views/system/user/UserAssignRoleForm.vue create mode 100644 src/views/system/user/UserForm.vue create mode 100644 src/views/system/user/UserImportForm.vue create mode 100644 src/views/system/user/index.vue create mode 100644 stylelint.config.js create mode 100644 tsconfig.json create mode 100644 types/components.d.ts create mode 100644 types/custom-types.d.ts create mode 100644 types/env.d.ts create mode 100644 types/global.d.ts create mode 100644 types/router.d.ts create mode 100644 uno.config.ts create mode 100644 vite.config.ts diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..dccf841 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,19 @@ +root = true + +[*] +charset=utf-8 +end_of_line=lf +insert_final_newline=true +indent_style=space +indent_size=2 +max_line_length = 100 + +[*.{yml,yaml,json}] +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false + +[Makefile] +indent_style = tab diff --git a/.env b/.env new file mode 100644 index 0000000..2308eb6 --- /dev/null +++ b/.env @@ -0,0 +1,17 @@ +# 标题 +VITE_APP_TITLE=闻荫管理系统 + +# 项目本地运行端口号 +VITE_PORT=80 + +# open 运行 npm run dev 时自动打开浏览器 +VITE_OPEN=true + +# 租户开关 +VITE_APP_TENANT_ENABLE=true + +# 验证码的开关 +VITE_APP_CAPTCHA_ENABLE=true + +# 百度统计 +VITE_APP_BAIDU_CODE = a1ff8825baa73c3a78eb96aa40325abc diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..78976cd --- /dev/null +++ b/.env.development @@ -0,0 +1,37 @@ +# 开发环境 +NODE_ENV=development + +VITE_DEV=false + +# 请求路径 +VITE_BASE_URL='http://localhost:12080' + +# 上传路径 +VITE_UPLOAD_URL='http://localhost:12080/admin-api/infra/file/upload' + +# 接口前缀 +VITE_API_BASEPATH=/dev-api + +# 接口地址 +VITE_API_URL=/admin-api + +# 打包路径 +VITE_BASE_PATH=/ + +# 是否删除debugger +VITE_DROP_DEBUGGER=true + +# 是否删除console.log +VITE_DROP_CONSOLE=false + +# 是否sourcemap +VITE_SOURCEMAP=false + +# 输出路径 +VITE_OUT_DIR=dist + +# 自定义接口路径 +VITE_INTERFACE_URL='http://localhost:12080/magic/web/index.html' + +# 积木报表请求路径 +VITE_JMREPORT_BASE_URL='http://localhost:12080' \ No newline at end of file diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..e439126 --- /dev/null +++ b/.env.production @@ -0,0 +1,37 @@ +# 生产环境 +NODE_ENV=test + +VITE_DEV=false + +# 请求路径 +VITE_BASE_URL='http://10.62.193.15:25100/api' + +# 上传路径 +VITE_UPLOAD_URL='http://10.62.193.15:25100/api/admin-api/infra/file/upload' + +# 接口前缀 +VITE_API_BASEPATH= + +# 接口地址 +VITE_API_URL=/admin-api + +# 是否删除debugger +VITE_DROP_DEBUGGER=true + +# 是否删除console.log +VITE_DROP_CONSOLE=true + +# 是否sourcemap +VITE_SOURCEMAP=false + +# 打包路径 +VITE_BASE_PATH=/ + +# 输出路径 +VITE_OUT_DIR=dist-test + +# 自定义接口路径 +VITE_INTERFACE_URL='http://dev.ccwin-in.com:25110/magic/web/index.html' + +# 积木报表请求路径 +VITE_JMREPORT_BASE_URL='http://dev.ccwin-in.com:25110' diff --git a/.env.test b/.env.test new file mode 100644 index 0000000..84edcdf --- /dev/null +++ b/.env.test @@ -0,0 +1,37 @@ +# 生产环境 +NODE_ENV=test + +VITE_DEV=false + +# 请求路径 +VITE_BASE_URL='http://dev.ccwin-in.com:25100/api' + +# 上传路径 +VITE_UPLOAD_URL='http://dev.ccwin-in.com:25100/api/admin-api/infra/file/upload' + +# 接口前缀 +VITE_API_BASEPATH= + +# 接口地址 +VITE_API_URL=/admin-api + +# 是否删除debugger +VITE_DROP_DEBUGGER=true + +# 是否删除console.log +VITE_DROP_CONSOLE=true + +# 是否sourcemap +VITE_SOURCEMAP=false + +# 打包路径 +VITE_BASE_PATH=/ + +# 输出路径 +VITE_OUT_DIR=dist-test + +# 自定义接口路径 +VITE_INTERFACE_URL='http://dev.ccwin-in.com:25110/magic/web/index.html' + +# 积木报表请求路径 +VITE_JMREPORT_BASE_URL='http://dev.ccwin-in.com:25110' diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..1e85c0f --- /dev/null +++ b/.eslintignore @@ -0,0 +1,8 @@ +/build/ +/config/ +/dist/ +/*.js +/test/unit/coverage/ +/node_modules/* +/dist* +/src/main.ts diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json new file mode 100644 index 0000000..024c96a --- /dev/null +++ b/.eslintrc-auto-import.json @@ -0,0 +1,259 @@ +{ + "globals": { + "EffectScope": true, + "ElMessage": true, + "ElMessageBox": true, + "ElTag": true, + "asyncComputed": true, + "autoResetRef": true, + "computed": true, + "computedAsync": true, + "computedEager": true, + "computedInject": true, + "computedWithControl": true, + "controlledComputed": true, + "controlledRef": true, + "createApp": true, + "createEventHook": true, + "createGlobalState": true, + "createInjectionState": true, + "createReactiveFn": true, + "createSharedComposable": true, + "createUnrefFn": true, + "customRef": true, + "debouncedRef": true, + "debouncedWatch": true, + "defineAsyncComponent": true, + "defineComponent": true, + "eagerComputed": true, + "effectScope": true, + "extendRef": true, + "getCurrentInstance": true, + "getCurrentScope": true, + "h": true, + "ignorableWatch": true, + "inject": true, + "isDefined": true, + "isProxy": true, + "isReactive": true, + "isReadonly": true, + "isRef": true, + "makeDestructurable": true, + "markRaw": true, + "nextTick": true, + "onActivated": true, + "onBeforeMount": true, + "onBeforeUnmount": true, + "onBeforeUpdate": true, + "onClickOutside": true, + "onDeactivated": true, + "onErrorCaptured": true, + "onKeyStroke": true, + "onLongPress": true, + "onMounted": true, + "onRenderTracked": true, + "onRenderTriggered": true, + "onScopeDispose": true, + "onServerPrefetch": true, + "onStartTyping": true, + "onUnmounted": true, + "onUpdated": true, + "pausableWatch": true, + "provide": true, + "reactify": true, + "reactifyObject": true, + "reactive": true, + "reactiveComputed": true, + "reactiveOmit": true, + "reactivePick": true, + "readonly": true, + "ref": true, + "refAutoReset": true, + "refDebounced": true, + "refDefault": true, + "refThrottled": true, + "refWithControl": true, + "resolveComponent": true, + "resolveRef": true, + "resolveUnref": true, + "shallowReactive": true, + "shallowReadonly": true, + "shallowRef": true, + "syncRef": true, + "syncRefs": true, + "templateRef": true, + "throttledRef": true, + "throttledWatch": true, + "toRaw": true, + "toReactive": true, + "toRef": true, + "toRefs": true, + "triggerRef": true, + "tryOnBeforeMount": true, + "tryOnBeforeUnmount": true, + "tryOnMounted": true, + "tryOnScopeDispose": true, + "tryOnUnmounted": true, + "unref": true, + "unrefElement": true, + "until": true, + "useActiveElement": true, + "useArrayEvery": true, + "useArrayFilter": true, + "useArrayFind": true, + "useArrayFindIndex": true, + "useArrayJoin": true, + "useArrayMap": true, + "useArrayReduce": true, + "useArraySome": true, + "useAsyncQueue": true, + "useAsyncState": true, + "useAttrs": true, + "useBase64": true, + "useBattery": true, + "useBluetooth": true, + "useBreakpoints": true, + "useBroadcastChannel": true, + "useBrowserLocation": true, + "useCached": true, + "useClipboard": true, + "useColorMode": true, + "useConfirmDialog": true, + "useCounter": true, + "useCssModule": true, + "useCssVar": true, + "useCssVars": true, + "useCurrentElement": true, + "useCycleList": true, + "useDark": true, + "useDateFormat": true, + "useDebounce": true, + "useDebounceFn": true, + "useDebouncedRefHistory": true, + "useDeviceMotion": true, + "useDeviceOrientation": true, + "useDevicePixelRatio": true, + "useDevicesList": true, + "useDisplayMedia": true, + "useDocumentVisibility": true, + "useDraggable": true, + "useDropZone": true, + "useElementBounding": true, + "useElementByPoint": true, + "useElementHover": true, + "useElementSize": true, + "useElementVisibility": true, + "useEventBus": true, + "useEventListener": true, + "useEventSource": true, + "useEyeDropper": true, + "useFavicon": true, + "useFetch": true, + "useFileDialog": true, + "useFileSystemAccess": true, + "useFocus": true, + "useFocusWithin": true, + "useFps": true, + "useFullscreen": true, + "useGamepad": true, + "useGeolocation": true, + "useIdle": true, + "useImage": true, + "useInfiniteScroll": true, + "useIntersectionObserver": true, + "useInterval": true, + "useIntervalFn": true, + "useKeyModifier": true, + "useLastChanged": true, + "useLocalStorage": true, + "useMagicKeys": true, + "useManualRefHistory": true, + "useMediaControls": true, + "useMediaQuery": true, + "useMemoize": true, + "useMemory": true, + "useMounted": true, + "useMouse": true, + "useMouseInElement": true, + "useMousePressed": true, + "useMutationObserver": true, + "useNavigatorLanguage": true, + "useNetwork": true, + "useNow": true, + "useObjectUrl": true, + "useOffsetPagination": true, + "useOnline": true, + "usePageLeave": true, + "useParallax": true, + "usePermission": true, + "usePointer": true, + "usePointerSwipe": true, + "usePreferredColorScheme": true, + "usePreferredDark": true, + "usePreferredLanguages": true, + "useRafFn": true, + "useRefHistory": true, + "useResizeObserver": true, + "useRoute": true, + "useRouter": true, + "useScreenOrientation": true, + "useScreenSafeArea": true, + "useScriptTag": true, + "useScroll": true, + "useScrollLock": true, + "useSessionStorage": true, + "useShare": true, + "useSlots": true, + "useSpeechRecognition": true, + "useSpeechSynthesis": true, + "useStepper": true, + "useStorage": true, + "useStorageAsync": true, + "useStyleTag": true, + "useSupported": true, + "useSwipe": true, + "useTemplateRefsList": true, + "useTextDirection": true, + "useTextSelection": true, + "useTextareaAutosize": true, + "useThrottle": true, + "useThrottleFn": true, + "useThrottledRefHistory": true, + "useTimeAgo": true, + "useTimeout": true, + "useTimeoutFn": true, + "useTimeoutPoll": true, + "useTimestamp": true, + "useTitle": true, + "useToggle": true, + "useTransition": true, + "useUrlSearchParams": true, + "useUserMedia": true, + "useVModel": true, + "useVModels": true, + "useVibrate": true, + "useVirtualList": true, + "useWakeLock": true, + "useWebNotification": true, + "useWebSocket": true, + "useWebWorker": true, + "useWebWorkerFn": true, + "useWindowFocus": true, + "useWindowScroll": true, + "useWindowSize": true, + "watch": true, + "watchArray": true, + "watchAtMost": true, + "watchDebounced": true, + "watchEffect": true, + "watchIgnorable": true, + "watchOnce": true, + "watchPausable": true, + "watchPostEffect": true, + "watchSyncEffect": true, + "watchThrottled": true, + "watchTriggerable": true, + "watchWithFilter": true, + "whenever": true + } +} diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..3e4af63 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,72 @@ +// @ts-check +const { defineConfig } = require('eslint-define-config') +module.exports = defineConfig({ + root: true, + env: { + browser: true, + node: true, + es6: true + }, + parser: 'vue-eslint-parser', + plugins: ['vue'], + parserOptions: { + parser: '@typescript-eslint/parser', + ecmaVersion: 2020, + sourceType: 'module', + jsxPragma: 'React', + ecmaFeatures: { + jsx: true + } + }, + extends: [ + 'plugin:vue/vue3-recommended', + 'plugin:@typescript-eslint/recommended', + // 'prettier', + // 'plugin:prettier/recommended', + '@unocss' + ], + rules: { + 'vue/script-setup-uses-vars': 'error', + 'vue/no-reserved-component-names': 'off', + 'vue/no-setup-props-destructure': 'off', + '@typescript-eslint/ban-ts-ignore': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-var-requires': 'off', + '@typescript-eslint/no-empty-function': 'off', + 'vue/custom-event-name-casing': 'off', + 'no-use-before-define': 'off', + '@typescript-eslint/no-use-before-define': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-unused-vars': 'off', + 'no-unused-vars': 'off', + 'space-before-function-paren': 'off', + + 'vue/attributes-order': 'off', + 'vue/one-component-per-file': 'off', + 'vue/html-closing-bracket-newline': 'off', + 'vue/max-attributes-per-line': 'off', + 'vue/multiline-html-element-content-newline': 'off', + 'vue/singleline-html-element-content-newline': 'off', + 'vue/attribute-hyphenation': 'off', + 'vue/require-default-prop': 'off', + 'vue/require-explicit-emits': 'off', + 'vue/html-self-closing': [ + 'error', + { + html: { + void: 'always', + normal: 'never', + component: 'always' + }, + svg: 'always', + math: 'always' + } + ], + 'vue/multi-word-component-names': 'off', + 'vue/no-v-html': 'off' + } +}) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0f033cc --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +node_modules +.DS_Store +dist +dist-ssr +*.local +/dist* +*-lock.* +pnpm-debug +auto-*.d.ts +.idea +.history diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..f68ea86 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,11 @@ +/node_modules/** +/dist/ +/dist* +/public/* +/docs/* +/vite.config.ts +/src/types/env.d.ts +/src/types/auto-components.d.ts +/src/types/auto-imports.d.ts +/docs/**/* +CHANGELOG diff --git a/.stylelintignore b/.stylelintignore new file mode 100644 index 0000000..aa605b4 --- /dev/null +++ b/.stylelintignore @@ -0,0 +1,6 @@ +/dist/* +/public/* +public/* +/dist* +/src/types/env.d.ts +/docs/**/* diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9861118 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021-present Archer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/build/vite/index.ts b/build/vite/index.ts new file mode 100644 index 0000000..0206710 --- /dev/null +++ b/build/vite/index.ts @@ -0,0 +1,107 @@ +import { resolve } from 'path' +import Vue from '@vitejs/plugin-vue' +import VueJsx from '@vitejs/plugin-vue-jsx' +import progress from 'vite-plugin-progress' +import EslintPlugin from 'vite-plugin-eslint' +import PurgeIcons from 'vite-plugin-purge-icons' +import { ViteEjsPlugin } from 'vite-plugin-ejs' +// @ts-ignore +import ElementPlus from 'unplugin-element-plus/vite' +import AutoImport from 'unplugin-auto-import/vite' +import Components from 'unplugin-vue-components/vite' +import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' +import viteCompression from 'vite-plugin-compression' +import topLevelAwait from 'vite-plugin-top-level-await' +import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite' +import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' +import UnoCSS from 'unocss/vite' + +export function createVitePlugins() { + const root = process.cwd() + + // 路径查找 + function pathResolve(dir: string) { + return resolve(root, '.', dir) + } + + return [ + Vue(), + VueJsx(), + UnoCSS(), + progress(), + PurgeIcons(), + ElementPlus({}), + AutoImport({ + include: [ + /\.[tj]sx?$/, // .ts, .tsx, .js, .jsx + /\.vue$/, + /\.vue\?vue/, // .vue + /\.md$/ // .md + ], + imports: [ + 'vue', + 'vue-router', + // 可额外添加需要 autoImport 的组件 + { + '@/hooks/web/useI18n': ['useI18n'], + '@/hooks/web/useMessage': ['useMessage'], + '@/hooks/web/useTable': ['useTable'], + '@/hooks/web/useCrudSchemas': ['useCrudSchemas'], + '@/utils/formRules': ['required'], + '@/utils/dict': ['DICT_TYPE'] + } + ], + dts: 'src/types/auto-imports.d.ts', + resolvers: [ElementPlusResolver()], + eslintrc: { + enabled: false, // Default `false` + filepath: './.eslintrc-auto-import.json', // Default `./.eslintrc-auto-import.json` + globalsPropValue: true // Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable') + } + }), + Components({ + // 要搜索组件的目录的相对路径 + dirs: ['src/components'], + // 组件的有效文件扩展名 + extensions: ['vue', 'md'], + // 搜索子目录 + deep: true, + include: [/\.vue$/, /\.vue\?vue/], + // 生成自定义 `auto-components.d.ts` 全局声明 + dts: 'src/types/auto-components.d.ts', + // 自定义组件的解析器 + resolvers: [ElementPlusResolver()], + exclude: [/[\\/]node_modules[\\/]/] + }), + EslintPlugin({ + cache: false, + include: ['src/**/*.vue', 'src/**/*.ts', 'src/**/*.tsx'] // 检查的文件 + }), + VueI18nPlugin({ + runtimeOnly: true, + compositionOnly: true, + include: [resolve(__dirname, 'src/locales/**')] + }), + createSvgIconsPlugin({ + iconDirs: [pathResolve('src/assets/svgs')], + symbolId: 'icon-[dir]-[name]', + svgoOptions: true + }), + viteCompression({ + verbose: true, // 是否在控制台输出压缩结果 + disable: false, // 是否禁用 + threshold: 10240, // 体积大于 threshold 才会被压缩,单位 b + algorithm: 'gzip', // 压缩算法,可选 [ 'gzip' , 'brotliCompress' ,'deflate' , 'deflateRaw'] + ext: '.gz', // 生成的压缩包后缀 + deleteOriginFile: false //压缩后是否删除源文件 + }), + ViteEjsPlugin(), + topLevelAwait({ + // https://juejin.cn/post/7152191742513512485 + // The export name of top-level await promise for each chunk module + promiseExportName: '__tla', + // The function to generate import names of top-level await promise in each chunk module + promiseImportName: (i) => `__tla_${i}` + }) + ] +} diff --git a/build/vite/optimize.ts b/build/vite/optimize.ts new file mode 100644 index 0000000..3dda50b --- /dev/null +++ b/build/vite/optimize.ts @@ -0,0 +1,112 @@ +const include = [ + 'qs', + 'url', + 'vue', + 'sass', + 'mitt', + 'axios', + 'pinia', + 'dayjs', + 'qrcode', + 'unocss', + 'vue-router', + 'vue-types', + 'vue-i18n', + 'crypto-js', + 'cropperjs', + 'lodash-es', + 'nprogress', + 'web-storage-cache', + '@iconify/iconify', + '@vueuse/core', + '@zxcvbn-ts/core', + 'echarts/core', + 'echarts/charts', + 'echarts/components', + 'echarts/renderers', + 'echarts-wordcloud', + '@wangeditor/editor', + '@wangeditor/editor-for-vue', + 'element-plus', + 'element-plus/es', + 'element-plus/es/locale/lang/zh-cn', + 'element-plus/es/locale/lang/en', + 'element-plus/es/components/avatar/style/css', + 'element-plus/es/components/space/style/css', + 'element-plus/es/components/backtop/style/css', + 'element-plus/es/components/form/style/css', + 'element-plus/es/components/radio-group/style/css', + 'element-plus/es/components/radio/style/css', + 'element-plus/es/components/checkbox/style/css', + 'element-plus/es/components/checkbox-group/style/css', + 'element-plus/es/components/switch/style/css', + 'element-plus/es/components/time-picker/style/css', + 'element-plus/es/components/date-picker/style/css', + 'element-plus/es/components/descriptions/style/css', + 'element-plus/es/components/descriptions-item/style/css', + 'element-plus/es/components/link/style/css', + 'element-plus/es/components/tooltip/style/css', + 'element-plus/es/components/drawer/style/css', + 'element-plus/es/components/dialog/style/css', + 'element-plus/es/components/checkbox-button/style/css', + 'element-plus/es/components/option-group/style/css', + 'element-plus/es/components/radio-button/style/css', + 'element-plus/es/components/cascader/style/css', + 'element-plus/es/components/color-picker/style/css', + 'element-plus/es/components/input-number/style/css', + 'element-plus/es/components/rate/style/css', + 'element-plus/es/components/select-v2/style/css', + 'element-plus/es/components/tree-select/style/css', + 'element-plus/es/components/slider/style/css', + 'element-plus/es/components/time-select/style/css', + 'element-plus/es/components/autocomplete/style/css', + 'element-plus/es/components/image-viewer/style/css', + 'element-plus/es/components/upload/style/css', + 'element-plus/es/components/col/style/css', + 'element-plus/es/components/form-item/style/css', + 'element-plus/es/components/alert/style/css', + 'element-plus/es/components/breadcrumb/style/css', + 'element-plus/es/components/select/style/css', + 'element-plus/es/components/input/style/css', + 'element-plus/es/components/breadcrumb-item/style/css', + 'element-plus/es/components/tag/style/css', + 'element-plus/es/components/pagination/style/css', + 'element-plus/es/components/table/style/css', + 'element-plus/es/components/table-v2/style/css', + 'element-plus/es/components/table-column/style/css', + 'element-plus/es/components/card/style/css', + 'element-plus/es/components/row/style/css', + 'element-plus/es/components/button/style/css', + 'element-plus/es/components/menu/style/css', + 'element-plus/es/components/sub-menu/style/css', + 'element-plus/es/components/menu-item/style/css', + 'element-plus/es/components/option/style/css', + 'element-plus/es/components/dropdown/style/css', + 'element-plus/es/components/dropdown-menu/style/css', + 'element-plus/es/components/dropdown-item/style/css', + 'element-plus/es/components/skeleton/style/css', + 'element-plus/es/components/skeleton/style/css', + 'element-plus/es/components/backtop/style/css', + 'element-plus/es/components/menu/style/css', + 'element-plus/es/components/sub-menu/style/css', + 'element-plus/es/components/menu-item/style/css', + 'element-plus/es/components/dropdown/style/css', + 'element-plus/es/components/tree/style/css', + 'element-plus/es/components/dropdown-menu/style/css', + 'element-plus/es/components/dropdown-item/style/css', + 'element-plus/es/components/badge/style/css', + 'element-plus/es/components/breadcrumb/style/css', + 'element-plus/es/components/breadcrumb-item/style/css', + 'element-plus/es/components/image/style/css', + 'element-plus/es/components/collapse-transition/style/css', + 'element-plus/es/components/timeline/style/css', + 'element-plus/es/components/timeline-item/style/css', + 'element-plus/es/components/collapse/style/css', + 'element-plus/es/components/collapse-item/style/css', + 'element-plus/es/components/button-group/style/css', + 'element-plus/es/components/text/style/css' +] + +const exclude = ['@iconify/json'] + +export { include, exclude } diff --git a/index.html b/index.html new file mode 100644 index 0000000..2fe32f5 --- /dev/null +++ b/index.html @@ -0,0 +1,152 @@ + + + + + + + + + + + %VITE_APP_TITLE% + + +
+ +
+
+
+ +
%VITE_APP_TITLE%
+
+
+
+
+
+
+
+
+ + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..cf2eff1 --- /dev/null +++ b/package.json @@ -0,0 +1,134 @@ +{ + "name": "yudao-ui-admin-vue3", + "version": "1.8.2-snapshot", + "description": "基于vue3、vite4、element-plus、typesScript", + "author": "xingyu", + "private": false, + "scripts": { + "dev": "vite", + "test": "vite build --mode test", + "prod": "vite build --mode production", + "preview": "vite preview", + "lint": "eslint --fix --ext .js,.vue src" + }, + "dependencies": { + "@element-plus/icons-vue": "^2.1.0", + "@form-create/designer": "^3.1.3", + "@form-create/element-ui": "^3.1.24", + "@iconify/iconify": "^3.1.1", + "@kjgl77/datav-vue3": "^1.7.1", + "@videojs-player/vue": "^1.0.0", + "@vueuse/core": "^10.4.1", + "@wangeditor/editor": "^5.1.23", + "@wangeditor/editor-for-vue": "^5.1.10", + "@zxcvbn-ts/core": "^3.0.4", + "animate.css": "^4.1.1", + "axios": "^1.5.0", + "benz-amr-recorder": "^1.1.5", + "bpmn-js-token-simulation": "^0.10.0", + "camunda-bpmn-moddle": "^7.0.1", + "cropperjs": "^1.6.1", + "crypto-js": "^4.1.1", + "dayjs": "^1.11.10", + "diagram-js": "^12.3.0", + "echarts": "^5.4.3", + "echarts-wordcloud": "^2.1.0", + "element-plus": "2.3.14", + "fast-xml-parser": "^4.3.0", + "highlight.js": "^11.8.0", + "intro.js": "^7.2.0", + "jsencrypt": "^3.3.2", + "lodash-es": "^4.17.21", + "min-dash": "^4.1.1", + "mitt": "^3.0.1", + "nprogress": "^0.2.0", + "pinia": "^2.1.6", + "qrcode": "^1.5.3", + "qs": "^6.11.2", + "sortablejs": "^1.15.0", + "steady-xml": "^0.1.0", + "url": "^0.11.3", + "video.js": "^7.21.5", + "vue": "^3.3.4", + "vue-dompurify-html": "^4.1.4", + "vue-i18n": "^9.4.1", + "vue-router": "^4.2.5", + "vue-types": "^5.1.1", + "vuedraggable": "^4.1.0", + "web-storage-cache": "^1.1.1", + "xml-js": "^1.6.11" + }, + "devDependencies": { + "@commitlint/cli": "^17.7.1", + "@commitlint/config-conventional": "^17.7.0", + "@iconify/json": "^2.2.119", + "@intlify/unplugin-vue-i18n": "^1.2.0", + "@purge-icons/generated": "^0.9.0", + "@types/intro.js": "^5.1.1", + "@types/lodash-es": "^4.17.9", + "@types/node": "^20.6.0", + "@types/nprogress": "^0.2.0", + "@types/qrcode": "^1.5.2", + "@types/qs": "^6.9.8", + "@typescript-eslint/eslint-plugin": "^6.7.2", + "@typescript-eslint/parser": "^6.7.2", + "@unocss/eslint-config": "^0.56.1", + "@unocss/transformer-variant-group": "^0.56.1", + "@vitejs/plugin-legacy": "^4.1.1", + "@vitejs/plugin-vue": "^4.3.4", + "@vitejs/plugin-vue-jsx": "^3.0.2", + "@vue-macros/volar": "^0.14.3", + "autoprefixer": "^10.4.16", + "bpmn-js": "8.9.0", + "bpmn-js-properties-panel": "0.46.0", + "consola": "^3.2.3", + "eslint": "^8.49.0", + "eslint-config-prettier": "^9.0.0", + "eslint-define-config": "^1.23.0", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-vue": "^9.17.0", + "lint-staged": "^14.0.1", + "postcss": "^8.4.30", + "postcss-html": "^1.5.0", + "postcss-scss": "^4.0.8", + "prettier": "^3.0.3", + "rimraf": "^5.0.1", + "rollup": "^3.29.2", + "sass": "^1.68.0", + "stylelint": "^15.10.3", + "stylelint-config-html": "^1.1.0", + "stylelint-config-recommended": "^13.0.0", + "stylelint-config-standard": "^34.0.0", + "stylelint-order": "^6.0.3", + "terser": "^5.20.0", + "typescript": "5.2.2", + "unocss": "^0.56.1", + "unplugin-auto-import": "^0.16.6", + "unplugin-element-plus": "^0.8.0", + "unplugin-vue-components": "^0.25.2", + "vite": "4.4.9", + "vite-plugin-compression": "^0.5.1", + "vite-plugin-ejs": "^1.6.4", + "vite-plugin-eslint": "^1.8.1", + "vite-plugin-progress": "^0.0.7", + "vite-plugin-purge-icons": "^0.9.2", + "vite-plugin-svg-icons": "^2.0.1", + "vite-plugin-top-level-await": "^1.3.1", + "vue-eslint-parser": "^9.3.1", + "vue-tsc": "^1.8.13" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://gitee.com/yudaocode/yudao-ui-admin-vue3" + }, + "bugs": { + "url": "https://gitee.com/yudaocode/yudao-ui-admin-vue3/issues" + }, + "homepage": "https://gitee.com/yudaocode/yudao-ui-admin-vue3", + "packageManager": "pnpm@8.6.0", + "engines": { + "node": ">= 16.0.0", + "pnpm": ">=8.6.0" + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..961986e --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: { + autoprefixer: {} + } +} diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000..b014bbf --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,22 @@ +module.exports = { + printWidth: 100, // 每行代码长度(默认80) + tabWidth: 2, // 每个tab相当于多少个空格(默认2)ab进行缩进(默认false) + useTabs: false, // 是否使用tab + semi: false, // 声明结尾使用分号(默认true) + vueIndentScriptAndStyle: false, + singleQuote: true, // 使用单引号(默认false) + quoteProps: 'as-needed', + bracketSpacing: true, // 对象字面量的大括号间使用空格(默认true) + trailingComma: 'none', // 多行使用拖尾逗号(默认none) + jsxSingleQuote: false, + // 箭头函数参数括号 默认avoid 可选 avoid| always + // avoid 能省略括号的时候就省略 例如x => x + // always 总是有括号 + arrowParens: 'always', + insertPragma: false, + requirePragma: false, + proseWrap: 'never', + htmlWhitespaceSensitivity: 'strict', + endOfLine: 'auto', + rangeStart: 0 +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5a7de08267811feb034bb0c54ab38ca417731aab GIT binary patch literal 4286 zcmcJTdr*|u8OGm?f3Tad7j|KHxq~xpVq;A@HfgF7QY~O)Go9%q6O&2POq*#slbPnf zwzf$$rcG^ZYDE+@N@~3q7I49+L1DRyKt#F7{U!nn%U;+^j39aYobU7VmKqZ!%ltTJ zSayHU`<%1G3`F1^k7e(&;Z`VJu(?k;=T7X%N)jqMq!dMyZeDC3iF!z6rw+67kxV&jDKh*=XMMH7BzC%0ZZgW^F*GR;m`LJ8Nxh;MnV_2 zo#Aeu7~L8}V>!_RD+rBki)NV^cA^7!L1e&FY)JDI!(TGDXW-mnR@`bh?a0EnGI=P9 zy>>$Z2m|CjGIt$Z+!8}0*)asCbu>FBggr}a!3yv^PwX`@<_>sE4e5ZqN9V>rmTRUF zbU(T+S`C+7@m92s-#UA`Fo4_`PSqdlNi_8Le1D!YO<=@vm4O z$%$c4iIKfW(ZR8ZbU?mO?%glC2lvBQG7OL4g2E>3CE|D(x!lD@#>|2OxWk0scT#t^ zS6+JEa8?X~2srB%*M&`SJoL{S_(0yf@}t;S27g&Z0Hpg)z+Z89e{|ZcvsAWtlnyU! zrooK~1ov;@oE;J_FsSek>;)U+*tyTdzLW6F6!^;ZVSuI_-@Jq7m6vJu4@{*G56tUW zpGZTSVx!<}kX-N$2;dyp7%$QPemsxlS=d(&zn~%_Fjb*XpK`!o{mnXPeP))mj8zZ^lWb$NF4{~3AH+q%ce-ErK%W3!iN7WAAnu?S-NPqStq)-K z^r;$jQ1|uDpfTeToz0w~uIE_Ym=?0w^$yVAEIfqUV+#(N3e zk2~QhGcbJDsny&3bvhLwfBl_1IF%8kGpjCBvvt~9zrr8d9#JR!m$M(Jd}05>Eb4nd zJ`&DTz3>To1b>z3MIY{C28N5L>h#j;Kcx$R41YcR4PV_s^-rhhbVi8kGeYX7r!U!S zQoWp`s}X+Qa=*iY4)hJLtt9w=1?Lsv?f#1(Q9@*K9WgR|GWA#mr*$@egH|Q{flqJW zfn&Lc>e2!ND{_P?Q{22wTP^vKVHzF$V&C_+Q16C#BfNFp?VUHBP>oj2B zhz=UjK_mQU{=dKMNf%Wv_mX3|SB)O*b?E`FSmwIXFFL5s)z(Cu`t>S;|CO%wi8Gz> zcD{3+@uDaWG)hk4Wq*?l=C;AD68_*>&6hq4$5NbB{u8&riVPuS;Bxqt{>2%98FcW< z-UZpz{a%6r-kQ#JN!+2ZHi^e>j@Xfb z(FH3R_9nI5>KFImbdI(Z5j@?YYO33 z34gFFoDTl5j|!g{5?GNTRI+4*l?*4In&hHK`i1Yt`Ne(~9lZ9R?`G5acM|n*SGN8s znFXUbf8oK55?7tV%W!hALlXom0foB5=@9%tUGVsTz3@jvj0}t(u4OpB%*i{yd6`D*|GZP1pkYzYvxb4teMYa#Zj_Lo>g|rUJiD`FX%!C-Qg-g2Nw4TGLa#a|M&na z8A`8a_#|~g>R_v;>eddvKnJhy{!TWvy`7|kyQ1Zf^VxYMQp~8#D(_{d@N%#l^n?dP zJ>eOEc0bbbz}_Ep9p1mVhmnEN1LG{D9z=$tSMNjqf-V*rZoG@=pcx%l%Ab3d&aIih z8eE{+mp&i+1G+xk}WiODJh<6N)JDmfKzAKZd|2|w0ncYeRMI&V=sBLj;JI14`X znA}4Vday6K$fZk1`Dluh#aSF*>g2+Oy}Ud24Cm@=8E1fdP!-j*CXKqY;$HSP>1S?o zig|DLDt@t+^XG}oKAp^97_-1JPiEbH%mN~Xwb-w{LX;}_oG4M?Bhm>5iNXX9qIrUK L_}7DgzT)vecywrn literal 0 HcmV?d00001 diff --git a/public/home.png b/public/home.png new file mode 100644 index 0000000000000000000000000000000000000000..ccd41455a9ef128c5798691a1d74b472c6d6344a GIT binary patch literal 74352 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�BJed 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 z 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 literal 0 HcmV?d00001 diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..c0d50c3 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,75 @@ + + + diff --git a/src/api/bpm/activity/index.ts b/src/api/bpm/activity/index.ts new file mode 100644 index 0000000..870d0d6 --- /dev/null +++ b/src/api/bpm/activity/index.ts @@ -0,0 +1,8 @@ +import request from '@/config/axios' + +export const getActivityList = async (params) => { + return await request.get({ + url: '/bpm/activity/list', + params + }) +} diff --git a/src/api/bpm/definition/index.ts b/src/api/bpm/definition/index.ts new file mode 100644 index 0000000..c0e51fa --- /dev/null +++ b/src/api/bpm/definition/index.ts @@ -0,0 +1,21 @@ +import request from '@/config/axios' + +export const getProcessDefinitionBpmnXML = async (id: number) => { + return await request.get({ + url: '/bpm/process-definition/get-bpmn-xml?id=' + id + }) +} + +export const getProcessDefinitionPage = async (params) => { + return await request.get({ + url: '/bpm/process-definition/page', + params + }) +} + +export const getProcessDefinitionList = async (params) => { + return await request.get({ + url: '/bpm/process-definition/list', + params + }) +} diff --git a/src/api/bpm/form/index.ts b/src/api/bpm/form/index.ts new file mode 100644 index 0000000..142ed24 --- /dev/null +++ b/src/api/bpm/form/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export type FormVO = { + id: number + name: string + conf: string + fields: string[] + status: number + remark: string + createTime: string +} + +// 创建工作流的表单定义 +export const createForm = async (data: FormVO) => { + return await request.post({ + url: '/bpm/form/create', + data: data + }) +} + +// 更新工作流的表单定义 +export const updateForm = async (data: FormVO) => { + return await request.put({ + url: '/bpm/form/update', + data: data + }) +} + +// 删除工作流的表单定义 +export const deleteForm = async (id: number) => { + return await request.delete({ + url: '/bpm/form/delete?id=' + id + }) +} + +// 获得工作流的表单定义 +export const getForm = async (id: number) => { + return await request.get({ + url: '/bpm/form/get?id=' + id + }) +} + +// 获得工作流的表单定义分页 +export const getFormPage = async (params) => { + return await request.get({ + url: '/bpm/form/page', + params + }) +} + +// 获得动态表单的精简列表 +export const getSimpleFormList = async () => { + return await request.get({ + url: '/bpm/form/list-all-simple' + }) +} diff --git a/src/api/bpm/leave/index.ts b/src/api/bpm/leave/index.ts new file mode 100644 index 0000000..d4fe8d5 --- /dev/null +++ b/src/api/bpm/leave/index.ts @@ -0,0 +1,27 @@ +import request from '@/config/axios' + +export type LeaveVO = { + id: number + result: number + type: number + reason: string + processInstanceId: string + startTime: string + endTime: string + createTime: string +} + +// 创建请假申请 +export const createLeave = async (data: LeaveVO) => { + return await request.post({ url: '/bpm/oa/leave/create', data: data }) +} + +// 获得请假申请 +export const getLeave = async (id: number) => { + return await request.get({ url: '/bpm/oa/leave/get?id=' + id }) +} + +// 获得请假申请分页 +export const getLeavePage = async (params: PageParam) => { + return await request.get({ url: '/bpm/oa/leave/page', params }) +} diff --git a/src/api/bpm/model/index.ts b/src/api/bpm/model/index.ts new file mode 100644 index 0000000..2e1d4e6 --- /dev/null +++ b/src/api/bpm/model/index.ts @@ -0,0 +1,59 @@ +import request from '@/config/axios' + +export type ProcessDefinitionVO = { + id: string + version: number + deploymentTIme: string + suspensionState: number +} + +export type ModelVO = { + id: number + formName: string + key: string + name: string + description: string + category: string + formType: number + formId: number + formCustomCreatePath: string + formCustomViewPath: string + processDefinition: ProcessDefinitionVO + status: number + remark: string + createTime: string + bpmnXml: string +} + +export const getModelPage = async (params) => { + return await request.get({ url: '/bpm/model/page', params }) +} + +export const getModel = async (id: number) => { + return await request.get({ url: '/bpm/model/get?id=' + id }) +} + +export const updateModel = async (data: ModelVO) => { + return await request.put({ url: '/bpm/model/update', data: data }) +} + +// 任务状态修改 +export const updateModelState = async (id: number, state: number) => { + const data = { + id: id, + state: state + } + return await request.put({ url: '/bpm/model/update-state', data: data }) +} + +export const createModel = async (data: ModelVO) => { + return await request.post({ url: '/bpm/model/create', data: data }) +} + +export const deleteModel = async (id: number) => { + return await request.delete({ url: '/bpm/model/delete?id=' + id }) +} + +export const deployModel = async (id: number) => { + return await request.post({ url: '/bpm/model/deploy?id=' + id }) +} diff --git a/src/api/bpm/processInstance/index.ts b/src/api/bpm/processInstance/index.ts new file mode 100644 index 0000000..10cd3bc --- /dev/null +++ b/src/api/bpm/processInstance/index.ts @@ -0,0 +1,41 @@ +import request from '@/config/axios' + +export type Task = { + id: string + name: string +} + +export type ProcessInstanceVO = { + id: number + name: string + processDefinitionId: string + category: string + result: number + tasks: Task[] + fields: string[] + status: number + remark: string + businessKey: string + createTime: string + endTime: string +} + +export const getMyProcessInstancePage = async (params) => { + return await request.get({ url: '/bpm/process-instance/my-page', params }) +} + +export const createProcessInstance = async (data) => { + return await request.post({ url: '/bpm/process-instance/create', data: data }) +} + +export const cancelProcessInstance = async (id: number, reason: string) => { + const data = { + id: id, + reason: reason + } + return await request.delete({ url: '/bpm/process-instance/cancel', data: data }) +} + +export const getProcessInstance = async (id: number) => { + return await request.get({ url: '/bpm/process-instance/get?id=' + id }) +} diff --git a/src/api/bpm/task/index.ts b/src/api/bpm/task/index.ts new file mode 100644 index 0000000..e6478d3 --- /dev/null +++ b/src/api/bpm/task/index.ts @@ -0,0 +1,53 @@ +import request from '@/config/axios' + +export type TaskVO = { + id: number +} + +export const getTodoTaskPage = async (params) => { + return await request.get({ url: '/bpm/task/todo-page', params }) +} + +export const getDoneTaskPage = async (params) => { + return await request.get({ url: '/bpm/task/done-page', params }) +} + +export const completeTask = async (data) => { + return await request.put({ url: '/bpm/task/complete', data }) +} + +export const approveTask = async (data) => { + return await request.put({ url: '/bpm/task/approve', data }) +} + +export const rejectTask = async (data) => { + return await request.put({ url: '/bpm/task/reject', data }) +} +export const backTask = async (data) => { + return await request.put({ url: '/bpm/task/back', data }) +} + +export const updateTaskAssignee = async (data) => { + return await request.put({ url: '/bpm/task/update-assignee', data }) +} + +export const getTaskListByProcessInstanceId = async (processInstanceId) => { + return await request.get({ + url: '/bpm/task/list-by-process-instance-id?processInstanceId=' + processInstanceId + }) +} + +// 导出任务 +export const exportTask = async (params) => { + return await request.download({ url: '/bpm/task/export', params }) +} + +// 获取所有可回退的节点 +export const getReturnList = async (params) => { + return await request.get({ url: '/bpm/task/get-return-list', params }) +} + +// 回退 +export const returnTask = async (data) => { + return await request.put({ url: '/bpm/task/return', data }) +} diff --git a/src/api/bpm/taskAssignRule/index.ts b/src/api/bpm/taskAssignRule/index.ts new file mode 100644 index 0000000..5fbe342 --- /dev/null +++ b/src/api/bpm/taskAssignRule/index.ts @@ -0,0 +1,29 @@ +import request from '@/config/axios' + +export type TaskAssignVO = { + id: number + modelId: string + processDefinitionId: string + taskDefinitionKey: string + taskDefinitionName: string + options: string[] + type: number +} + +export const getTaskAssignRuleList = async (params) => { + return await request.get({ url: '/bpm/task-assign-rule/list', params }) +} + +export const createTaskAssignRule = async (data: TaskAssignVO) => { + return await request.post({ + url: '/bpm/task-assign-rule/create', + data: data + }) +} + +export const updateTaskAssignRule = async (data: TaskAssignVO) => { + return await request.put({ + url: '/bpm/task-assign-rule/update', + data: data + }) +} diff --git a/src/api/bpm/userGroup/index.ts b/src/api/bpm/userGroup/index.ts new file mode 100644 index 0000000..035762b --- /dev/null +++ b/src/api/bpm/userGroup/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +export type UserGroupVO = { + id: number + name: string + description: string + memberUserIds: number[] + status: number + remark: string + createTime: string +} + +// 创建用户组 +export const createUserGroup = async (data: UserGroupVO) => { + return await request.post({ + url: '/bpm/user-group/create', + data: data + }) +} + +// 更新用户组 +export const updateUserGroup = async (data: UserGroupVO) => { + return await request.put({ + url: '/bpm/user-group/update', + data: data + }) +} + +// 删除用户组 +export const deleteUserGroup = async (id: number) => { + return await request.delete({ url: '/bpm/user-group/delete?id=' + id }) +} + +// 获得用户组 +export const getUserGroup = async (id: number) => { + return await request.get({ url: '/bpm/user-group/get?id=' + id }) +} + +// 获得用户组分页 +export const getUserGroupPage = async (params) => { + return await request.get({ url: '/bpm/user-group/page', params }) +} + +// 获取用户组精简信息列表 +export const getSimpleUserGroupList = async (): Promise => { + return await request.get({ url: '/bpm/user-group/list-all-simple' }) +} diff --git a/src/api/home/index.ts b/src/api/home/index.ts new file mode 100644 index 0000000..aa8cb13 --- /dev/null +++ b/src/api/home/index.ts @@ -0,0 +1,22 @@ +import request from '@/config/axios' + +// 供应商首页 +export const getSupplierData = async () => { + return await request.get({ url: `/wms/index/indexSupplier` }) +} + +// 原料管理员首页 +export const getMaterialData = async () => { + return await request.get({ url: `/wms/index/indexMaterial` }) +} + +// 生产管理员首页 +export const getProduceData = async () => { + return await request.get({ url: `/wms/index/indexProduce` }) +} + +// 成品管理员首页 +export const getProductData = async () => { + return await request.get({ url: `/wms/index/indexProduct` }) +} + diff --git a/src/api/infra/apiAccessLog/index.ts b/src/api/infra/apiAccessLog/index.ts new file mode 100644 index 0000000..c6b4b45 --- /dev/null +++ b/src/api/infra/apiAccessLog/index.ts @@ -0,0 +1,30 @@ +import request from '@/config/axios' + +export interface ApiAccessLogVO { + id: number + traceId: string + userId: number + userType: number + applicationName: string + requestMethod: string + requestParams: string + requestUrl: string + userIp: string + userAgent: string + beginTime: Date + endTIme: Date + duration: number + resultCode: number + resultMsg: string + createTime: Date +} + +// 查询列表API 访问日志 +export const getApiAccessLogPage = (params: PageParam) => { + return request.get({ url: '/infra/api-access-log/page', params }) +} + +// 导出API 访问日志 +export const exportApiAccessLog = (params) => { + return request.download({ url: '/infra/api-access-log/export-excel', params }) +} diff --git a/src/api/infra/apiErrorLog/index.ts b/src/api/infra/apiErrorLog/index.ts new file mode 100644 index 0000000..59ee214 --- /dev/null +++ b/src/api/infra/apiErrorLog/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' + +export interface ApiErrorLogVO { + id: number + traceId: string + userId: number + userType: number + applicationName: string + requestMethod: string + requestParams: string + requestUrl: string + userIp: string + userAgent: string + exceptionTime: Date + exceptionName: string + exceptionMessage: string + exceptionRootCauseMessage: string + exceptionStackTrace: string + exceptionClassName: string + exceptionFileName: string + exceptionMethodName: string + exceptionLineNumber: number + processUserId: number + processStatus: number + processTime: Date + resultCode: number + createTime: Date +} + +// 查询列表API 访问日志 +export const getApiErrorLogPage = (params: PageParam) => { + return request.get({ url: '/infra/api-error-log/page', params }) +} + +// 更新 API 错误日志的处理状态 +export const updateApiErrorLogPage = (id: number, processStatus: number) => { + return request.put({ + url: '/infra/api-error-log/update-status?id=' + id + '&processStatus=' + processStatus + }) +} + +// 导出API 访问日志 +export const exportApiErrorLog = (params) => { + return request.download({ + url: '/infra/api-error-log/export-excel', + params + }) +} diff --git a/src/api/infra/codegen/index.ts b/src/api/infra/codegen/index.ts new file mode 100644 index 0000000..64701ef --- /dev/null +++ b/src/api/infra/codegen/index.ts @@ -0,0 +1,123 @@ +import request from '@/config/axios' + +export type CodegenTableVO = { + id: number + tableId: number + isParentMenuIdValid: boolean + dataSourceConfigId: number + scene: number + tableName: string + tableComment: string + remark: string + moduleName: string + businessName: string + className: string + classComment: string + author: string + createTime: Date + updateTime: Date + templateType: number + parentMenuId: number +} + +export type CodegenColumnVO = { + id: number + tableId: number + columnName: string + dataType: string + columnComment: string + nullable: number + primaryKey: number + autoIncrement: string + ordinalPosition: number + javaType: string + javaField: string + dictType: string + example: string + createOperation: number + updateOperation: number + listOperation: number + listOperationCondition: string + listOperationResult: number + htmlType: string +} + +export type DatabaseTableVO = { + name: string + comment: string +} + +export type CodegenDetailVO = { + table: CodegenTableVO + columns: CodegenColumnVO[] +} + +export type CodegenPreviewVO = { + filePath: string + code: string +} + +export type CodegenUpdateReqVO = { + table: CodegenTableVO | any + columns: CodegenColumnVO[] +} + +export type CodegenCreateListReqVO = { + dataSourceConfigId: number + tableNames: string[] +} + +// 查询列表代码生成表定义 +export const getCodegenTablePage = (params: PageParam) => { + return request.get({ url: '/infra/codegen/table/page', params }) +} + +// 查询详情代码生成表定义 +export const getCodegenTable = (id: number) => { + return request.get({ url: '/infra/codegen/detail?tableId=' + id }) +} + +// 新增代码生成表定义 +export const createCodegenTable = (data: CodegenCreateListReqVO) => { + return request.post({ url: '/infra/codegen/create', data }) +} + +// 修改代码生成表定义 +export const updateCodegenTable = (data: CodegenUpdateReqVO) => { + return request.put({ url: '/infra/codegen/update', data }) +} + +// 基于数据库的表结构,同步数据库的表和字段定义 +export const syncCodegenFromDB = (id: number) => { + return request.put({ url: '/infra/codegen/sync-from-db?tableId=' + id }) +} + +// 基于 SQL 建表语句,同步数据库的表和字段定义 +export const syncCodegenFromSQL = (id: number, sql: string) => { + return request.put({ url: '/infra/codegen/sync-from-sql?tableId=' + id + '&sql=' + sql }) +} + +// 预览生成代码 +export const previewCodegen = (id: number) => { + return request.get({ url: '/infra/codegen/preview?tableId=' + id }) +} + +// 下载生成代码 +export const downloadCodegen = (id: number) => { + return request.download({ url: '/infra/codegen/download?tableId=' + id }) +} + +// 获得表定义 +export const getSchemaTableList = (params) => { + return request.get({ url: '/infra/codegen/db/table/list', params }) +} + +// 基于数据库的表结构,创建代码生成器的表定义 +export const createCodegenList = (data) => { + return request.post({ url: '/infra/codegen/create-list', data }) +} + +// 删除代码生成表定义 +export const deleteCodegenTable = (id: number) => { + return request.delete({ url: '/infra/codegen/delete?tableId=' + id }) +} diff --git a/src/api/infra/config/index.ts b/src/api/infra/config/index.ts new file mode 100644 index 0000000..5ef59f3 --- /dev/null +++ b/src/api/infra/config/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' + +export interface ConfigVO { + id: number | undefined + category: string + name: string + key: string + value: string + type: number + visible: boolean + remark: string + createTime: Date +} + +// 查询参数列表 +export const getConfigPage = (params: PageParam) => { + return request.get({ url: '/infra/config/page', params }) +} + +// 查询参数详情 +export const getConfig = (id: number) => { + return request.get({ url: '/infra/config/get?id=' + id }) +} + +// 根据参数键名查询参数值 +export const getConfigKey = (configKey: string) => { + return request.get({ url: '/infra/config/get-value-by-key?key=' + configKey }) +} + +// 新增参数 +export const createConfig = (data: ConfigVO) => { + return request.post({ url: '/infra/config/create', data }) +} + +// 修改参数 +export const updateConfig = (data: ConfigVO) => { + return request.put({ url: '/infra/config/update', data }) +} + +// 删除参数 +export const deleteConfig = (id: number) => { + return request.delete({ url: '/infra/config/delete?id=' + id }) +} + +// 导出参数 +export const exportConfig = (params) => { + return request.download({ url: '/infra/config/export', params }) +} diff --git a/src/api/infra/dataSourceConfig/index.ts b/src/api/infra/dataSourceConfig/index.ts new file mode 100644 index 0000000..b413f34 --- /dev/null +++ b/src/api/infra/dataSourceConfig/index.ts @@ -0,0 +1,35 @@ +import request from '@/config/axios' + +export interface DataSourceConfigVO { + id: number | undefined + name: string + url: string + username: string + password: string + createTime?: Date +} + +// 新增数据源配置 +export const createDataSourceConfig = (data: DataSourceConfigVO) => { + return request.post({ url: '/infra/data-source-config/create', data }) +} + +// 修改数据源配置 +export const updateDataSourceConfig = (data: DataSourceConfigVO) => { + return request.put({ url: '/infra/data-source-config/update', data }) +} + +// 删除数据源配置 +export const deleteDataSourceConfig = (id: number) => { + return request.delete({ url: '/infra/data-source-config/delete?id=' + id }) +} + +// 查询数据源配置详情 +export const getDataSourceConfig = (id: number) => { + return request.get({ url: '/infra/data-source-config/get?id=' + id }) +} + +// 查询数据源配置列表 +export const getDataSourceConfigList = () => { + return request.get({ url: '/infra/data-source-config/list' }) +} diff --git a/src/api/infra/dbDoc/index.ts b/src/api/infra/dbDoc/index.ts new file mode 100644 index 0000000..1a1a36b --- /dev/null +++ b/src/api/infra/dbDoc/index.ts @@ -0,0 +1,16 @@ +import request from '@/config/axios' + +// 导出Html +export const exportHtml = () => { + return request.download({ url: '/infra/db-doc/export-html' }) +} + +// 导出Word +export const exportWord = () => { + return request.download({ url: '/infra/db-doc/export-word' }) +} + +// 导出Markdown +export const exportMarkdown = () => { + return request.download({ url: '/infra/db-doc/export-markdown' }) +} diff --git a/src/api/infra/file/index.ts b/src/api/infra/file/index.ts new file mode 100644 index 0000000..f64bc0d --- /dev/null +++ b/src/api/infra/file/index.ts @@ -0,0 +1,17 @@ +import request from '@/config/axios' + +export interface FilePageReqVO extends PageParam { + path?: string + type?: string + createTime?: Date[] +} + +// 查询文件列表 +export const getFilePage = (params: FilePageReqVO) => { + return request.get({ url: '/infra/file/page', params }) +} + +// 删除文件 +export const deleteFile = (id: number) => { + return request.delete({ url: '/infra/file/delete?id=' + id }) +} diff --git a/src/api/infra/fileConfig/index.ts b/src/api/infra/fileConfig/index.ts new file mode 100644 index 0000000..b72f18b --- /dev/null +++ b/src/api/infra/fileConfig/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +export interface FileClientConfig { + basePath: string + host?: string + port?: number + username?: string + password?: string + mode?: string + endpoint?: string + bucket?: string + accessKey?: string + accessSecret?: string + domain: string +} + +export interface FileConfigVO { + id: number + name: string + storage: any + master: boolean + visible: boolean + config: FileClientConfig + remark: string + createTime: Date +} + +// 查询文件配置列表 +export const getFileConfigPage = (params: PageParam) => { + return request.get({ url: '/infra/file-config/page', params }) +} + +// 查询文件配置详情 +export const getFileConfig = (id: number) => { + return request.get({ url: '/infra/file-config/get?id=' + id }) +} + +// 更新文件配置为主配置 +export const updateFileConfigMaster = (id: number) => { + return request.put({ url: '/infra/file-config/update-master?id=' + id }) +} + +// 新增文件配置 +export const createFileConfig = (data: FileConfigVO) => { + return request.post({ url: '/infra/file-config/create', data }) +} + +// 修改文件配置 +export const updateFileConfig = (data: FileConfigVO) => { + return request.put({ url: '/infra/file-config/update', data }) +} + +// 删除文件配置 +export const deleteFileConfig = (id: number) => { + return request.delete({ url: '/infra/file-config/delete?id=' + id }) +} + +// 测试文件配置 +export const testFileConfig = (id: number) => { + return request.get({ url: '/infra/file-config/test?id=' + id }) +} diff --git a/src/api/infra/job/index.ts b/src/api/infra/job/index.ts new file mode 100644 index 0000000..033b2cb --- /dev/null +++ b/src/api/infra/job/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface JobVO { + id: number + name: string + status: number + handlerName: string + handlerParam: string + cronExpression: string + retryCount: number + retryInterval: number + monitorTimeout: number + createTime: Date +} + +// 任务列表 +export const getJobPage = (params: PageParam) => { + return request.get({ url: '/infra/job/page', params }) +} + +// 任务详情 +export const getJob = (id: number) => { + return request.get({ url: '/infra/job/get?id=' + id }) +} + +// 新增任务 +export const createJob = (data: JobVO) => { + return request.post({ url: '/infra/job/create', data }) +} + +// 修改定时任务调度 +export const updateJob = (data: JobVO) => { + return request.put({ url: '/infra/job/update', data }) +} + +// 删除定时任务调度 +export const deleteJob = (id: number) => { + return request.delete({ url: '/infra/job/delete?id=' + id }) +} + +// 导出定时任务调度 +export const exportJob = (params) => { + return request.download({ url: '/infra/job/export-excel', params }) +} + +// 任务状态修改 +export const updateJobStatus = (id: number, status: number) => { + const params = { + id, + status + } + return request.put({ url: '/infra/job/update-status', params }) +} + +// 定时任务立即执行一次 +export const runJob = (id: number) => { + return request.put({ url: '/infra/job/trigger?id=' + id }) +} + +// 获得定时任务的下 n 次执行时间 +export const getJobNextTimes = (id: number) => { + return request.get({ url: '/infra/job/get_next_times?id=' + id }) +} diff --git a/src/api/infra/jobLog/index.ts b/src/api/infra/jobLog/index.ts new file mode 100644 index 0000000..f429cd9 --- /dev/null +++ b/src/api/infra/jobLog/index.ts @@ -0,0 +1,33 @@ +import request from '@/config/axios' + +export interface JobLogVO { + id: number + jobId: number + handlerName: string + handlerParam: string + cronExpression: string + executeIndex: string + beginTime: string + endTime: string + duration: string + status: number + createTime: string +} + +// 任务日志列表 +export const getJobLogPage = (params: PageParam) => { + return request.get({ url: '/infra/job-log/page', params }) +} + +// 任务日志详情 +export const getJobLog = (id: number) => { + return request.get({ url: '/infra/job-log/get?id=' + id }) +} + +// 导出定时任务日志 +export const exportJobLog = (params) => { + return request.download({ + url: '/infra/job-log/export-excel', + params + }) +} diff --git a/src/api/infra/redis/index.ts b/src/api/infra/redis/index.ts new file mode 100644 index 0000000..f27be77 --- /dev/null +++ b/src/api/infra/redis/index.ts @@ -0,0 +1,8 @@ +import request from '@/config/axios' + +/** + * 获取redis 监控信息 + */ +export const getCache = () => { + return request.get({ url: '/infra/redis/get-monitor-info' }) +} diff --git a/src/api/infra/redis/types.ts b/src/api/infra/redis/types.ts new file mode 100644 index 0000000..548bfe9 --- /dev/null +++ b/src/api/infra/redis/types.ts @@ -0,0 +1,176 @@ +export interface RedisMonitorInfoVO { + info: RedisInfoVO + dbSize: number + commandStats: RedisCommandStatsVO[] +} + +export interface RedisInfoVO { + io_threaded_reads_processed: string + tracking_clients: string + uptime_in_seconds: string + cluster_connections: string + current_cow_size: string + maxmemory_human: string + aof_last_cow_size: string + master_replid2: string + mem_replication_backlog: string + aof_rewrite_scheduled: string + total_net_input_bytes: string + rss_overhead_ratio: string + hz: string + current_cow_size_age: string + redis_build_id: string + errorstat_BUSYGROUP: string + aof_last_bgrewrite_status: string + multiplexing_api: string + client_recent_max_output_buffer: string + allocator_resident: string + mem_fragmentation_bytes: string + aof_current_size: string + repl_backlog_first_byte_offset: string + tracking_total_prefixes: string + redis_mode: string + redis_git_dirty: string + aof_delayed_fsync: string + allocator_rss_bytes: string + repl_backlog_histlen: string + io_threads_active: string + rss_overhead_bytes: string + total_system_memory: string + loading: string + evicted_keys: string + maxclients: string + cluster_enabled: string + redis_version: string + repl_backlog_active: string + mem_aof_buffer: string + allocator_frag_bytes: string + io_threaded_writes_processed: string + instantaneous_ops_per_sec: string + used_memory_human: string + total_error_replies: string + role: string + maxmemory: string + used_memory_lua: string + rdb_current_bgsave_time_sec: string + used_memory_startup: string + used_cpu_sys_main_thread: string + lazyfree_pending_objects: string + aof_pending_bio_fsync: string + used_memory_dataset_perc: string + allocator_frag_ratio: string + arch_bits: string + used_cpu_user_main_thread: string + mem_clients_normal: string + expired_time_cap_reached_count: string + unexpected_error_replies: string + mem_fragmentation_ratio: string + aof_last_rewrite_time_sec: string + master_replid: string + aof_rewrite_in_progress: string + lru_clock: string + maxmemory_policy: string + run_id: string + latest_fork_usec: string + tracking_total_items: string + total_commands_processed: string + expired_keys: string + errorstat_ERR: string + used_memory: string + module_fork_in_progress: string + errorstat_WRONGPASS: string + aof_buffer_length: string + dump_payload_sanitizations: string + mem_clients_slaves: string + keyspace_misses: string + server_time_usec: string + executable: string + lazyfreed_objects: string + db0: string + used_memory_peak_human: string + keyspace_hits: string + rdb_last_cow_size: string + aof_pending_rewrite: string + used_memory_overhead: string + active_defrag_hits: string + tcp_port: string + uptime_in_days: string + used_memory_peak_perc: string + current_save_keys_processed: string + blocked_clients: string + total_reads_processed: string + expire_cycle_cpu_milliseconds: string + sync_partial_err: string + used_memory_scripts_human: string + aof_current_rewrite_time_sec: string + aof_enabled: string + process_supervised: string + master_repl_offset: string + used_memory_dataset: string + used_cpu_user: string + rdb_last_bgsave_status: string + tracking_total_keys: string + atomicvar_api: string + allocator_rss_ratio: string + client_recent_max_input_buffer: string + clients_in_timeout_table: string + aof_last_write_status: string + mem_allocator: string + used_memory_scripts: string + used_memory_peak: string + process_id: string + master_failover_state: string + errorstat_NOAUTH: string + used_cpu_sys: string + repl_backlog_size: string + connected_slaves: string + current_save_keys_total: string + gcc_version: string + total_system_memory_human: string + sync_full: string + connected_clients: string + module_fork_last_cow_size: string + total_writes_processed: string + allocator_active: string + total_net_output_bytes: string + pubsub_channels: string + current_fork_perc: string + active_defrag_key_hits: string + rdb_changes_since_last_save: string + instantaneous_input_kbps: string + used_memory_rss_human: string + configured_hz: string + expired_stale_perc: string + active_defrag_misses: string + used_cpu_sys_children: string + number_of_cached_scripts: string + sync_partial_ok: string + used_memory_lua_human: string + rdb_last_save_time: string + pubsub_patterns: string + slave_expires_tracked_keys: string + redis_git_sha1: string + used_memory_rss: string + rdb_last_bgsave_time_sec: string + os: string + mem_not_counted_for_evict: string + active_defrag_running: string + rejected_connections: string + aof_rewrite_buffer_length: string + total_forks: string + active_defrag_key_misses: string + allocator_allocated: string + aof_base_size: string + instantaneous_output_kbps: string + second_repl_offset: string + rdb_bgsave_in_progress: string + used_cpu_user_children: string + total_connections_received: string + migrate_cached_sockets: string +} + +export interface RedisCommandStatsVO { + command: string + calls: number + usec: number +} diff --git a/src/api/login/index.ts b/src/api/login/index.ts new file mode 100644 index 0000000..444f0f2 --- /dev/null +++ b/src/api/login/index.ts @@ -0,0 +1,72 @@ +import request from '@/config/axios' +import { getRefreshToken } from '@/utils/auth' +import type { UserLoginVO } from './types' + +export interface SmsCodeVO { + mobile: string + scene: number +} + +export interface SmsLoginVO { + mobile: string + code: string +} + +// 登录 +export const login = (data: UserLoginVO) => { + return request.post({ url: '/system/auth/login', data }) +} + +// 刷新访问令牌 +export const refreshToken = () => { + return request.post({ url: '/system/auth/refresh-token?refreshToken=' + getRefreshToken() }) +} + +// 使用租户名,获得租户编号 +export const getTenantIdByName = (name: string) => { + return request.get({ url: '/system/tenant/get-id-by-name?name=' + name }) +} + +// 登出 +export const loginOut = () => { + return request.post({ url: '/system/auth/logout' }) +} + +// 获取用户权限信息 +export const getInfo = () => { + return request.get({ url: '/system/auth/get-permission-info' }) +} + +//获取登录验证码 +export const sendSmsCode = (data: SmsCodeVO) => { + return request.post({ url: '/system/auth/send-sms-code', data }) +} + +// 短信验证码登录 +export const smsLogin = (data: SmsLoginVO) => { + return request.post({ url: '/system/auth/sms-login', data }) +} + +// 社交授权的跳转 +export const socialAuthRedirect = (type: number, redirectUri: string) => { + return request.get({ + url: '/system/auth/social-auth-redirect?type=' + type + '&redirectUri=' + redirectUri + }) +} +// 获取验证图片以及 token +export const getCode = (data) => { + return request.postOriginal({ url: 'system/captcha/get', data }) +} + +// 滑动或者点选验证 +export const reqCheck = (data) => { + return request.postOriginal({ url: 'system/captcha/check', data }) +} + +// 获取验证码 +export const getCodeImg = () => { + return request.get({ + url: 'system/captcha/captchaImage', headers: { + isToken: false + }}) +} \ No newline at end of file diff --git a/src/api/login/oauth2/index.ts b/src/api/login/oauth2/index.ts new file mode 100644 index 0000000..aef1820 --- /dev/null +++ b/src/api/login/oauth2/index.ts @@ -0,0 +1,41 @@ +import request from '@/config/axios' + +// 获得授权信息 +export const getAuthorize = (clientId: string) => { + return request.get({ url: '/system/oauth2/authorize?clientId=' + clientId }) +} + +// 发起授权 +export const authorize = ( + responseType: string, + clientId: string, + redirectUri: string, + state: string, + autoApprove: boolean, + checkedScopes: string[], + uncheckedScopes: string[] +) => { + // 构建 scopes + const scopes = {} + for (const scope of checkedScopes) { + scopes[scope] = true + } + for (const scope of uncheckedScopes) { + scopes[scope] = false + } + // 发起请求 + return request.post({ + url: '/system/oauth2/authorize', + headers: { + 'Content-type': 'application/x-www-form-urlencoded' + }, + params: { + response_type: responseType, + client_id: clientId, + redirect_uri: redirectUri, + state: state, + auto_approve: autoApprove, + scope: JSON.stringify(scopes) + } + }) +} diff --git a/src/api/login/types.ts b/src/api/login/types.ts new file mode 100644 index 0000000..b2173f7 --- /dev/null +++ b/src/api/login/types.ts @@ -0,0 +1,28 @@ +export type UserLoginVO = { + username: string + password: string + captchaVerification: string +} + +export type TokenType = { + id: number // 编号 + accessToken: string // 访问令牌 + refreshToken: string // 刷新令牌 + userId: number // 用户编号 + userType: number //用户类型 + clientId: string //客户端编号 + expiresTime: number //过期时间 +} + +export type UserVO = { + id: number + username: string + nickname: string + deptId: number + email: string + mobile: string + sex: number + avatar: string + loginIp: string + loginDate: string +} diff --git a/src/api/mes/index.ts b/src/api/mes/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/api/redis/index.ts b/src/api/redis/index.ts new file mode 100644 index 0000000..b716359 --- /dev/null +++ b/src/api/redis/index.ts @@ -0,0 +1,21 @@ +import request from '@/config/axios' + +export interface RedisVO { + key: string + value: string +} + +// 加入缓存 +export const addRedis = async (data:RedisVO) => { + return await request.post({ url: `/infra/redis/set`, data }) +} + +// 获取缓存 +export const getRedis = async (key) => { + return await request.get({ url: `/infra/redis/get?key=` + key}) +} + +// 删除物料清单 +export const deleteRedis = async (key) => { + return await request.delete({ url: `/infra/redis/delete?key=` + key}) +} \ No newline at end of file diff --git a/src/api/scp/index.ts b/src/api/scp/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/api/system/area/index.ts b/src/api/system/area/index.ts new file mode 100644 index 0000000..b7da941 --- /dev/null +++ b/src/api/system/area/index.ts @@ -0,0 +1,19 @@ +import request from '@/config/axios' + +// 获得地区树 +export const getAreaTree = async () => { + return await request.get({ url: '/system/area/tree' }) +} + +export const getChildrenArea = async (id: number) => { + return await request.get({ url: '/system/area/get-children?id=' + id }) +} + +export const getAreaListByIds = async (ids) => { + return await request.get({ url: '/system/area/get-by-ids?ids=' + ids }) +} + +// 获得 IP 对应的地区名 +export const getAreaByIp = async (ip: string) => { + return await request.get({ url: '/system/area/get-by-ip?ip=' + ip }) +} diff --git a/src/api/system/dept/index.ts b/src/api/system/dept/index.ts new file mode 100644 index 0000000..d995f13 --- /dev/null +++ b/src/api/system/dept/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +export interface DeptVO { + id?: number + name: string + parentId: number + status: number + sort: number + leaderUserId: number + phone: string + email: string + createTime: Date +} + +// 查询部门(精简)列表 +export const getSimpleDeptList = async (): Promise => { + return await request.get({ url: '/system/dept/list-all-simple' }) +} + +// 查询部门列表 +export const getDeptPage = async (params: PageParam) => { + return await request.get({ url: '/system/dept/list', params }) +} + +// 查询部门详情 +export const getDept = async (id: number) => { + return await request.get({ url: '/system/dept/get?id=' + id }) +} + +// 新增部门 +export const createDept = async (data: DeptVO) => { + return await request.post({ url: '/system/dept/create', data: data }) +} + +// 修改部门 +export const updateDept = async (params: DeptVO) => { + return await request.put({ url: '/system/dept/update', data: params }) +} + +// 删除部门 +export const deleteDept = async (id: number) => { + return await request.delete({ url: '/system/dept/delete?id=' + id }) +} diff --git a/src/api/system/dict/dict.data.ts b/src/api/system/dict/dict.data.ts new file mode 100644 index 0000000..87e7dce --- /dev/null +++ b/src/api/system/dict/dict.data.ts @@ -0,0 +1,49 @@ +import request from '@/config/axios' + +export type DictDataVO = { + id: number | undefined + sort: number | undefined + label: string + value: string + dictType: string + status: number + colorType: string + cssClass: string + remark: string + createTime: Date +} + +// 查询字典数据(精简)列表 +export const listSimpleDictData = () => { + return request.get({ url: '/system/dict-data/list-all-simple' }) +} + +// 查询字典数据列表 +export const getDictDataPage = (params: PageParam) => { + return request.get({ url: '/system/dict-data/page', params }) +} + +// 查询字典数据详情 +export const getDictData = (id: number) => { + return request.get({ url: '/system/dict-data/get?id=' + id }) +} + +// 新增字典数据 +export const createDictData = (data: DictDataVO) => { + return request.post({ url: '/system/dict-data/create', data }) +} + +// 修改字典数据 +export const updateDictData = (data: DictDataVO) => { + return request.put({ url: '/system/dict-data/update', data }) +} + +// 删除字典数据 +export const deleteDictData = (id: number) => { + return request.delete({ url: '/system/dict-data/delete?id=' + id }) +} + +// 导出字典类型数据 +export const exportDictData = (params) => { + return request.get({ url: '/system/dict-data/export', params }) +} diff --git a/src/api/system/dict/dict.type.ts b/src/api/system/dict/dict.type.ts new file mode 100644 index 0000000..ed2969f --- /dev/null +++ b/src/api/system/dict/dict.type.ts @@ -0,0 +1,44 @@ +import request from '@/config/axios' + +export type DictTypeVO = { + id: number | undefined + name: string + type: string + status: number + remark: string + createTime: Date +} + +// 查询字典(精简)列表 +export const getSimpleDictTypeList = () => { + return request.get({ url: '/system/dict-type/list-all-simple' }) +} + +// 查询字典列表 +export const getDictTypePage = (params: PageParam) => { + return request.get({ url: '/system/dict-type/page', params }) +} + +// 查询字典详情 +export const getDictType = (id: number) => { + return request.get({ url: '/system/dict-type/get?id=' + id }) +} + +// 新增字典 +export const createDictType = (data: DictTypeVO) => { + return request.post({ url: '/system/dict-type/create', data }) +} + +// 修改字典 +export const updateDictType = (data: DictTypeVO) => { + return request.put({ url: '/system/dict-type/update', data }) +} + +// 删除字典 +export const deleteDictType = (id: number) => { + return request.delete({ url: '/system/dict-type/delete?id=' + id }) +} +// 导出字典类型 +export const exportDictType = (params) => { + return request.get({ url: '/system/dict-type/export', params }) +} diff --git a/src/api/system/errorCode/index.ts b/src/api/system/errorCode/index.ts new file mode 100644 index 0000000..8a86a63 --- /dev/null +++ b/src/api/system/errorCode/index.ts @@ -0,0 +1,40 @@ +import request from '@/config/axios' + +export interface ErrorCodeVO { + id: number | undefined + type: number + applicationName: string + code: number | undefined + message: string + memo: string + createTime: Date +} + +// 查询错误码列表 +export const getErrorCodePage = (params: PageParam) => { + return request.get({ url: '/system/error-code/page', params }) +} + +// 查询错误码详情 +export const getErrorCode = (id: number) => { + return request.get({ url: '/system/error-code/get?id=' + id }) +} + +// 新增错误码 +export const createErrorCode = (data: ErrorCodeVO) => { + return request.post({ url: '/system/error-code/create', data }) +} + +// 修改错误码 +export const updateErrorCode = (data: ErrorCodeVO) => { + return request.put({ url: '/system/error-code/update', data }) +} + +// 删除错误码 +export const deleteErrorCode = (id: number) => { + return request.delete({ url: '/system/error-code/delete?id=' + id }) +} +// 导出错误码 +export const excelErrorCode = (params) => { + return request.download({ url: '/system/error-code/export-excel', params }) +} diff --git a/src/api/system/loginLog/index.ts b/src/api/system/loginLog/index.ts new file mode 100644 index 0000000..f275c3e --- /dev/null +++ b/src/api/system/loginLog/index.ts @@ -0,0 +1,24 @@ +import request from '@/config/axios' + +export interface LoginLogVO { + id: number + logType: number + traceId: number + userId: number + userType: number + username: string + status: number + userIp: string + userAgent: string + createTime: Date +} + +// 查询登录日志列表 +export const getLoginLogPage = (params: PageParam) => { + return request.get({ url: '/system/login-log/page', params }) +} + +// 导出登录日志 +export const exportLoginLog = (params) => { + return request.download({ url: '/system/login-log/export', params }) +} diff --git a/src/api/system/mail/account/index.ts b/src/api/system/mail/account/index.ts new file mode 100644 index 0000000..9e10c92 --- /dev/null +++ b/src/api/system/mail/account/index.ts @@ -0,0 +1,41 @@ +import request from '@/config/axios' + +export interface MailAccountVO { + id: number + mail: string + username: string + password: string + host: string + port: number + sslEnable: boolean +} + +// 查询邮箱账号列表 +export const getMailAccountPage = async (params: PageParam) => { + return await request.get({ url: '/system/mail-account/page', params }) +} + +// 查询邮箱账号详情 +export const getMailAccount = async (id: number) => { + return await request.get({ url: '/system/mail-account/get?id=' + id }) +} + +// 新增邮箱账号 +export const createMailAccount = async (data: MailAccountVO) => { + return await request.post({ url: '/system/mail-account/create', data }) +} + +// 修改邮箱账号 +export const updateMailAccount = async (data: MailAccountVO) => { + return await request.put({ url: '/system/mail-account/update', data }) +} + +// 删除邮箱账号 +export const deleteMailAccount = async (id: number) => { + return await request.delete({ url: '/system/mail-account/delete?id=' + id }) +} + +// 获得邮箱账号精简列表 +export const getSimpleMailAccountList = async () => { + return request.get({ url: '/system/mail-account/list-all-simple' }) +} diff --git a/src/api/system/mail/log/index.ts b/src/api/system/mail/log/index.ts new file mode 100644 index 0000000..13172a7 --- /dev/null +++ b/src/api/system/mail/log/index.ts @@ -0,0 +1,30 @@ +import request from '@/config/axios' + +export interface MailLogVO { + id: number + userId: number + userType: number + toMail: string + accountId: number + fromMail: string + templateId: number + templateCode: string + templateNickname: string + templateTitle: string + templateContent: string + templateParams: string + sendStatus: number + sendTime: Date + sendMessageId: string + sendException: string +} + +// 查询邮件日志列表 +export const getMailLogPage = async (params: PageParam) => { + return await request.get({ url: '/system/mail-log/page', params }) +} + +// 查询邮件日志详情 +export const getMailLog = async (id: number) => { + return await request.get({ url: '/system/mail-log/get?id=' + id }) +} diff --git a/src/api/system/mail/template/index.ts b/src/api/system/mail/template/index.ts new file mode 100644 index 0000000..fb7ce5e --- /dev/null +++ b/src/api/system/mail/template/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +export interface MailTemplateVO { + id: number + name: string + code: string + accountId: number + nickname: string + title: string + content: string + params: string + status: number + remark: string +} + +export interface MailSendReqVO { + mail: string + templateCode: string + templateParams: Map +} + +// 查询邮件模版列表 +export const getMailTemplatePage = async (params: PageParam) => { + return await request.get({ url: '/system/mail-template/page', params }) +} + +// 查询邮件模版详情 +export const getMailTemplate = async (id: number) => { + return await request.get({ url: '/system/mail-template/get?id=' + id }) +} + +// 新增邮件模版 +export const createMailTemplate = async (data: MailTemplateVO) => { + return await request.post({ url: '/system/mail-template/create', data }) +} + +// 修改邮件模版 +export const updateMailTemplate = async (data: MailTemplateVO) => { + return await request.put({ url: '/system/mail-template/update', data }) +} + +// 删除邮件模版 +export const deleteMailTemplate = async (id: number) => { + return await request.delete({ url: '/system/mail-template/delete?id=' + id }) +} + +// 发送邮件 +export const sendMail = (data: MailSendReqVO) => { + return request.post({ url: '/system/mail-template/send-mail', data }) +} diff --git a/src/api/system/menu/index.ts b/src/api/system/menu/index.ts new file mode 100644 index 0000000..4bb9a87 --- /dev/null +++ b/src/api/system/menu/index.ts @@ -0,0 +1,49 @@ +import request from '@/config/axios' + +export interface MenuVO { + id: number + name: string + permission: string + type: number + sort: number + parentId: number + path: string + icon: string + component: string + componentName?: string + status: number + visible: boolean + keepAlive: boolean + alwaysShow?: boolean + createTime: Date +} + +// 查询菜单(精简)列表 +export const getSimpleMenusList = () => { + return request.get({ url: '/system/menu/list-all-simple' }) +} + +// 查询菜单列表 +export const getMenuList = (params) => { + return request.get({ url: '/system/menu/list', params }) +} + +// 获取菜单详情 +export const getMenu = (id: number) => { + return request.get({ url: '/system/menu/get?id=' + id }) +} + +// 新增菜单 +export const createMenu = (data: MenuVO) => { + return request.post({ url: '/system/menu/create', data }) +} + +// 修改菜单 +export const updateMenu = (data: MenuVO) => { + return request.put({ url: '/system/menu/update', data }) +} + +// 删除菜单 +export const deleteMenu = (id: number) => { + return request.delete({ url: '/system/menu/delete?id=' + id }) +} diff --git a/src/api/system/notice/index.ts b/src/api/system/notice/index.ts new file mode 100644 index 0000000..62bf525 --- /dev/null +++ b/src/api/system/notice/index.ts @@ -0,0 +1,37 @@ +import request from '@/config/axios' + +export interface NoticeVO { + id: number | undefined + title: string + type: number + content: string + status: number + remark: string + creator: string + createTime: Date +} + +// 查询公告列表 +export const getNoticePage = (params: PageParam) => { + return request.get({ url: '/system/notice/page', params }) +} + +// 查询公告详情 +export const getNotice = (id: number) => { + return request.get({ url: '/system/notice/get?id=' + id }) +} + +// 新增公告 +export const createNotice = (data: NoticeVO) => { + return request.post({ url: '/system/notice/create', data }) +} + +// 修改公告 +export const updateNotice = (data: NoticeVO) => { + return request.put({ url: '/system/notice/update', data }) +} + +// 删除公告 +export const deleteNotice = (id: number) => { + return request.delete({ url: '/system/notice/delete?id=' + id }) +} diff --git a/src/api/system/notify/message/index.ts b/src/api/system/notify/message/index.ts new file mode 100644 index 0000000..29036b9 --- /dev/null +++ b/src/api/system/notify/message/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' +import qs from 'qs' + +export interface NotifyMessageVO { + id: number + userId: number + userType: number + templateId: number + templateCode: string + templateNickname: string + templateContent: string + templateType: number + templateParams: string + readStatus: boolean + readTime: Date +} + +// 查询站内信消息列表 +export const getNotifyMessagePage = async (params: PageParam) => { + return await request.get({ url: '/system/notify-message/page', params }) +} + +// 获得我的站内信分页 +export const getMyNotifyMessagePage = async (params: PageParam) => { + return await request.get({ url: '/system/notify-message/my-page', params }) +} + +// 批量标记已读 +export const updateNotifyMessageRead = async (ids) => { + return await request.put({ + url: '/system/notify-message/update-read?' + qs.stringify({ ids: ids }, { indices: false }) + }) +} + +// 标记所有站内信为已读 +export const updateAllNotifyMessageRead = async () => { + return await request.put({ url: '/system/notify-message/update-all-read' }) +} + +// 获取当前用户的最新站内信列表 +export const getUnreadNotifyMessageList = async () => { + return await request.get({ url: '/system/notify-message/get-unread-list' }) +} + +// 获得当前用户的未读站内信数量 +export const getUnreadNotifyMessageCount = async () => { + return await request.get({ url: '/system/notify-message/get-unread-count' }) +} diff --git a/src/api/system/notify/template/index.ts b/src/api/system/notify/template/index.ts new file mode 100644 index 0000000..cd0e122 --- /dev/null +++ b/src/api/system/notify/template/index.ts @@ -0,0 +1,49 @@ +import request from '@/config/axios' + +export interface NotifyTemplateVO { + id?: number + name: string + nickname: string + code: string + content: string + type: number + params: string + status: number + remark: string +} + +export interface NotifySendReqVO { + userId: number | null + templateCode: string + templateParams: Map +} + +// 查询站内信模板列表 +export const getNotifyTemplatePage = async (params: PageParam) => { + return await request.get({ url: '/system/notify-template/page', params }) +} + +// 查询站内信模板详情 +export const getNotifyTemplate = async (id: number) => { + return await request.get({ url: '/system/notify-template/get?id=' + id }) +} + +// 新增站内信模板 +export const createNotifyTemplate = async (data: NotifyTemplateVO) => { + return await request.post({ url: '/system/notify-template/create', data }) +} + +// 修改站内信模板 +export const updateNotifyTemplate = async (data: NotifyTemplateVO) => { + return await request.put({ url: '/system/notify-template/update', data }) +} + +// 删除站内信模板 +export const deleteNotifyTemplate = async (id: number) => { + return await request.delete({ url: '/system/notify-template/delete?id=' + id }) +} + +// 发送站内信 +export const sendNotify = (data: NotifySendReqVO) => { + return request.post({ url: '/system/notify-template/send-notify', data }) +} diff --git a/src/api/system/oauth2/client.ts b/src/api/system/oauth2/client.ts new file mode 100644 index 0000000..6f71aca --- /dev/null +++ b/src/api/system/oauth2/client.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +export interface OAuth2ClientVO { + id: number + clientId: string + secret: string + name: string + logo: string + description: string + status: number + accessTokenValiditySeconds: number + refreshTokenValiditySeconds: number + redirectUris: string[] + autoApprove: boolean + authorizedGrantTypes: string[] + scopes: string[] + authorities: string[] + resourceIds: string[] + additionalInformation: string + isAdditionalInformationJson: boolean + createTime: Date +} + +// 查询 OAuth2 客户端的列表 +export const getOAuth2ClientPage = (params: PageParam) => { + return request.get({ url: '/system/oauth2-client/page', params }) +} + +// 查询 OAuth2 客户端的详情 +export const getOAuth2Client = (id: number) => { + return request.get({ url: '/system/oauth2-client/get?id=' + id }) +} + +// 新增 OAuth2 客户端 +export const createOAuth2Client = (data: OAuth2ClientVO) => { + return request.post({ url: '/system/oauth2-client/create', data }) +} + +// 修改 OAuth2 客户端 +export const updateOAuth2Client = (data: OAuth2ClientVO) => { + return request.put({ url: '/system/oauth2-client/update', data }) +} + +// 删除 OAuth2 +export const deleteOAuth2Client = (id: number) => { + return request.delete({ url: '/system/oauth2-client/delete?id=' + id }) +} diff --git a/src/api/system/oauth2/token.ts b/src/api/system/oauth2/token.ts new file mode 100644 index 0000000..ac89ae8 --- /dev/null +++ b/src/api/system/oauth2/token.ts @@ -0,0 +1,22 @@ +import request from '@/config/axios' + +export interface OAuth2TokenVO { + id: number + accessToken: string + refreshToken: string + userId: number + userType: number + clientId: string + createTime: Date + expiresTime: Date +} + +// 查询 token列表 +export const getAccessTokenPage = (params: PageParam) => { + return request.get({ url: '/system/oauth2-token/page', params }) +} + +// 删除 token +export const deleteAccessToken = (accessToken: string) => { + return request.delete({ url: '/system/oauth2-token/delete?accessToken=' + accessToken }) +} diff --git a/src/api/system/operatelog/index.ts b/src/api/system/operatelog/index.ts new file mode 100644 index 0000000..848a533 --- /dev/null +++ b/src/api/system/operatelog/index.ts @@ -0,0 +1,33 @@ +import request from '@/config/axios' + +export type OperateLogVO = { + id: number + userNickname: string + traceId: string + userId: number + module: string + name: string + type: number + content: string + exts: Map + requestMethod: string + requestUrl: string + userIp: string + userAgent: string + javaMethod: string + javaMethodArgs: string + startTime: Date + duration: number + resultCode: number + resultMsg: string + resultData: string +} + +// 查询操作日志列表 +export const getOperateLogPage = (params: PageParam) => { + return request.get({ url: '/system/operate-log/page', params }) +} +// 导出操作日志 +export const exportOperateLog = (params) => { + return request.download({ url: '/system/operate-log/export', params }) +} diff --git a/src/api/system/permission/index.ts b/src/api/system/permission/index.ts new file mode 100644 index 0000000..b3c7696 --- /dev/null +++ b/src/api/system/permission/index.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +export interface PermissionAssignUserRoleReqVO { + userId: number + roleIds: number[] +} + +export interface PermissionAssignRoleMenuReqVO { + roleId: number + menuIds: number[] +} + +export interface PermissionAssignRoleDataScopeReqVO { + roleId: number + dataScope: number + dataScopeDeptIds: number[] +} + +// 查询角色拥有的菜单权限 +export const getRoleMenuList = async (roleId: number) => { + return await request.get({ url: '/system/permission/list-role-menus?roleId=' + roleId }) +} + +// 赋予角色菜单权限 +export const assignRoleMenu = async (data: PermissionAssignRoleMenuReqVO) => { + return await request.post({ url: '/system/permission/assign-role-menu', data }) +} + +// 赋予角色数据权限 +export const assignRoleDataScope = async (data: PermissionAssignRoleDataScopeReqVO) => { + return await request.post({ url: '/system/permission/assign-role-data-scope', data }) +} + +// 查询用户拥有的角色数组 +export const getUserRoleList = async (userId: number) => { + return await request.get({ url: '/system/permission/list-user-roles?userId=' + userId }) +} + +// 赋予用户角色 +export const assignUserRole = async (data: PermissionAssignUserRoleReqVO) => { + return await request.post({ url: '/system/permission/assign-user-role', data }) +} diff --git a/src/api/system/post/index.ts b/src/api/system/post/index.ts new file mode 100644 index 0000000..405db38 --- /dev/null +++ b/src/api/system/post/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +export interface PostVO { + id?: number + name: string + code: string + sort: number + status: number + remark: string + createTime?: Date +} + +// 查询岗位列表 +export const getPostPage = async (params: PageParam) => { + return await request.get({ url: '/system/post/page', params }) +} + +// 获取岗位精简信息列表 +export const getSimplePostList = async (): Promise => { + return await request.get({ url: '/system/post/list-all-simple' }) +} + +// 查询岗位详情 +export const getPost = async (id: number) => { + return await request.get({ url: '/system/post/get?id=' + id }) +} + +// 新增岗位 +export const createPost = async (data: PostVO) => { + return await request.post({ url: '/system/post/create', data }) +} + +// 修改岗位 +export const updatePost = async (data: PostVO) => { + return await request.put({ url: '/system/post/update', data }) +} + +// 删除岗位 +export const deletePost = async (id: number) => { + return await request.delete({ url: '/system/post/delete?id=' + id }) +} + +// 导出岗位 +export const exportPost = async (params) => { + return await request.download({ url: '/system/post/export', params }) +} diff --git a/src/api/system/role/index.ts b/src/api/system/role/index.ts new file mode 100644 index 0000000..93636ff --- /dev/null +++ b/src/api/system/role/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +export interface RoleVO { + id: number + name: string + code: string + sort: number + status: number + type: number + dataScope: number + dataScopeDeptIds: number[] + createTime: Date +} + +export interface UpdateStatusReqVO { + id: number + status: number +} + +// 查询角色列表 +export const getRolePage = async (params: PageParam) => { + return await request.get({ url: '/system/role/page', params }) +} + +// 查询角色(精简)列表 +export const getSimpleRoleList = async (): Promise => { + return await request.get({ url: '/system/role/list-all-simple' }) +} + +// 查询角色详情 +export const getRole = async (id: number) => { + return await request.get({ url: '/system/role/get?id=' + id }) +} + +// 新增角色 +export const createRole = async (data: RoleVO) => { + return await request.post({ url: '/system/role/create', data }) +} + +// 修改角色 +export const updateRole = async (data: RoleVO) => { + return await request.put({ url: '/system/role/update', data }) +} + +// 修改角色状态 +export const updateRoleStatus = async (data: UpdateStatusReqVO) => { + return await request.put({ url: '/system/role/update-status', data }) +} + +// 删除角色 +export const deleteRole = async (id: number) => { + return await request.delete({ url: '/system/role/delete?id=' + id }) +} + +// 导出角色 +export const exportRole = (params) => { + return request.download({ + url: '/system/role/export-excel', + params + }) +} diff --git a/src/api/system/sensitiveWord/index.ts b/src/api/system/sensitiveWord/index.ts new file mode 100644 index 0000000..1116226 --- /dev/null +++ b/src/api/system/sensitiveWord/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' +import qs from 'qs' + +export interface SensitiveWordVO { + id: number + name: string + status: number + description: string + tags: string[] + createTime: Date +} + +export interface SensitiveWordTestReqVO { + text: string + tag: string[] +} + +// 查询敏感词列表 +export const getSensitiveWordPage = (params: PageParam) => { + return request.get({ url: '/system/sensitive-word/page', params }) +} + +// 查询敏感词详情 +export const getSensitiveWord = (id: number) => { + return request.get({ url: '/system/sensitive-word/get?id=' + id }) +} + +// 新增敏感词 +export const createSensitiveWord = (data: SensitiveWordVO) => { + return request.post({ url: '/system/sensitive-word/create', data }) +} + +// 修改敏感词 +export const updateSensitiveWord = (data: SensitiveWordVO) => { + return request.put({ url: '/system/sensitive-word/update', data }) +} + +// 删除敏感词 +export const deleteSensitiveWord = (id: number) => { + return request.delete({ url: '/system/sensitive-word/delete?id=' + id }) +} + +// 导出敏感词 +export const exportSensitiveWord = (params) => { + return request.download({ url: '/system/sensitive-word/export-excel', params }) +} + +// 获取所有敏感词的标签数组 +export const getSensitiveWordTagList = () => { + return request.get({ url: '/system/sensitive-word/get-tags' }) +} + +// 获得文本所包含的不合法的敏感词数组 +export const validateText = (query: SensitiveWordTestReqVO) => { + return request.get({ + url: '/system/sensitive-word/validate-text?' + qs.stringify(query, { arrayFormat: 'repeat' }) + }) +} diff --git a/src/api/system/serialNumber/index.ts b/src/api/system/serialNumber/index.ts new file mode 100644 index 0000000..33fa754 --- /dev/null +++ b/src/api/system/serialNumber/index.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +export interface SerialNumberVO { + id: number + ruleCode: string + ruleName: string + prefix: string + pattern: string + length: byte + separator: string + remark: string +} + +// 查询流水号规则列表 +export const getSerialNumberPage = async (params) => { + return await request.get({ url: `/system/serial-number/page`, params }) +} + +// 查询流水号规则详情 +export const getSerialNumber = async (id: number) => { + return await request.get({ url: `/system/serial-number/get?id=` + id }) +} + +// 新增流水号规则 +export const createSerialNumber = async (data: SerialNumberVO) => { + return await request.post({ url: `/system/serial-number/create`, data }) +} + +// 修改流水号规则 +export const updateSerialNumber = async (data: SerialNumberVO) => { + return await request.put({ url: `/system/serial-number/update`, data }) +} + +// 删除流水号规则 +export const deleteSerialNumber = async (id: number) => { + return await request.delete({ url: `/system/serial-number/delete?id=` + id }) +} + +// 导出流水号规则 Excel +export const exportSerialNumber = async (params) => { + return await request.download({ url: `/system/serial-number/export-excel`, params }) +} diff --git a/src/api/system/sms/smsChannel/index.ts b/src/api/system/sms/smsChannel/index.ts new file mode 100644 index 0000000..f335628 --- /dev/null +++ b/src/api/system/sms/smsChannel/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +export interface SmsChannelVO { + id: number + code: string + status: number + signature: string + remark: string + apiKey: string + apiSecret: string + callbackUrl: string + createTime: Date +} + +// 查询短信渠道列表 +export const getSmsChannelPage = (params: PageParam) => { + return request.get({ url: '/system/sms-channel/page', params }) +} + +// 获得短信渠道精简列表 +export function getSimpleSmsChannelList() { + return request.get({ url: '/system/sms-channel/list-all-simple' }) +} + +// 查询短信渠道详情 +export const getSmsChannel = (id: number) => { + return request.get({ url: '/system/sms-channel/get?id=' + id }) +} + +// 新增短信渠道 +export const createSmsChannel = (data: SmsChannelVO) => { + return request.post({ url: '/system/sms-channel/create', data }) +} + +// 修改短信渠道 +export const updateSmsChannel = (data: SmsChannelVO) => { + return request.put({ url: '/system/sms-channel/update', data }) +} + +// 删除短信渠道 +export const deleteSmsChannel = (id: number) => { + return request.delete({ url: '/system/sms-channel/delete?id=' + id }) +} diff --git a/src/api/system/sms/smsLog/index.ts b/src/api/system/sms/smsLog/index.ts new file mode 100644 index 0000000..3d54fac --- /dev/null +++ b/src/api/system/sms/smsLog/index.ts @@ -0,0 +1,39 @@ +import request from '@/config/axios' + +export interface SmsLogVO { + id: number | null + channelId: number | null + channelCode: string + templateId: number | null + templateCode: string + templateType: number | null + templateContent: string + templateParams: Map | null + apiTemplateId: string + mobile: string + userId: number | null + userType: number | null + sendStatus: number | null + sendTime: Date | null + sendCode: number | null + sendMsg: string + apiSendCode: string + apiSendMsg: string + apiRequestId: string + apiSerialNo: string + receiveStatus: number | null + receiveTime: Date | null + apiReceiveCode: string + apiReceiveMsg: string + createTime: Date | null +} + +// 查询短信日志列表 +export const getSmsLogPage = (params: PageParam) => { + return request.get({ url: '/system/sms-log/page', params }) +} + +// 导出短信日志 +export const exportSmsLog = (params) => { + return request.download({ url: '/system/sms-log/export-excel', params }) +} diff --git a/src/api/system/sms/smsTemplate/index.ts b/src/api/system/sms/smsTemplate/index.ts new file mode 100644 index 0000000..35cb489 --- /dev/null +++ b/src/api/system/sms/smsTemplate/index.ts @@ -0,0 +1,60 @@ +import request from '@/config/axios' + +export interface SmsTemplateVO { + id: number | null + type: number | null + status: number + code: string + name: string + content: string + remark: string + apiTemplateId: string + channelId: number | null + channelCode?: string + params?: string[] + createTime?: Date +} + +export interface SendSmsReqVO { + mobile: string + templateCode: string + templateParams: Map +} + +// 查询短信模板列表 +export const getSmsTemplatePage = (params: PageParam) => { + return request.get({ url: '/system/sms-template/page', params }) +} + +// 查询短信模板详情 +export const getSmsTemplate = (id: number) => { + return request.get({ url: '/system/sms-template/get?id=' + id }) +} + +// 新增短信模板 +export const createSmsTemplate = (data: SmsTemplateVO) => { + return request.post({ url: '/system/sms-template/create', data }) +} + +// 修改短信模板 +export const updateSmsTemplate = (data: SmsTemplateVO) => { + return request.put({ url: '/system/sms-template/update', data }) +} + +// 删除短信模板 +export const deleteSmsTemplate = (id: number) => { + return request.delete({ url: '/system/sms-template/delete?id=' + id }) +} + +// 导出短信模板 +export const exportSmsTemplate = (params) => { + return request.download({ + url: '/system/sms-template/export-excel', + params + }) +} + +// 发送短信 +export const sendSms = (data: SendSmsReqVO) => { + return request.post({ url: '/system/sms-template/send-sms', data }) +} diff --git a/src/api/system/sysconfig/index.ts b/src/api/system/sysconfig/index.ts new file mode 100644 index 0000000..148748e --- /dev/null +++ b/src/api/system/sysconfig/index.ts @@ -0,0 +1,60 @@ +import request from '@/utils/request' + +// 查询参数列表 +export function listConfig(query) { + return request({ + url: '/system/config/list', + method: 'get', + params: query + }) +} + +// 查询参数详细 +export function getConfig(configId) { + return request({ + url: '/system/config/' + configId, + method: 'get' + }) +} + +// 根据参数键名查询参数值 +export function getConfigKey(configKey) { + return request({ + url: '/system/config/configKey/' + configKey, + method: 'get' + }) +} + +// 新增参数配置 +export function addConfig(data) { + return request({ + url: '/system/config', + method: 'post', + data: data + }) +} + +// 修改参数配置 +export function updateConfig(data) { + return request({ + url: '/system/config', + method: 'put', + data: data + }) +} + +// 删除参数配置 +export function delConfig(configId) { + return request({ + url: '/system/config/' + configId, + method: 'delete' + }) +} + +// 刷新参数缓存 +export function refreshCache() { + return request({ + url: '/system/config/refreshCache', + method: 'delete' + }) +} \ No newline at end of file diff --git a/src/api/system/tenant/index.ts b/src/api/system/tenant/index.ts new file mode 100644 index 0000000..176c375 --- /dev/null +++ b/src/api/system/tenant/index.ts @@ -0,0 +1,62 @@ +import request from '@/config/axios' + +export interface TenantVO { + id: number + name: string + contactName: string + contactMobile: string + status: number + domain: string + packageId: number + username: string + password: string + expireTime: Date + accountCount: number + createTime: Date +} + +export interface TenantPageReqVO extends PageParam { + name?: string + contactName?: string + contactMobile?: string + status?: number + createTime?: Date[] +} + +export interface TenantExportReqVO { + name?: string + contactName?: string + contactMobile?: string + status?: number + createTime?: Date[] +} + +// 查询租户列表 +export const getTenantPage = (params: TenantPageReqVO) => { + return request.get({ url: '/system/tenant/page', params }) +} + +// 查询租户详情 +export const getTenant = (id: number) => { + return request.get({ url: '/system/tenant/get?id=' + id }) +} + +// 新增租户 +export const createTenant = (data: TenantVO) => { + return request.post({ url: '/system/tenant/create', data }) +} + +// 修改租户 +export const updateTenant = (data: TenantVO) => { + return request.put({ url: '/system/tenant/update', data }) +} + +// 删除租户 +export const deleteTenant = (id: number) => { + return request.delete({ url: '/system/tenant/delete?id=' + id }) +} + +// 导出租户 +export const exportTenant = (params: TenantExportReqVO) => { + return request.download({ url: '/system/tenant/export-excel', params }) +} diff --git a/src/api/system/tenantPackage/index.ts b/src/api/system/tenantPackage/index.ts new file mode 100644 index 0000000..01d139e --- /dev/null +++ b/src/api/system/tenantPackage/index.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +export interface TenantPackageVO { + id: number + name: string + status: number + remark: string + creator: string + updater: string + updateTime: string + menuIds: number[] + createTime: Date +} + +// 查询租户套餐列表 +export const getTenantPackagePage = (params: PageParam) => { + return request.get({ url: '/system/tenant-package/page', params }) +} + +// 获得租户 +export const getTenantPackage = (id: number) => { + return request.get({ url: '/system/tenant-package/get?id=' + id }) +} + +// 新增租户套餐 +export const createTenantPackage = (data: TenantPackageVO) => { + return request.post({ url: '/system/tenant-package/create', data }) +} + +// 修改租户套餐 +export const updateTenantPackage = (data: TenantPackageVO) => { + return request.put({ url: '/system/tenant-package/update', data }) +} + +// 删除租户套餐 +export const deleteTenantPackage = (id: number) => { + return request.delete({ url: '/system/tenant-package/delete?id=' + id }) +} +// 获取租户套餐精简信息列表 +export const getTenantPackageList = () => { + return request.get({ url: '/system/tenant-package/get-simple-list' }) +} diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts new file mode 100644 index 0000000..6224f0e --- /dev/null +++ b/src/api/system/user/index.ts @@ -0,0 +1,76 @@ +import request from '@/config/axios' + +export interface UserVO { + id: number + username: string + nickname: string + deptId: number + postIds: string[] + email: string + mobile: string + sex: number + avatar: string + loginIp: string + status: number + remark: string + loginDate: Date + createTime: Date +} + +// 查询用户管理列表 +export const getUserPage = (params: PageParam) => { + return request.get({ url: '/system/user/page', params }) +} + +// 查询用户详情 +export const getUser = (id: number) => { + return request.get({ url: '/system/user/get?id=' + id }) +} + +// 新增用户 +export const createUser = (data: UserVO) => { + return request.post({ url: '/system/user/create', data }) +} + +// 修改用户 +export const updateUser = (data: UserVO) => { + return request.put({ url: '/system/user/update', data }) +} + +// 删除用户 +export const deleteUser = (id: number) => { + return request.delete({ url: '/system/user/delete?id=' + id }) +} + +// 导出用户 +export const exportUser = (params) => { + return request.download({ url: '/system/user/export', params }) +} + +// 下载用户导入模板 +export const importUserTemplate = () => { + return request.download({ url: '/system/user/get-import-template' }) +} + +// 用户密码重置 +export const resetUserPwd = (id: number, password: string) => { + const data = { + id, + password + } + return request.put({ url: '/system/user/update-password', data: data }) +} + +// 用户状态修改 +export const updateUserStatus = (id: number, status: number) => { + const data = { + id, + status + } + return request.put({ url: '/system/user/update-status', data: data }) +} + +// 获取用户精简信息列表 +export const getSimpleUserList = (): Promise => { + return request.get({ url: '/system/user/list-all-simple' }) +} diff --git a/src/api/system/user/profile.ts b/src/api/system/user/profile.ts new file mode 100644 index 0000000..b2623c8 --- /dev/null +++ b/src/api/system/user/profile.ts @@ -0,0 +1,77 @@ +import request from '@/config/axios' + +export interface ProfileDept { + id: number + name: string +} +export interface ProfileRole { + id: number + name: string +} +export interface ProfilePost { + id: number + name: string +} +export interface SocialUser { + id: number + type: number + openid: string + token: string + rawTokenInfo: string + nickname: string + avatar: string + rawUserInfo: string + code: string + state: string +} +export interface ProfileVO { + id: number + username: string + nickname: string + dept: ProfileDept + roles: ProfileRole[] + posts: ProfilePost[] + socialUsers: SocialUser[] + email: string + mobile: string + sex: number + avatar: string + status: number + remark: string + loginIp: string + loginDate: Date + createTime: Date +} + +export interface UserProfileUpdateReqVO { + nickname: string + email: string + mobile: string + sex: number +} + +// 查询用户个人信息 +export const getUserProfile = () => { + return request.get({ url: '/system/user/profile/get' }) +} + +// 修改用户个人信息 +export const updateUserProfile = (data: UserProfileUpdateReqVO) => { + return request.put({ url: '/system/user/profile/update', data }) +} + +// 用户密码重置 +export const updateUserPassword = (oldPassword: string, newPassword: string) => { + return request.put({ + url: '/system/user/profile/update-password', + data: { + oldPassword: oldPassword, + newPassword: newPassword + } + }) +} + +// 用户头像上传 +export const uploadAvatar = (data) => { + return request.upload({ url: '/system/user/profile/update-avatar', data: data }) +} diff --git a/src/api/system/user/socialUser.ts b/src/api/system/user/socialUser.ts new file mode 100644 index 0000000..79f4d40 --- /dev/null +++ b/src/api/system/user/socialUser.ts @@ -0,0 +1,31 @@ +import request from '@/config/axios' + +// 社交绑定,使用 code 授权码 +export const socialBind = (type, code, state) => { + return request.post({ + url: '/system/social-user/bind', + data: { + type, + code, + state + } + }) +} + +// 取消社交绑定 +export const socialUnbind = (type, openid) => { + return request.delete({ + url: '/system/social-user/unbind', + data: { + type, + openid + } + }) +} + +// 社交授权的跳转 +export const socialAuthRedirect = (type, redirectUri) => { + return request.get({ + url: '/system/auth/social-auth-redirect?type=' + type + '&redirectUri=' + redirectUri + }) +} diff --git a/src/api/wms/accountcalendar/index.ts b/src/api/wms/accountcalendar/index.ts new file mode 100644 index 0000000..984d36b --- /dev/null +++ b/src/api/wms/accountcalendar/index.ts @@ -0,0 +1,60 @@ +import request from '@/config/axios' + +export interface AccountcalendarVO { + year: string + month: string + descriiption: string + beginTime: Date + endTime: Date + converttotime: Date + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询账期日历列表 +export const getAccountcalendarPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/accountcalendar/senior', data }) + } else { + return await request.get({ url: `/wms/accountcalendar/page`, params }) + } +} + +// 查询账期日历详情 +export const getAccountcalendar = async (id: number) => { + return await request.get({ url: `/wms/accountcalendar/get?id=` + id }) +} + +// 新增账期日历 +export const createAccountcalendar = async (data: AccountcalendarVO) => { + return await request.post({ url: `/wms/accountcalendar/create`, data }) +} + +// 修改账期日历 +export const updateAccountcalendar = async (data: AccountcalendarVO) => { + return await request.put({ url: `/wms/accountcalendar/update`, data }) +} + +// 删除账期日历 +export const deleteAccountcalendar = async (id: number) => { + return await request.delete({ url: `/wms/accountcalendar/delete?id=` + id }) +} + +// 导出账期日历 Excel +export const exportAccountcalendar = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/accountcalendar/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/accountcalendar/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/accountcalendar/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/areabasic/index.ts b/src/api/wms/areabasic/index.ts new file mode 100644 index 0000000..b0e97ff --- /dev/null +++ b/src/api/wms/areabasic/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface AreaVO { + code: string + name: string + description: string + warehouseCode: string + type: string + isFunctional: number + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询库区列表 +export const getAreaPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/areabasic/senior', data }) + } else { + return await request.get({ url: `/wms/areabasic/page`, params }) + } +} +// 查询库区列表 +export const getAreaList = async (params) => { + return await request.get({ url: `/wms/areabasic/list`, params }) +} +// 查询库区详情 +export const getArea = async (id: number) => { + return await request.get({ url: `/wms/areabasic/get?id=` + id }) +} + +// 新增库区 +export const createArea = async (data: AreaVO) => { + return await request.post({ url: `/wms/areabasic/create`, data }) +} + +// 修改库区 +export const updateArea = async (data: AreaVO) => { + return await request.put({ url: `/wms/areabasic/update`, data }) +} + +// 删除库区 +export const deleteArea = async (id: number) => { + return await request.delete({ url: `/wms/areabasic/delete?id=` + id }) +} + +// 导出库区 Excel +export const exportArea = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/areabasic/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/areabasic/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/areabasic/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/backflushRecordDetailb/index.ts b/src/api/wms/backflushRecordDetailb/index.ts new file mode 100644 index 0000000..3b770a5 --- /dev/null +++ b/src/api/wms/backflushRecordDetailb/index.ts @@ -0,0 +1,66 @@ +import request from '@/config/axios' + +export interface BackflushRecordDetailbVO { + processCode: string + bomVersion: string + packingNumber: string + batch: string + inventoryStatus: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + uom: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + code: string + interfaceType: string + jobDetailId: string +} + +// 查询制品收货记录子列表 +export const getBackflushRecordDetailbPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/backflush-record-detailb/senior', data }) + } else { + return await request.get({ url: `/wms/backflush-record-detailb/page`, params }) + } +} + +// 查询制品收货记录子详情 +export const getBackflushRecordDetailb = async (id: number) => { + return await request.get({ url: `/wms/backflush-record-detailb/get?id=` + id }) +} + +// 新增制品收货记录子 +export const createBackflushRecordDetailb = async (data: BackflushRecordDetailbVO) => { + return await request.post({ url: `/wms/backflush-record-detailb/create`, data }) +} + +// 修改制品收货记录子 +export const updateBackflushRecordDetailb = async (data: BackflushRecordDetailbVO) => { + return await request.put({ url: `/wms/backflush-record-detailb/update`, data }) +} + +// 删除制品收货记录子 +export const deleteBackflushRecordDetailb = async (id: number) => { + return await request.delete({ url: `/wms/backflush-record-detailb/delete?id=` + id }) +} + +// 导出制品收货记录子 Excel +export const exportBackflushRecordDetailb = async (params) => { + return await request.download({ url: `/wms/backflush-record-detailb/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/backflush-record-detailb/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/backflushRequestDetailb/index.ts b/src/api/wms/backflushRequestDetailb/index.ts new file mode 100644 index 0000000..9e4d26d --- /dev/null +++ b/src/api/wms/backflushRequestDetailb/index.ts @@ -0,0 +1,60 @@ +import request from '@/config/axios' + +export interface BackflushRequestDetailbVO { + processCode: string + bomVersion: string + itemCode: string + number: string + remark: string + createTime: Date + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + creator: string +} + +// 查询制品收货申请子列表 +export const getBackflushRequestDetailbPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/backflush-request-detailb/senior', data }) + } else { + return await request.get({ url: `/wms/backflush-request-detailb/page`, params }) + } +} + +// 查询制品收货申请子详情 +export const getBackflushRequestDetailb = async (id: number) => { + return await request.get({ url: `/wms/backflush-request-detailb/get?id=` + id }) +} + +// 新增制品收货申请子 +export const createBackflushRequestDetailb = async (data: BackflushRequestDetailbVO) => { + return await request.post({ url: `/wms/backflush-request-detailb/create`, data }) +} + +// 修改制品收货申请子 +export const updateBackflushRequestDetailb = async (data: BackflushRequestDetailbVO) => { + return await request.put({ url: `/wms/backflush-request-detailb/update`, data }) +} + +// 删除制品收货申请子 +export const deleteBackflushRequestDetailb = async (id: number) => { + return await request.delete({ url: `/wms/backflush-request-detailb/delete?id=` + id }) +} + +// 导出制品收货申请子 Excel +export const exportBackflushRequestDetailb = async (params) => { + return await request.download({ url: `/wms/backflush-request-detailb/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/backflush-request-detailb/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/balance/index.ts b/src/api/wms/balance/index.ts new file mode 100644 index 0000000..9040f08 --- /dev/null +++ b/src/api/wms/balance/index.ts @@ -0,0 +1,114 @@ +import request from '@/config/axios' + +export interface BalanceVO { + packingNumber: string + containerNumber: string + itemCode: string + batch: string + altBatch: string + arriveDate: Date + produceDate: Date + expireDate: Date + inventoryStatus: string + locationCode: string + locationGroupCode: string + areaCode: string + warehouseCode: string + erpLocationCode: string + ownerCode: string + uom: string + qty: number + lockedQty: number + usableQty: number + singlePrice: number + amount: number + putInTime: Date + frozen: string + frozenReason: string + lastTransNumber: string + weight: number + area: number + volume: number +} + +// 查询库存余额列表 +export const getBalancePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/balance/senior', data }) + } else { + return await request.get({ url: `/wms/balance/page`, params }) + } +} +// 查询库存余额列表 +export const getBalancePageReturn= async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/balance/senior', data }) + } else { + return await request.get({ url: `/wms/balance/pageReturn`, params }) + } +} +// 查询库存余额列表 +export const getBalancePagePutaway= async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/balance/senior', data }) + } else { + return await request.get({ url: `/wms/balance/pagePutaway`, params }) + } +} +// 查询库存余额列表增加物品筛选条件 +export const getBalanceItemPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/balance/seniorItems', data }) + } else { + return await request.get({ url: `/wms/balance/pageItems`, params }) + } +} + +// 查询库存余额详情 +export const getBalance = async (id: number) => { + return await request.get({ url: `/wms/balance/get?id=` + id }) +} + +// 新增库存余额 +export const createBalance = async (data: BalanceVO) => { + return await request.post({ url: `/wms/balance/create`, data }) +} + +// 修改库存余额 +export const updateBalance = async (data: BalanceVO) => { + return await request.put({ url: `/wms/balance/update`, data }) +} + +// 删除库存余额 +export const deleteBalance = async (id: number) => { + return await request.delete({ url: `/wms/balance/delete?id=` + id }) +} + +// 导出库存余额 Excel +export const exportBalance = async (params) => { + return await request.download({ url: `/wms/balance/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/balance/get-import-template' }) +} + +// 获得库位代码筛选出的库存余额分页 +export const selectLocationTypeToBalance = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/balance/pageLocationCodeToBalanceSenior', data }) + } else { + return request.get({ url: '/wms/balance/pageLocationCodeToBalance', params}) + } +} diff --git a/src/api/wms/barbasic/index.ts b/src/api/wms/barbasic/index.ts new file mode 100644 index 0000000..e5a2379 --- /dev/null +++ b/src/api/wms/barbasic/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export interface BarbasicVO { + id: number + number: string + type: string + template: string + status: string + relateNumber: string + barcodeString: string + printTimes: number + lastPrintTime: string + lastPrintUserId: string + lastPrintUserName: string +} + +// 查询条码实体基类列表 +export const getBarbasicPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/barbasic/senior', data }) + } else { + return await request.get({ url: `/wms/barbasic/page`, params }) + } +} + +// 查询条码实体基类详情 +export const getBarbasic = async (id: number) => { + return await request.get({ url: `/wms/barbasic/get?id=` + id }) +} + +// 新增条码实体基类 +export const createBarbasic = async (data: BarbasicVO) => { + return await request.post({ url: `/wms/barbasic/create`, data }) +} + +// 修改条码实体基类 +export const updateBarbasic = async (data: BarbasicVO) => { + return await request.put({ url: `/wms/barbasic/update`, data }) +} + +// 删除条码实体基类 +export const deleteBarbasic = async (id: number) => { + return await request.delete({ url: `/wms/barbasic/delete?id=` + id }) +} + +// 导出条码实体基类 Excel +export const exportBarbasic = async (params) => { + return await request.download({ url: `/wms/barbasic/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/barbasic/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/barcode/index.ts b/src/api/wms/barcode/index.ts new file mode 100644 index 0000000..8073903 --- /dev/null +++ b/src/api/wms/barcode/index.ts @@ -0,0 +1,59 @@ +import request from '@/config/axios' + +export interface BarcodeVO { + id: number + code: string + name: string + description: string + order: number + length: number + prefixLenght: number + prefixChar: string + entityProperties: string + encyptMethod: string + masterId: number + trimEnd: string + isEncypt: string, + labelType: string, +} + +// 查询条码片段列表 +export const getBarcodePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/label/barcode/senior', data }) + } else { + return await request.get({ url: `/label/barcode/page`, params }) + } +} + +// 查询条码片段详情 +export const getBarcode = async (id: number) => { + return await request.get({ url: `/label/barcode/get?id=` + id }) +} + +// 新增条码片段 +export const createBarcode = async (data: BarcodeVO) => { + return await request.post({ url: `/label/barcode/create`, data }) +} + +// 修改条码片段 +export const updateBarcode = async (data: BarcodeVO) => { + return await request.put({ url: `/label/barcode/update`, data }) +} + +// 删除条码片段 +export const deleteBarcode = async (id: number) => { + return await request.delete({ url: `/label/barcode/delete?id=` + id }) +} + +// 导出条码片段 Excel +export const exportBarcode = async (params) => { + return await request.download({ url: `/label/barcode/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/label/barcode/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/bom/index.ts b/src/api/wms/bom/index.ts new file mode 100644 index 0000000..84fa225 --- /dev/null +++ b/src/api/wms/bom/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +export interface BomVO { + productItemCode: string + componentItemCode: string + componentUom: string + componentQty: number + processCode: string + version: string + layer: number + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询物料清单列表 +export const getBomPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/bom/senior', data }) + } else { + return await request.get({ url: `/wms/bom/page`, params }) + } +} + +// 查询物料清单详情 +export const getBom = async (id: number) => { + return await request.get({ url: `/wms/bom/get?id=` + id }) +} + +// 新增物料清单 +export const createBom = async (data: BomVO) => { + return await request.post({ url: `/wms/bom/create`, data }) +} + +// 修改物料清单 +export const updateBom = async (data: BomVO) => { + return await request.put({ url: `/wms/bom/update`, data }) +} + +// 删除物料清单 +export const deleteBom = async (id: number) => { + return await request.delete({ url: `/wms/bom/delete?id=` + id }) +} + +// 导出物料清单 Excel +export const exportBom = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/bom/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/bom/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/bom/get-import-template' }) +} diff --git a/src/api/wms/bomDismantle/index.ts b/src/api/wms/bomDismantle/index.ts new file mode 100644 index 0000000..0a7a861 --- /dev/null +++ b/src/api/wms/bomDismantle/index.ts @@ -0,0 +1,26 @@ +import request from '@/config/axios' + +// 查询制品返修申请子列表 +export const getBomDismantlePage = async (params) => { + return await request.get({ url: `/wms/productrepair-request-main/bomPage`, params }) +} + +// 查询制品返修记录子列表 +export const getBomDismantleRecordPage = async (params) => { + return await request.get({ url: `/wms/productrepair-record-main/bomPage`, params }) +} + +// 查询制品报废申请子列表 +export const getProductscrapBomDismantlePage = async (params) => { + return await request.get({ url: `/wms/productscrap-request-main/bomPage`, params }) +} + +// 查询制品报废申请子列表 +export const getProductscrapBomDismantleRecordPage = async (params) => { + return await request.get({ url: `/wms/productscrap-record-main/bomPage`, params }) +} + +// 查询制品拆解申请子列表 +export const getDetailbBomDismantlePage = async (params) => { + return await request.get({ url: `/wms/dismantle-request-detailb/bomPage`, params }) +} \ No newline at end of file diff --git a/src/api/wms/businesstype/index.ts b/src/api/wms/businesstype/index.ts new file mode 100644 index 0000000..58d9723 --- /dev/null +++ b/src/api/wms/businesstype/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface BusinesstypeVO { + code: string + name: string + description: string + itemTypes: string + itemStatuses: string + outLocationTypes: string + inLocationTypes: string + outAreaCodes: string + inAreaCodes: string + outInventoryStatuses: string + inInventoryStatuses: string + outTransactionType: string + inTransactionType: string + onTheWayArea: string + activeTime: Date + expireTime: Date + remark: string + useOnTheWay: string + available: string + isSoftDeleted: string +} + +// 查询业务类型列表 +export const getBusinesstypePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/businesstype/senior', data }) + } else { + return await request.get({ url: `/wms/businesstype/page`, params }) + } +} + +// 查询业务类型详情 +export const getBusinesstype = async (id: number) => { + return await request.get({ url: `/wms/businesstype/get?id=` + id }) +} + +// 新增业务类型 +export const createBusinesstype = async (data: BusinesstypeVO) => { + return await request.post({ url: `/wms/businesstype/create`, data }) +} + +// 修改业务类型 +export const updateBusinesstype = async (data: BusinesstypeVO) => { + return await request.put({ url: `/wms/businesstype/update`, data }) +} + +// 删除业务类型 +export const deleteBusinesstype = async (id: number) => { + return await request.delete({ url: `/wms/businesstype/delete?id=` + id }) +} + +// 导出业务类型 Excel +export const exportBusinesstype = async (params) => { + return await request.download({ url: `/wms/businesstype/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/businesstype/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/carrier/index.ts b/src/api/wms/carrier/index.ts new file mode 100644 index 0000000..18d1c88 --- /dev/null +++ b/src/api/wms/carrier/index.ts @@ -0,0 +1,68 @@ +import request from '@/config/axios' + +export interface CarrierVO { + code: string + name: string + shortName: string + address: string + country: string + city: string + phone: string + fax: string + postId: string + contacts: string + bank: string + currency: string + taxRate: number + type: string + activeTime: Date + expireTime: Date + remark: string + available: string +} + +// 查询承运商列表 +export const getCarrierPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/carrier/senior', data }) + } else { + return await request.get({ url: `/wms/carrier/page`, params }) + } +} + +// 查询承运商详情 +export const getCarrier = async (id: number) => { + return await request.get({ url: `/wms/carrier/get?id=` + id }) +} + +// 新增承运商 +export const createCarrier = async (data: CarrierVO) => { + return await request.post({ url: `/wms/carrier/create`, data }) +} + +// 修改承运商 +export const updateCarrier = async (data: CarrierVO) => { + return await request.put({ url: `/wms/carrier/update`, data }) +} + +// 删除承运商 +export const deleteCarrier = async (id: number) => { + return await request.delete({ url: `/wms/carrier/delete?id=` + id }) +} + +// 导出承运商 Excel +export const exportCarrier = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/carrier/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/carrier/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/carrier/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/condition/index.ts b/src/api/wms/condition/index.ts new file mode 100644 index 0000000..6e2acde --- /dev/null +++ b/src/api/wms/condition/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export interface ConditionVO { + strategyCode: string + ruleCode: string + paramCode: string + operator: string + value: string + groupCode: string +} + +// 查询条件列表 +export const getConditionPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/condition/senior', data }) + } else { + return await request.get({ url: `/wms/condition/page`, params }) + } +} + +// 查询条件详情 +export const getCondition = async (id: number) => { + return await request.get({ url: `/wms/condition/get?id=` + id }) +} + +// 新增条件 +export const createCondition = async (data: ConditionVO) => { + return await request.post({ url: `/wms/condition/create`, data }) +} + +// 修改条件 +export const updateCondition = async (data: ConditionVO) => { + return await request.put({ url: `/wms/condition/update`, data }) +} + +// 删除条件 +export const deleteCondition = async (id: number) => { + return await request.delete({ url: `/wms/condition/delete?id=` + id }) +} + +// 导出条件 Excel +export const exportCondition = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/condition/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/condition/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/condition/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/configuration/index.ts b/src/api/wms/configuration/index.ts new file mode 100644 index 0000000..65fc1ad --- /dev/null +++ b/src/api/wms/configuration/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export interface ConfigurationVO { + strategyCode: string + ruleCode: string + configurationCode: string + configurationValue: string + description: string + groupCode: string +} + +// 查询配置列表 +export const getConfigurationPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/configuration/senior', data }) + } else { + return await request.get({ url: `/wms/configuration/page`, params }) + } +} + +// 查询配置详情 +export const getConfiguration = async (id: number) => { + return await request.get({ url: `/wms/configuration/get?id=` + id }) +} + +// 新增配置 +export const createConfiguration = async (data: ConfigurationVO) => { + return await request.post({ url: `/wms/configuration/create`, data }) +} + +// 修改配置 +export const updateConfiguration = async (data: ConfigurationVO) => { + return await request.put({ url: `/wms/configuration/update`, data }) +} + +// 删除配置 +export const deleteConfiguration = async (id: number) => { + return await request.delete({ url: `/wms/configuration/delete?id=` + id }) +} + +// 导出配置 Excel +export const exportConfiguration = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/configuration/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/configuration/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/configuration/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/configurationsetting/index.ts b/src/api/wms/configurationsetting/index.ts new file mode 100644 index 0000000..a1a063c --- /dev/null +++ b/src/api/wms/configurationsetting/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface ConfigurationsettingVO { + strategyType: string + configurationCode: string + configurationName: string + dataType: string + valueScope: string + relatedTo: string + description: string + isRequired: string +} + +// 查询配置设置列表 +export const getConfigurationsettingPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/configurationsetting/senior', data }) + } else { + return await request.get({ url: `/wms/configurationsetting/page`, params }) + } +} + +// 查询配置设置详情 +export const getConfigurationsetting = async (id: number) => { + return await request.get({ url: `/wms/configurationsetting/get?id=` + id }) +} + +// 新增配置设置 +export const createConfigurationsetting = async (data: ConfigurationsettingVO) => { + return await request.post({ url: `/wms/configurationsetting/create`, data }) +} + +// 修改配置设置 +export const updateConfigurationsetting = async (data: ConfigurationsettingVO) => { + return await request.put({ url: `/wms/configurationsetting/update`, data }) +} + +// 删除配置设置 +export const deleteConfigurationsetting = async (id: number) => { + return await request.delete({ url: `/wms/configurationsetting/delete?id=` + id }) +} + +// 导出配置设置 Excel +export const exportConfigurationsetting = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/configurationsetting/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/configurationsetting/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/configurationsetting/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/consumeRecordDetailb/index.ts b/src/api/wms/consumeRecordDetailb/index.ts new file mode 100644 index 0000000..98745df --- /dev/null +++ b/src/api/wms/consumeRecordDetailb/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface ConsumeRecordDetailbVO { + batch: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + inventoryStatus: string + packingNumber: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + uom: string + code: string + interfaceType: string +} + +// 查询制品返修记录子列表 +export const getConsumeRecordDetailbPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/consume-record-detailb/senior', data }) + } else { + return await request.get({ url: `/wms/consume-record-detailb/page`, params }) + } +} + +// 查询制品返修记录子详情 +export const getConsumeRecordDetailb = async (id: number) => { + return await request.get({ url: `/wms/consume-record-detailb/get?id=` + id }) +} + +// 新增制品返修记录子 +export const createConsumeRecordDetailb = async (data: ConsumeRecordDetailbVO) => { + return await request.post({ url: `/wms/consume-record-detailb/create`, data }) +} + +// 修改制品返修记录子 +export const updateConsumeRecordDetailb = async (data: ConsumeRecordDetailbVO) => { + return await request.put({ url: `/wms/consume-record-detailb/update`, data }) +} + +// 删除制品返修记录子 +export const deleteConsumeRecordDetailb = async (id: number) => { + return await request.delete({ url: `/wms/consume-record-detailb/delete?id=` + id }) +} + +// 导出制品返修记录子 Excel +export const exportConsumeRecordDetailb = async (params) => { + return await request.download({ url: `/wms/consume-record-detailb/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/consume-record-detailb/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/consumereRequestDetailb/index.ts b/src/api/wms/consumereRequestDetailb/index.ts new file mode 100644 index 0000000..9c0baa5 --- /dev/null +++ b/src/api/wms/consumereRequestDetailb/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +export interface ConsumereRequestDetailbVO { + inventoryStatus: string + packingNumber: string + batch: string + fromLocationCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + uom: string + updateTime: Date + updater: string +} + +// 查询制品返修申请子列表 +export const getConsumereRequestDetailbPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/consumere-request-detailb/senior', data }) + } else { + return await request.get({ url: `/wms/consumere-request-detailb/page`, params }) + } +} + +// 查询制品返修申请子详情 +export const getConsumereRequestDetailb = async (id: number) => { + return await request.get({ url: `/wms/consumere-request-detailb/get?id=` + id }) +} + +// 新增制品返修申请子 +export const createConsumereRequestDetailb = async (data: ConsumereRequestDetailbVO) => { + return await request.post({ url: `/wms/consumere-request-detailb/create`, data }) +} + +// 修改制品返修申请子 +export const updateConsumereRequestDetailb = async (data: ConsumereRequestDetailbVO) => { + return await request.put({ url: `/wms/consumere-request-detailb/update`, data }) +} + +// 删除制品返修申请子 +export const deleteConsumereRequestDetailb = async (id: number) => { + return await request.delete({ url: `/wms/consumere-request-detailb/delete?id=` + id }) +} + +// 导出制品返修申请子 Excel +export const exportConsumereRequestDetailb = async (params) => { + return await request.download({ url: `/wms/consumere-request-detailb/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/consumere-request-detailb/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/containerBindRecordDetail/index.ts b/src/api/wms/containerBindRecordDetail/index.ts new file mode 100644 index 0000000..6b70279 --- /dev/null +++ b/src/api/wms/containerBindRecordDetail/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +export interface ContainerBindRecordDetailVO { + id: number + containerContentType: string + contentNumber: string + itemCode: string + batch: string + inventoryStatus: string + uom: string + qty: number + masterId: number + number: string + siteId: string + remark: string +} + +// 查询器具绑定记录子列表 +export const getContainerBindRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/container-bind-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/container-bind-record-detail/page`, params }) + } +} + +// 查询器具绑定记录子详情 +export const getContainerBindRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/container-bind-record-detail/get?id=` + id }) +} + +// 新增器具绑定记录子 +export const createContainerBindRecordDetail = async (data: ContainerBindRecordDetailVO) => { + return await request.post({ url: `/wms/container-bind-record-detail/create`, data }) +} + +// 修改器具绑定记录子 +export const updateContainerBindRecordDetail = async (data: ContainerBindRecordDetailVO) => { + return await request.put({ url: `/wms/container-bind-record-detail/update`, data }) +} + +// 删除器具绑定记录子 +export const deleteContainerBindRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/container-bind-record-detail/delete?id=` + id }) +} + +// 导出器具绑定记录子 Excel +export const exportContainerBindRecordDetail = async (params) => { + return await request.download({ url: `/wms/container-bind-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/container-bind-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/containerBindRecordMain/index.ts b/src/api/wms/containerBindRecordMain/index.ts new file mode 100644 index 0000000..7fa35ac --- /dev/null +++ b/src/api/wms/containerBindRecordMain/index.ts @@ -0,0 +1,69 @@ +import request from '@/config/axios' + +export interface ContainerBindRecordMainVO { + id: number + number: string + containerNumber: string + fromWarehouseCode: string + toWarehouseCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + available: string + requestTime: Date + dueTime: Date + departmentCode: string + userGroupCode: string + interfaceType: string + businessType: string + remark: string + extraProperties: string + siteId: string + code: string + fromLocationTypes: string + toLocationTypes: string + fromAreaCodes: string + toAreaCodes: string +} + +// 查询器具绑定记录主列表 +export const getContainerBindRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/container-bind-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/container-bind-record-main/page`, params }) + } +} + +// 查询器具绑定记录主详情 +export const getContainerBindRecordMain = async (id: number) => { + return await request.get({ url: `/wms/container-bind-record-main/get?id=` + id }) +} + +// 新增器具绑定记录主 +export const createContainerBindRecordMain = async (data: ContainerBindRecordMainVO) => { + return await request.post({ url: `/wms/container-bind-record-main/create`, data }) +} + +// 修改器具绑定记录主 +export const updateContainerBindRecordMain = async (data: ContainerBindRecordMainVO) => { + return await request.put({ url: `/wms/container-bind-record-main/update`, data }) +} + +// 删除器具绑定记录主 +export const deleteContainerBindRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/container-bind-record-main/delete?id=` + id }) +} + +// 导出器具绑定记录主 Excel +export const exportContainerBindRecordMain = async (params) => { + return await request.download({ url: `/wms/container-bind-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/container-bind-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/containerDetail/index.ts b/src/api/wms/containerDetail/index.ts new file mode 100644 index 0000000..1be2d08 --- /dev/null +++ b/src/api/wms/containerDetail/index.ts @@ -0,0 +1,52 @@ +import request from '@/config/axios' + +export interface ContainerDetailVO { + containerContentType: string + contentNumber: string + itemCode: string + batch: string + inventoryStatus: string + uom: string + qty: number +} + +// 查询器具子列表 +export const getContainerDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/container-detail/senior', data }) + } else { + return await request.get({ url: `/wms/container-detail/page`, params }) + } +} + +// 查询器具子详情 +export const getContainerDetail = async (id: number) => { + return await request.get({ url: `/wms/container-detail/get?id=` + id }) +} + +// 新增器具子 +export const createContainerDetail = async (data: ContainerDetailVO) => { + return await request.post({ url: `/wms/container-detail/create`, data }) +} + +// 修改器具子 +export const updateContainerDetail = async (data: ContainerDetailVO) => { + return await request.put({ url: `/wms/container-detail/update`, data }) +} + +// 删除器具子 +export const deleteContainerDetail = async (id: number) => { + return await request.delete({ url: `/wms/container-detail/delete?id=` + id }) +} + +// 导出器具子 Excel +export const exportContainerDetail = async (params) => { + return await request.download({ url: `/wms/container-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/container-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/containerInitRecordDetail/index.ts b/src/api/wms/containerInitRecordDetail/index.ts new file mode 100644 index 0000000..f998ec3 --- /dev/null +++ b/src/api/wms/containerInitRecordDetail/index.ts @@ -0,0 +1,55 @@ +import request from '@/config/axios' + +export interface ContainerInitRecordDetailVO { + id: number + containerNumber: string + type: string + capacity: number + status: string + ownerCode: string + masterId: number + number: string + siteId: string + remark: string +} + +// 查询器具初始化记录子列表 +export const getContainerInitRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/container-init-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/container-init-record-detail/page`, params }) + } +} + +// 查询器具初始化记录子详情 +export const getContainerInitRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/container-init-record-detail/get?id=` + id }) +} + +// 新增器具初始化记录子 +export const createContainerInitRecordDetail = async (data: ContainerInitRecordDetailVO) => { + return await request.post({ url: `/wms/container-init-record-detail/create`, data }) +} + +// 修改器具初始化记录子 +export const updateContainerInitRecordDetail = async (data: ContainerInitRecordDetailVO) => { + return await request.put({ url: `/wms/container-init-record-detail/update`, data }) +} + +// 删除器具初始化记录子 +export const deleteContainerInitRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/container-init-record-detail/delete?id=` + id }) +} + +// 导出器具初始化记录子 Excel +export const exportContainerInitRecordDetail = async (params) => { + return await request.download({ url: `/wms/container-init-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/container-init-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/containerInitRecordMain/index.ts b/src/api/wms/containerInitRecordMain/index.ts new file mode 100644 index 0000000..0c9c565 --- /dev/null +++ b/src/api/wms/containerInitRecordMain/index.ts @@ -0,0 +1,68 @@ +import request from '@/config/axios' + +export interface ContainerInitRecordMainVO { + id: number + number: string + fromWarehouseCode: string + toWarehouseCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + available: string + requestTime: Date + dueTime: Date + departmentCode: string + userGroupCode: string + interfaceType: string + businessType: string + remark: string + extraProperties: string + siteId: string + code: string + fromLocationTypes: string + toLocationTypes: string + fromAreaCodes: string + toAreaCodes: string +} + +// 查询器具初始化记录主列表 +export const getContainerInitRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/container-init-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/container-init-record-main/page`, params }) + } +} + +// 查询器具初始化记录主详情 +export const getContainerInitRecordMain = async (id: number) => { + return await request.get({ url: `/wms/container-init-record-main/get?id=` + id }) +} + +// 新增器具初始化记录主 +export const createContainerInitRecordMain = async (data: ContainerInitRecordMainVO) => { + return await request.post({ url: `/wms/container-init-record-main/create`, data }) +} + +// 修改器具初始化记录主 +export const updateContainerInitRecordMain = async (data: ContainerInitRecordMainVO) => { + return await request.put({ url: `/wms/container-init-record-main/update`, data }) +} + +// 删除器具初始化记录主 +export const deleteContainerInitRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/container-init-record-main/delete?id=` + id }) +} + +// 导出器具初始化记录主 Excel +export const exportContainerInitRecordMain = async (params) => { + return await request.download({ url: `/wms/container-init-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/container-init-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/containerMain/index.ts b/src/api/wms/containerMain/index.ts new file mode 100644 index 0000000..7e10ebf --- /dev/null +++ b/src/api/wms/containerMain/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +export interface ContainerMainVO { + id: string + number: string + type: string + capacity: number + status: string + ownerCode: string +} + +// 查询器具主列表 +export const getContainerMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/container-main/senior', data }) + } else { + return await request.get({ url: `/wms/container-main/page`, params }) + } +} + +// 查询器具主详情 +export const getContainerMain = async (id: number) => { + return await request.get({ url: `/wms/container-main/get?id=` + id }) +} + +// 新增器具主 +export const createContainerMain = async (data: ContainerMainVO) => { + return await request.post({ url: `/wms/container-main/create`, data }) +} + +// 修改器具主 +export const updateContainerMain = async (data: ContainerMainVO) => { + return await request.put({ url: `/wms/container-main/update`, data }) +} + +// 删除器具主 +export const deleteContainerMain = async (id: number) => { + return await request.delete({ url: `/wms/container-main/delete?id=` + id }) +} + +// 导出器具主 Excel +export const exportContainerMain = async (params) => { + return await request.download({ url: `/wms/container-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/container-main/get-import-template' }) +} + +// 器具维修 +export const repairSubmitContainerRequestMain = async (id) => { + return await request.put({ url: `/wms/container-main/repair?id=` + id }) +} + +// 器具报废 +export const scrapSubmitContainerRequestMain = async (id) => { + return await request.put({ url: `/wms/container-main/scrap?id=` + id }) +} diff --git a/src/api/wms/containerRepairRecordDetail/index.ts b/src/api/wms/containerRepairRecordDetail/index.ts new file mode 100644 index 0000000..379757f --- /dev/null +++ b/src/api/wms/containerRepairRecordDetail/index.ts @@ -0,0 +1,53 @@ +import request from '@/config/axios' + +export interface ContainerRepairRecordDetailVO { + id: number + containerNumber: string + fromContainerStatus: string + toContainerStatus: string + masterId: number + number: string + siteId: string + remark: string +} + +// 查询器具维修记录子列表 +export const getContainerRepairRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/container-repair-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/container-repair-record-detail/page`, params }) + } +} + +// 查询器具维修记录子详情 +export const getContainerRepairRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/container-repair-record-detail/get?id=` + id }) +} + +// 新增器具维修记录子 +export const createContainerRepairRecordDetail = async (data: ContainerRepairRecordDetailVO) => { + return await request.post({ url: `/wms/container-repair-record-detail/create`, data }) +} + +// 修改器具维修记录子 +export const updateContainerRepairRecordDetail = async (data: ContainerRepairRecordDetailVO) => { + return await request.put({ url: `/wms/container-repair-record-detail/update`, data }) +} + +// 删除器具维修记录子 +export const deleteContainerRepairRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/container-repair-record-detail/delete?id=` + id }) +} + +// 导出器具维修记录子 Excel +export const exportContainerRepairRecordDetail = async (params) => { + return await request.download({ url: `/wms/container-repair-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/container-repair-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/containerRepairRecordMain/index.ts b/src/api/wms/containerRepairRecordMain/index.ts new file mode 100644 index 0000000..82fbc55 --- /dev/null +++ b/src/api/wms/containerRepairRecordMain/index.ts @@ -0,0 +1,69 @@ +import request from '@/config/axios' + +export interface ContainerRepairRecordMainVO { + id: number + number: string + containerNumber: string + fromWarehouseCode: string + toWarehouseCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + available: string + requestTime: Date + dueTime: Date + departmentCode: string + userGroupCode: string + interfaceType: string + businessType: string + remark: string + extraProperties: string + siteId: string + code: string + fromLocationTypes: string + toLocationTypes: string + fromAreaCodes: string + toAreaCodes: string +} + +// 查询器具维修记录主列表 +export const getContainerRepairRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/container-repair-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/container-repair-record-main/page`, params }) + } +} + +// 查询器具维修记录主详情 +export const getContainerRepairRecordMain = async (id: number) => { + return await request.get({ url: `/wms/container-repair-record-main/get?id=` + id }) +} + +// 新增器具维修记录主 +export const createContainerRepairRecordMain = async (data: ContainerRepairRecordMainVO) => { + return await request.post({ url: `/wms/container-repair-record-main/create`, data }) +} + +// 修改器具维修记录主 +export const updateContainerRepairRecordMain = async (data: ContainerRepairRecordMainVO) => { + return await request.put({ url: `/wms/container-repair-record-main/update`, data }) +} + +// 删除器具维修记录主 +export const deleteContainerRepairRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/container-repair-record-main/delete?id=` + id }) +} + +// 导出器具维修记录主 Excel +export const exportContainerRepairRecordMain = async (params) => { + return await request.download({ url: `/wms/container-repair-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/container-repair-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/containerUnbindRecordDetail/index.ts b/src/api/wms/containerUnbindRecordDetail/index.ts new file mode 100644 index 0000000..737f9f0 --- /dev/null +++ b/src/api/wms/containerUnbindRecordDetail/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +export interface ContainerUnbindRecordDetailVO { + id: number + containerContentType: string + contentNumber: string + itemCode: string + batch: string + inventoryStatus: string + uom: string + qty: number + masterId: number + number: string + siteId: string + remark: string +} + +// 查询器具解绑记录子列表 +export const getContainerUnbindRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/container-unbind-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/container-unbind-record-detail/page`, params }) + } +} + +// 查询器具解绑记录子详情 +export const getContainerUnbindRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/container-unbind-record-detail/get?id=` + id }) +} + +// 新增器具解绑记录子 +export const createContainerUnbindRecordDetail = async (data: ContainerUnbindRecordDetailVO) => { + return await request.post({ url: `/wms/container-unbind-record-detail/create`, data }) +} + +// 修改器具解绑记录子 +export const updateContainerUnbindRecordDetail = async (data: ContainerUnbindRecordDetailVO) => { + return await request.put({ url: `/wms/container-unbind-record-detail/update`, data }) +} + +// 删除器具解绑记录子 +export const deleteContainerUnbindRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/container-unbind-record-detail/delete?id=` + id }) +} + +// 导出器具解绑记录子 Excel +export const exportContainerUnbindRecordDetail = async (params) => { + return await request.download({ url: `/wms/container-unbind-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/container-unbind-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/containerUnbindRecordMain/index.ts b/src/api/wms/containerUnbindRecordMain/index.ts new file mode 100644 index 0000000..4e6849c --- /dev/null +++ b/src/api/wms/containerUnbindRecordMain/index.ts @@ -0,0 +1,69 @@ +import request from '@/config/axios' + +export interface ContainerUnbindRecordMainVO { + id: number + number: string + containerNumber: string + fromWarehouseCode: string + toWarehouseCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + available: string + requestTime: Date + dueTime: Date + departmentCode: string + userGroupCode: string + interfaceType: string + businessType: string + remark: string + extraProperties: string + siteId: string + code: string + fromLocationTypes: string + toLocationTypes: string + fromAreaCodes: string + toAreaCodes: string +} + +// 查询器具解绑记录主列表 +export const getContainerUnbindRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/container-unbind-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/container-unbind-record-main/page`, params }) + } +} + +// 查询器具解绑记录主详情 +export const getContainerUnbindRecordMain = async (id: number) => { + return await request.get({ url: `/wms/container-unbind-record-main/get?id=` + id }) +} + +// 新增器具解绑记录主 +export const createContainerUnbindRecordMain = async (data: ContainerUnbindRecordMainVO) => { + return await request.post({ url: `/wms/container-unbind-record-main/create`, data }) +} + +// 修改器具解绑记录主 +export const updateContainerUnbindRecordMain = async (data: ContainerUnbindRecordMainVO) => { + return await request.put({ url: `/wms/container-unbind-record-main/update`, data }) +} + +// 删除器具解绑记录主 +export const deleteContainerUnbindRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/container-unbind-record-main/delete?id=` + id }) +} + +// 导出器具解绑记录主 Excel +export const exportContainerUnbindRecordMain = async (params) => { + return await request.download({ url: `/wms/container-unbind-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/container-unbind-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/countJobDetail/index.ts b/src/api/wms/countJobDetail/index.ts new file mode 100644 index 0000000..6b7e132 --- /dev/null +++ b/src/api/wms/countJobDetail/index.ts @@ -0,0 +1,62 @@ +import request from '@/config/axios' + +export interface CountJobDetailVO { + countDetailNumber: string + ownerCode: string + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string +} + +// 查询盘点任务子列表 +export const getCountJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/count-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/count-job-detail/page`, params }) + } +} + +// 查询盘点任务子详情 +export const getCountJobDetail = async (id: number) => { + return await request.get({ url: `/wms/count-job-detail/get?id=` + id }) +} + +// 新增盘点任务子 +export const createCountJobDetail = async (data: CountJobDetailVO) => { + return await request.post({ url: `/wms/count-job-detail/create`, data }) +} + +// 修改盘点任务子 +export const updateCountJobDetail = async (data: CountJobDetailVO) => { + return await request.put({ url: `/wms/count-job-detail/update`, data }) +} + +// 删除盘点任务子 +export const deleteCountJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/count-job-detail/delete?id=` + id }) +} + +// 导出盘点任务子 Excel +export const exportCountJobDetail = async (params) => { + return await request.download({ url: `/wms/count-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/count-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/countJobMain/index.ts b/src/api/wms/countJobMain/index.ts new file mode 100644 index 0000000..48ce991 --- /dev/null +++ b/src/api/wms/countJobMain/index.ts @@ -0,0 +1,87 @@ +import request from '@/config/axios' + +export interface CountJobMainVO { + requestNumber: string + planNumber: string + stage: string + warehouseCode: string + locationCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + siteId: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询盘点任务主列表 +export const getCountJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/count-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/count-job-main/page`, params }) + } +} + +// 查询盘点任务主详情 +export const getCountJobMain = async (id: number) => { + return await request.get({ url: `/wms/count-job-main/get?id=` + id }) +} + +// 新增盘点任务主 +export const createCountJobMain = async (data: CountJobMainVO) => { + return await request.post({ url: `/wms/count-job-main/create`, data }) +} + +// 修改盘点任务主 +export const updateCountJobMain = async (data: CountJobMainVO) => { + return await request.put({ url: `/wms/count-job-main/update`, data }) +} + +// 删除盘点任务主 +export const deleteCountJobMain = async (id: number) => { + return await request.delete({ url: `/wms/count-job-main/delete?id=` + id }) +} + +// 导出盘点任务主 Excel +export const exportCountJobMain = async (params) => { + return await request.download({ url: `/wms/count-job-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/count-job-main/get-import-template' }) +} + +// 关闭盘点任务主 +export const closeCountJobMain = (id: number) => { + return request.download({ url: '/wms/count-job-main/close?id=' + id }) +} diff --git a/src/api/wms/countPlanDetail/index.ts b/src/api/wms/countPlanDetail/index.ts new file mode 100644 index 0000000..5c4300b --- /dev/null +++ b/src/api/wms/countPlanDetail/index.ts @@ -0,0 +1,52 @@ +import request from '@/config/axios' + +export interface CountPlanDetailVO { + type: string + value: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + planQty: number + uom: string + updateTime: Date + updater: string + available: string +} + +// 查询盘点计划子列表 +export const getCountPlanDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/count-plan-detail/senior', data }) + } else { + return await request.get({ url: `/wms/count-plan-detail/page`, params }) + } +} + +// 查询盘点计划子详情 +export const getCountPlanDetail = async (id: number) => { + return await request.get({ url: `/wms/count-plan-detail/get?id=` + id }) +} + +// 新增盘点计划子 +export const createCountPlanDetail = async (data: CountPlanDetailVO) => { + return await request.post({ url: `/wms/count-plan-detail/create`, data }) +} + +// 修改盘点计划子 +export const updateCountPlanDetail = async (data: CountPlanDetailVO) => { + return await request.put({ url: `/wms/count-plan-detail/update`, data }) +} + +// 删除盘点计划子 +export const deleteCountPlanDetail = async (id: number) => { + return await request.delete({ url: `/wms/count-plan-detail/delete?id=` + id }) +} + +// 导出盘点计划子 Excel +export const exportCountPlanDetail = async (params) => { + return await request.download({ url: `/wms/count-plan-detail/export-excel`, params }) +} diff --git a/src/api/wms/countPlanMain/index.ts b/src/api/wms/countPlanMain/index.ts new file mode 100644 index 0000000..b62d130 --- /dev/null +++ b/src/api/wms/countPlanMain/index.ts @@ -0,0 +1,104 @@ +import request from '@/config/axios' + +export interface CountPlanMainVO { + type: string + crontab: string + dimension: string + limitedValue: number + ignoreListOfItem: string + ignoreListOfLocation: string + scopeList: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + beginTime: Date + endTime: Date + status: string + updateTime: Date + updater: string + isSnapshot: string + isFreeze: string + isCountEmptyLocation: string + isCountZeroInventory: string + isCountNegativeInventory: string + isOpenCount: string + available: string +} + +// 查询盘点计划主列表 +export const getCountPlanMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/count-plan-main/senior', data }) + } else { + return await request.get({ url: `/wms/count-plan-main/page`, params }) + } +} + +// 查询盘点计划主详情 +export const getCountPlanMain = async (id: number) => { + return await request.get({ url: `/wms/count-plan-main/get?id=` + id }) +} + +// 新增盘点计划主 +export const createCountPlanMain = async (data: CountPlanMainVO) => { + return await request.post({ url: `/wms/count-plan-main/create`, data }) +} + +// 修改盘点计划主 +export const updateCountPlanMain = async (data: CountPlanMainVO) => { + return await request.put({ url: `/wms/count-plan-main/update`, data }) +} + +// 删除盘点计划主 +export const deleteCountPlanMain = async (id: number) => { + return await request.delete({ url: `/wms/count-plan-main/delete?id=` + id }) +} + +// 导出盘点计划主 Excel +export const exportCountPlanMain = async (params) => { + return await request.download({ url: `/wms/count-plan-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/count-plan-main/get-import-template' }) +} + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/count-plan-main/close?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/count-plan-main/submit?id=' + id }) +} + +// 打开 +export const open = (id) => { + return request.put({ url: '/wms/count-plan-main/open?id=' + id }) +} + +// 驳回 +export const reject = (id) => { + return request.put({ url: '/wms/count-plan-main/reject?id=' + id }) +} + +// 通过 +export const agree = (id) => { + return request.put({ url: '/wms/count-plan-main/agree?id=' + id }) +} + +// 发布 +export const publish = (id) => { + return request.put({ url: '/wms/count-plan-main/publish?id=' + id }) +} + +// 重置 +export const resetting = (id) => { + return request.put({ url: '/wms/count-plan-main/resetting?id=' + id }) +} \ No newline at end of file diff --git a/src/api/wms/countRecordDetail/index.ts b/src/api/wms/countRecordDetail/index.ts new file mode 100644 index 0000000..3a35068 --- /dev/null +++ b/src/api/wms/countRecordDetail/index.ts @@ -0,0 +1,72 @@ +import request from '@/config/axios' + +export interface CountRecordDetailVO { + countDetailNumber: string + ownerCode: string + packingNumber: string + containerNumber: string + batch: string + locationCode: string + locationGroupCode: string + areaCode: string + inventoryStatus: string + countQty: number + countTime: Date + countUser: string + countDescription: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + number: string + itemCode: string + remark: string + createTime: Date + creatorId: string + jobDetailId: string +} + +// 查询盘点记录子列表 +export const getCountRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/count-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/count-record-detail/page`, params }) + } +} + +// 查询盘点记录子详情 +export const getCountRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/count-record-detail/get?id=` + id }) +} + +// 新增盘点记录子 +export const createCountRecordDetail = async (data: CountRecordDetailVO) => { + return await request.post({ url: `/wms/count-record-detail/create`, data }) +} + +// 修改盘点记录子 +export const updateCountRecordDetail = async (data: CountRecordDetailVO) => { + return await request.put({ url: `/wms/count-record-detail/update`, data }) +} + +// 删除盘点记录子 +export const deleteCountRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/count-record-detail/delete?id=` + id }) +} + +// 导出盘点记录子 Excel +export const exportCountRecordDetail = async (params) => { + return await request.download({ url: `/wms/count-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/count-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/countRecordMain/index.ts b/src/api/wms/countRecordMain/index.ts new file mode 100644 index 0000000..e4b43a0 --- /dev/null +++ b/src/api/wms/countRecordMain/index.ts @@ -0,0 +1,70 @@ +import request from '@/config/axios' + +export interface CountRecordMainVO { + requestNumber: string + jobNumber: string + planNumber: string + stage: string + warehouseCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + code: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + available: string +} + +// 查询盘点记录主列表 +export const getCountRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/count-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/count-record-main/page`, params }) + } +} + +// 查询盘点记录主详情 +export const getCountRecordMain = async (id: number) => { + return await request.get({ url: `/wms/count-record-main/get?id=` + id }) +} + +// 新增盘点记录主 +export const createCountRecordMain = async (data: CountRecordMainVO) => { + return await request.post({ url: `/wms/count-record-main/create`, data }) +} + +// 修改盘点记录主 +export const updateCountRecordMain = async (data: CountRecordMainVO) => { + return await request.put({ url: `/wms/count-record-main/update`, data }) +} + +// 删除盘点记录主 +export const deleteCountRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/count-record-main/delete?id=` + id }) +} + +// 导出盘点记录主 Excel +export const exportCountRecordMain = async (params) => { + return await request.download({ url: `/wms/count-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/count-record-main/get-import-template' }) +} + +// 生成盘点调整 +export const generateCountRecordMain = async (id) => { + return await request.put({ url: `/wms/count-record-main/generate?id=` + id}) +} \ No newline at end of file diff --git a/src/api/wms/countRequestDetail/index.ts b/src/api/wms/countRequestDetail/index.ts new file mode 100644 index 0000000..96ed644 --- /dev/null +++ b/src/api/wms/countRequestDetail/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface CountRequestDetailVO { + countDetailNumber: string + ownerCode: string + batch: string + locationCode: string + inventoryStatus: string + number: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + itemCode: string + fromPackingNumber: string + toPackingNumber: string + fromContainerNumber: string + toContainerNumber: string +} + +// 查询盘点申请子列表 +export const getCountRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/count-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/count-request-detail/page`, params }) + } +} + +// 查询盘点申请子详情 +export const getCountRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/count-request-detail/get?id=` + id }) +} + +// 新增盘点申请子 +export const createCountRequestDetail = async (data: CountRequestDetailVO) => { + return await request.post({ url: `/wms/count-request-detail/create`, data }) +} + +// 修改盘点申请子 +export const updateCountRequestDetail = async (data: CountRequestDetailVO) => { + return await request.put({ url: `/wms/count-request-detail/update`, data }) +} + +// 删除盘点申请子 +export const deleteCountRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/count-request-detail/delete?id=` + id }) +} + +// 导出盘点申请子 Excel +export const exportCountRequestDetail = async (params) => { + return await request.download({ url: `/wms/count-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/count-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/countRequestMain/index.ts b/src/api/wms/countRequestMain/index.ts new file mode 100644 index 0000000..cf6c522 --- /dev/null +++ b/src/api/wms/countRequestMain/index.ts @@ -0,0 +1,112 @@ +import request from '@/config/axios' + +export interface CountRequestMainVO { + requestNumber: string + planNumber: string + stage: string + warehouseCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询盘点申请主列表 +export const getCountRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/count-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/count-request-main/page`, params }) + } +} + +// 查询盘点申请主详情 +export const getCountRequestMain = async (id: number) => { + return await request.get({ url: `/wms/count-request-main/get?id=` + id }) +} + +// 新增盘点申请主 +export const createCountRequestMain = async (data: CountRequestMainVO) => { + return await request.post({ url: `/wms/count-request-main/create`, data }) +} + +// 修改盘点申请主 +export const updateCountRequestMain = async (data: CountRequestMainVO) => { + return await request.put({ url: `/wms/count-request-main/update`, data }) +} + +// 删除盘点申请主 +export const deleteCountRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/count-request-main/delete?id=` + id }) +} + +// 导出盘点申请主 Excel +export const exportCountRequestMain = async (params) => { + return await request.download({ url: `/wms/count-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/count-request-main/get-import-template' }) +} + +// 关闭盘点申请主 Excel +export const close = async (id) => { + return await request.put({ url: `/wms/count-request-main/close?id=` + id }) +} + +// 重新添加盘点申请主 Excel +export const reAdd = async (id) => { + return await request.put({ url: `/wms/count-request-main/reAdd?id=` + id }) +} + +// 提交盘点申请主 Excel +export const submit = async (id) => { + return await request.put({ url: `/wms/count-request-main/submit?id=` + id }) +} + +// 审批通过盘点申请主 Excel +export const agree = async (id) => { + return await request.put({ url: `/wms/count-request-main/agree?id=` + id }) +} + +// 审批驳回盘点申请主 Excel +export const refused = async (id) => { + return await request.put({ url: `/wms/count-request-main/refused?id=` + id }) +} + +// 处理盘点申请主 Excel +export const handle = async (id) => { + return await request.put({ url: `/wms/count-request-main/handle?id=` + id }) +} + +//重盘 +export const reCount = async (data) => { + return await request.put({ url: `/wms/count-request-main/reCount`,data}) +} + +//监盘 +export const superviseCount = async (data) => { + return await request.put({ url: `/wms/count-request-main/supervise`,data}) +} +//生成盘点调整申请 +export const generateCountadjustRequest = async (id) => { + return await request.put({ url: `/wms/count-request-main/generateCountadjustRequest?id=` + id }) +} +//解冻 +export const thaw = async (id) => { + return await request.put({ url: `/wms/count-request-main/thaw?id=` + id }) +} \ No newline at end of file diff --git a/src/api/wms/countadjustRecordDetail/index.ts b/src/api/wms/countadjustRecordDetail/index.ts new file mode 100644 index 0000000..ab86020 --- /dev/null +++ b/src/api/wms/countadjustRecordDetail/index.ts @@ -0,0 +1,69 @@ +import request from '@/config/axios' + +export interface CountadjustRecordDetailVO { + countDetailNumber: string + ownerCode: string + packingNumber: string + containerNumber: string + batch: string + locationCode: string + inventoryStatus: string + inventoryQty: number + countQty: number + adjustQty: number + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + jobDetailId: string +} + +// 查询盘点调整记录子列表 +export const getCountadjustRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/countadjust-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/countadjust-record-detail/page`, params }) + } +} + +// 查询盘点调整记录子详情 +export const getCountadjustRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/countadjust-record-detail/get?id=` + id }) +} + +// 新增盘点调整记录子 +export const createCountadjustRecordDetail = async (data: CountadjustRecordDetailVO) => { + return await request.post({ url: `/wms/countadjust-record-detail/create`, data }) +} + +// 修改盘点调整记录子 +export const updateCountadjustRecordDetail = async (data: CountadjustRecordDetailVO) => { + return await request.put({ url: `/wms/countadjust-record-detail/update`, data }) +} + +// 删除盘点调整记录子 +export const deleteCountadjustRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/countadjust-record-detail/delete?id=` + id }) +} + +// 导出盘点调整记录子 Excel +export const exportCountadjustRecordDetail = async (params) => { + return await request.download({ url: `/wms/countadjust-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/countadjust-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/countadjustRecordMain/index.ts b/src/api/wms/countadjustRecordMain/index.ts new file mode 100644 index 0000000..c07af7f --- /dev/null +++ b/src/api/wms/countadjustRecordMain/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface CountadjustRecordMainVO { + requestNumber: string + countRecordNumber: string + warehouseCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + code: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + available: string +} + +// 查询盘点调整记录主列表 +export const getCountadjustRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/countadjust-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/countadjust-record-main/page`, params }) + } +} + +// 查询盘点调整记录主详情 +export const getCountadjustRecordMain = async (id: number) => { + return await request.get({ url: `/wms/countadjust-record-main/get?id=` + id }) +} + +// 新增盘点调整记录主 +export const createCountadjustRecordMain = async (data: CountadjustRecordMainVO) => { + return await request.post({ url: `/wms/countadjust-record-main/create`, data }) +} + +// 修改盘点调整记录主 +export const updateCountadjustRecordMain = async (data: CountadjustRecordMainVO) => { + return await request.put({ url: `/wms/countadjust-record-main/update`, data }) +} + +// 删除盘点调整记录主 +export const deleteCountadjustRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/countadjust-record-main/delete?id=` + id }) +} + +// 导出盘点调整记录主 Excel +export const exportCountadjustRecordMain = async (params) => { + return await request.download({ url: `/wms/countadjust-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/countadjust-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/countadjustRequestDetail/index.ts b/src/api/wms/countadjustRequestDetail/index.ts new file mode 100644 index 0000000..1bb9805 --- /dev/null +++ b/src/api/wms/countadjustRequestDetail/index.ts @@ -0,0 +1,68 @@ +import request from '@/config/axios' + +export interface CountadjustRequestDetailVO { + countDetailNumber: string + ownerlCode: string + packinglNumber: string + containerlNumber: string + batch: string + locationlCode: string + inventorylStatus: string + inventorylQty: number + countlQty: number + adjustlQty: number + number: string + remark: string + createTime: Date + creator: string + itemlName: string + itemlDesc1: string + itemlDesc2: string + projectlCode: string + qty: number + uom: string + updateTime: Date + updater: string + itemlCode: string +} + +// 查询盘点调整申请子列表 +export const getCountadjustRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/countadjust-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/countadjust-request-detail/page`, params }) + } +} + +// 查询盘点调整申请子详情 +export const getCountadjustRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/countadjust-request-detail/get?id=` + id }) +} + +// 新增盘点调整申请子 +export const createCountadjustRequestDetail = async (data: CountadjustRequestDetailVO) => { + return await request.post({ url: `/wms/countadjust-request-detail/create`, data }) +} + +// 修改盘点调整申请子 +export const updateCountadjustRequestDetail = async (data: CountadjustRequestDetailVO) => { + return await request.put({ url: `/wms/countadjust-request-detail/update`, data }) +} + +// 删除盘点调整申请子 +export const deleteCountadjustRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/countadjust-request-detail/delete?id=` + id }) +} + +// 导出盘点调整申请子 Excel +export const exportCountadjustRequestDetail = async (params) => { + return await request.download({ url: `/wms/countadjust-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/countadjust-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/countadjustRequestMain/index.ts b/src/api/wms/countadjustRequestMain/index.ts new file mode 100644 index 0000000..57ae5ee --- /dev/null +++ b/src/api/wms/countadjustRequestMain/index.ts @@ -0,0 +1,93 @@ +import request from '@/config/axios' + +export interface CountadjustRequestMainVO { + requestNumber: string + countRecordNumber: string + warehouseCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询盘点调整申请主列表 +export const getCountadjustRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/countadjust-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/countadjust-request-main/page`, params }) + } +} + +// 查询盘点调整申请主详情 +export const getCountadjustRequestMain = async (id: number) => { + return await request.get({ url: `/wms/countadjust-request-main/get?id=` + id }) +} + +// 新增盘点调整申请主 +export const createCountadjustRequestMain = async (data: CountadjustRequestMainVO) => { + return await request.post({ url: `/wms/countadjust-request-main/create`, data }) +} + +// 修改盘点调整申请主 +export const updateCountadjustRequestMain = async (data: CountadjustRequestMainVO) => { + return await request.put({ url: `/wms/countadjust-request-main/update`, data }) +} + +// 删除盘点调整申请主 +export const deleteCountadjustRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/countadjust-request-main/delete?id=` + id }) +} + +// 导出盘点调整申请主 Excel +export const exportCountadjustRequestMain = async (params) => { + return await request.download({ url: `/wms/countadjust-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/countadjust-request-main/get-import-template' }) +} + +// 关闭盘点申请主 Excel +export const close = async (id) => { + return await request.put({ url: `/wms/countadjust-request-main/close?id=` + id }) +} + +// 重新添加盘点申请主 Excel +export const reAdd = async (id) => { + return await request.put({ url: `/wms/countadjust-request-main/reAdd?id=` + id }) +} + +// 提交盘点申请主 Excel +export const submit = async (id) => { + return await request.put({ url: `/wms/countadjust-request-main/submit?id=` + id }) +} + +// 审批通过盘点申请主 Excel +export const agree = async (id) => { + return await request.put({ url: `/wms/countadjust-request-main/agree?id=` + id }) +} + +// 审批驳回盘点申请主 Excel +export const refused = async (id) => { + return await request.put({ url: `/wms/countadjust-request-main/refused?id=` + id }) +} + +// 处理盘点申请主 Excel +export const handle = async (id) => { + return await request.put({ url: `/wms/countadjust-request-main/handle?id=` + id }) +} diff --git a/src/api/wms/currencyexchange/index.ts b/src/api/wms/currencyexchange/index.ts new file mode 100644 index 0000000..6e07777 --- /dev/null +++ b/src/api/wms/currencyexchange/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +export interface CurrencyexchangeVO { + currency: string + basiccurrency: string + rate: number + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询货币转换列表 +export const getCurrencyexchangePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/currencyexchange/senior', data }) + } else { + return await request.get({ url: `/wms/currencyexchange/page`, params }) + } +} + +// 查询货币转换详情 +export const getCurrencyexchange = async (id: number) => { + return await request.get({ url: `/wms/currencyexchange/get?id=` + id }) +} + +// 新增货币转换 +export const createCurrencyexchange = async (data: CurrencyexchangeVO) => { + return await request.post({ url: `/wms/currencyexchange/create`, data }) +} + +// 修改货币转换 +export const updateCurrencyexchange = async (data: CurrencyexchangeVO) => { + return await request.put({ url: `/wms/currencyexchange/update`, data }) +} + +// 删除货币转换 +export const deleteCurrencyexchange = async (id: number) => { + return await request.delete({ url: `/wms/currencyexchange/delete?id=` + id }) +} + +// 导出货币转换 Excel +export const exportCurrencyexchange = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/currencyexchange/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/currencyexchange/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/currencyexchange/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/customer/index.ts b/src/api/wms/customer/index.ts new file mode 100644 index 0000000..7cc1830 --- /dev/null +++ b/src/api/wms/customer/index.ts @@ -0,0 +1,71 @@ +import request from '@/config/axios' + +export interface CustomerVO { + code: string + name: string + shortName: string + address: string + country: string + city: string + phone: string + fax: string + postId: string + contacts: string + bank: string + currency: string + taxRate: number + type: string + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询客户列表 +export const getCustomerPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/customer/senior', data }) + } else { + return await request.get({ url: `/wms/customer/page`, params }) + } +} +// 查询客户列表 +export const getCustomerList = async (params) => { + return await request.get({ url: `/wms/customer/list`, params }) +} +// 查询客户详情 +export const getCustomer = async (id: number) => { + return await request.get({ url: `/wms/customer/get?id=` + id }) +} + +// 新增客户 +export const createCustomer = async (data: CustomerVO) => { + return await request.post({ url: `/wms/customer/create`, data }) +} + +// 修改客户 +export const updateCustomer = async (data: CustomerVO) => { + return await request.put({ url: `/wms/customer/update`, data }) +} + +// 删除客户 +export const deleteCustomer = async (id: number) => { + return await request.delete({ url: `/wms/customer/delete?id=` + id }) +} + +// 导出客户 Excel +export const exportCustomer = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/customer/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/customer/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customer/get-import-template' }) +} diff --git a/src/api/wms/customerdock/index.ts b/src/api/wms/customerdock/index.ts new file mode 100644 index 0000000..5a5d1db --- /dev/null +++ b/src/api/wms/customerdock/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +export interface CustomerdockVO { + code: string + name: string + description: string + city: string + address: string + contactPerson: string + contactPhone: string + customerCode: string + warehouseCode: string + defaultLocationCode: string + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询客户月台列表 +export const getCustomerdockPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/customerdock/senior', data }) + } else { + return await request.get({ url: `/wms/customerdock/page`, params }) + } +} + +// 查询客户月台详情 +export const getCustomerdock = async (id: number) => { + return await request.get({ url: `/wms/customerdock/get?id=` + id }) +} + +// 新增客户月台 +export const createCustomerdock = async (data: CustomerdockVO) => { + return await request.post({ url: `/wms/customerdock/create`, data }) +} + +// 修改客户月台 +export const updateCustomerdock = async (data: CustomerdockVO) => { + return await request.put({ url: `/wms/customerdock/update`, data }) +} + +// 删除客户月台 +export const deleteCustomerdock = async (id: number) => { + return await request.delete({ url: `/wms/customerdock/delete?id=` + id }) +} + +// 导出客户月台 Excel +export const exportCustomerdock = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/customerdock/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/customerdock/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customerdock/get-import-template' }) +} diff --git a/src/api/wms/customeritem/index.ts b/src/api/wms/customeritem/index.ts new file mode 100644 index 0000000..b906a86 --- /dev/null +++ b/src/api/wms/customeritem/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +export interface CustomeritemVO { + customerCode: string + itemCode: string + customerItemCode: string + cusotmerUom: string + convertRate: number + packUnit: string + packQty: number + altPackUnit: string + altPackQty: number + packQtyOfContainer: number + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询客户物品列表 +export const getCustomeritemPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/customeritem/senior', data }) + } else { + return await request.get({ url: `/wms/customeritem/page`, params }) + } +} + +// 查询客户物品详情 +export const getCustomeritem = async (id: number) => { + return await request.get({ url: `/wms/customeritem/get?id=` + id }) +} + +// 新增客户物品 +export const createCustomeritem = async (data: CustomeritemVO) => { + return await request.post({ url: `/wms/customeritem/create`, data }) +} + +// 修改客户物品 +export const updateCustomeritem = async (data: CustomeritemVO) => { + return await request.put({ url: `/wms/customeritem/update`, data }) +} + +// 删除客户物品 +export const deleteCustomeritem = async (id: number) => { + return await request.delete({ url: `/wms/customeritem/delete?id=` + id }) +} + +// 导出客户物品 Excel +export const exportCustomeritem = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/customeritem/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/customeritem/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customeritem/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/customerreceiptRecordDetail/index.ts b/src/api/wms/customerreceiptRecordDetail/index.ts new file mode 100644 index 0000000..037bf8e --- /dev/null +++ b/src/api/wms/customerreceiptRecordDetail/index.ts @@ -0,0 +1,78 @@ +import request from '@/config/axios' + +export interface CustomerreceiptRecordDetailVO { + soNumber: string + soLine: string + fromBatch: string + inventoryStatus: string + fromOwnerCode: string + fromContainerNumber: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + toOwnerCode: string + toContainerNumber: string + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + singlePrice: number + amount: number + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string + fromPackingNumber: string + toPackingNumber: string + toBatch: string +} + +// 查询客户收货记录子列表 +export const getCustomerreceiptRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customerreceipt-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/customerreceipt-record-detail/page`, params }) + } +} + +// 查询客户收货记录子详情 +export const getCustomerreceiptRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/customerreceipt-record-detail/get?id=` + id }) +} + +// 新增客户收货记录子 +export const createCustomerreceiptRecordDetail = async (data: CustomerreceiptRecordDetailVO) => { + return await request.post({ url: `/wms/customerreceipt-record-detail/create`, data }) +} + +// 修改客户收货记录子 +export const updateCustomerreceiptRecordDetail = async (data: CustomerreceiptRecordDetailVO) => { + return await request.put({ url: `/wms/customerreceipt-record-detail/update`, data }) +} + +// 删除客户收货记录子 +export const deleteCustomerreceiptRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/customerreceipt-record-detail/delete?id=` + id }) +} + +// 导出客户收货记录子 Excel +export const exportCustomerreceiptRecordDetail = async (params) => { + return await request.download({ url: `/wms/customerreceipt-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customerreceipt-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/customerreceiptRecordMain/index.ts b/src/api/wms/customerreceiptRecordMain/index.ts new file mode 100644 index 0000000..f759818 --- /dev/null +++ b/src/api/wms/customerreceiptRecordMain/index.ts @@ -0,0 +1,74 @@ +import request from '@/config/axios' + +export interface CustomerreceiptRecordMainVO { + requestNumber: string + deliverRecordNumber: string + deliverPlanNumber: string + customerCode: string + customerDockCode: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + fromLocationTypes: string + toLocationTypes: string + fromAreaCodes: string + toAreaCodes: string + available: string +} + +// 查询客户收货记录主列表 +export const getCustomerreceiptRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customerreceipt-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/customerreceipt-record-main/page`, params }) + } +} + +// 查询客户收货记录主详情 +export const getCustomerreceiptRecordMain = async (id: number) => { + return await request.get({ url: `/wms/customerreceipt-record-main/get?id=` + id }) +} + +// 新增客户收货记录主 +export const createCustomerreceiptRecordMain = async (data: CustomerreceiptRecordMainVO) => { + return await request.post({ url: `/wms/customerreceipt-record-main/create`, data }) +} + +// 修改客户收货记录主 +export const updateCustomerreceiptRecordMain = async (data: CustomerreceiptRecordMainVO) => { + return await request.put({ url: `/wms/customerreceipt-record-main/update`, data }) +} + +// 删除客户收货记录主 +export const deleteCustomerreceiptRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/customerreceipt-record-main/delete?id=` + id }) +} + +// 导出客户收货记录主 Excel +export const exportCustomerreceiptRecordMain = async (params) => { + return await request.download({ url: `/wms/customerreceipt-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customerreceipt-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/customerreceiptRequestDetail/index.ts b/src/api/wms/customerreceiptRequestDetail/index.ts new file mode 100644 index 0000000..f370f62 --- /dev/null +++ b/src/api/wms/customerreceiptRequestDetail/index.ts @@ -0,0 +1,68 @@ +import request from '@/config/axios' + +export interface CustomerreceiptRequestDetailVO { + soNumber: string + soLine: string + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + fromLocationCode: string + toLocationCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询客户收货申请子列表 +export const getCustomerreceiptRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customerreceipt-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/customerreceipt-request-detail/page`, params }) + } +} + +// 查询客户收货申请子详情 +export const getCustomerreceiptRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/customerreceipt-request-detail/get?id=` + id }) +} + +// 新增客户收货申请子 +export const createCustomerreceiptRequestDetail = async (data: CustomerreceiptRequestDetailVO) => { + return await request.post({ url: `/wms/customerreceipt-request-detail/create`, data }) +} + +// 修改客户收货申请子 +export const updateCustomerreceiptRequestDetail = async (data: CustomerreceiptRequestDetailVO) => { + return await request.put({ url: `/wms/customerreceipt-request-detail/update`, data }) +} + +// 删除客户收货申请子 +export const deleteCustomerreceiptRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/customerreceipt-request-detail/delete?id=` + id }) +} + +// 导出客户收货申请子 Excel +export const exportCustomerreceiptRequestDetail = async (params) => { + return await request.download({ url: `/wms/customerreceipt-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customerreceipt-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/customerreceiptRequestMain/index.ts b/src/api/wms/customerreceiptRequestMain/index.ts new file mode 100644 index 0000000..0704cd0 --- /dev/null +++ b/src/api/wms/customerreceiptRequestMain/index.ts @@ -0,0 +1,98 @@ +import request from '@/config/axios' + +export interface CustomerreceiptRequestMainVO { + customerreceiptRequestNumber: string + customerreceiptPlanNumber: string + customerCode: string + customerDockCode: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + fromLocationTypes: string + toLocationTypes: string + fromAreaCodes: string + toAreaCodes: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询客户收货申请主列表 +export const getCustomerreceiptRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customerreceipt-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/customerreceipt-request-main/page`, params }) + } +} + +// 查询客户收货申请主详情 +export const getCustomerreceiptRequestMain = async (id: number) => { + return await request.get({ url: `/wms/customerreceipt-request-main/get?id=` + id }) +} + +// 新增客户收货申请主 +export const createCustomerreceiptRequestMain = async (data: CustomerreceiptRequestMainVO) => { + return await request.post({ url: `/wms/customerreceipt-request-main/create`, data }) +} + +// 修改客户收货申请主 +export const updateCustomerreceiptRequestMain = async (data: CustomerreceiptRequestMainVO) => { + return await request.put({ url: `/wms/customerreceipt-request-main/update`, data }) +} + +// 删除客户收货申请主 +export const deleteCustomerreceiptRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/customerreceipt-request-main/delete?id=` + id }) +} + +// 导出客户收货申请主 Excel +export const exportCustomerreceiptRequestMain = async (params) => { + return await request.download({ url: `/wms/customerreceipt-request-main/export-excel`, params }) +} + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/customerreceipt-request-main/close?id=' + id }) +} + +// 重新添加 +export const reAdd = (id) => { + return request.put({ url: '/wms/customerreceipt-request-main/reAdd?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/customerreceipt-request-main/submit?id=' + id }) +} + +// 驳回 +export const refused = (id) => { + return request.put({ url: '/wms/customerreceipt-request-main/refused?id=' + id }) +} + +// 审批通过 +export const agree = (id) => { + return request.put({ url: '/wms/customerreceipt-request-main/agree?id=' + id }) +} + +// 处理 +export const handle = (id) => { + return request.put({ url: '/wms/customerreceipt-request-main/handle?id=' + id }) +} \ No newline at end of file diff --git a/src/api/wms/customerreturnJobDetail/index.ts b/src/api/wms/customerreturnJobDetail/index.ts new file mode 100644 index 0000000..526c63a --- /dev/null +++ b/src/api/wms/customerreturnJobDetail/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface CustomerreturnJobDetailVO { + soNumber: string + soLine: string + packingNumber: string + batch: string + inventoryStatus: string + ownerCode: string + containerNumber: string + fromLocationCode: string + toLocationCode: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createtime: Date + creator: string +} + +// 查询客户退货任务子列表 +export const getCustomerreturnJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customerreturn-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/customerreturn-job-detail/page`, params }) + } +} + +// 查询客户退货任务子详情 +export const getCustomerreturnJobDetail = async (id: number) => { + return await request.get({ url: `/wms/customerreturn-job-detail/get?id=` + id }) +} + +// 新增客户退货任务子 +export const createCustomerreturnJobDetail = async (data: CustomerreturnJobDetailVO) => { + return await request.post({ url: `/wms/customerreturn-job-detail/create`, data }) +} + +// 修改客户退货任务子 +export const updateCustomerreturnJobDetail = async (data: CustomerreturnJobDetailVO) => { + return await request.put({ url: `/wms/customerreturn-job-detail/update`, data }) +} + +// 删除客户退货任务子 +export const deleteCustomerreturnJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/customerreturn-job-detail/delete?id=` + id }) +} + +// 导出客户退货任务子 Excel +export const exportCustomerreturnJobDetail = async (params) => { + return await request.download({ url: `/wms/customerreturn-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customerreturn-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/customerreturnJobMain/index.ts b/src/api/wms/customerreturnJobMain/index.ts new file mode 100644 index 0000000..ae00479 --- /dev/null +++ b/src/api/wms/customerreturnJobMain/index.ts @@ -0,0 +1,115 @@ +import request from '@/config/axios' + +export interface CustomerreturnJobMainVO { + requestNumber: string + deliverRecordNumber: string + deliverPlanNumber: string + customerCode: string + customerDockCode: string + receiptDock: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromAreaCodes: string + toAreaCodes: string + toDockCode: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询客户退货任务主列表 +export const getCustomerreturnJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customerreturn-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/customerreturn-job-main/page`, params }) + } +} + +// 查询客户退货任务主详情 +export const getCustomerreturnJobMain = async (id: number) => { + return await request.get({ url: `/wms/customerreturn-job-main/get?id=` + id }) +} + +// 新增客户退货任务主 +export const createCustomerreturnJobMain = async (data: CustomerreturnJobMainVO) => { + return await request.post({ url: `/wms/customerreturn-job-main/create`, data }) +} + +// 修改客户退货任务主 +export const updateCustomerreturnJobMain = async (data: CustomerreturnJobMainVO) => { + return await request.put({ url: `/wms/customerreturn-job-main/update`, data }) +} + +// 删除客户退货任务主 +export const deleteCustomerreturnJobMain = async (id: number) => { + return await request.delete({ url: `/wms/customerreturn-job-main/delete?id=` + id }) +} + +// 导出客户退货任务主 Excel +export const exportCustomerreturnJobMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/customerreturn-job-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/customerreturn-job-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customerreturn-job-main/get-import-template' }) +} + +// 承接客户退货任务主 Excel +export const acceptCustomerreturnJobMain = async (id) => { + return await request.put({ url: `/wms/customerreturn-job-main/accept?id=` + id }) +} + +// 取消承接客户退货任务主 Excel +export const abandonCustomerreturnJobMain = async (id) => { + return await request.put({ url: `/wms/customerreturn-job-main/abandon?id=` + id }) +} + +// 关闭客户退货任务主 Excel +export const closeCustomerreturnJobMain = async (id) => { + return await request.put({ url: `/wms/customerreturn-job-main/close?id=` + id }) +} + +// 执行客户退货任务主 +export const executeCustomerreturnJobMain = async (data: CustomerreturnJobMainVO) => { + return await request.put({ url: `/wms/customerreturn-job-main/execute`, data }) +} \ No newline at end of file diff --git a/src/api/wms/customerreturnRecordDetail/index.ts b/src/api/wms/customerreturnRecordDetail/index.ts new file mode 100644 index 0000000..e139bd6 --- /dev/null +++ b/src/api/wms/customerreturnRecordDetail/index.ts @@ -0,0 +1,78 @@ +import request from '@/config/axios' + +export interface CustomerreturnRecordDetailVO { + soNumber: string + soLine: string + fromBatch: string + inventoryStatus: string + fromOwnerCode: string + fromContainerNumber: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + toOwnerCode: string + toContainerNumber: string + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + singlePrice: number + amount: number + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string + fromPackingNumber: string + toPackingNumber: string + toBatch: string +} + +// 查询客户退货记录子列表 +export const getCustomerreturnRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customerreturn-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/customerreturn-record-detail/page`, params }) + } +} + +// 查询客户退货记录子详情 +export const getCustomerreturnRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/customerreturn-record-detail/get?id=` + id }) +} + +// 新增客户退货记录子 +export const createCustomerreturnRecordDetail = async (data: CustomerreturnRecordDetailVO) => { + return await request.post({ url: `/wms/customerreturn-record-detail/create`, data }) +} + +// 修改客户退货记录子 +export const updateCustomerreturnRecordDetail = async (data: CustomerreturnRecordDetailVO) => { + return await request.put({ url: `/wms/customerreturn-record-detail/update`, data }) +} + +// 删除客户退货记录子 +export const deleteCustomerreturnRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/customerreturn-record-detail/delete?id=` + id }) +} + +// 导出客户退货记录子 Excel +export const exportCustomerreturnRecordDetail = async (params) => { + return await request.download({ url: `/wms/customerreturn-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customerreturn-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/customerreturnRecordMain/index.ts b/src/api/wms/customerreturnRecordMain/index.ts new file mode 100644 index 0000000..d714111 --- /dev/null +++ b/src/api/wms/customerreturnRecordMain/index.ts @@ -0,0 +1,76 @@ +import request from '@/config/axios' + +export interface CustomerreturnRecordMainVO { + requestNumber: string + jobNumber: string + deliverRecordNumber: string + deliverPlanNumber: string + customerCode: string + customerDockCode: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creatorId: string + code: string + fromLocationTypes: string + toLocationTypes: string + toAreaCodes: string + toDockCode: string + available: string + fromAreaCodes: string +} + +// 查询客户退货记录主列表 +export const getCustomerreturnRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customerreturn-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/customerreturn-record-main/page`, params }) + } +} + +// 查询客户退货记录主详情 +export const getCustomerreturnRecordMain = async (id: number) => { + return await request.get({ url: `/wms/customerreturn-record-main/get?id=` + id }) +} + +// 新增客户退货记录主 +export const createCustomerreturnRecordMain = async (data: CustomerreturnRecordMainVO) => { + return await request.post({ url: `/wms/customerreturn-record-main/create`, data }) +} + +// 修改客户退货记录主 +export const updateCustomerreturnRecordMain = async (data: CustomerreturnRecordMainVO) => { + return await request.put({ url: `/wms/customerreturn-record-main/update`, data }) +} + +// 删除客户退货记录主 +export const deleteCustomerreturnRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/customerreturn-record-main/delete?id=` + id }) +} + +// 导出客户退货记录主 Excel +export const exportCustomerreturnRecordMain = async (params) => { + return await request.download({ url: `/wms/customerreturn-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customerreturn-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/customerreturnRequestDetail/index.ts b/src/api/wms/customerreturnRequestDetail/index.ts new file mode 100644 index 0000000..28f2b02 --- /dev/null +++ b/src/api/wms/customerreturnRequestDetail/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface CustomerreturnRequestDetailVO { + soNumber: string + soLine: string + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + fromOwnerCode: string + fromLocationCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + toOwnerCode: string +} + +// 查询客户退货申请子列表 +export const getCustomerreturnRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customerreturn-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/customerreturn-request-detail/page`, params }) + } +} + +// 查询客户退货申请子详情 +export const getCustomerreturnRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/customerreturn-request-detail/get?id=` + id }) +} + +// 新增客户退货申请子 +export const createCustomerreturnRequestDetail = async (data: CustomerreturnRequestDetailVO) => { + return await request.post({ url: `/wms/customerreturn-request-detail/create`, data }) +} + +// 修改客户退货申请子 +export const updateCustomerreturnRequestDetail = async (data: CustomerreturnRequestDetailVO) => { + return await request.put({ url: `/wms/customerreturn-request-detail/update`, data }) +} + +// 删除客户退货申请子 +export const deleteCustomerreturnRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/customerreturn-request-detail/delete?id=` + id }) +} + +// 导出客户退货申请子 Excel +export const exportCustomerreturnRequestDetail = async (params) => { + return await request.download({ url: `/wms/customerreturn-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customerreturn-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/customerreturnRequestMain/index.ts b/src/api/wms/customerreturnRequestMain/index.ts new file mode 100644 index 0000000..6f42a56 --- /dev/null +++ b/src/api/wms/customerreturnRequestMain/index.ts @@ -0,0 +1,110 @@ +import request from '@/config/axios' + +export interface CustomerreturnRequestMainVO { + requestNumber: string + deliverRecordNumber: string + deliverPlanNumber: string + customerCode: string + customerDockCode: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + toDockCode: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询客户退货申请主列表 +export const getCustomerreturnRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customerreturn-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/customerreturn-request-main/page`, params }) + } +} + +// 查询客户退货申请主详情 +export const getCustomerreturnRequestMain = async (id: number) => { + return await request.get({ url: `/wms/customerreturn-request-main/get?id=` + id }) +} + +// 新增客户退货申请主 +export const createCustomerreturnRequestMain = async (data: CustomerreturnRequestMainVO) => { + return await request.post({ url: `/wms/customerreturn-request-main/create`, data }) +} + +// 修改客户退货申请主 +export const updateCustomerreturnRequestMain = async (data: CustomerreturnRequestMainVO) => { + return await request.put({ url: `/wms/customerreturn-request-main/update`, data }) +} + +// 删除客户退货申请主 +export const deleteCustomerreturnRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/customerreturn-request-main/delete?id=` + id }) +} + +// 导出客户退货申请主 Excel +export const exportCustomerreturnRequestMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/customerreturn-request-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/customerreturn-request-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customerreturn-request-main/get-import-template' }) +} + +// 关闭客户退货申请主 Excel +export const close = async (id) => { + return await request.put({ url: `/wms/customerreturn-request-main/close?id=` + id }) +} + +// 重新添加客户退货申请主 Excel +export const reAdd = async (id) => { + return await request.put({ url: `/wms/customerreturn-request-main/reAdd?id=` + id }) +} + +// 提交客户退货申请主 Excel +export const submit = async (id) => { + return await request.put({ url: `/wms/customerreturn-request-main/submit?id=` + id }) +} + +// 审批通过客户退货申请主 Excel +export const agree = async (id) => { + return await request.put({ url: `/wms/customerreturn-request-main/agree?id=` + id }) +} + +// 审批驳回客户退货申请主 Excel +export const refused = async (id) => { + return await request.put({ url: `/wms/customerreturn-request-main/refused?id=` + id }) +} + +// 处理驳回客户退货申请主 Excel +export const handle = async (id) => { + return await request.put({ url: `/wms/customerreturn-request-main/handle?id=` + id }) +} \ No newline at end of file diff --git a/src/api/wms/customersettleRecordDetail/index.ts b/src/api/wms/customersettleRecordDetail/index.ts new file mode 100644 index 0000000..3932fed --- /dev/null +++ b/src/api/wms/customersettleRecordDetail/index.ts @@ -0,0 +1,71 @@ +import request from '@/config/axios' + +export interface CustomersettleRecordDetailVO { + soNumber: string + soLine: string + ownerCode: string + packingNumber: string + batch: string + inventoryStatus: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + singlePrice: number + amount: number + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + interfaceType: string + code: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + siteId: string + jobDetailId: string +} + +// 查询客户结算记录子列表 +export const getCustomersettleRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customersettle-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/customersettle-record-detail/page`, params }) + } +} + +// 查询客户结算记录子详情 +export const getCustomersettleRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/customersettle-record-detail/get?id=` + id }) +} + +// 新增客户结算记录子 +export const createCustomersettleRecordDetail = async (data: CustomersettleRecordDetailVO) => { + return await request.post({ url: `/wms/customersettle-record-detail/create`, data }) +} + +// 修改客户结算记录子 +export const updateCustomersettleRecordDetail = async (data: CustomersettleRecordDetailVO) => { + return await request.put({ url: `/wms/customersettle-record-detail/update`, data }) +} + +// 删除客户结算记录子 +export const deleteCustomersettleRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/customersettle-record-detail/delete?id=` + id }) +} + +// 导出客户结算记录子 Excel +export const exportCustomersettleRecordDetail = async (params) => { + return await request.download({ url: `/wms/customersettle-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customersettle-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/customersettleRecordMain/index.ts b/src/api/wms/customersettleRecordMain/index.ts new file mode 100644 index 0000000..34fcd2e --- /dev/null +++ b/src/api/wms/customersettleRecordMain/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface CustomersettleRecordMainVO { + requestNumber: string + deliverRecordNumber: string + deliverPlanNumber: string + customerCode: string + outTransactionType: string + inTransactionYpe: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + code: string + number: string + businessType: string + createTime: Date + creator: string + remark: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + available: string +} + +// 查询客户结算记录主列表 +export const getCustomersettleRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customersettle-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/customersettle-record-main/page`, params }) + } +} + +// 查询客户结算记录主详情 +export const getCustomersettleRecordMain = async (id: number) => { + return await request.get({ url: `/wms/customersettle-record-main/get?id=` + id }) +} + +// 新增客户结算记录主 +export const createCustomersettleRecordMain = async (data: CustomersettleRecordMainVO) => { + return await request.post({ url: `/wms/customersettle-record-main/create`, data }) +} + +// 修改客户结算记录主 +export const updateCustomersettleRecordMain = async (data: CustomersettleRecordMainVO) => { + return await request.put({ url: `/wms/customersettle-record-main/update`, data }) +} + +// 删除客户结算记录主 +export const deleteCustomersettleRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/customersettle-record-main/delete?id=` + id }) +} + +// 导出客户结算记录主 Excel +export const exportCustomersettleRecordMain = async (params) => { + return await request.download({ url: `/wms/customersettle-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customersettle-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/customersettleRequestDetail/index.ts b/src/api/wms/customersettleRequestDetail/index.ts new file mode 100644 index 0000000..9877bd9 --- /dev/null +++ b/src/api/wms/customersettleRequestDetail/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface CustomersettleRequestDetailVO { + soNumber: string + soLine: string + fromOwnerCode: string + packingNumber: string + batch: string + inventoryStatus: string + fromLocationCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string +} + +// 查询客户结算申请子列表 +export const getCustomersettleRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customersettle-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/customersettle-request-detail/page`, params }) + } +} + +// 查询客户结算申请子详情 +export const getCustomersettleRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/customersettle-request-detail/get?id=` + id }) +} + +// 新增客户结算申请子 +export const createCustomersettleRequestDetail = async (data: CustomersettleRequestDetailVO) => { + return await request.post({ url: `/wms/customersettle-request-detail/create`, data }) +} + +// 修改客户结算申请子 +export const updateCustomersettleRequestDetail = async (data: CustomersettleRequestDetailVO) => { + return await request.put({ url: `/wms/customersettle-request-detail/update`, data }) +} + +// 删除客户结算申请子 +export const deleteCustomersettleRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/customersettle-request-detail/delete?id=` + id }) +} + +// 导出客户结算申请子 Excel +export const exportCustomersettleRequestDetail = async (params) => { + return await request.download({ url: `/wms/customersettle-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customersettle-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/customersettleRequestMain/index.ts b/src/api/wms/customersettleRequestMain/index.ts new file mode 100644 index 0000000..5b9a042 --- /dev/null +++ b/src/api/wms/customersettleRequestMain/index.ts @@ -0,0 +1,96 @@ +import request from '@/config/axios' + +export interface CustomersettleRequestMainVO { + deliverRecordNumber: string + deliverPlanNumber: string + customerCode: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询客户结算申请主列表 +export const getCustomersettleRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customersettle-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/customersettle-request-main/page`, params }) + } +} + +// 查询客户结算申请主详情 +export const getCustomersettleRequestMain = async (id: number) => { + return await request.get({ url: `/wms/customersettle-request-main/get?id=` + id }) +} + +// 新增客户结算申请主 +export const createCustomersettleRequestMain = async (data: CustomersettleRequestMainVO) => { + return await request.post({ url: `/wms/customersettle-request-main/create`, data }) +} + +// 修改客户结算申请主 +export const updateCustomersettleRequestMain = async (data: CustomersettleRequestMainVO) => { + return await request.put({ url: `/wms/customersettle-request-main/update`, data }) +} + +// 删除客户结算申请主 +export const deleteCustomersettleRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/customersettle-request-main/delete?id=` + id }) +} + +// 导出客户结算申请主 Excel +export const exportCustomersettleRequestMain = async (params) => { + return await request.download({ url: `/wms/customersettle-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customersettle-request-main/get-import-template' }) +} + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/customersettle-request-main/close?id=' + id }) +} + +// 重新添加 +export const reAdd = (id) => { + return request.put({ url: '/wms/customersettle-request-main/reAdd?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/customersettle-request-main/submit?id=' + id }) +} + +// 驳回 +export const refused = (id) => { + return request.put({ url: '/wms/customersettle-request-main/refused?id=' + id }) +} + +// 审批通过 +export const agree = (id) => { + return request.put({ url: '/wms/customersettle-request-main/agree?id=' + id }) +} + +// 处理 +export const handle = (id) => { + return request.put({ url: '/wms/customersettle-request-main/handle?id=' + id }) +} \ No newline at end of file diff --git a/src/api/wms/deliverJobDetail/index.ts b/src/api/wms/deliverJobDetail/index.ts new file mode 100644 index 0000000..9e54e57 --- /dev/null +++ b/src/api/wms/deliverJobDetail/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface DeliverJobDetailVO { + soNumber: string + soLine: string + packingNumber: string + batch: string + inventoryStatus: string + ownerCode: string + containerNumber: string + fromLocationCode: string + toLocationCode: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string +} + +// 查询发货任务子列表 +export const getDeliverJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/deliver-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/deliver-job-detail/page`, params }) + } +} + +// 查询发货任务子详情 +export const getDeliverJobDetail = async (id: number) => { + return await request.get({ url: `/wms/deliver-job-detail/get?id=` + id }) +} + +// 新增发货任务子 +export const createDeliverJobDetail = async (data: DeliverJobDetailVO) => { + return await request.post({ url: `/wms/deliver-job-detail/create`, data }) +} + +// 修改发货任务子 +export const updateDeliverJobDetail = async (data: DeliverJobDetailVO) => { + return await request.put({ url: `/wms/deliver-job-detail/update`, data }) +} + +// 删除发货任务子 +export const deleteDeliverJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/deliver-job-detail/delete?id=` + id }) +} + +// 导出发货任务子 Excel +export const exportDeliverJobDetail = async (params) => { + return await request.download({ url: `/wms/deliver-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/deliver-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/deliverJobMain/index.ts b/src/api/wms/deliverJobMain/index.ts new file mode 100644 index 0000000..a539279 --- /dev/null +++ b/src/api/wms/deliverJobMain/index.ts @@ -0,0 +1,115 @@ +import request from '@/config/axios' + +export interface DeliverJobMainVO { + requestNumber: string + deliverPlanNumber: string + customerDeliverNumber: string + customerCode: string + customerDockCode: string + deliverDock: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityincrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + ruleUserId: number + fromAreaCodes: string + toAreaCodes: string + fromDockCode: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询发货任务主列表 +export const getDeliverJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/deliver-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/deliver-job-main/page`, params }) + } +} + +// 查询发货任务主详情 +export const getDeliverJobMain = async (id: number) => { + return await request.get({ url: `/wms/deliver-job-main/get?id=` + id }) +} + +// 新增发货任务主 +export const createDeliverJobMain = async (data: DeliverJobMainVO) => { + return await request.post({ url: `/wms/deliver-job-main/create`, data }) +} + +// 修改发货任务主 +export const updateDeliverJobMain = async (data: DeliverJobMainVO) => { + return await request.put({ url: `/wms/deliver-job-main/update`, data }) +} + +// 删除发货任务主 +export const deleteDeliverJobMain = async (id: number) => { + return await request.delete({ url: `/wms/deliver-job-main/delete?id=` + id }) +} + +// 导出发货任务主 Excel +export const exportDeliverJobMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/deliver-job-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/deliver-job-main/export-excel`, params }) } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/deliver-job-main/get-import-template' }) +} + +// 承接发货任务 Excel +export const acceptDeliverJobMain = async (id) => { + return await request.put({ url: `/wms/deliver-job-main/accept?id=` + id }) +} + +// 取消承接发货任务 Excel +export const abandonDeliverJobMain = async (id) => { + return await request.put({ url: `/wms/deliver-job-main/abandon?id=` + id }) +} + +// 关闭发货任务主 Excel +export const closeDeliverJobMain = async (id) => { + return await request.put({ url: `/wms/deliver-job-main/close?id=` + id }) +} + +// 执行发货任务主 +export const executeDeliverJobMain = async (data: DeliverJobMainVO) => { + return await request.put({ url: `/wms/deliver-job-main/execute`, data }) +} \ No newline at end of file diff --git a/src/api/wms/deliverPlanDetail/index.ts b/src/api/wms/deliverPlanDetail/index.ts new file mode 100644 index 0000000..33aeffd --- /dev/null +++ b/src/api/wms/deliverPlanDetail/index.ts @@ -0,0 +1,53 @@ +import request from '@/config/axios' + +export interface DeliverPlanDetailVO { + soNumber: string + soLine: string + customerDockCode: string + project: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + planQty: number + uom: string + updateTime: Date + updater: string + available: string +} + +// 查询发货计划子列表 +export const selectDetailByMasterID = async (id: number) => { + return await request.get({ url: `/wms/deliver-plan-detail/detailList?id=` + id }) +} + +// 查询发货计划子列表 +export const getDeliverPlanDetailPage = async (params) => { + return await request.get({ url: `/wms/deliver-plan-detail/page`, params }) +} + +// 查询发货计划子详情 +export const getDeliverPlanDetail = async (id: number) => { + return await request.get({ url: `/wms/deliver-plan-detail/get?id=` + id }) +} + +// 新增发货计划子 +export const createDeliverPlanDetail = async (data: DeliverPlanDetailVO) => { + return await request.post({ url: `/wms/deliver-plan-detail/create`, data }) +} + +// 修改发货计划子 +export const updateDeliverPlanDetail = async (data: DeliverPlanDetailVO) => { + return await request.put({ url: `/wms/deliver-plan-detail/update`, data }) +} + +// 删除发货计划子 +export const deleteDeliverPlanDetail = async (id: number) => { + return await request.delete({ url: `/wms/deliver-plan-detail/delete?id=` + id }) +} + +// 导出发货计划子 Excel +export const exportDeliverPlanDetail = async (params) => { + return await request.download({ url: `/wms/deliver-plan-detail/export-excel`, params }) +} diff --git a/src/api/wms/deliverPlanMain/index.ts b/src/api/wms/deliverPlanMain/index.ts new file mode 100644 index 0000000..ea2a799 --- /dev/null +++ b/src/api/wms/deliverPlanMain/index.ts @@ -0,0 +1,93 @@ +import request from '@/config/axios' + +export interface DeliverPlanMainVO { + customerCode: string + planDate: Date + number: string + businessType: string + remark: string + createTime: Date + creator: string + beginTime: Date + endTime: Date + status: string + updateTime: Date + updater: string + available: string +} + +// 查询发货计划主列表 +export const getDeliverPlanMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/deliver-plan-main/senior', data }) + } else { + return await request.get({ url: `/wms/deliver-plan-main/page`, params }) + } +} + +// 查询发货计划主详情 +export const getDeliverPlanMain = async (id: number) => { + return await request.get({ url: `/wms/deliver-plan-main/get?id=` + id }) +} + +// 新增发货计划主 +export const createDeliverPlanMain = async (data: DeliverPlanMainVO) => { + return await request.post({ url: `/wms/deliver-plan-main/create`, data }) +} + +// 修改发货计划主 +export const updateDeliverPlanMain = async (data: DeliverPlanMainVO) => { + return await request.put({ url: `/wms/deliver-plan-main/update`, data }) +} + +// 删除发货计划主 +export const deleteDeliverPlanMain = async (id: number) => { + return await request.delete({ url: `/wms/deliver-plan-main/delete?id=` + id }) +} + +// 导出发货计划主 Excel +export const exportDeliverPlanMain = async (params) => { + return await request.download({ url: `/wms/deliver-plan-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/deliver-plan-main/get-import-template' }) +} + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/deliver-plan-main/close?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/deliver-plan-main/submit?id=' + id }) +} + +// 打开 +export const open = (id) => { + return request.put({ url: '/wms/deliver-plan-main/open?id=' + id }) +} + +// 驳回 +export const reject = (id) => { + return request.put({ url: '/wms/deliver-plan-main/reject?id=' + id }) +} + +// 通过 +export const agree = (id) => { + return request.put({ url: '/wms/deliver-plan-main/agree?id=' + id }) +} + +// 发布 +export const publish = (id) => { + return request.put({ url: '/wms/deliver-plan-main/publish?id=' + id }) +} + +// 重置 +export const resetting = (id) => { + return request.put({ url: '/wms/deliver-plan-main/resetting?id=' + id }) +} \ No newline at end of file diff --git a/src/api/wms/deliverRecordDetail/index.ts b/src/api/wms/deliverRecordDetail/index.ts new file mode 100644 index 0000000..2c6eaa2 --- /dev/null +++ b/src/api/wms/deliverRecordDetail/index.ts @@ -0,0 +1,76 @@ +import request from '@/config/axios' + +export interface DeliverRecordDetailVO { + soNumber: string + soLine: string + packingNumber: string + batch: string + inventoryStatus: string + fromOwnerCode: string + fromContainerNumber: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + toOwnerCode: string + toContainerNumber: string + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + singlePrice: number + amount: number + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string +} + +// 查询发货记录子列表 +export const getDeliverRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/deliver-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/deliver-record-detail/page`, params }) + } +} + +// 查询发货记录子详情 +export const getDeliverRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/deliver-record-detail/get?id=` + id }) +} + +// 新增发货记录子 +export const createDeliverRecordDetail = async (data: DeliverRecordDetailVO) => { + return await request.post({ url: `/wms/deliver-record-detail/create`, data }) +} + +// 修改发货记录子 +export const updateDeliverRecordDetail = async (data: DeliverRecordDetailVO) => { + return await request.put({ url: `/wms/deliver-record-detail/update`, data }) +} + +// 删除发货记录子 +export const deleteDeliverRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/deliver-record-detail/delete?id=` + id }) +} + +// 导出发货记录子 Excel +export const exportDeliverRecordDetail = async (params) => { + return await request.download({ url: `/wms/deliver-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/deliver-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/deliverRecordMain/index.ts b/src/api/wms/deliverRecordMain/index.ts new file mode 100644 index 0000000..52c36d0 --- /dev/null +++ b/src/api/wms/deliverRecordMain/index.ts @@ -0,0 +1,76 @@ +import request from '@/config/axios' + +export interface DeliverRecordMainVO { + requestNumber: string + jobNumber: string + deliverPlanNumber: string + customerDeliverNumber: string + customerCode: string + customerDockCode: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + fromLocationTypes: string + fromAreaCodes: string + toLocationTypes: string + toAreaCodes: string + fromDockCode: string + available: string +} + +// 查询发货记录主列表 +export const getDeliverRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/deliver-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/deliver-record-main/page`, params }) + } +} + +// 查询发货记录主详情 +export const getDeliverRecordMain = async (id: number) => { + return await request.get({ url: `/wms/deliver-record-main/get?id=` + id }) +} + +// 新增发货记录主 +export const createDeliverRecordMain = async (data: DeliverRecordMainVO) => { + return await request.post({ url: `/wms/deliver-record-main/create`, data }) +} + +// 修改发货记录主 +export const updateDeliverRecordMain = async (data: DeliverRecordMainVO) => { + return await request.put({ url: `/wms/deliver-record-main/update`, data }) +} + +// 删除发货记录主 +export const deleteDeliverRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/deliver-record-main/delete?id=` + id }) +} + +// 导出发货记录主 Excel +export const exportDeliverRecordMain = async (params) => { + return await request.download({ url: `/wms/deliver-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/deliver-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/deliverRequestDetail/index.ts b/src/api/wms/deliverRequestDetail/index.ts new file mode 100644 index 0000000..2022ede --- /dev/null +++ b/src/api/wms/deliverRequestDetail/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface DeliverRequestDetailVO { + soNumber: string + soLine: string + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + toOwnerCode: string + toLocationCode: string + number: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + itemCode: string + fromOwnerCode: string +} + +// 查询发货申请子列表 +export const getDeliverRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/deliver-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/deliver-request-detail/page`, params }) + } +} + +// 查询发货申请子详情 +export const getDeliverRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/deliver-request-detail/get?id=` + id }) +} + +// 新增发货申请子 +export const createDeliverRequestDetail = async (data: DeliverRequestDetailVO) => { + return await request.post({ url: `/wms/deliver-request-detail/create`, data }) +} + +// 修改发货申请子 +export const updateDeliverRequestDetail = async (data: DeliverRequestDetailVO) => { + return await request.put({ url: `/wms/deliver-request-detail/update`, data }) +} + +// 删除发货申请子 +export const deleteDeliverRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/deliver-request-detail/delete?id=` + id }) +} + +// 导出发货申请子 Excel +export const exportDeliverRequestDetail = async (params) => { + return await request.download({ url: `/wms/deliver-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/deliver-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/deliverRequestMain/index.ts b/src/api/wms/deliverRequestMain/index.ts new file mode 100644 index 0000000..47ae568 --- /dev/null +++ b/src/api/wms/deliverRequestMain/index.ts @@ -0,0 +1,103 @@ +import request from '@/config/axios' + +export interface DeliverRequestMainVO { + deliverPlanNumber: string + customerDeliverNumber: string + customerCode: string + customerDockCode: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + toLocationTypes: string + toAreaCodes: string + fromDockCode: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询发货申请主列表 +export const getDeliverRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/deliver-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/deliver-request-main/page`, params }) + } +} + +// 查询发货申请主详情 +export const getDeliverRequestMain = async (id: number) => { + return await request.get({ url: `/wms/deliver-request-main/get?id=` + id }) +} + +// 新增发货申请主 +export const createDeliverRequestMain = async (data: DeliverRequestMainVO) => { + return await request.post({ url: `/wms/deliver-request-main/create`, data }) +} + +// 修改发货申请主 +export const updateDeliverRequestMain = async (data: DeliverRequestMainVO) => { + return await request.put({ url: `/wms/deliver-request-main/update`, data }) +} + +// 删除发货申请主 +export const deleteDeliverRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/deliver-request-main/delete?id=` + id }) +} + +// 导出发货申请主 Excel +export const exportDeliverRequestMain = async (params) => { + return await request.download({ url: `/wms/deliver-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/deliver-request-main/get-import-template' }) +} +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/deliver-request-main/close?id=' + id }) +} + +// 重新添加 +export const reAdd = (id) => { + return request.put({ url: '/wms/deliver-request-main/reAdd?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/deliver-request-main/submit?id=' + id }) +} + +// 驳回 +export const refused = (id) => { + return request.put({ url: '/wms/deliver-request-main/refused?id=' + id }) +} + +// 审批通过 +export const agree = (id) => { + return request.put({ url: '/wms/deliver-request-main/agree?id=' + id }) +} + +// 处理 +export const handle = (id) => { + return request.put({ url: '/wms/deliver-request-main/handle?id=' + id }) +} \ No newline at end of file diff --git a/src/api/wms/demandforecastingDetail/index.ts b/src/api/wms/demandforecastingDetail/index.ts new file mode 100644 index 0000000..bfed743 --- /dev/null +++ b/src/api/wms/demandforecastingDetail/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +export interface DemandforecastingDetailVO { + predictTimeType: string + predictTime: Date + number: string + itemCode: string + remark: string + createTime: Date + creator: string + planQty: number + uom: string + updateTime: Date + updater: string + available: string +} + +// 查询要货预测子列表 +export const getDemandforecastingDetailPage = async (params) => { + return await request.get({ url: `/wms/demandforecasting-detail/page`, params }) +} + +// 查询要货预测子详情 +export const getDemandforecastingDetail = async (id: number) => { + return await request.get({ url: `/wms/demandforecasting-detail/get?id=` + id }) +} + +// 新增要货预测子 +export const createDemandforecastingDetail = async (data: DemandforecastingDetailVO) => { + return await request.post({ url: `/wms/demandforecasting-detail/create`, data }) +} + +// 修改要货预测子 +export const updateDemandforecastingDetail = async (data: DemandforecastingDetailVO) => { + return await request.put({ url: `/wms/demandforecasting-detail/update`, data }) +} + +// 删除要货预测子 +export const deleteDemandforecastingDetail = async (id: number) => { + return await request.delete({ url: `/wms/demandforecasting-detail/delete?id=` + id }) +} + +// 导出要货预测子 Excel +export const exportDemandforecastingDetail = async (params) => { + return await request.download({ url: `/wms/demandforecasting-detail/export-excel`, params }) +} diff --git a/src/api/wms/demandforecastingMain/index.ts b/src/api/wms/demandforecastingMain/index.ts new file mode 100644 index 0000000..16cda3e --- /dev/null +++ b/src/api/wms/demandforecastingMain/index.ts @@ -0,0 +1,59 @@ +import request from '@/config/axios' + +export interface DemandforecastingMainVO { + supplierCode: string + version: string + publishTime: Date + number: string + businessType: string + remark: string + createTime: Date + creator: string + beginTime: Date + endTime: Date + status: string + updateTime: Date + updater: string + available: string +} + +// 查询要货预测主列表 +export const getDemandforecastingMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/demandforecasting-main/senior', data }) + } else { + return await request.get({ url: `/wms/demandforecasting-main/page`, params }) + } +} + +// 查询要货预测主详情 +export const getDemandforecastingMain = async (id: number) => { + return await request.get({ url: `/wms/demandforecasting-main/get?id=` + id }) +} + +// 新增要货预测主 +export const createDemandforecastingMain = async (data: DemandforecastingMainVO) => { + return await request.post({ url: `/wms/demandforecasting-main/create`, data }) +} + +// 修改要货预测主 +export const updateDemandforecastingMain = async (data: DemandforecastingMainVO) => { + return await request.put({ url: `/wms/demandforecasting-main/update`, data }) +} + +// 删除要货预测主 +export const deleteDemandforecastingMain = async (id: number) => { + return await request.delete({ url: `/wms/demandforecasting-main/delete?id=` + id }) +} + +// 导出要货预测主 Excel +export const exportDemandforecastingMain = async (params) => { + return await request.download({ url: `/wms/demandforecasting-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/demandforecasting-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/detail/index.ts b/src/api/wms/detail/index.ts new file mode 100644 index 0000000..9bf57f6 --- /dev/null +++ b/src/api/wms/detail/index.ts @@ -0,0 +1,35 @@ +import request from '@/config/axios' + + +// 查询备注列表 +export const getRemarkPage = async (params) => { + return await request.get({ url: `/infra/remark/list`, params }) +} + +// // 查询库区详情 +// export const getArea = async (id: number) => { +// return await request.get({ url: `/wms/areabasic/get?id=` + id }) +// } + +// 新增备注 +export const createRemark= async (data) => { + return await request.post({ url: `/infra/remark/create`, data }) +} +// 查询变更记录列表 +export const getChangeRecordPage = async (params) => { + return await request.get({ url: `/infra/trends/list`, params }) +} +// // 修改库区 +// export const updateArea = async (data: AreaVO) => { +// return await request.put({ url: `/wms/areabasic/update`, data }) +// } + +// // 删除库区 +// export const deleteArea = async (id: number) => { +// return await request.delete({ url: `/wms/areabasic/delete?id=` + id }) +// } + +// // 导出库区 Excel +// export const exportArea = async (params) => { +// return await request.download({ url: `/wms/areabasic/export-excel`, params }) +// } diff --git a/src/api/wms/dismantleRecordDetailb/index.ts b/src/api/wms/dismantleRecordDetailb/index.ts new file mode 100644 index 0000000..e1aaa04 --- /dev/null +++ b/src/api/wms/dismantleRecordDetailb/index.ts @@ -0,0 +1,66 @@ +import request from '@/config/axios' + +export interface DismantleRecordDetailbVO { + processCode: string + bomVersion: string + batch: string + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + inventoryStatus: string + packingNumber: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + uom: string + code: string + interfaceType: string + jobDetailId: string +} + +// 查询制品拆解记录子列表 +export const getDismantleRecordDetailbPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/dismantle-record-detailb/senior', data }) + } else { + return await request.get({ url: `/wms/dismantle-record-detailb/page`, params }) + } +} + +// 查询制品拆解记录子详情 +export const getDismantleRecordDetailb = async (id: number) => { + return await request.get({ url: `/wms/dismantle-record-detailb/get?id=` + id }) +} + +// 新增制品拆解记录子 +export const createDismantleRecordDetailb = async (data: DismantleRecordDetailbVO) => { + return await request.post({ url: `/wms/dismantle-record-detailb/create`, data }) +} + +// 修改制品拆解记录子 +export const updateDismantleRecordDetailb = async (data: DismantleRecordDetailbVO) => { + return await request.put({ url: `/wms/dismantle-record-detailb/update`, data }) +} + +// 删除制品拆解记录子 +export const deleteDismantleRecordDetailb = async (id: number) => { + return await request.delete({ url: `/wms/dismantle-record-detailb/delete?id=` + id }) +} + +// 导出制品拆解记录子 Excel +export const exportDismantleRecordDetailb = async (params) => { + return await request.download({ url: `/wms/dismantle-record-detailb/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/dismantle-record-detailb/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/dismantleRequestDetailb/index.ts b/src/api/wms/dismantleRequestDetailb/index.ts new file mode 100644 index 0000000..4603fb3 --- /dev/null +++ b/src/api/wms/dismantleRequestDetailb/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +export interface DismantleRequestDetailbVO { + processCode: string + bomVersion: string + itemCode: string + number: string + remark: string + createTime: Date + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + creator: string + siteId: string +} + +// 查询制品拆解申请子列表 +export const getDismantleRequestDetailbPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/dismantle-request-detailb/senior', data }) + } else { + return await request.get({ url: `/wms/dismantle-request-detailb/page`, params }) + } +} + +// 查询制品拆解申请子详情 +export const getDismantleRequestDetailb = async (id: number) => { + return await request.get({ url: `/wms/dismantle-request-detailb/get?id=` + id }) +} + +// 新增制品拆解申请子 +export const createDismantleRequestDetailb = async (data: DismantleRequestDetailbVO) => { + return await request.post({ url: `/wms/dismantle-request-detailb/create`, data }) +} + +// 修改制品拆解申请子 +export const updateDismantleRequestDetailb = async (id, data) => { + return await request.post({ url: `/wms/dismantle-request-detailb/update?id=`+id, data }) +} + +// 删除制品拆解申请子 +export const deleteDismantleRequestDetailb = async (id: number) => { + return await request.delete({ url: `/wms/dismantle-request-detailb/delete?id=` + id }) +} + +// 导出制品拆解申请子 Excel +export const exportDismantleRequestDetailb = async (params) => { + return await request.download({ url: `/wms/dismantle-request-detailb/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/dismantle-request-detailb/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/dock/index.ts b/src/api/wms/dock/index.ts new file mode 100644 index 0000000..ece07e8 --- /dev/null +++ b/src/api/wms/dock/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface DockVO { + code: string + name: string + description: string + city: string + address: string + type: string + warehouseCode: string + defaultLocationCode: string + contactPerson: string + contactPhone: string + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询月台列表 +export const getDockPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/dock/senior', data }) + } else { + return await request.get({ url: `/wms/dock/page`, params }) + } +} +// 查询月台列表 +export const getDockList = async (params) => { + return await request.get({ url: `/wms/dock/list`, params }) +} +// 查询月台详情 +export const getDock = async (id: number) => { + return await request.get({ url: `/wms/dock/get?id=` + id }) +} + +// 新增月台 +export const createDock = async (data: DockVO) => { + return await request.post({ url: `/wms/dock/create`, data }) +} + +// 修改月台 +export const updateDock = async (data: DockVO) => { + return await request.put({ url: `/wms/dock/update`, data }) +} + +// 删除月台 +export const deleteDock = async (id: number) => { + return await request.delete({ url: `/wms/dock/delete?id=` + id }) +} + +// 导出月台 Excel +export const exportDock = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/dock/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/dock/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/dock/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/documentsetting/index.ts b/src/api/wms/documentsetting/index.ts new file mode 100644 index 0000000..6d9dc6b --- /dev/null +++ b/src/api/wms/documentsetting/index.ts @@ -0,0 +1,60 @@ +import request from '@/config/axios' + +export interface DocumentsettingVO { + code: string + name: string + description: string + type: string + businessType: string + numberPrefix: string + dateFormat: string + serialLength: number + separatorStr: string + resetPeriod: string + activeTime: Date + expireTime: Date + remark: string + available: string + isSoftDeleted: string +} + +// 查询单据设置列表 +export const getDocumentsettingPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/documentsetting/senior', data }) + } else { + return await request.get({ url: `/wms/documentsetting/page`, params }) + } +} + +// 查询单据设置详情 +export const getDocumentsetting = async (id: number) => { + return await request.get({ url: `/wms/documentsetting/get?id=` + id }) +} + +// 新增单据设置 +export const createDocumentsetting = async (data: DocumentsettingVO) => { + return await request.post({ url: `/wms/documentsetting/create`, data }) +} + +// 修改单据设置 +export const updateDocumentsetting = async (data: DocumentsettingVO) => { + return await request.put({ url: `/wms/documentsetting/update`, data }) +} + +// 删除单据设置 +export const deleteDocumentsetting = async (id: number) => { + return await request.delete({ url: `/wms/documentsetting/delete?id=` + id }) +} + +// 导出单据设置 Excel +export const exportDocumentsetting = async (params) => { + return await request.download({ url: `/wms/documentsetting/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/documentsetting/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/enterprise/index.ts b/src/api/wms/enterprise/index.ts new file mode 100644 index 0000000..87cf0ff --- /dev/null +++ b/src/api/wms/enterprise/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +export interface EnterpriseVO { + id: number + code: string + name: string + shortName: string + address: string + available: string + activeTime: Date + expireTime: Date + remark: string + deletionTime: Date + deleterId: string + extraProperties: string + concurrencyStamp: string + siteId: string +} + +// 查询企业列表 +export const getEnterprisePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/enterprise/senior', data }) + } else { + return await request.get({ url: `/wms/enterprise/page`, params }) + } +} + +// 查询企业详情 +export const getEnterprise = async (id: number) => { + return await request.get({ url: `/wms/enterprise/get?id=` + id }) +} + +// 新增企业 +export const createEnterprise = async (data: EnterpriseVO) => { + return await request.post({ url: `/wms/enterprise/create`, data }) +} + +// 修改企业 +export const updateEnterprise = async (data: EnterpriseVO) => { + return await request.put({ url: `/wms/enterprise/update`, data }) +} + +// 删除企业 +export const deleteEnterprise = async (id: number) => { + return await request.delete({ url: `/wms/enterprise/delete?id=` + id }) +} + +// 导出企业 Excel +export const exportEnterprise = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/enterprise/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/enterprise/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/enterprise/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/expectin/index.ts b/src/api/wms/expectin/index.ts new file mode 100644 index 0000000..2c4d729 --- /dev/null +++ b/src/api/wms/expectin/index.ts @@ -0,0 +1,55 @@ +import request from '@/config/axios' + +export interface ExpectinVO { + jobNumber: string + businessType: string + itemCode: string + batch: string + inventoryStatus: string + uom: string + qty: number + locationCode: string + warehouseCode: string + ownerCode: string +} + +// 查询预计入库存列表 +export const getExpectinPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/expectin/senior', data }) + } else { + return await request.get({ url: `/wms/expectin/page`, params }) + } +} + +// 查询预计入库存详情 +export const getExpectin = async (id: number) => { + return await request.get({ url: `/wms/expectin/get?id=` + id }) +} + +// 新增预计入库存 +export const createExpectin = async (data: ExpectinVO) => { + return await request.post({ url: `/wms/expectin/create`, data }) +} + +// 修改预计入库存 +export const updateExpectin = async (data: ExpectinVO) => { + return await request.put({ url: `/wms/expectin/update`, data }) +} + +// 删除预计入库存 +export const deleteExpectin = async (id: number) => { + return await request.delete({ url: `/wms/expectin/delete?id=` + id }) +} + +// 导出预计入库存 Excel +export const exportExpectin = async (params) => { + return await request.download({ url: `/wms/expectin/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/expectin/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/expectout/index.ts b/src/api/wms/expectout/index.ts new file mode 100644 index 0000000..0ebab0b --- /dev/null +++ b/src/api/wms/expectout/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export interface ExpectoutVO { + jobNumber: string + businessType: string + packingNumber: string + itemCode: string + batch: string + inventoryStatus: string + uom: string + qty: number + locationCode: string + warehouseCode: string + ownerCode: string +} + +// 查询预计出库存列表 +export const getExpectoutPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/expectout/senior', data }) + } else { + return await request.get({ url: `/wms/expectout/page`, params }) + } +} + +// 查询预计出库存详情 +export const getExpectout = async (id: number) => { + return await request.get({ url: `/wms/expectout/get?id=` + id }) +} + +// 新增预计出库存 +export const createExpectout = async (data: ExpectoutVO) => { + return await request.post({ url: `/wms/expectout/create`, data }) +} + +// 修改预计出库存 +export const updateExpectout = async (data: ExpectoutVO) => { + return await request.put({ url: `/wms/expectout/update`, data }) +} + +// 删除预计出库存 +export const deleteExpectout = async (id: number) => { + return await request.delete({ url: `/wms/expectout/delete?id=` + id }) +} + +// 导出预计出库存 Excel +export const exportExpectout = async (params) => { + return await request.download({ url: `/wms/expectout/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/expectout/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/file/index.ts b/src/api/wms/file/index.ts new file mode 100644 index 0000000..f817181 --- /dev/null +++ b/src/api/wms/file/index.ts @@ -0,0 +1,12 @@ +import request from '@/config/axios' + +// 查询变更记录列表 +export const getFileList = async (params) => { + return await request.get({ url: `/infra/file/list`, params }) +} + +// 删除库区 +export const deleteFile = async (id: number) => { + return await request.delete({ url: `/infra/file/delete?id=` + id }) +} + diff --git a/src/api/wms/index.ts b/src/api/wms/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/api/wms/inspectJobDetail/index.ts b/src/api/wms/inspectJobDetail/index.ts new file mode 100644 index 0000000..64fcb32 --- /dev/null +++ b/src/api/wms/inspectJobDetail/index.ts @@ -0,0 +1,60 @@ +import request from '@/config/axios' + +export interface InspectJobDetailVO { + packingNumber: string + containerNumber: string + inventoryStatus: string + fromLocationCode: string + number: string + remark: string + createTime: Date + creator: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string +} + +// 查询检验任务子列表 +export const getInspectJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inspect-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/inspect-job-detail/page`, params }) + } +} + +// 查询检验任务子详情 +export const getInspectJobDetail = async (id: number) => { + return await request.get({ url: `/wms/inspect-job-detail/get?id=` + id }) +} + +// 新增检验任务子 +export const createInspectJobDetail = async (data: InspectJobDetailVO) => { + return await request.post({ url: `/wms/inspect-job-detail/create`, data }) +} + +// 修改检验任务子 +export const updateInspectJobDetail = async (data: InspectJobDetailVO) => { + return await request.put({ url: `/wms/inspect-job-detail/update`, data }) +} + +// 删除检验任务子 +export const deleteInspectJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/inspect-job-detail/delete?id=` + id }) +} + +// 导出检验任务子 Excel +export const exportInspectJobDetail = async (params) => { + return await request.download({ url: `/wms/inspect-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inspect-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/inspectJobMain/index.ts b/src/api/wms/inspectJobMain/index.ts new file mode 100644 index 0000000..03bf0b7 --- /dev/null +++ b/src/api/wms/inspectJobMain/index.ts @@ -0,0 +1,96 @@ +import request from '@/config/axios' + +export interface InspectJobMainVO { + requestNumber: string + purchaseReceiptRecordNumber: string + supplierCode: string + warehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + poUmber: string + poLine: string + batch: string + itemCode: string + inspectType: string + nextAction: string + sampleMethod: string + uom: string + receiveQty: number + sampleQty: number + owner: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询检验任务主列表 +export const getInspectJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inspect-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/inspect-job-main/page`, params }) + } +} + +// 查询检验任务主详情 +export const getInspectJobMain = async (id: number) => { + return await request.get({ url: `/wms/inspect-job-main/get?id=` + id }) +} + +// 新增检验任务主 +export const createInspectJobMain = async (data: InspectJobMainVO) => { + return await request.post({ url: `/wms/inspect-job-main/create`, data }) +} + +// 修改检验任务主 +export const updateInspectJobMain = async (data: InspectJobMainVO) => { + return await request.put({ url: `/wms/inspect-job-main/update`, data }) +} + +// 删除检验任务主 +export const deleteInspectJobMain = async (id: number) => { + return await request.delete({ url: `/wms/inspect-job-main/delete?id=` + id }) +} + +// 导出检验任务主 Excel +export const exportInspectJobMain = async (params) => { + return await request.download({ url: `/wms/inspect-job-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inspect-job-main/get-import-template' }) +} + +// 关闭检验任务主 +export const closeInspectJobMain = (id: number) => { + return request.put({ url: '/wms/inspect-job-main/close?id=' + id }) +} diff --git a/src/api/wms/inspectRecordDetail/index.ts b/src/api/wms/inspectRecordDetail/index.ts new file mode 100644 index 0000000..5bda866 --- /dev/null +++ b/src/api/wms/inspectRecordDetail/index.ts @@ -0,0 +1,76 @@ +import request from '@/config/axios' + +export interface InspectRecordDetailVO { + packingNumber: string + containerNumber: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + sampleQty: number + goodQty: number + failedQty: number + crackQty: number + notPassedQty: number + failedReason: string + photos: string + inspectUser: string + inspectResult: string + appearance: string + volume: string + weight: string + otherProperties: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + uom: string + code: string + interfaceType: string + jobDetailId: string +} + +// 查询检验记录子列表 +export const getInspectRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inspect-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/inspect-record-detail/page`, params }) + } +} + +// 查询检验记录子详情 +export const getInspectRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/inspect-record-detail/get?id=` + id }) +} + +// 新增检验记录子 +export const createInspectRecordDetail = async (data: InspectRecordDetailVO) => { + return await request.post({ url: `/wms/inspect-record-detail/create`, data }) +} + +// 修改检验记录子 +export const updateInspectRecordDetail = async (data: InspectRecordDetailVO) => { + return await request.put({ url: `/wms/inspect-record-detail/update`, data }) +} + +// 删除检验记录子 +export const deleteInspectRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/inspect-record-detail/delete?id=` + id }) +} + +// 导出检验记录子 Excel +export const exportInspectRecordDetail = async (params) => { + return await request.download({ url: `/wms/inspect-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inspect-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/inspectRecordMain/index.ts b/src/api/wms/inspectRecordMain/index.ts new file mode 100644 index 0000000..2e1d233 --- /dev/null +++ b/src/api/wms/inspectRecordMain/index.ts @@ -0,0 +1,82 @@ +import request from '@/config/axios' + +export interface InspectRecordMainVO { + requestNumber: string + jobNumber: string + purchaseReceiptRecordNumber: string + supplierCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + poNumber: string + poLine: string + batch: string + inspectType: string + nextAction: string + sampleMethod: string + uom: string + receiveQty: number + batchGoodQty: number + batchFaildQty: number + batchCrackQty: number + batchNotPassedQty: number + itemCode: string + fromWarehouseCode: string + fromAreaCodes: string + ownerCode: string + available: string + sampleQty: number + fromLocationTypes: string +} + +// 查询检验记录主列表 +export const getInspectRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inspect-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/inspect-record-main/page`, params }) + } +} + +// 查询检验记录主详情 +export const getInspectRecordMain = async (id: number) => { + return await request.get({ url: `/wms/inspect-record-main/get?id=` + id }) +} + +// 新增检验记录主 +export const createInspectRecordMain = async (data: InspectRecordMainVO) => { + return await request.post({ url: `/wms/inspect-record-main/create`, data }) +} + +// 修改检验记录主 +export const updateInspectRecordMain = async (data: InspectRecordMainVO) => { + return await request.put({ url: `/wms/inspect-record-main/update`, data }) +} + +// 删除检验记录主 +export const deleteInspectRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/inspect-record-main/delete?id=` + id }) +} + +// 导出检验记录主 Excel +export const exportInspectRecordMain = async (params) => { + return await request.download({ url: `/wms/inspect-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inspect-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/inspectRequestDetail/index.ts b/src/api/wms/inspectRequestDetail/index.ts new file mode 100644 index 0000000..d3a1a0f --- /dev/null +++ b/src/api/wms/inspectRequestDetail/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface InspectRequestDetailVO { + packingNumber: string + containerNumber: string + inventoryStatus: string + fromLocationCode: string + updateTime: Date + updater: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string +} + +// 查询检验申请子列表 +export const getInspectRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inspect-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/inspect-request-detail/page`, params }) + } +} + +// 查询检验申请子详情 +export const getInspectRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/inspect-request-detail/get?id=` + id }) +} + +// 新增检验申请子 +export const createInspectRequestDetail = async (data: InspectRequestDetailVO) => { + return await request.post({ url: `/wms/inspect-request-detail/create`, data }) +} + +// 修改检验申请子 +export const updateInspectRequestDetail = async (data: InspectRequestDetailVO) => { + return await request.put({ url: `/wms/inspect-request-detail/update`, data }) +} + +// 删除检验申请子 +export const deleteInspectRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/inspect-request-detail/delete?id=` + id }) +} + +// 导出检验申请子 Excel +export const exportInspectRequestDetail = async (params) => { + return await request.download({ url: `/wms/inspect-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inspect-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/inspectRequestMain/index.ts b/src/api/wms/inspectRequestMain/index.ts new file mode 100644 index 0000000..d9b833a --- /dev/null +++ b/src/api/wms/inspectRequestMain/index.ts @@ -0,0 +1,106 @@ +import request from '@/config/axios' + +export interface InspectRequestMainVO { + purchaseReceiptRecordNumber: string + supplierCode: string + number: string + businessType: string + fromWarehouseCode: string + fromAreaCodes: string + fromLocationTypes: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + poNumber: string + poLine: string + batch: string + itemCode: string + inspectType: string + nextAction: string + sampleMethod: string + uom: string + receiveQty: number + sampleQty: number + ownerCode: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询检验申请主列表 +export const getInspectRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inspect-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/inspect-request-main/page`, params }) + } +} + +// 查询检验申请主详情 +export const getInspectRequestMain = async (id: number) => { + return await request.get({ url: `/wms/inspect-request-main/get?id=` + id }) +} + +// 新增检验申请主 +export const createInspectRequestMain = async (data: InspectRequestMainVO) => { + return await request.post({ url: `/wms/inspect-request-main/create`, data }) +} + +// 修改检验申请主 +export const updateInspectRequestMain = async (data: InspectRequestMainVO) => { + return await request.put({ url: `/wms/inspect-request-main/update`, data }) +} + +// 删除检验申请主 +export const deleteInspectRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/inspect-request-main/delete?id=` + id }) +} + +// 导出检验申请主 Excel +export const exportInspectRequestMain = async (params) => { + return await request.download({ url: `/wms/inspect-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inspect-request-main/get-import-template' }) +} + +// 关闭检验申请主 Excel +export const closeInspectRequestMain = async (id) => { + return await request.put({ url: `/wms/inspect-request-main/close?id=` + id }) +} + +// 重新添加检验申请主 Excel +export const reAddInspectRequestMain = async (id) => { + return await request.put({ url: `/wms/inspect-request-main/reAdd?id=` + id }) +} + +// 提交检验申请主 Excel +export const submitInspectRequestMain = async (id) => { + return await request.put({ url: `/wms/inspect-request-main/submit?id=` + id }) +} + +// 审批通过检验申请主 Excel +export const agreeInspectRequestMain = async (id) => { + return await request.put({ url: `/wms/inspect-request-main/agree?id=` + id }) +} + +// 审批驳回检验申请主 Excel +export const refusedInspectRequestMain = async (id) => { + return await request.put({ url: `/wms/inspect-request-main/refused?id=` + id }) +} + +// 处理检验申请主 Excel +export const handleInspectRequestMain = async (id) => { + return await request.put({ url: `/wms/inspect-request-main/handle?id=` + id }) +} diff --git a/src/api/wms/inventorychangeRecordDetail/index.ts b/src/api/wms/inventorychangeRecordDetail/index.ts new file mode 100644 index 0000000..3c68f04 --- /dev/null +++ b/src/api/wms/inventorychangeRecordDetail/index.ts @@ -0,0 +1,82 @@ +import request from '@/config/axios' + +export interface InventorychangeRecordDetailVO { + locationCode: string + locationGroupCode: string + areaCode: string + fromQty: number + fromOwnerCode: string + fromPackingNumber: string + fromContainerNumber: string + fromBatch: string + fromAltBatch: string + fromArriveDate: Date + fromProduceDate: Date + fromExpireDate: Date + fromInventoryStatus: string + toQty: number + toOwnerCode: string + toPackingNumber: string + toContainerNumber: string + toBatch: string + toAltBatch: string + toArriveDate: Date + toProduceDate: Date + toExpireDate: Date + toInventoryStatus: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + jobDetailId: string +} + +// 查询库存修改记录子列表 +export const getInventorychangeRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inventorychange-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/inventorychange-record-detail/page`, params }) + } +} + +// 查询库存修改记录子详情 +export const getInventorychangeRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/inventorychange-record-detail/get?id=` + id }) +} + +// 新增库存修改记录子 +export const createInventorychangeRecordDetail = async (data: InventorychangeRecordDetailVO) => { + return await request.post({ url: `/wms/inventorychange-record-detail/create`, data }) +} + +// 修改库存修改记录子 +export const updateInventorychangeRecordDetail = async (data: InventorychangeRecordDetailVO) => { + return await request.put({ url: `/wms/inventorychange-record-detail/update`, data }) +} + +// 删除库存修改记录子 +export const deleteInventorychangeRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/inventorychange-record-detail/delete?id=` + id }) +} + +// 导出库存修改记录子 Excel +export const exportInventorychangeRecordDetail = async (params) => { + return await request.download({ url: `/wms/inventorychange-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inventorychange-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/inventorychangeRecordMain/index.ts b/src/api/wms/inventorychangeRecordMain/index.ts new file mode 100644 index 0000000..407132f --- /dev/null +++ b/src/api/wms/inventorychangeRecordMain/index.ts @@ -0,0 +1,62 @@ +import request from '@/config/axios' + +export interface InventorychangeRecordMainVO { + requestNumber: string + warehouseCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + code: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + available: string +} + +// 查询库存修改记录主列表 +export const getInventorychangeRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inventorychange-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/inventorychange-record-main/page`, params }) + } +} + +// 查询库存修改记录主详情 +export const getInventorychangeRecordMain = async (id: number) => { + return await request.get({ url: `/wms/inventorychange-record-main/get?id=` + id }) +} + +// 新增库存修改记录主 +export const createInventorychangeRecordMain = async (data: InventorychangeRecordMainVO) => { + return await request.post({ url: `/wms/inventorychange-record-main/create`, data }) +} + +// 修改库存修改记录主 +export const updateInventorychangeRecordMain = async (data: InventorychangeRecordMainVO) => { + return await request.put({ url: `/wms/inventorychange-record-main/update`, data }) +} + +// 删除库存修改记录主 +export const deleteInventorychangeRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/inventorychange-record-main/delete?id=` + id }) +} + +// 导出库存修改记录主 Excel +export const exportInventorychangeRecordMain = async (params) => { + return await request.download({ url: `/wms/inventorychange-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inventorychange-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/inventorychangeRequestDetail/index.ts b/src/api/wms/inventorychangeRequestDetail/index.ts new file mode 100644 index 0000000..3a36cad --- /dev/null +++ b/src/api/wms/inventorychangeRequestDetail/index.ts @@ -0,0 +1,81 @@ +import request from '@/config/axios' + +export interface InventorychangeRequestDetailVO { + locationGroupCode: string + locationCode: string + areaCode: string + fromQty: number + fromOwnerCode: string + fromPackingNumber: string + fromContainerNumber: string + fromBatch: string + fromAltbatch: string + fromArriveDate: Date + fromProduceDate: Date + fromExpireDate: Date + frominventoryStatus: string + toQty: number + toOwnerCode: string + toPackingNumber: string + toContainerNumber: string + toBatch: string + toAltBatch: string + toArrivdAte: Date + toProduceDate: Date + toExpireDate: Date + toInventoryStatus: string + number: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + itemCode: string +} + +// 查询库存修改申请子列表 +export const getInventorychangeRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inventorychange-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/inventorychange-request-detail/page`, params }) + } +} + +// 查询库存修改申请子详情 +export const getInventorychangeRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/inventorychange-request-detail/get?id=` + id }) +} + +// 新增库存修改申请子 +export const createInventorychangeRequestDetail = async (data: InventorychangeRequestDetailVO) => { + return await request.post({ url: `/wms/inventorychange-request-detail/create`, data }) +} + +// 修改库存修改申请子 +export const updateInventorychangeRequestDetail = async (data: InventorychangeRequestDetailVO) => { + return await request.put({ url: `/wms/inventorychange-request-detail/update`, data }) +} + +// 删除库存修改申请子 +export const deleteInventorychangeRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/inventorychange-request-detail/delete?id=` + id }) +} + +// 导出库存修改申请子 Excel +export const exportInventorychangeRequestDetail = async (params) => { + return await request.download({ url: `/wms/inventorychange-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inventorychange-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/inventorychangeRequestMain/index.ts b/src/api/wms/inventorychangeRequestMain/index.ts new file mode 100644 index 0000000..a046201 --- /dev/null +++ b/src/api/wms/inventorychangeRequestMain/index.ts @@ -0,0 +1,91 @@ +import request from '@/config/axios' + +export interface InventorychangeRequestMainVO { + warehouseCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询库存修改申请主列表 +export const getInventorychangeRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inventorychange-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/inventorychange-request-main/page`, params }) + } +} + +// 查询库存修改申请主详情 +export const getInventorychangeRequestMain = async (id: number) => { + return await request.get({ url: `/wms/inventorychange-request-main/get?id=` + id }) +} + +// 新增库存修改申请主 +export const createInventorychangeRequestMain = async (data: InventorychangeRequestMainVO) => { + return await request.post({ url: `/wms/inventorychange-request-main/create`, data }) +} + +// 修改库存修改申请主 +export const updateInventorychangeRequestMain = async (data: InventorychangeRequestMainVO) => { + return await request.put({ url: `/wms/inventorychange-request-main/update`, data }) +} + +// 删除库存修改申请主 +export const deleteInventorychangeRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/inventorychange-request-main/delete?id=` + id }) +} + +// 导出库存修改申请主 Excel +export const exportInventorychangeRequestMain = async (params) => { + return await request.download({ url: `/wms/inventorychange-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inventorychange-request-main/get-import-template' }) +} + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/inventorychange-request-main/close?id=' + id }) +} + +// 重新添加 +export const reAdd = (id) => { + return request.put({ url: '/wms/inventorychange-request-main/reAdd?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/inventorychange-request-main/submit?id=' + id }) +} + +// 驳回 +export const refused = (id) => { + return request.put({ url: '/wms/inventorychange-request-main/refused?id=' + id }) +} + +// 审批通过 +export const agree = (id) => { + return request.put({ url: '/wms/inventorychange-request-main/agree?id=' + id }) +} + +// 处理 +export const handle = (id) => { + return request.put({ url: '/wms/inventorychange-request-main/handle?id=' + id }) +} \ No newline at end of file diff --git a/src/api/wms/inventoryinitRecordDetail/index.ts b/src/api/wms/inventoryinitRecordDetail/index.ts new file mode 100644 index 0000000..5d16c26 --- /dev/null +++ b/src/api/wms/inventoryinitRecordDetail/index.ts @@ -0,0 +1,75 @@ +import request from '@/config/axios' + +export interface InventoryinitRecordDetailVO { + ownerCode: string + packingNumber: string + containerNumber: string + batch: string + altBatch: string + arriveDate: Date + produceDate: Date + expireDate: Date + inventoryStatus: string + locationCode: string + locationGroupCode: string + areaCode: string + stdPackQty: number + stdPackUnit: string + qty: number + singlePrice: number + amount: number + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + uom: string + code: string + interfaceType: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + jobDetailId: string +} + +// 查询库存初始化记录子列表 +export const getInventoryinitRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inventoryinit-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/inventoryinit-record-detail/page`, params }) + } +} + +// 查询库存初始化记录子详情 +export const getInventoryinitRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/inventoryinit-record-detail/get?id=` + id }) +} + +// 新增库存初始化记录子 +export const createInventoryinitRecordDetail = async (data: InventoryinitRecordDetailVO) => { + return await request.post({ url: `/wms/inventoryinit-record-detail/create`, data }) +} + +// 修改库存初始化记录子 +export const updateInventoryinitRecordDetail = async (data: InventoryinitRecordDetailVO) => { + return await request.put({ url: `/wms/inventoryinit-record-detail/update`, data }) +} + +// 删除库存初始化记录子 +export const deleteInventoryinitRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/inventoryinit-record-detail/delete?id=` + id }) +} + +// 导出库存初始化记录子 Excel +export const exportInventoryinitRecordDetail = async (params) => { + return await request.download({ url: `/wms/inventoryinit-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inventoryinit-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/inventoryinitRecordMain/index.ts b/src/api/wms/inventoryinitRecordMain/index.ts new file mode 100644 index 0000000..173941d --- /dev/null +++ b/src/api/wms/inventoryinitRecordMain/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface InventoryinitRecordMainVO { + requestNumber: string + warehouseCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + code: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + available: string +} + +// 查询库存初始化记录主列表 +export const getInventoryinitRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inventoryinit-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/inventoryinit-record-main/page`, params }) + } +} + +// 查询库存初始化记录主详情 +export const getInventoryinitRecordMain = async (id: number) => { + return await request.get({ url: `/wms/inventoryinit-record-main/get?id=` + id }) +} + +// 新增库存初始化记录主 +export const createInventoryinitRecordMain = async (data: InventoryinitRecordMainVO) => { + return await request.post({ url: `/wms/inventoryinit-record-main/create`, data }) +} + +// 修改库存初始化记录主 +export const updateInventoryinitRecordMain = async (data: InventoryinitRecordMainVO) => { + return await request.put({ url: `/wms/inventoryinit-record-main/update`, data }) +} + +// 删除库存初始化记录主 +export const deleteInventoryinitRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/inventoryinit-record-main/delete?id=` + id }) +} + +// 导出库存初始化记录主 Excel +export const exportInventoryinitRecordMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/inventoryinit-record-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/inventoryinit-record-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inventoryinit-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/inventoryinitRequestDetail/index.ts b/src/api/wms/inventoryinitRequestDetail/index.ts new file mode 100644 index 0000000..70a7d11 --- /dev/null +++ b/src/api/wms/inventoryinitRequestDetail/index.ts @@ -0,0 +1,72 @@ +import request from '@/config/axios' + +export interface InventoryinitRequestDetailVO { + ownerCode: string + packingNumber: string + containerNumber: string + batch: string + altBatch: string + arriveDate: Date + produceDate: Date + expireDate: Date + inventoryStatus: string + locationCode: string + locationGroupCode: string + areaCode: string + stdPackQty: number + stdPackUnit: string + qty: number + number: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + uom: string + updateTime: Date + updater: string + itemCode: string +} + +// 查询库存初始化申请子列表 +export const getInventoryinitRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inventoryinit-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/inventoryinit-request-detail/page`, params }) + } +} + +// 查询库存初始化申请子详情 +export const getInventoryinitRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/inventoryinit-request-detail/get?id=` + id }) +} + +// 新增库存初始化申请子 +export const createInventoryinitRequestDetail = async (data: InventoryinitRequestDetailVO) => { + return await request.post({ url: `/wms/inventoryinit-request-detail/create`, data }) +} + +// 修改库存初始化申请子 +export const updateInventoryinitRequestDetail = async (data: InventoryinitRequestDetailVO) => { + return await request.put({ url: `/wms/inventoryinit-request-detail/update`, data }) +} + +// 删除库存初始化申请子 +export const deleteInventoryinitRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/inventoryinit-request-detail/delete?id=` + id }) +} + +// 导出库存初始化申请子 Excel +export const exportInventoryinitRequestDetail = async (params) => { + return await request.download({ url: `/wms/inventoryinit-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inventoryinit-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/inventoryinitRequestMain/index.ts b/src/api/wms/inventoryinitRequestMain/index.ts new file mode 100644 index 0000000..1cab338 --- /dev/null +++ b/src/api/wms/inventoryinitRequestMain/index.ts @@ -0,0 +1,94 @@ +import request from '@/config/axios' + +export interface InventoryinitRequestMainVO { + warehouseCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询库存初始化申请主列表 +export const getInventoryinitRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inventoryinit-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/inventoryinit-request-main/page`, params }) + } +} + +// 查询库存初始化申请主详情 +export const getInventoryinitRequestMain = async (id: number) => { + return await request.get({ url: `/wms/inventoryinit-request-main/get?id=` + id }) +} + +// 新增库存初始化申请主 +export const createInventoryinitRequestMain = async (data: InventoryinitRequestMainVO) => { + return await request.post({ url: `/wms/inventoryinit-request-main/create`, data }) +} + +// 修改库存初始化申请主 +export const updateInventoryinitRequestMain = async (data: InventoryinitRequestMainVO) => { + return await request.put({ url: `/wms/inventoryinit-request-main/update`, data }) +} +// 关闭库存初始化申请主 Excel +export const closeInventoryinitRequestMain = async (id) => { + return await request.put({ url: `/wms/inventoryinit-request-main/close?id=` + id }) +} +// 重新添加库存初始化申请主 Excel +export const reAddInventoryinitRequestMain = async (id) => { + return await request.put({ url: `/wms/inventoryinit-request-main/reAdd?id=` + id }) +} + +// 审批驳回库存初始化申请主 Excel +export const refusedInventoryinitRequestMain = async (id) => { + return await request.put({ url: `/wms/inventoryinit-request-main/refused?id=` + id }) +} + +// 审批通过库存初始化申请主 Excel +export const agreeInventoryinitRequestMain = async (id) => { + return await request.put({ url: `/wms/inventoryinit-request-main/agree?id=` + id }) +} + +// 提交库存初始化申请主 Excel +export const submitInventoryinitRequestMain = async (id) => { + return await request.put({ url: `/wms/inventoryinit-request-main/submit?id=` + id }) +} + +// 删除库存初始化申请主 +export const deleteInventoryinitRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/inventoryinit-request-main/delete?id=` + id }) +} + +// 导出库存初始化申请主 Excel +export const exportInventoryinitRequestMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/inventoryinit-request-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/inventoryinit-request-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inventoryinit-request-main/get-import-template' }) +} + +// 处理采购收货申请主 Excel +export const handleInventoryinitRequestMain = async (id) => { + return await request.put({ url: `/wms/inventoryinit-request-main/handle?id=` + id }) +} diff --git a/src/api/wms/inventorymoveJobDetail/index.ts b/src/api/wms/inventorymoveJobDetail/index.ts new file mode 100644 index 0000000..f3821de --- /dev/null +++ b/src/api/wms/inventorymoveJobDetail/index.ts @@ -0,0 +1,66 @@ +import request from '@/config/axios' + +export interface InventorymoveJobDetailVO { + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createtime: Date + creator: string + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + poNumber: string + poLine: string + fromLocationCode: string + toLocationCode: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询库存转移任务子列表 +export const getInventorymoveJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inventorymove-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/inventorymove-job-detail/page`, params }) + } +} + +// 查询库存转移任务子详情 +export const getInventorymoveJobDetail = async (id: number) => { + return await request.get({ url: `/wms/inventorymove-job-detail/get?id=` + id }) +} + +// 新增库存转移任务子 +export const createInventorymoveJobDetail = async (data: InventorymoveJobDetailVO) => { + return await request.post({ url: `/wms/inventorymove-job-detail/create`, data }) +} + +// 修改库存转移任务子 +export const updateInventorymoveJobDetail = async (data: InventorymoveJobDetailVO) => { + return await request.put({ url: `/wms/inventorymove-job-detail/update`, data }) +} + +// 删除库存转移任务子 +export const deleteInventorymoveJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/inventorymove-job-detail/delete?id=` + id }) +} + +// 导出库存转移任务子 Excel +export const exportInventorymoveJobDetail = async (params) => { + return await request.download({ url: `/wms/inventorymove-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inventorymove-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/inventorymoveJobMain/index.ts b/src/api/wms/inventorymoveJobMain/index.ts new file mode 100644 index 0000000..c683800 --- /dev/null +++ b/src/api/wms/inventorymoveJobMain/index.ts @@ -0,0 +1,103 @@ +import request from '@/config/axios' + +export interface InventorymoveJobMainVO { + requestNumber: string + useOnTheWayLocation: string + fromWarehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + creatorName: string + toWarehouseCode: string + fromAreaCodes: string + toAreaCodes: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询库存转移任务主列表 +export const getInventorymoveJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inventorymove-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/inventorymove-job-main/page`, params }) + } +} + +// 查询库存转移任务主详情 +export const getInventorymoveJobMain = async (id: number) => { + return await request.get({ url: `/wms/inventorymove-job-main/get?id=` + id }) +} + +// 新增库存转移任务主 +export const createInventorymoveJobMain = async (data: InventorymoveJobMainVO) => { + return await request.post({ url: `/wms/inventorymove-job-main/create`, data }) +} + +// 修改库存转移任务主 +export const updateInventorymoveJobMain = async (data: InventorymoveJobMainVO) => { + return await request.put({ url: `/wms/inventorymove-job-main/update`, data }) +} + +// 删除库存转移任务主 +export const deleteInventorymoveJobMain = async (id: number) => { + return await request.delete({ url: `/wms/inventorymove-job-main/delete?id=` + id }) +} + +// 导出库存转移任务主 Excel +export const exportInventorymoveJobMain = async (params) => { + return await request.download({ url: `/wms/inventorymove-job-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inventorymove-job-main/get-import-template' }) +} + +// 承接库存转移任务 +export const acceptInventorymoveMain = async (id) => { + return await request.put({ url: `/wms/inventorymove-job-main/accept?id=` + id }) +} + +// 放弃库存转移任务 +export const abandonInventorymoveMain = async (id) => { + return await request.put({ url: `/wms/inventorymove-job-main/abandon?id=` + id }) +} + +// 关闭库存转移任务 +export const closeInventorymoveMain = async (id) => { + return await request.put({ url: `/wms/inventorymove-job-main/close?id=` + id }) +} + +// 执行库存转移任务 +export const executeInventorymoveMain = async (data) => { + return await request.put({ url: `/wms/inventorymove-job-main/execute`, data}) +} \ No newline at end of file diff --git a/src/api/wms/inventorymoveRecordDetail/index.ts b/src/api/wms/inventorymoveRecordDetail/index.ts new file mode 100644 index 0000000..4a3928c --- /dev/null +++ b/src/api/wms/inventorymoveRecordDetail/index.ts @@ -0,0 +1,76 @@ +import request from '@/config/axios' + +export interface InventorymoveRecordDetailVO { + onTheWayLocationCode: string + fromOwnerCode: string + fromPackingNumber: string + fromContainerNumber: string + fromBatch: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + fromInventoryStatus: string + toOwnerCode: string + toPackingNumber: string + toContainerNumber: string + toBatch: string + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + toInventoryStatus: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + jobDetailId: string +} + +// 查询库存转移记录子列表 +export const getInventorymoveRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inventorymove-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/inventorymove-record-detail/page`, params }) + } +} + +// 查询库存转移记录子详情 +export const getInventorymoveRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/inventorymove-record-detail/get?id=` + id }) +} + +// 新增库存转移记录子 +export const createInventorymoveRecordDetail = async (data: InventorymoveRecordDetailVO) => { + return await request.post({ url: `/wms/inventorymove-record-detail/create`, data }) +} + +// 修改库存转移记录子 +export const updateInventorymoveRecordDetail = async (data: InventorymoveRecordDetailVO) => { + return await request.put({ url: `/wms/inventorymove-record-detail/update`, data }) +} + +// 删除库存转移记录子 +export const deleteInventorymoveRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/inventorymove-record-detail/delete?id=` + id }) +} + +// 导出库存转移记录子 Excel +export const exportInventorymoveRecordDetail = async (params) => { + return await request.download({ url: `/wms/inventorymove-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inventorymove-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/inventorymoveRecordMain/index.ts b/src/api/wms/inventorymoveRecordMain/index.ts new file mode 100644 index 0000000..e6c017f --- /dev/null +++ b/src/api/wms/inventorymoveRecordMain/index.ts @@ -0,0 +1,69 @@ +import request from '@/config/axios' + +export interface InventorymoveRecordMainVO { + requestNumber: string + jobNumber: string + useOnTheWayLocation: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + code: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + available: string +} + +// 查询库存转移记录主列表 +export const getInventorymoveRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inventorymove-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/inventorymove-record-main/page`, params }) + } +} + +// 查询库存转移记录主详情 +export const getInventorymoveRecordMain = async (id: number) => { + return await request.get({ url: `/wms/inventorymove-record-main/get?id=` + id }) +} + +// 新增库存转移记录主 +export const createInventorymoveRecordMain = async (data: InventorymoveRecordMainVO) => { + return await request.post({ url: `/wms/inventorymove-record-main/create`, data }) +} + +// 修改库存转移记录主 +export const updateInventorymoveRecordMain = async (data: InventorymoveRecordMainVO) => { + return await request.put({ url: `/wms/inventorymove-record-main/update`, data }) +} + +// 删除库存转移记录主 +export const deleteInventorymoveRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/inventorymove-record-main/delete?id=` + id }) +} + +// 导出库存转移记录主 Excel +export const exportInventorymoveRecordMain = async (params) => { + return await request.download({ url: `/wms/inventorymove-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inventorymove-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/inventorymoveRequestDetail/index.ts b/src/api/wms/inventorymoveRequestDetail/index.ts new file mode 100644 index 0000000..ad896ce --- /dev/null +++ b/src/api/wms/inventorymoveRequestDetail/index.ts @@ -0,0 +1,70 @@ +import request from '@/config/axios' + +export interface InventorymoveRequestDetailVO { + fromOwnerCode: string + fromPackingNumber: string + fromContainerNumber: string + fromBatch: string + fromLocationCode: string + fromInventoryStatus: string + toOwnerCode: string + toPackingNumber: string + toContainerNumber: string + toBatch: string + toLocationCode: string + toInventoryStatus: string + number: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + itemCode: string +} + +// 查询库存转移申请子列表 +export const getInventorymoveRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inventorymove-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/inventorymove-request-detail/page`, params }) + } +} + +// 查询库存转移申请子详情 +export const getInventorymoveRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/inventorymove-request-detail/get?id=` + id }) +} + +// 新增库存转移申请子 +export const createInventorymoveRequestDetail = async (data: InventorymoveRequestDetailVO) => { + return await request.post({ url: `/wms/inventorymove-request-detail/create`, data }) +} + +// 修改库存转移申请子 +export const updateInventorymoveRequestDetail = async (data: InventorymoveRequestDetailVO) => { + return await request.put({ url: `/wms/inventorymove-request-detail/update`, data }) +} + +// 删除库存转移申请子 +export const deleteInventorymoveRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/inventorymove-request-detail/delete?id=` + id }) +} + +// 导出库存转移申请子 Excel +export const exportInventorymoveRequestDetail = async (params) => { + return await request.download({ url: `/wms/inventorymove-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inventorymove-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/inventorymoveRequestMain/index.ts b/src/api/wms/inventorymoveRequestMain/index.ts new file mode 100644 index 0000000..e2dde21 --- /dev/null +++ b/src/api/wms/inventorymoveRequestMain/index.ts @@ -0,0 +1,97 @@ +import request from '@/config/axios' + +export interface InventorymoveRequestMainVO { + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + fromWarehouseOde: string + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + useOnTheWayLocation: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询库存转移申请主列表 +export const getInventorymoveRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/inventorymove-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/inventorymove-request-main/page`, params }) + } +} + +// 查询库存转移申请主详情 +export const getInventorymoveRequestMain = async (id: number) => { + return await request.get({ url: `/wms/inventorymove-request-main/get?id=` + id }) +} + +// 新增库存转移申请主 +export const createInventorymoveRequestMain = async (data: InventorymoveRequestMainVO) => { + return await request.post({ url: `/wms/inventorymove-request-main/create`, data }) +} + +// 修改库存转移申请主 +export const updateInventorymoveRequestMain = async (data: InventorymoveRequestMainVO) => { + return await request.put({ url: `/wms/inventorymove-request-main/update`, data }) +} + +// 删除库存转移申请主 +export const deleteInventorymoveRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/inventorymove-request-main/delete?id=` + id }) +} + +// 导出库存转移申请主 Excel +export const exportInventorymoveRequestMain = async (params) => { + return await request.download({ url: `/wms/inventorymove-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/inventorymove-request-main/get-import-template' }) +} + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/inventorymove-request-main/close?id=' + id }) +} + +// 重新添加 +export const reAdd = (id) => { + return request.put({ url: '/wms/inventorymove-request-main/reAdd?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/inventorymove-request-main/submit?id=' + id }) +} + +// 驳回 +export const refused = (id) => { + return request.put({ url: '/wms/inventorymove-request-main/refused?id=' + id }) +} + +// 审批通过 +export const agree = (id) => { + return request.put({ url: '/wms/inventorymove-request-main/agree?id=' + id }) +} + +// 处理 +export const handle = (id) => { + return request.put({ url: '/wms/inventorymove-request-main/handle?id=' + id }) +} \ No newline at end of file diff --git a/src/api/wms/issueJobDetail/index.ts b/src/api/wms/issueJobDetail/index.ts new file mode 100644 index 0000000..1d9974a --- /dev/null +++ b/src/api/wms/issueJobDetail/index.ts @@ -0,0 +1,71 @@ +import request from '@/config/axios' + +export interface IssueJobDetailVO { + productionLineCode: string + workStationCode: string + inventoryStatus: string + onTheWayLocationCode: string + packingNumber: string + containerNumber: string + batch: string + fromLocationCode: string + toLocationCode: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + stdPackQty: number + stdPackUnit: string + supplierQty: number + supplierUom: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询发料任务子列表 +export const getIssueJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/issue-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/issue-job-detail/page`, params }) + } +} + +// 查询发料任务子详情 +export const getIssueJobDetail = async (id: number) => { + return await request.get({ url: `/wms/issue-job-detail/get?id=` + id }) +} + +// 新增发料任务子 +export const createIssueJobDetail = async (data: IssueJobDetailVO) => { + return await request.post({ url: `/wms/issue-job-detail/create`, data }) +} + +// 修改发料任务子 +export const updateIssueJobDetail = async (data: IssueJobDetailVO) => { + return await request.put({ url: `/wms/issue-job-detail/update`, data }) +} + +// 删除发料任务子 +export const deleteIssueJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/issue-job-detail/delete?id=` + id }) +} + +// 导出发料任务子 Excel +export const exportIssueJobDetail = async (params) => { + return await request.download({ url: `/wms/issue-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/issue-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/issueJobMain/index.ts b/src/api/wms/issueJobMain/index.ts new file mode 100644 index 0000000..0c4f542 --- /dev/null +++ b/src/api/wms/issueJobMain/index.ts @@ -0,0 +1,110 @@ +import request from '@/config/axios' + +export interface IssueJobMainVO { + requestNumber: string + workShopCode: string + fromWarehouseCode: string + toWarehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserName: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromAreaCodes: string + toAreaCodes: string + useOnTheWayLocation: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyPackingNumber: string + allowModifyBatch: string +} + +// 查询发料任务主列表 +export const getIssueJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/issue-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/issue-job-main/page`, params }) + } +} + +// 查询发料任务主详情 +export const getIssueJobMain = async (id: number) => { + return await request.get({ url: `/wms/issue-job-main/get?id=` + id }) +} + +// 新增发料任务主 +export const createIssueJobMain = async (data: IssueJobMainVO) => { + return await request.post({ url: `/wms/issue-job-main/create`, data }) +} + +// 修改发料任务主 +export const updateIssueJobMain = async (data: IssueJobMainVO) => { + return await request.put({ url: `/wms/issue-job-main/update`, data }) +} + +// 删除发料任务主 +export const deleteIssueJobMain = async (id: number) => { + return await request.delete({ url: `/wms/issue-job-main/delete?id=` + id }) +} + +// 导出发料任务主 Excel +export const exportIssueJobMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/issue-job-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/issue-job-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/issue-job-main/get-import-template' }) +} + +// 承接发料任务 +export const acceptIssueMain = async (id) => { + return await request.get({ url: `/wms/issue-job-main/accept?id=` + id }) +} + +// 放弃发料任务 +export const abandonIssueMain = async (id) => { + return await request.get({ url: `/wms/issue-job-main/abandon?id=` + id }) +} + +// 关闭发料任务 +export const closeIssueMain = async (id) => { + return await request.get({ url: `/wms/issue-job-main/close?id=` + id }) +} + +// 执行发料任务 +export const executeIssueMain = async (data) => { + return await request.put({ url: `/wms/issue-job-main/execute`, data}) +} + + diff --git a/src/api/wms/issueRecordDetail/index.ts b/src/api/wms/issueRecordDetail/index.ts new file mode 100644 index 0000000..ba5498b --- /dev/null +++ b/src/api/wms/issueRecordDetail/index.ts @@ -0,0 +1,77 @@ +import request from '@/config/axios' + +export interface IssueRecordDetailVO { + productionLineCode: string + workStationCode: string + onTheWayLocationCode: string + inventoryStatus: string + fromOwnerCode: string + toOwnerCode: string + fromPackingNumber: string + toPackingNumber: string + fromContainerNumber: string + toContainerNumber: string + fromBatch: string + toBatch: string + fromLocationCode: string + toLocationCode: string + fromLocationGroupCode: string + toLocationGroupCode: string + fromAreaCode: string + toAreaCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string +} + +// 查询发料记录子列表 +export const getIssueRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/issue-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/issue-record-detail/page`, params }) + } +} + +// 查询发料记录子详情 +export const getIssueRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/issue-record-detail/get?id=` + id }) +} + +// 新增发料记录子 +export const createIssueRecordDetail = async (data: IssueRecordDetailVO) => { + return await request.post({ url: `/wms/issue-record-detail/create`, data }) +} + +// 修改发料记录子 +export const updateIssueRecordDetail = async (data: IssueRecordDetailVO) => { + return await request.put({ url: `/wms/issue-record-detail/update`, data }) +} + +// 删除发料记录子 +export const deleteIssueRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/issue-record-detail/delete?id=` + id }) +} + +// 导出发料记录子 Excel +export const exportIssueRecordDetail = async (params) => { + return await request.download({ url: `/wms/issue-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/issue-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/issueRecordMain/index.ts b/src/api/wms/issueRecordMain/index.ts new file mode 100644 index 0000000..3d5a553 --- /dev/null +++ b/src/api/wms/issueRecordMain/index.ts @@ -0,0 +1,75 @@ +import request from '@/config/axios' + +export interface IssueRecordMainVO { + requestNumber: string + jobNumber: string + workshopCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + useOnTheWayLocation: string + available: string +} + +// 查询发料记录主列表 +export const getIssueRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/issue-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/issue-record-main/page`, params }) + } +} + +// 查询发料记录主详情 +export const getIssueRecordMain = async (id: number) => { + return await request.get({ url: `/wms/issue-record-main/get?id=` + id }) +} + +// 新增发料记录主 +export const createIssueRecordMain = async (data: IssueRecordMainVO) => { + return await request.post({ url: `/wms/issue-record-main/create`, data }) +} + +// 修改发料记录主 +export const updateIssueRecordMain = async (data: IssueRecordMainVO) => { + return await request.put({ url: `/wms/issue-record-main/update`, data }) +} + +// 删除发料记录主 +export const deleteIssueRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/issue-record-main/delete?id=` + id }) +} + +// 导出发料记录主 Excel +export const exportIssueRecordMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/issue-record-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/issue-record-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/issue-record-main/get-import-template' }) +} diff --git a/src/api/wms/issueRequestDetail/index.ts b/src/api/wms/issueRequestDetail/index.ts new file mode 100644 index 0000000..19ce656 --- /dev/null +++ b/src/api/wms/issueRequestDetail/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface IssueRequestDetailVO { + productionLineCode: string + workStationCode: string + inventoryStatus: string + packingNumber: string + containerNumber: string + batch: string + toLocationCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询发料申请子列表 +export const getIssueRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/issue-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/issue-request-detail/page`, params }) + } +} + +// 查询发料申请子详情 +export const getIssueRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/issue-request-detail/get?id=` + id }) +} + +// 新增发料申请子 +export const createIssueRequestDetail = async (data: IssueRequestDetailVO) => { + return await request.post({ url: `/wms/issue-request-detail/create`, data }) +} + +// 修改发料申请子 +export const updateIssueRequestDetail = async (data: IssueRequestDetailVO) => { + return await request.put({ url: `/wms/issue-request-detail/update`, data }) +} + +// 删除发料申请子 +export const deleteIssueRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/issue-request-detail/delete?id=` + id }) +} + +// 导出发料申请子 Excel +export const exportIssueRequestDetail = async (params) => { + return await request.download({ url: `/wms/issue-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/issue-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/issueRequestMain/index.ts b/src/api/wms/issueRequestMain/index.ts new file mode 100644 index 0000000..11bec6a --- /dev/null +++ b/src/api/wms/issueRequestMain/index.ts @@ -0,0 +1,103 @@ +import request from '@/config/axios' + +export interface IssueRequestMainVO { + workshopCode: string + fromWarehouseCode: string + toWarehouseCode: string + fromLocationTypes: string + toLocationTypes: string + fromAreaCodes: string + toAreaCodes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + useOnTheWayLocation: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询发料申请主列表 +export const getIssueRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/issue-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/issue-request-main/page`, params }) + } +} + +// 查询发料申请主详情 +export const getIssueRequestMain = async (id: number) => { + return await request.get({ url: `/wms/issue-request-main/get?id=` + id }) +} + +// 新增发料申请主 +export const createIssueRequestMain = async (data: IssueRequestMainVO) => { + return await request.post({ url: `/wms/issue-request-main/create`, data }) +} + +// 修改发料申请主 +export const updateIssueRequestMain = async (data: IssueRequestMainVO) => { + return await request.put({ url: `/wms/issue-request-main/update`, data }) +} + +// 删除发料申请主 +export const deleteIssueRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/issue-request-main/delete?id=` + id }) +} + +// 导出发料申请主 Excel +export const exportIssueRequestMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/issue-request-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/issue-request-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/issue-request-main/get-import-template' }) +} + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/issue-request-main/close?id=' + id }) +} + +// 重新添加 +export const reAdd = (id) => { + return request.put({ url: '/wms/issue-request-main/reAdd?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/issue-request-main/submit?id=' + id }) +} + +// 驳回 +export const refused = (id) => { + return request.put({ url: '/wms/issue-request-main/refused?id=' + id }) +} + +// 审批通过 +export const agree = (id) => { + return request.put({ url: '/wms/issue-request-main/agree?id=' + id }) +} + +// 处理 +export const handle = (id) => { + return request.put({ url: '/wms/issue-request-main/handle?id=' + id }) +} diff --git a/src/api/wms/itembasic/index.ts b/src/api/wms/itembasic/index.ts new file mode 100644 index 0000000..1575fd5 --- /dev/null +++ b/src/api/wms/itembasic/index.ts @@ -0,0 +1,80 @@ +import request from '@/config/axios' + +export interface ItembasicVO { + code: string + name: string + desc1: string + desc2: string + status: string + uom: string + altUom: string + isStdPack: number + enableBuy: number + enableMake: number + enableOutsourcing: number + isRecycled: number + isPhantom: number + abcClass: string + type: string + category: string + itemGroup: string + color: string + configuration: string + project: string + eqLevel: string + validityDays: number + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询物品基本信息列表 +export const getItembasicPage = async (params) => { + if (params.isSearch) { + const data = {...params} + return request.post({ url: '/wms/itembasic/senior', data }) + } else { + return await request.get({ url: `/wms/itembasic/page`, params }) + } +} +// 查询物品基本信息列表 +export const getItembasicList = async (params) => { + return await request.get({ url: `/wms/itembasic/list`, params }) +} +// 查询物品基本信息详情 +export const getItembasic = async (id: number) => { + return await request.get({ url: `/wms/itembasic/get?id=` + id }) +} + +// 新增物品基本信息 +export const createItembasic = async (data: ItembasicVO) => { + return await request.post({ url: `/wms/itembasic/create`, data }) +} + +// 修改物品基本信息 +export const updateItembasic = async (data: ItembasicVO) => { + return await request.put({ url: `/wms/itembasic/update`, data }) +} + +// 删除物品基本信息 +export const deleteItembasic = async (id: number) => { + return await request.delete({ url: `/wms/itembasic/delete?id=` + id }) +} + +// 导出物品基本信息 Excel +export const exportItembasic = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/itembasic/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/itembasic/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/itembasic/get-import-template' }) +} +// 导入地址 +export const importUrl = '/wms/itembasic/import' diff --git a/src/api/wms/itempackaging/index.ts b/src/api/wms/itempackaging/index.ts new file mode 100644 index 0000000..d7ab494 --- /dev/null +++ b/src/api/wms/itempackaging/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface ItempackagingVO { + itemCode: string + uom: string + stdPackUnit: string + stdPackQty: number + altPackUnit1: string + altPackQty1: number + altPackUnit2: string + altPackQty2: number + altPackUnit3: string + altPackQty3: number + altPackUnit4: string + altPackQty4: number + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询物品包装信息 列表 +export const getItempackagingPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/itempackaging/senior', data }) + } else { + return await request.get({ url: `/wms/itempackaging/page`, params }) + } +} + +// 查询物品包装信息 详情 +export const getItempackaging = async (id: number) => { + return await request.get({ url: `/wms/itempackaging/get?id=` + id }) +} + +// 新增物品包装信息 +export const createItempackaging = async (data: ItempackagingVO) => { + return await request.post({ url: `/wms/itempackaging/create`, data }) +} + +// 修改物品包装信息 +export const updateItempackaging = async (data: ItempackagingVO) => { + return await request.put({ url: `/wms/itempackaging/update`, data }) +} + +// 删除物品包装信息 +export const deleteItempackaging = async (id: number) => { + return await request.delete({ url: `/wms/itempackaging/delete?id=` + id }) +} + +// 导出物品包装信息 Excel +export const exportItempackaging = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/itempackaging/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/itempackaging/export-excel`, params }) + } +} +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/itempackaging/get-import-template' }) +} diff --git a/src/api/wms/jobsetting/index.ts b/src/api/wms/jobsetting/index.ts new file mode 100644 index 0000000..c7807e0 --- /dev/null +++ b/src/api/wms/jobsetting/index.ts @@ -0,0 +1,62 @@ +import request from '@/config/axios' + +export interface JobsettingVO { + code: string + validMinutes: number + activeTime: Date + remark: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBach: string + allowModifyPackingNumber: string + available: string + isSoftDeleted: string + expireTime: Date +} + +// 查询任务设置列表 +export const getJobsettingPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/jobsetting/senior', data }) + } else { + return await request.get({ url: `/wms/jobsetting/page`, params }) + } +} + +// 查询任务设置详情 +export const getJobsetting = async (id: number) => { + return await request.get({ url: `/wms/jobsetting/get?id=` + id }) +} + +// 新增任务设置 +export const createJobsetting = async (data: JobsettingVO) => { + return await request.post({ url: `/wms/jobsetting/create`, data }) +} + +// 修改任务设置 +export const updateJobsetting = async (data: JobsettingVO) => { + return await request.put({ url: `/wms/jobsetting/update`, data }) +} + +// 删除任务设置 +export const deleteJobsetting = async (id: number) => { + return await request.delete({ url: `/wms/jobsetting/delete?id=` + id }) +} + +// 导出任务设置 Excel +export const exportJobsetting = async (params) => { + return await request.download({ url: `/wms/jobsetting/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/jobsetting/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/labeltype/index.ts b/src/api/wms/labeltype/index.ts new file mode 100644 index 0000000..148a1b9 --- /dev/null +++ b/src/api/wms/labeltype/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface LabeltypeVO { + id: number + labelType: string + description: string + dataProtocol: string + splitMehod: string + header: string + version: string + separators: string + validateMethod: string + validateNumber: number + encyptEthod: string + compressMethod: string + templateName: string + templateFile: string + barcodeSegments: string + labelCode: string + isEncypt: string + isCompress: string +} + +// 查询标签定义列表 +export const getLabeltypePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/labeltype/senior', data }) + } else { + return await request.get({ url: `/wms/labeltype/page`, params }) + } +} + +// 查询标签定义详情 +export const getLabeltype = async (id: number) => { + return await request.get({ url: `/wms/labeltype/get?id=` + id }) +} + +// 新增标签定义 +export const createLabeltype = async (data: LabeltypeVO) => { + return await request.post({ url: `/wms/labeltype/create`, data }) +} + +// 修改标签定义 +export const updateLabeltype = async (data: LabeltypeVO) => { + return await request.put({ url: `/wms/labeltype/update`, data }) +} + +// 删除标签定义 +export const deleteLabeltype = async (id: number) => { + return await request.delete({ url: `/wms/labeltype/delete?id=` + id }) +} + +// 导出标签定义 Excel +export const exportLabeltype = async (params) => { + return await request.download({ url: `/wms/labeltype/export-excel`, params }) +} diff --git a/src/api/wms/location/index.ts b/src/api/wms/location/index.ts new file mode 100644 index 0000000..2165af0 --- /dev/null +++ b/src/api/wms/location/index.ts @@ -0,0 +1,80 @@ +import request from '@/config/axios' + +export interface LocationVO { + code: string + name: string + description: string + warehouseCode: string + areaCode: string + locationGroupCode: string + erpLocationCode: string + type: string + aisle: string + shelf: string + locationRow: number + locationColum: number + pickPriority: number + maxWeight: number + maxArea: number + maxVolume: number + userGroupCode: string + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询库位列表 +export const getLocationPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/location/senior', data }) + } else { + return await request.get({ url: `/wms/location/page`, params }) + } +} +// 查询库位所有列表 +export const getLocationList = async (params) => { + return await request.get({ url: `/wms/location/list`, params }) +} + +// 查询库位详情 +export const getLocation = async (id: number) => { + return await request.get({ url: `/wms/location/get?id=` + id }) +} + +// 新增库位 +export const createLocation = async (data: LocationVO) => { + return await request.post({ url: `/wms/location/create`, data }) +} + +// 修改库位 +export const updateLocation = async (data: LocationVO) => { + return await request.put({ url: `/wms/location/update`, data }) +} + +// 删除库位 +export const deleteLocation = async (id: number) => { + return await request.delete({ url: `/wms/location/delete?id=` + id }) +} + +// 导出库位 Excel +export const exportLocation = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/location/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/location/export-excel`, params }) + } + +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/location/get-import-template' }) +} + +export const selectBusinessTypeToLocation = async (params) => { + return request.get({ url: `/wms/location/pageBusinessTypeToLocation`, params }) +} \ No newline at end of file diff --git a/src/api/wms/locationcapacity/index.ts b/src/api/wms/locationcapacity/index.ts new file mode 100644 index 0000000..40df8ca --- /dev/null +++ b/src/api/wms/locationcapacity/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +export interface LocationcapacityVO { + locationCode: string + warehouseCode: string + usedCapacity: number + availableCapacity: number + bearableOverloadCapacity: number + isInfinity: string +} + +// 查询库位容量列表 +export const getLocationcapacityPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/locationcapacity/senior', data }) + } else { + return await request.get({ url: `/wms/locationcapacity/page`, params }) + } +} + +// 查询库位容量详情 +export const getLocationcapacity = async (id: number) => { + return await request.get({ url: `/wms/locationcapacity/get?id=` + id }) +} + +// 新增库位容量 +export const createLocationcapacity = async (data: LocationcapacityVO) => { + return await request.post({ url: `/wms/locationcapacity/create`, data }) +} + +// 修改库位容量 +export const updateLocationcapacity = async (data: LocationcapacityVO) => { + return await request.put({ url: `/wms/locationcapacity/update`, data }) +} + +// 删除库位容量 +export const deleteLocationcapacity = async (id: number) => { + return await request.delete({ url: `/wms/locationcapacity/delete?id=` + id }) +} + +// 导出库位容量 Excel +export const exportLocationcapacity = async (params) => { + return await request.download({ url: `/wms/locationcapacity/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/locationcapacity/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/locationgroup/index.ts b/src/api/wms/locationgroup/index.ts new file mode 100644 index 0000000..3aa976b --- /dev/null +++ b/src/api/wms/locationgroup/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface LocationgroupVO { + code: string + name: string + description: string + warehouseCode: string + areaCode: string + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询库位组列表 +export const getLocationgroupPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/locationgroup/senior', data }) + } else { + return await request.get({ url: `/wms/locationgroup/page`, params }) + } +} +// 查询库位组列表 +export const getLocationgroupList = async (params) => { + return await request.get({ url: `/wms/locationgroup/list`, params }) +} + +// 查询库位组详情 +export const getLocationgroup = async (id: number) => { + return await request.get({ url: `/wms/locationgroup/get?id=` + id }) +} + +// 新增库位组 +export const createLocationgroup = async (data: LocationgroupVO) => { + return await request.post({ url: `/wms/locationgroup/create`, data }) +} + +// 修改库位组 +export const updateLocationgroup = async (data: LocationgroupVO) => { + return await request.put({ url: `/wms/locationgroup/update`, data }) +} + +// 删除库位组 +export const deleteLocationgroup = async (id: number) => { + return await request.delete({ url: `/wms/locationgroup/delete?id=` + id }) +} + +// 导出库位组 Excel +export const exportLocationgroup = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/locationgroup/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/locationgroup/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/locationgroup/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/offlinesettlementRecordDetail/index.ts b/src/api/wms/offlinesettlementRecordDetail/index.ts new file mode 100644 index 0000000..b19d564 --- /dev/null +++ b/src/api/wms/offlinesettlementRecordDetail/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +export interface OfflinesettlementRecordDetailVO { + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + locationCode: string + locationGroupCode: string + areaCode: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string + jobDetailId: string +} + +// 查询下线结算记录子列表 +export const getOfflinesettlementRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/offlinesettlement-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/offlinesettlement-record-detail/page`, params }) + } +} + +// 查询下线结算记录子详情 +export const getOfflinesettlementRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/offlinesettlement-record-detail/get?id=` + id }) +} + +// 新增下线结算记录子 +export const createOfflinesettlementRecordDetail = async (data: OfflinesettlementRecordDetailVO) => { + return await request.post({ url: `/wms/offlinesettlement-record-detail/create`, data }) +} + +// 修改下线结算记录子 +export const updateOfflinesettlementRecordDetail = async (data: OfflinesettlementRecordDetailVO) => { + return await request.put({ url: `/wms/offlinesettlement-record-detail/update`, data }) +} + +// 删除下线结算记录子 +export const deleteOfflinesettlementRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/offlinesettlement-record-detail/delete?id=` + id }) +} + +// 导出下线结算记录子 Excel +export const exportOfflinesettlementRecordDetail = async (params) => { + return await request.download({ url: `/wms/offlinesettlement-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/offlinesettlement-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/offlinesettlementRecordMain/index.ts b/src/api/wms/offlinesettlementRecordMain/index.ts new file mode 100644 index 0000000..f93eabe --- /dev/null +++ b/src/api/wms/offlinesettlementRecordMain/index.ts @@ -0,0 +1,62 @@ +import request from '@/config/axios' + +export interface OfflinesettlementRecordMainVO { + requestNumber: string + productReceiptRecordNumber: string + warehouseCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + available: string +} + +// 查询下线结算记录主列表 +export const getOfflinesettlementRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/offlinesettlement-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/offlinesettlement-record-main/page`, params }) + } +} + +// 查询下线结算记录主详情 +export const getOfflinesettlementRecordMain = async (id: number) => { + return await request.get({ url: `/wms/offlinesettlement-record-main/get?id=` + id }) +} + +// 新增下线结算记录主 +export const createOfflinesettlementRecordMain = async (data: OfflinesettlementRecordMainVO) => { + return await request.post({ url: `/wms/offlinesettlement-record-main/create`, data }) +} + +// 修改下线结算记录主 +export const updateOfflinesettlementRecordMain = async (data: OfflinesettlementRecordMainVO) => { + return await request.put({ url: `/wms/offlinesettlement-record-main/update`, data }) +} + +// 删除下线结算记录主 +export const deleteOfflinesettlementRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/offlinesettlement-record-main/delete?id=` + id }) +} + +// 导出下线结算记录主 Excel +export const exportOfflinesettlementRecordMain = async (params) => { + return await request.download({ url: `/wms/offlinesettlement-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/offlinesettlement-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/offlinesettlementRequestDetail/index.ts b/src/api/wms/offlinesettlementRequestDetail/index.ts new file mode 100644 index 0000000..c4561b4 --- /dev/null +++ b/src/api/wms/offlinesettlementRequestDetail/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface OfflinesettlementRequestDetailVO { + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + locationCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string +} + +// 查询下线结算申请子列表 +export const getOfflinesettlementRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/offlinesettlement-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/offlinesettlement-request-detail/page`, params }) + } +} + +// 查询下线结算申请子详情 +export const getOfflinesettlementRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/offlinesettlement-request-detail/get?id=` + id }) +} + +// 新增下线结算申请子 +export const createOfflinesettlementRequestDetail = async (data: OfflinesettlementRequestDetailVO) => { + return await request.post({ url: `/wms/offlinesettlement-request-detail/create`, data }) +} + +// 修改下线结算申请子 +export const updateOfflinesettlementRequestDetail = async (data: OfflinesettlementRequestDetailVO) => { + return await request.put({ url: `/wms/offlinesettlement-request-detail/update`, data }) +} + +// 删除下线结算申请子 +export const deleteOfflinesettlementRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/offlinesettlement-request-detail/delete?id=` + id }) +} + +// 导出下线结算申请子 Excel +export const exportOfflinesettlementRequestDetail = async (params) => { + return await request.download({ url: `/wms/offlinesettlement-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/offlinesettlement-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/offlinesettlementRequestMain/index.ts b/src/api/wms/offlinesettlementRequestMain/index.ts new file mode 100644 index 0000000..ccdeb8d --- /dev/null +++ b/src/api/wms/offlinesettlementRequestMain/index.ts @@ -0,0 +1,62 @@ +import request from '@/config/axios' + +export interface OfflinesettlementRequestMainVO { + productReceiptRecordNumber: string + warehouseCode: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询下线结算申请主列表 +export const getOfflinesettlementRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/offlinesettlement-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/offlinesettlement-request-main/page`, params }) + } +} + +// 查询下线结算申请主详情 +export const getOfflinesettlementRequestMain = async (id: number) => { + return await request.get({ url: `/wms/offlinesettlement-request-main/get?id=` + id }) +} + +// 新增下线结算申请主 +export const createOfflinesettlementRequestMain = async (data: OfflinesettlementRequestMainVO) => { + return await request.post({ url: `/wms/offlinesettlement-request-main/create`, data }) +} + +// 修改下线结算申请主 +export const updateOfflinesettlementRequestMain = async (data: OfflinesettlementRequestMainVO) => { + return await request.put({ url: `/wms/offlinesettlement-request-main/update`, data }) +} + +// 删除下线结算申请主 +export const deleteOfflinesettlementRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/offlinesettlement-request-main/delete?id=` + id }) +} + +// 导出下线结算申请主 Excel +export const exportOfflinesettlementRequestMain = async (params) => { + return await request.download({ url: `/wms/offlinesettlement-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/offlinesettlement-request-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/onlinesettlementRecordDetail/index.ts b/src/api/wms/onlinesettlementRecordDetail/index.ts new file mode 100644 index 0000000..08eb9d6 --- /dev/null +++ b/src/api/wms/onlinesettlementRecordDetail/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +export interface OnlinesettlementRecordDetailVO { + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + locationCode: string + locationGroupCode: string + areaCode: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string + jobDetailId: string +} + +// 查询上线结算记录子列表 +export const getOnlinesettlementRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/onlinesettlement-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/onlinesettlement-record-detail/page`, params }) + } +} + +// 查询上线结算记录子详情 +export const getOnlinesettlementRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/onlinesettlement-record-detail/get?id=` + id }) +} + +// 新增上线结算记录子 +export const createOnlinesettlementRecordDetail = async (data: OnlinesettlementRecordDetailVO) => { + return await request.post({ url: `/wms/onlinesettlement-record-detail/create`, data }) +} + +// 修改上线结算记录子 +export const updateOnlinesettlementRecordDetail = async (data: OnlinesettlementRecordDetailVO) => { + return await request.put({ url: `/wms/onlinesettlement-record-detail/update`, data }) +} + +// 删除上线结算记录子 +export const deleteOnlinesettlementRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/onlinesettlement-record-detail/delete?id=` + id }) +} + +// 导出上线结算记录子 Excel +export const exportOnlinesettlementRecordDetail = async (params) => { + return await request.download({ url: `/wms/onlinesettlement-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/onlinesettlement-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/onlinesettlementRecordMain/index.ts b/src/api/wms/onlinesettlementRecordMain/index.ts new file mode 100644 index 0000000..bacbd72 --- /dev/null +++ b/src/api/wms/onlinesettlementRecordMain/index.ts @@ -0,0 +1,62 @@ +import request from '@/config/axios' + +export interface OnlinesettlementRecordMainVO { + requestNumber: string + issueRecordNumber: string + warehouseCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + available: string +} + +// 查询上线结算记录主列表 +export const getOnlinesettlementRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/onlinesettlement-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/onlinesettlement-record-main/page`, params }) + } +} + +// 查询上线结算记录主详情 +export const getOnlinesettlementRecordMain = async (id: number) => { + return await request.get({ url: `/wms/onlinesettlement-record-main/get?id=` + id }) +} + +// 新增上线结算记录主 +export const createOnlinesettlementRecordMain = async (data: OnlinesettlementRecordMainVO) => { + return await request.post({ url: `/wms/onlinesettlement-record-main/create`, data }) +} + +// 修改上线结算记录主 +export const updateOnlinesettlementRecordMain = async (data: OnlinesettlementRecordMainVO) => { + return await request.put({ url: `/wms/onlinesettlement-record-main/update`, data }) +} + +// 删除上线结算记录主 +export const deleteOnlinesettlementRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/onlinesettlement-record-main/delete?id=` + id }) +} + +// 导出上线结算记录主 Excel +export const exportOnlinesettlementRecordMain = async (params) => { + return await request.download({ url: `/wms/onlinesettlement-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/onlinesettlement-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/onlinesettlementRequestDetail/index.ts b/src/api/wms/onlinesettlementRequestDetail/index.ts new file mode 100644 index 0000000..b6ccf22 --- /dev/null +++ b/src/api/wms/onlinesettlementRequestDetail/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface OnlinesettlementRequestDetailVO { + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + locationCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string +} + +// 查询上线结算申请子列表 +export const getOnlinesettlementRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/onlinesettlement-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/onlinesettlement-request-detail/page`, params }) + } +} + +// 查询上线结算申请子详情 +export const getOnlinesettlementRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/onlinesettlement-request-detail/get?id=` + id }) +} + +// 新增上线结算申请子 +export const createOnlinesettlementRequestDetail = async (data: OnlinesettlementRequestDetailVO) => { + return await request.post({ url: `/wms/onlinesettlement-request-detail/create`, data }) +} + +// 修改上线结算申请子 +export const updateOnlinesettlementRequestDetail = async (data: OnlinesettlementRequestDetailVO) => { + return await request.put({ url: `/wms/onlinesettlement-request-detail/update`, data }) +} + +// 删除上线结算申请子 +export const deleteOnlinesettlementRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/onlinesettlement-request-detail/delete?id=` + id }) +} + +// 导出上线结算申请子 Excel +export const exportOnlinesettlementRequestDetail = async (params) => { + return await request.download({ url: `/wms/onlinesettlement-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/onlinesettlement-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/onlinesettlementRequestMain/index.ts b/src/api/wms/onlinesettlementRequestMain/index.ts new file mode 100644 index 0000000..1190787 --- /dev/null +++ b/src/api/wms/onlinesettlementRequestMain/index.ts @@ -0,0 +1,62 @@ +import request from '@/config/axios' + +export interface OnlinesettlementRequestMainVO { + issueRecordNumber: string + warehouseCode: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询上线结算申请主列表 +export const getOnlinesettlementRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/onlinesettlement-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/onlinesettlement-request-main/page`, params }) + } +} + +// 查询上线结算申请主详情 +export const getOnlinesettlementRequestMain = async (id: number) => { + return await request.get({ url: `/wms/onlinesettlement-request-main/get?id=` + id }) +} + +// 新增上线结算申请主 +export const createOnlinesettlementRequestMain = async (data: OnlinesettlementRequestMainVO) => { + return await request.post({ url: `/wms/onlinesettlement-request-main/create`, data }) +} + +// 修改上线结算申请主 +export const updateOnlinesettlementRequestMain = async (data: OnlinesettlementRequestMainVO) => { + return await request.put({ url: `/wms/onlinesettlement-request-main/update`, data }) +} + +// 删除上线结算申请主 +export const deleteOnlinesettlementRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/onlinesettlement-request-main/delete?id=` + id }) +} + +// 导出上线结算申请主 Excel +export const exportOnlinesettlementRequestMain = async (params) => { + return await request.download({ url: `/wms/onlinesettlement-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/onlinesettlement-request-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/owner/index.ts b/src/api/wms/owner/index.ts new file mode 100644 index 0000000..64ccb44 --- /dev/null +++ b/src/api/wms/owner/index.ts @@ -0,0 +1,71 @@ +import request from '@/config/axios' + +export interface OwnerVO { + code: string + name: string + shortName: string + address: string + country: string + city: string + phone: string + fax: string + postId: string + contacts: string + bank: string + currency: string + taxRate: number + type: string + activeTime: Date + expireTime: Date + remark: string + available: string +} + +// 查询货主列表 +export const getOwnerPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/owner/senior', data }) + } else { + return await request.get({ url: `/wms/owner/page`, params }) + } +} +// 查询所有货主列表 +export const getOwnerList = async (params) => { + return await request.get({ url: `/wms/owner/list`, params }) +} +// 查询货主详情 +export const getOwner = async (id: number) => { + return await request.get({ url: `/wms/owner/get?id=` + id }) +} + +// 新增货主 +export const createOwner = async (data: OwnerVO) => { + return await request.post({ url: `/wms/owner/create`, data }) +} + +// 修改货主 +export const updateOwner = async (data: OwnerVO) => { + return await request.put({ url: `/wms/owner/update`, data }) +} + +// 删除货主 +export const deleteOwner = async (id: number) => { + return await request.delete({ url: `/wms/owner/delete?id=` + id }) +} + +// 导出货主 Excel +export const exportOwner = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/owner/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/owner/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/owner/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/package/index.ts b/src/api/wms/package/index.ts new file mode 100644 index 0000000..9de36a2 --- /dev/null +++ b/src/api/wms/package/index.ts @@ -0,0 +1,96 @@ +import request from '@/config/axios' + +export interface PackageVO { + number: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + batch: string + altBatch: string + produceDate: Date + validityDays: number + expireDate: Date + uom: string + qty: number + altUom: string + altQty: number + convertRate: number + stdPackQty: number + stdPackUnit: string + toWarehouseCode: string + toDockCode: string + toLocationCode: string + supplierCode: string + supplierItemCode: string + poNumber: string + poLine: string + rpNumber: string + asnNumber: string + woNumber: string + woLine: string + productionLineCode: string + teamCode: string + shiftCode: string + customerCode: string + customerDockCode: string + customerItemCode: string + soNumber: string + soLine: string + eqLevel: string + ownerCode: string + weight: string + area: string + volume: string +} + +// 查询包装列表 +export const getPackagePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/package/senior', data }) + } else { + return await request.get({ url: `/wms/package/page`, params }) + } +} + +// 查询包装详情 +export const getPackage = async (id: number) => { + return await request.get({ url: `/wms/package/get?id=` + id }) +} + +// 新增包装 +export const createPackage = async (data: PackageVO) => { + return await request.post({ url: `/wms/package/create`, data }) +} + +// 修改包装 +export const updatePackage = async (data: PackageVO) => { + return await request.put({ url: `/wms/package/update`, data }) +} + +// 删除包装 +export const deletePackage = async (id: number) => { + return await request.delete({ url: `/wms/package/delete?id=` + id }) +} + +// 导出包装 Excel +export const exportPackage = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.download({ url: `/wms/package/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/package/export-excel`, params }) + } + } + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/package/get-import-template' }) +} + +// 创建标签 +export const createPackageLabel = async (data: PackageVO) => { + return await request.post({ url: `/wms/package/createLabel`, data }) +} diff --git a/src/api/wms/packagemergeDetail/index.ts b/src/api/wms/packagemergeDetail/index.ts new file mode 100644 index 0000000..3322cfe --- /dev/null +++ b/src/api/wms/packagemergeDetail/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface PackagemergeDetailVO { + id: number + locationCode: string + locationGroupCode: string + areaCode: string + fromPackingNumber: string + toPackingNumber: string + fromBatch: string + toBatch: string + fromInventoryStatus: string + toInventoryStatus: string + fromContainerNumber: string + toContainerNumber: string + fromOwnerCode: string + toOwnerCode: string + masterId: number + number: string + itemCode: string + remark: string + siteId: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + toQty: number + fromQty: number + uom: string + interfaceType: string +} + +// 查询合包记录子列表 +export const getPackagemergeDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/packagemerge-detail/senior', data }) + } else { + return await request.get({ url: `/wms/packagemerge-detail/page`, params }) + } +} + +// 查询合包记录子详情 +export const getPackagemergeDetail = async (id: number) => { + return await request.get({ url: '/wms/packagemerge-detail/get?id=' + id }) +} + +// 新增合包记录子 +export const createPackagemergeDetail = async (data: PackagemergeDetailVO) => { + return await request.post({ url: '/wms/packagemerge-detail/create', data }) +} + +// 修改合包记录子 +export const updatePackagemergeDetail = async (data: PackagemergeDetailVO) => { + return await request.put({ url: '/wms/packagemerge-detail/update', data }) +} + +// 删除合包记录子 +export const deletePackagemergeDetail = async (id: number) => { + return await request.delete({ url: '/wms/packagemerge-detail/delete?id=' + id }) +} + +// 导出合包记录子 Excel +export const exportPackagemergeDetailApi = async (params) => { + return await request.download({ url: '/wms/packagemerge-detail/export-excel', params }) +} diff --git a/src/api/wms/packagemergeMain/index.ts b/src/api/wms/packagemergeMain/index.ts new file mode 100644 index 0000000..2638292 --- /dev/null +++ b/src/api/wms/packagemergeMain/index.ts @@ -0,0 +1,68 @@ +import request from '@/config/axios' + +export interface PackagemergeMainVO { + id: number + warehouseCode: string + details: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + available: string + requestTime: Date + dueTime: Date + departmentCode: string + userGroupCode: string + interfaceType: string + number: string + businessType: string + remark: string + extraProperties: string + siteId: string +} + +// 查询合包记录主列表 +export const getPackagemergeMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/packagemerge-main/senior', data }) + } else { + return await request.get({ url: `/wms/packagemerge-main/page`, params }) + } +} + +// 查询合包记录主详情 +export const getPackagemergeMain = async (id: number) => { + return await request.get({ url: `/wms/packagemerge-main/get?id=` + id }) +} + +// 新增合包记录主 +export const createPackagemergeMain = async (data: PackagemergeMainVO) => { + return await request.post({ url: `/wms/packagemerge-main/create`, data }) +} + +// 修改合包记录主 +export const updatePackagemergeMain = async (data: PackagemergeMainVO) => { + return await request.put({ url: `/wms/packagemerge-main/update`, data }) +} + +// 删除合包记录主 +export const deletePackagemergeMain = async (id: number) => { + return await request.delete({ url: `/wms/packagemerge-main/delete?id=` + id }) +} + +// 导出合包记录主 Excel +export const exportPackagemergeMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/packagemerge-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/packagemerge-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/packagemerge-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/packageoverDetail/index.ts b/src/api/wms/packageoverDetail/index.ts new file mode 100644 index 0000000..52a9f97 --- /dev/null +++ b/src/api/wms/packageoverDetail/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface PackageoverDetailVO { + id: number + locationCode: string + locationGroupCode: string + areaCode: string + fromPackingNumber: string + toPackingNumber: string + fromBatch: string + toBatch: string + fromInventoryStatus: string + toInventoryStatus: string + fromContainerNumber: string + toContainerNumber: string + fromOwnerCode: string + toOwnerCode: string + masterId: number + number: string + itemCode: string + remark: string + siteId: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + toQty: number + fromQty: number + uom: string + interfaceType: string +} + +// 查询翻包记录子列表 +export const getPackageoverDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/packageover-detail/senior', data }) + } else { + return await request.get({ url: `/wms/packageover-detail/page`, params }) + } +} + +// 查询翻包记录子详情 +export const getPackageoverDetail = async (id: number) => { + return await request.get({ url: '/wms/packageover-detail/get?id=' + id }) +} + +// 新增翻包记录子 +export const createPackageoverDetail = async (data: PackageoverDetailVO) => { + return await request.post({ url: '/wms/packageover-detail/create', data }) +} + +// 修改翻包记录子 +export const updatePackageoverDetail = async (data: PackageoverDetailVO) => { + return await request.put({ url: '/wms/packageover-detail/update', data }) +} + +// 删除翻包记录子 +export const deletePackageoverDetail = async (id: number) => { + return await request.delete({ url: '/wms/packageover-detail/delete?id=' + id }) +} + +// 导出翻包记录子 Excel +export const exportPackageoverDetailApi = async (params) => { + return await request.download({ url: '/wms/packageover-detail/export-excel', params }) +} diff --git a/src/api/wms/packageoverMain/index.ts b/src/api/wms/packageoverMain/index.ts new file mode 100644 index 0000000..2950c3b --- /dev/null +++ b/src/api/wms/packageoverMain/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface PackageoverMainVO { + id: number + warehouseCode: string + details: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + available: string + requestTime: Date + dueTime: Date + departmentCode: string + userGroupCode: string + interfaceType: string + number: string + businessType: string + remark: string + extraProperties: string + siteId: string +} + +// 查询翻包记录主列表 +export const getPackageoverMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/packageover-main/senior', data }) + } else { + return await request.get({ url: `/wms/packageover-main/page`, params }) + } +} + +// 查询翻包记录主详情 +export const getPackageoverMain = async (id: number) => { + return await request.get({ url: '/wms/packageover-main/get?id=' + id }) +} + +// 新增翻包记录主 +export const createPackageoverMain = async (data: PackageoverMainVO) => { + return await request.post({ url: '/wms/packageover-main/create', data }) +} + +// 修改翻包记录主 +export const updatePackageoverMain = async (data: PackageoverMainVO) => { + return await request.put({ url: '/wms/packageover-main/update', data }) +} + +// 删除翻包记录主 +export const deletePackageoverMain = async (id: number) => { + return await request.delete({ url: '/wms/packageover-main/delete?id=' + id }) +} + +// 导出翻包记录主 Excel +export const exportPackageoverMainApi = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/packageover-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/packageover-main/export-excel`, params }) + } +} diff --git a/src/api/wms/packagesplitDetail/index.ts b/src/api/wms/packagesplitDetail/index.ts new file mode 100644 index 0000000..23f7876 --- /dev/null +++ b/src/api/wms/packagesplitDetail/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface PackagesplitDetailVO { + id: number + locationCode: string + locationGroupCode: string + areaCode: string + fromPackingNumber: string + toPackingNumber: string + fromBatch: string + toBatch: string + fromInventoryStatus: string + toInventoryStatus: string + fromContainerNumber: string + toContainerNumber: string + fromOwnerCode: string + toOwnerCode: string + masterId: number + number: string + itemCode: string + remark: string + siteId: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + toQty: number + fromQty: number + uom: string + interfaceType: string +} + +// 查询拆包记录子列表 +export const getPackagesplitDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/packagesplit-detail/senior', data }) + } else { + return await request.get({ url: `/wms/packagesplit-detail/page`, params }) + } +} + +// 查询拆包记录子详情 +export const getPackagesplitDetail = async (id: number) => { + return await request.get({ url: '/wms/packagesplit-detail/get?id=' + id }) +} + +// 新增拆包记录子 +export const createPackagesplitDetail = async (data: PackagesplitDetailVO) => { + return await request.post({ url: '/wms/packagesplit-detail/create', data }) +} + +// 修改拆包记录子 +export const updatePackagesplitDetail = async (data: PackagesplitDetailVO) => { + return await request.put({ url: '/wms/packagesplit-detail/update', data }) +} + +// 删除拆包记录子 +export const deletePackagesplitDetail = async (id: number) => { + return await request.delete({ url: '/wms/packagesplit-detail/delete?id=' + id }) +} + +// 导出拆包记录子 Excel +export const exportPackagesplitDetailApi = async (params) => { + return await request.download({ url: '/wms/packagesplit-detail/export-excel', params }) +} diff --git a/src/api/wms/packagesplitMain/index.ts b/src/api/wms/packagesplitMain/index.ts new file mode 100644 index 0000000..37fbedd --- /dev/null +++ b/src/api/wms/packagesplitMain/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface PackagesplitMainVO { + id: number + warehouseCode: string + details: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + available: string + requestTime: Date + dueTime: Date + departmentCode: string + userGroupCode: string + interfaceType: string + number: string + businessType: string + remark: string + extraProperties: string + siteId: string +} + +// 查询拆包记录主列表 +export const getPackagesplitMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/packagesplit-main/senior', data }) + } else { + return await request.get({ url: `/wms/packagesplit-main/page`, params }) + } +} + +// 查询拆包记录主详情 +export const getPackagesplitMain = async (id: number) => { + return await request.get({ url: '/wms/packagesplit-main/get?id=' + id }) +} + +// 新增拆包记录主 +export const createPackagesplitMain = async (data: PackagesplitMainVO) => { + return await request.post({ url: '/wms/packagesplit-main/create', data }) +} + +// 修改拆包记录主 +export const updatePackagesplitMain = async (data: PackagesplitMainVO) => { + return await request.put({ url: '/wms/packagesplit-main/update', data }) +} + +// 删除拆包记录主 +export const deletePackagesplitMain = async (id: number) => { + return await request.delete({ url: '/wms/packagesplit-main/delete?id=' + id }) +} + +// 导出拆包记录主 Excel +export const exportPackagesplitMainApi = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/packagesplit-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/packagesplit-main/export-excel`, params }) + } +} diff --git a/src/api/wms/paramsetting/index.ts b/src/api/wms/paramsetting/index.ts new file mode 100644 index 0000000..c4549f2 --- /dev/null +++ b/src/api/wms/paramsetting/index.ts @@ -0,0 +1,59 @@ +import request from '@/config/axios' + +export interface ParamsettingVO { + strategyType: string + paramCode: string + paramName: string + usableOpeartors: string + dataType: string + valueScope: string + relatedTo: string + description: string + isRequired: string +} + +// 查询参数设置列表 +export const getParamsettingPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/paramsetting/senior', data }) + } else { + return await request.get({ url: `/wms/paramsetting/page`, params }) + } +} + +// 查询参数设置详情 +export const getParamsetting = async (id: number) => { + return await request.get({ url: `/wms/paramsetting/get?id=` + id }) +} + +// 新增参数设置 +export const createParamsetting = async (data: ParamsettingVO) => { + return await request.post({ url: `/wms/paramsetting/create`, data }) +} + +// 修改参数设置 +export const updateParamsetting = async (data: ParamsettingVO) => { + return await request.put({ url: `/wms/paramsetting/update`, data }) +} + +// 删除参数设置 +export const deleteParamsetting = async (id: number) => { + return await request.delete({ url: `/wms/paramsetting/delete?id=` + id }) +} + +// 导出参数设置 Excel +export const exportParamsetting = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/paramsetting/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/paramsetting/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/paramsetting/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/pickJobDetail/index.ts b/src/api/wms/pickJobDetail/index.ts new file mode 100644 index 0000000..1528337 --- /dev/null +++ b/src/api/wms/pickJobDetail/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +export interface PickJobDetailVO { + packingNumber: string + batch: string + inventoryStatus: string + containerNumber: string + fromLocationCode: string + toLocationCode: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creatorId: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询拣料任务子列表 +export const getPickJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/pick-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/pick-job-detail/page`, params }) + } +} + +// 查询拣料任务子详情 +export const getPickJobDetail = async (id: number) => { + return await request.get({ url: `/wms/pick-job-detail/get?id=` + id }) +} + +// 新增拣料任务子 +export const createPickJobDetail = async (data: PickJobDetailVO) => { + return await request.post({ url: `/wms/pick-job-detail/create`, data }) +} + +// 修改拣料任务子 +export const updatePickJobDetail = async (data: PickJobDetailVO) => { + return await request.put({ url: `/wms/pick-job-detail/update`, data }) +} + +// 删除拣料任务子 +export const deletePickJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/pick-job-detail/delete?id=` + id }) +} + +// 导出拣料任务子 Excel +export const exportPickJobDetail = async (params) => { + return await request.download({ url: `/wms/pick-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/pick-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/pickJobMain/index.ts b/src/api/wms/pickJobMain/index.ts new file mode 100644 index 0000000..3f52ed8 --- /dev/null +++ b/src/api/wms/pickJobMain/index.ts @@ -0,0 +1,81 @@ +import request from '@/config/axios' + +export interface PickJobMainVO { + requestNumber: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromWarehouseCode: string + fromAreaCodes: string + toWarehouseCode: string + toAreaCodes: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询拣料任务主列表 +export const getPickJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/pick-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/pick-job-main/page`, params }) + } +} + +// 查询拣料任务主详情 +export const getPickJobMain = async (id: number) => { + return await request.get({ url: `/wms/pick-job-main/get?id=` + id }) +} + +// 新增拣料任务主 +export const createPickJobMain = async (data: PickJobMainVO) => { + return await request.post({ url: `/wms/pick-job-main/create`, data }) +} + +// 修改拣料任务主 +export const updatePickJobMain = async (data: PickJobMainVO) => { + return await request.put({ url: `/wms/pick-job-main/update`, data }) +} + +// 删除拣料任务主 +export const deletePickJobMain = async (id: number) => { + return await request.delete({ url: `/wms/pick-job-main/delete?id=` + id }) +} + +// 导出拣料任务主 Excel +export const exportPickJobMain = async (params) => { + return await request.download({ url: `/wms/pick-job-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/pick-job-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/pickRecordDetail/index.ts b/src/api/wms/pickRecordDetail/index.ts new file mode 100644 index 0000000..f18fb3f --- /dev/null +++ b/src/api/wms/pickRecordDetail/index.ts @@ -0,0 +1,74 @@ +import request from '@/config/axios' + +export interface PickRecordDetailVO { + fromPackingNumber: string + fromBatch: string + inventoryStatus: string + fromOwnerCode: string + fromContainerNumber: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + toOwnerCode: string + toContainerNumber: string + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string + toPackingNumber: string + toBatch: string +} + +// 查询拣料记录子列表 +export const getPickRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/pick-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/pick-record-detail/page`, params }) + } +} + +// 查询拣料记录子详情 +export const getPickRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/pick-record-detail/get?id=` + id }) +} + +// 新增拣料记录子 +export const createPickRecordDetail = async (data: PickRecordDetailVO) => { + return await request.post({ url: `/wms/pick-record-detail/create`, data }) +} + +// 修改拣料记录子 +export const updatePickRecordDetail = async (data: PickRecordDetailVO) => { + return await request.put({ url: `/wms/pick-record-detail/update`, data }) +} + +// 删除拣料记录子 +export const deletePickRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/pick-record-detail/delete?id=` + id }) +} + +// 导出拣料记录子 Excel +export const exportPickRecordDetail = async (params) => { + return await request.download({ url: `/wms/pick-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/pick-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/pickRecordMain/index.ts b/src/api/wms/pickRecordMain/index.ts new file mode 100644 index 0000000..97ea9ce --- /dev/null +++ b/src/api/wms/pickRecordMain/index.ts @@ -0,0 +1,68 @@ +import request from '@/config/axios' + +export interface PickRecordMainVO { + requestNumber: string + jobNumber: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + available: string +} + +// 查询拣料记录主列表 +export const getPickRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/pick-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/pick-record-main/page`, params }) + } +} + +// 查询拣料记录主详情 +export const getPickRecordMain = async (id: number) => { + return await request.get({ url: `/wms/pick-record-main/get?id=` + id }) +} + +// 新增拣料记录主 +export const createPickRecordMain = async (data: PickRecordMainVO) => { + return await request.post({ url: `/wms/pick-record-main/create`, data }) +} + +// 修改拣料记录主 +export const updatePickRecordMain = async (data: PickRecordMainVO) => { + return await request.put({ url: `/wms/pick-record-main/update`, data }) +} + +// 删除拣料记录主 +export const deletePickRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/pick-record-main/delete?id=` + id }) +} + +// 导出拣料记录主 Excel +export const exportPickRecordMain = async (params) => { + return await request.download({ url: `/wms/pick-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/pick-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/pickRequestDetail/index.ts b/src/api/wms/pickRequestDetail/index.ts new file mode 100644 index 0000000..143edf1 --- /dev/null +++ b/src/api/wms/pickRequestDetail/index.ts @@ -0,0 +1,62 @@ +import request from '@/config/axios' + +export interface PickRequestDetailVO { + inventoryStatus: string + toLocationCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询拣料申请子列表 +export const getPickRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/pick-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/pick-request-detail/page`, params }) + } +} + +// 查询拣料申请子详情 +export const getPickRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/pick-request-detail/get?id=` + id }) +} + +// 新增拣料申请子 +export const createPickRequestDetail = async (data: PickRequestDetailVO) => { + return await request.post({ url: `/wms/pick-request-detail/create`, data }) +} + +// 修改拣料申请子 +export const updatePickRequestDetail = async (data: PickRequestDetailVO) => { + return await request.put({ url: `/wms/pick-request-detail/update`, data }) +} + +// 删除拣料申请子 +export const deletePickRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/pick-request-detail/delete?id=` + id }) +} + +// 导出拣料申请子 Excel +export const exportPickRequestDetail = async (params) => { + return await request.download({ url: `/wms/pick-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/pick-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/pickRequestMain/index.ts b/src/api/wms/pickRequestMain/index.ts new file mode 100644 index 0000000..5344d4d --- /dev/null +++ b/src/api/wms/pickRequestMain/index.ts @@ -0,0 +1,66 @@ +import request from '@/config/axios' + +export interface PickRequestMainVO { + fromWarehouseCode: string + fromLocationTypes: string + fromAreas: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询拣料申请主列表 +export const getPickRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/pick-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/pick-request-main/page`, params }) + } +} + +// 查询拣料申请主详情 +export const getPickRequestMain = async (id: number) => { + return await request.get({ url: `/wms/pick-request-main/get?id=` + id }) +} + +// 新增拣料申请主 +export const createPickRequestMain = async (data: PickRequestMainVO) => { + return await request.post({ url: `/wms/pick-request-main/create`, data }) +} + +// 修改拣料申请主 +export const updatePickRequestMain = async (data: PickRequestMainVO) => { + return await request.put({ url: `/wms/pick-request-main/update`, data }) +} + +// 删除拣料申请主 +export const deletePickRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/pick-request-main/delete?id=` + id }) +} + +// 导出拣料申请主 Excel +export const exportPickRequestMain = async (params) => { + return await request.download({ url: `/wms/pick-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/pick-request-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/preparetoissueDetail/index.ts b/src/api/wms/preparetoissueDetail/index.ts new file mode 100644 index 0000000..44655ff --- /dev/null +++ b/src/api/wms/preparetoissueDetail/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +export interface PreparetoissueDetailVO { + toLocationCode: string + workStation: string + dueTime: Date + number: string + itemCode: string + remark: string + createTime: Date + creator: string + planQty: number + uom: string + updateTime: Date + updater: string + available: string +} + +// 查询备料计划子列表 +export const getPreparetoissueDetailPage = async (params) => { + return await request.get({ url: `/wms/preparetoissue-detail/page`, params }) +} + +// 查询备料计划子详情 +export const getPreparetoissueDetail = async (id: number) => { + return await request.get({ url: `/wms/preparetoissue-detail/get?id=` + id }) +} + +// 新增备料计划子 +export const createPreparetoissueDetail = async (data: PreparetoissueDetailVO) => { + return await request.post({ url: `/wms/preparetoissue-detail/create`, data }) +} + +// 修改备料计划子 +export const updatePreparetoissueDetail = async (data: PreparetoissueDetailVO) => { + return await request.put({ url: `/wms/preparetoissue-detail/update`, data }) +} + +// 删除备料计划子 +export const deletePreparetoissueDetail = async (id: number) => { + return await request.delete({ url: `/wms/preparetoissue-detail/delete?id=` + id }) +} + +// 导出备料计划子 Excel +export const exportPreparetoissueDetail = async (params) => { + return await request.download({ url: `/wms/preparetoissue-detail/export-excel`, params }) +} diff --git a/src/api/wms/preparetoissueMain/index.ts b/src/api/wms/preparetoissueMain/index.ts new file mode 100644 index 0000000..b86b6fc --- /dev/null +++ b/src/api/wms/preparetoissueMain/index.ts @@ -0,0 +1,109 @@ +import request from '@/config/axios' + +export interface PreparetoissueMainVO { + productionPlanNumber: string + workshop: string + prodLine: string + shift: string + team: string + planDate: Date + number: string + businessType: string + remark: string + createTime: Date + creator: string + beginTime: Date + endTime: Date + status: string + updateTime: Date + updater: string + available: string +} + +// 查询备料计划主列表 +export const getPreparetoissueMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/preparetoissue-main/senior', data }) + } else { + return await request.get({ url: `/wms/preparetoissue-main/page`, params }) + } +} + +// 查询备料计划主详情 +export const getPreparetoissueMain = async (id: number) => { + return await request.get({ url: `/wms/preparetoissue-main/get?id=` + id }) +} + +// 新增备料计划主 +export const createPreparetoissueMain = async (data: PreparetoissueMainVO) => { + return await request.post({ url: `/wms/preparetoissue-main/create`, data }) +} + +// 修改备料计划主 +export const updatePreparetoissueMain = async (data: PreparetoissueMainVO) => { + return await request.put({ url: `/wms/preparetoissue-main/update`, data }) +} + +// 删除备料计划主 +export const deletePreparetoissueMain = async (id: number) => { + return await request.delete({ url: `/wms/preparetoissue-main/delete?id=` + id }) +} + +// 导出备料计划主 Excel +export const exportPreparetoissueMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/preparetoissue-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/preparetoissue-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/preparetoissue-main/get-import-template' }) +} + +// bom拆解 +export const getBomDisassemble = async (id: number) => { + return await request.get({ url: `/wms/preparetoissue-main/getBomDisassemble?id=` + id }) +} + + + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/preparetoissue-main/close?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/preparetoissue-main/submit?id=' + id }) +} + +// 打开 +export const open = (id) => { + return request.put({ url: '/wms/preparetoissue-main/open?id=' + id }) +} + +// 驳回 +export const reject = (id) => { + return request.put({ url: '/wms/preparetoissue-main/reject?id=' + id }) +} + +// 驳回 +export const agree = (id) => { + return request.put({ url: '/wms/preparetoissue-main/agree?id=' + id }) +} + +// 发布 +export const publish = (id) => { + return request.put({ url: '/wms/preparetoissue-main/publish?id=' + id }) +} + +// 重置 +export const resetting = (id) => { + return request.put({ url: '/wms/preparetoissue-main/resetting?id=' + id }) +} diff --git a/src/api/wms/process/index.ts b/src/api/wms/process/index.ts new file mode 100644 index 0000000..c89f7e1 --- /dev/null +++ b/src/api/wms/process/index.ts @@ -0,0 +1,60 @@ +import request from '@/config/axios' + +export interface ProcessVO { + code: string + name: string + description: string + type: string + workshopCode: string + productionLineCode: string + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询工序列表 +export const getProcessPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/process/senior', data }) + } else { + return await request.get({ url: `/wms/process/page`, params }) + } +} + +// 查询工序详情 +export const getProcess = async (id: number) => { + return await request.get({ url: `/wms/process/get?id=` + id }) +} + +// 新增工序 +export const createProcess = async (data: ProcessVO) => { + return await request.post({ url: `/wms/process/create`, data }) +} + +// 修改工序 +export const updateProcess = async (data: ProcessVO) => { + return await request.put({ url: `/wms/process/update`, data }) +} + +// 删除工序 +export const deleteProcess = async (id: number) => { + return await request.delete({ url: `/wms/process/delete?id=` + id }) +} + +// 导出工序 Excel +export const exportProcess = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/process/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/process/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/process/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productdismantleJobDetail/index.ts b/src/api/wms/productdismantleJobDetail/index.ts new file mode 100644 index 0000000..8f9289f --- /dev/null +++ b/src/api/wms/productdismantleJobDetail/index.ts @@ -0,0 +1,70 @@ +import request from '@/config/axios' + +export interface ProductdismantleJobDetailVO { + productionLineCode: string + workStationCode: string + processCode: string + packingNumber: string + containerNumber: string + batch: string + produceDate: Date + expireDate: Date + inventoryStatus: string + stdPackQty: number + stdPackUnit: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string + fromLocationCode: string + ownerCode: string + fromOwnerCode: string +} + +// 查询制品拆解任务子列表 +export const getProductdismantleJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productdismantle-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productdismantle-job-detail/page`, params }) + } +} + +// 查询制品拆解任务子详情 +export const getProductdismantleJobDetail = async (id: number) => { + return await request.get({ url: `/wms/productdismantle-job-detail/get?id=` + id }) +} + +// 新增制品拆解任务子 +export const createProductdismantleJobDetail = async (data: ProductdismantleJobDetailVO) => { + return await request.post({ url: `/wms/productdismantle-job-detail/create`, data }) +} + +// 修改制品拆解任务子 +export const updateProductdismantleJobDetail = async (data: ProductdismantleJobDetailVO) => { + return await request.put({ url: `/wms/productdismantle-job-detail/update`, data }) +} + +// 删除制品拆解任务子 +export const deleteProductdismantleJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/productdismantle-job-detail/delete?id=` + id }) +} + +// 导出制品拆解任务子 Excel +export const exportProductdismantleJobDetail = async (params) => { + return await request.download({ url: `/wms/productdismantle-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productdismantle-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productdismantleJobMain/index.ts b/src/api/wms/productdismantleJobMain/index.ts new file mode 100644 index 0000000..353653c --- /dev/null +++ b/src/api/wms/productdismantleJobMain/index.ts @@ -0,0 +1,82 @@ +import request from '@/config/axios' + +export interface ProductdismantleJobMainVO { + requestNumber: string + workshopCode: string + team: string + shift: string + fromWarehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromAreaCodes: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询制品拆解任务主列表 +export const getProductdismantleJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productdismantle-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/productdismantle-job-main/page`, params }) + } +} + +// 查询制品拆解任务主详情 +export const getProductdismantleJobMain = async (id: number) => { + return await request.get({ url: `/wms/productdismantle-job-main/get?id=` + id }) +} + +// 新增制品拆解任务主 +export const createProductdismantleJobMain = async (data: ProductdismantleJobMainVO) => { + return await request.post({ url: `/wms/productdismantle-job-main/create`, data }) +} + +// 修改制品拆解任务主 +export const updateProductdismantleJobMain = async (data: ProductdismantleJobMainVO) => { + return await request.put({ url: `/wms/productdismantle-job-main/update`, data }) +} + +// 删除制品拆解任务主 +export const deleteProductdismantleJobMain = async (id: number) => { + return await request.delete({ url: `/wms/productdismantle-job-main/delete?id=` + id }) +} + +// 导出制品拆解任务主 Excel +export const exportProductdismantleJobMain = async (params) => { + return await request.download({ url: `/wms/productdismantle-job-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productdismantle-job-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productdismantleRecordDetaila/index.ts b/src/api/wms/productdismantleRecordDetaila/index.ts new file mode 100644 index 0000000..da0a502 --- /dev/null +++ b/src/api/wms/productdismantleRecordDetaila/index.ts @@ -0,0 +1,72 @@ +import request from '@/config/axios' + +export interface ProductdismantleRecordDetailaVO { + fromOwnerCode: string + productionLineCode: string + workStationCode: string + processCode: string + packingNumber: string + containerNumber: string + batch: string + produceDate: Date + expireDate: Date + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + inventoryStatus: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string +} + +// 查询制品拆解记录子列表 +export const getProductdismantleRecordDetailaPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productdismantle-record-detaila/senior', data }) + } else { + return await request.get({ url: `/wms/productdismantle-record-detaila/page`, params }) + } +} + +// 查询制品拆解记录子详情 +export const getProductdismantleRecordDetaila = async (id: number) => { + return await request.get({ url: `/wms/productdismantle-record-detaila/get?id=` + id }) +} + +// 新增制品拆解记录子 +export const createProductdismantleRecordDetaila = async (data: ProductdismantleRecordDetailaVO) => { + return await request.post({ url: `/wms/productdismantle-record-detaila/create`, data }) +} + +// 修改制品拆解记录子 +export const updateProductdismantleRecordDetaila = async (data: ProductdismantleRecordDetailaVO) => { + return await request.put({ url: `/wms/productdismantle-record-detaila/update`, data }) +} + +// 删除制品拆解记录子 +export const deleteProductdismantleRecordDetaila = async (id: number) => { + return await request.delete({ url: `/wms/productdismantle-record-detaila/delete?id=` + id }) +} + +// 导出制品拆解记录子 Excel +export const exportProductdismantleRecordDetaila = async (params) => { + return await request.download({ url: `/wms/productdismantle-record-detaila/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productdismantle-record-detaila/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productdismantleRecordMain/index.ts b/src/api/wms/productdismantleRecordMain/index.ts new file mode 100644 index 0000000..b5de742 --- /dev/null +++ b/src/api/wms/productdismantleRecordMain/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface ProductdismantleRecordMainVO { + requestNumber: string + workshopCode: string + team: string + shift: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + available: string +} + +// 查询制品拆解记录主列表 +export const getProductdismantleRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productdismantle-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/productdismantle-record-main/page`, params }) + } +} + +// 查询制品拆解记录主详情 +export const getProductdismantleRecordMain = async (id: number) => { + return await request.get({ url: `/wms/productdismantle-record-main/get?id=` + id }) +} + +// 新增制品拆解记录主 +export const createProductdismantleRecordMain = async (data: ProductdismantleRecordMainVO) => { + return await request.post({ url: `/wms/productdismantle-record-main/create`, data }) +} + +// 修改制品拆解记录主 +export const updateProductdismantleRecordMain = async (data: ProductdismantleRecordMainVO) => { + return await request.put({ url: `/wms/productdismantle-record-main/update`, data }) +} + +// 删除制品拆解记录主 +export const deleteProductdismantleRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/productdismantle-record-main/delete?id=` + id }) +} + +// 导出制品拆解记录主 Excel +export const exportProductdismantleRecordMain = async (params) => { + return await request.download({ url: `/wms/productdismantle-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productdismantle-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productdismantleRequestDetaila/index.ts b/src/api/wms/productdismantleRequestDetaila/index.ts new file mode 100644 index 0000000..6e079cd --- /dev/null +++ b/src/api/wms/productdismantleRequestDetaila/index.ts @@ -0,0 +1,71 @@ +import request from '@/config/axios' + +export interface ProductdismantleRequestDetailaVO { + productionLineCode: string + workStationCode: string + processCode: string + packingNumber: string + containerNumber: string + batch: string + produceDate: Date + expireDate: Date + inventoryStatus: string + stdPackQty: number + stdPackUnit: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectOde: string + qty: number + uom: string + updateTime: Date + updater: string + fromLocationCode: string + fromOwnerCode: string +} + +// 查询制品拆解申请子列表 +export const getProductdismantleRequestDetailaPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productdismantle-request-detaila/senior', data }) + } else { + return await request.get({ url: `/wms/productdismantle-request-detaila/page`, params }) + } +} + +// 查询制品拆解申请子详情 +export const getProductdismantleRequestDetaila = async (id: number) => { + return await request.get({ url: `/wms/productdismantle-request-detaila/get?id=` + id }) +} + +// 新增制品拆解申请子 +export const createProductdismantleRequestDetaila = async (data: ProductdismantleRequestDetailaVO) => { + return await request.post({ url: `/wms/productdismantle-request-detaila/create`, data }) +} + +// 修改制品拆解申请子 +export const updateProductdismantleRequestDetaila = async (data: ProductdismantleRequestDetailaVO) => { + return await request.put({ url: `/wms/productdismantle-request-detaila/update`, data }) +} + +// 删除制品拆解申请子 +export const deleteProductdismantleRequestDetaila = async (id: number) => { + return await request.delete({ url: `/wms/productdismantle-request-detaila/delete?id=` + id }) +} + +// 导出制品拆解申请子 Excel +export const exportProductdismantleRequestDetaila = async (params) => { + return await request.download({ url: `/wms/productdismantle-request-detaila/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productdismantle-request-detaila/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productdismantleRequestMain/index.ts b/src/api/wms/productdismantleRequestMain/index.ts new file mode 100644 index 0000000..1319d18 --- /dev/null +++ b/src/api/wms/productdismantleRequestMain/index.ts @@ -0,0 +1,101 @@ +import request from '@/config/axios' + +export interface ProductdismantleRequestMainVO { + workshopCode: string + team: string + shift: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询制品拆解申请主列表 +export const getProductdismantleRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productdismantle-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/productdismantle-request-main/page`, params }) + } +} + +// 查询制品拆解申请主详情 +export const getProductdismantleRequestMain = async (id: number) => { + return await request.get({ url: `/wms/productdismantle-request-main/get?id=` + id }) +} + +// 新增制品拆解申请主 +export const createProductdismantleRequestMain = async (data: ProductdismantleRequestMainVO) => { + return await request.post({ url: `/wms/productdismantle-request-main/create`, data }) +} + +// 修改制品拆解申请主 +export const updateProductdismantleRequestMain = async (data: ProductdismantleRequestMainVO) => { + return await request.put({ url: `/wms/productdismantle-request-main/update`, data }) +} + +// 删除制品拆解申请主 +export const deleteProductdismantleRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/productdismantle-request-main/delete?id=` + id }) +} + +// 导出制品拆解申请主 Excel +export const exportProductdismantleRequestMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/productdismantle-request-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/productdismantle-request-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productdismantle-request-main/get-import-template' }) +} + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/productdismantle-request-main/close?id=' + id }) +} + +// 重新添加 +export const reAdd = (id) => { + return request.put({ url: '/wms/productdismantle-request-main/reAdd?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/productdismantle-request-main/submit?id=' + id }) +} + +// 驳回 +export const refused = (id) => { + return request.put({ url: '/wms/productdismantle-request-main/refused?id=' + id }) +} + +// 审批通过 +export const agree = (id) => { + return request.put({ url: '/wms/productdismantle-request-main/agree?id=' + id }) +} + +// 处理 +export const handle = (id) => { + return request.put({ url: '/wms/productdismantle-request-main/handle?id=' + id }) +} \ No newline at end of file diff --git a/src/api/wms/productionDetail/index.ts b/src/api/wms/productionDetail/index.ts new file mode 100644 index 0000000..313ecbb --- /dev/null +++ b/src/api/wms/productionDetail/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +export interface ProductionDetailVO { + bomVersion: string + goodQty: number + notGoodQty: number + number: string + itemCode: string + remark: string + createTime: Date + creator: string + planQty: number + uom: string + updateTime: Date + updater: string + available: string +} + +// 查询生产计划子列表 +export const getProductionDetailPage = async (params) => { + return await request.get({ url: `/wms/production-detail/page`, params }) +} + +// 查询生产计划子详情 +export const getProductionDetail = async (id: number) => { + return await request.get({ url: `/wms/production-detail/get?id=` + id }) +} + +// 新增生产计划子 +export const createProductionDetail = async (data: ProductionDetailVO) => { + return await request.post({ url: `/wms/production-detail/create`, data }) +} + +// 修改生产计划子 +export const updateProductionDetail = async (data: ProductionDetailVO) => { + return await request.put({ url: `/wms/production-detail/update`, data }) +} + +// 删除生产计划子 +export const deleteProductionDetail = async (id: number) => { + return await request.delete({ url: `/wms/production-detail/delete?id=` + id }) +} + +// 导出生产计划子 Excel +export const exportProductionDetail = async (params) => { + return await request.download({ url: `/wms/production-detail/export-excel`, params }) +} diff --git a/src/api/wms/productionMain/index.ts b/src/api/wms/productionMain/index.ts new file mode 100644 index 0000000..9b134c1 --- /dev/null +++ b/src/api/wms/productionMain/index.ts @@ -0,0 +1,111 @@ +import request from '@/config/axios' + +export interface ProductionMainVO { + displayOrder: number + workshop: string + productionLine: string + shift: string + team: string + planDate: Date + number: string + businessType: string + remark: string + createTime: Date + creator: string + beginTime: Date + endTime: Date + status: string + updateTime: Date + updater: string + available: string + woNumber: string + woLine: string +} + +// 查询生产计划主列表 +export const getProductionMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/production-main/senior', data }) + } else { + return await request.get({ url: `/wms/production-main/page`, params }) + } +} + +// 查询生产计划主详情 +export const getProductionMain = async (id: number) => { + return await request.get({ url: `/wms/production-main/get?id=` + id }) +} + +// 新增生产计划主 +export const createProductionMain = async (data: ProductionMainVO) => { + return await request.post({ url: `/wms/production-main/create`, data }) +} + +// 修改生产计划主 +export const updateProductionMain = async (data: ProductionMainVO) => { + return await request.put({ url: `/wms/production-main/update`, data }) +} + +// 删除生产计划主 +export const deleteProductionMain = async (id: number) => { + return await request.delete({ url: `/wms/production-main/delete?id=` + id }) +} + +// 导出生产计划主 Excel +export const exportProductionMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/production-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/production-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/production-main/get-import-template' }) +} + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/production-main/close?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/production-main/submit?id=' + id }) +} + +// 打开 +export const open = (id) => { + return request.put({ url: '/wms/production-main/open?id=' + id }) +} + +// 驳回 +export const reject = (id) => { + return request.put({ url: '/wms/production-main/reject?id=' + id }) +} + +// 驳回 +export const agree = (id) => { + return request.put({ url: '/wms/production-main/agree?id=' + id }) +} + +// 发布 +export const publish = (id) => { + return request.put({ url: '/wms/production-main/publish?id=' + id }) +} + +// 重置 +export const resetting = (id) => { + return request.put({ url: '/wms/production-main/resetting?id=' + id }) +} + + + + + + + diff --git a/src/api/wms/productionline/index.ts b/src/api/wms/productionline/index.ts new file mode 100644 index 0000000..050c8a0 --- /dev/null +++ b/src/api/wms/productionline/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +export interface ProductionlineVO { + code: string + name: string + description: string + type: string + workshopCode: string + rawLocationCode: string + fgLocationCode: string + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询生产线列表 +export const getProductionlinePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/productionline/senior', data }) + } else { + return await request.get({ url: `/wms/productionline/page`, params }) + } +} + +// 查询生产线详情 +export const getProductionline = async (id: number) => { + return await request.get({ url: `/wms/productionline/get?id=` + id }) +} + +// 新增生产线 +export const createProductionline = async (data: ProductionlineVO) => { + return await request.post({ url: `/wms/productionline/create`, data }) +} + +// 修改生产线 +export const updateProductionline = async (data: ProductionlineVO) => { + return await request.put({ url: `/wms/productionline/update`, data }) +} + +// 删除生产线 +export const deleteProductionline = async (id: number) => { + return await request.delete({ url: `/wms/productionline/delete?id=` + id }) +} + +// 导出生产线 Excel +export const exportProductionline = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/productionline/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/productionline/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productionline/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productionlineitem/index.ts b/src/api/wms/productionlineitem/index.ts new file mode 100644 index 0000000..6b109f4 --- /dev/null +++ b/src/api/wms/productionlineitem/index.ts @@ -0,0 +1,69 @@ +import request from '@/config/axios' + +export interface ProductionlineitemVO { + fgLocationCode: string + productionLineCode: string + itemCode: string + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询生产线物料关系列表 +export const getProductionlineitemPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/productionlineitem/senior', data }) + } else { + return await request.get({ url: `/wms/productionlineitem/page`, params }) + } +} + +// 查询生产线物料关系列表——根据 生产线 物品类型为原料和半成品 +export const getProductionlineitemPageByItemtype = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productionlineitem/pageByItemtypeSenior', data }) + } else { + return await request.get({ url: `/wms/productionlineitem/pageByItemtype`, params }) + } + +} + +// 查询生产线物料关系详情 +export const getProductionlineitem = async (id: number) => { + return await request.get({ url: `/wms/productionlineitem/get?id=` + id }) +} + +// 新增生产线物料关系 +export const createProductionlineitem = async (data: ProductionlineitemVO) => { + return await request.post({ url: `/wms/productionlineitem/create`, data }) +} + +// 修改生产线物料关系 +export const updateProductionlineitem = async (data: ProductionlineitemVO) => { + return await request.put({ url: `/wms/productionlineitem/update`, data }) +} + +// 删除生产线物料关系 +export const deleteProductionlineitem = async (id: number) => { + return await request.delete({ url: `/wms/productionlineitem/delete?id=` + id }) +} + +// 导出生产线物料关系 Excel +export const exportProductionlineitem = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/productionlineitem/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/productionlineitem/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productionlineitem/get-import-template' }) +} diff --git a/src/api/wms/productionreceiptJobDetail/index.ts b/src/api/wms/productionreceiptJobDetail/index.ts new file mode 100644 index 0000000..9300b16 --- /dev/null +++ b/src/api/wms/productionreceiptJobDetail/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface ProductionreceiptJobDetailVO { + productionLineCode: string + workStationCode: string + onTheWayLocationCode: string + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + fromLocationCode: string + toLocationCode: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询生产收料任务子列表 +export const getProductionreceiptJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productionreceipt-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productionreceipt-job-detail/page`, params }) + } +} + +// 查询生产收料任务子详情 +export const getProductionreceiptJobDetail = async (id: number) => { + return await request.get({ url: `/wms/productionreceipt-job-detail/get?id=` + id }) +} + +// 新增生产收料任务子 +export const createProductionreceiptJobDetail = async (data: ProductionreceiptJobDetailVO) => { + return await request.post({ url: `/wms/productionreceipt-job-detail/create`, data }) +} + +// 修改生产收料任务子 +export const updateProductionreceiptJobDetail = async (data: ProductionreceiptJobDetailVO) => { + return await request.put({ url: `/wms/productionreceipt-job-detail/update`, data }) +} + +// 删除生产收料任务子 +export const deleteProductionreceiptJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/productionreceipt-job-detail/delete?id=` + id }) +} + +// 导出生产收料任务子 Excel +export const exportProductionreceiptJobDetail = async (params) => { + return await request.download({ url: `/wms/productionreceipt-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productionreceipt-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productionreceiptJobMain/index.ts b/src/api/wms/productionreceiptJobMain/index.ts new file mode 100644 index 0000000..471ddba --- /dev/null +++ b/src/api/wms/productionreceiptJobMain/index.ts @@ -0,0 +1,108 @@ +import request from '@/config/axios' + +export interface ProductionreceiptJobMainVO { + issueJobNumber: string + workshopCode: string + fromWarehouseCode: string + toWarehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + update: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromAreaCodes: string + toAreaCodes: string + useOnTheWayLocation: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询生产收料任务主列表 +export const getProductionreceiptJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productionreceipt-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/productionreceipt-job-main/page`, params }) + } +} + +// 查询生产收料任务主详情 +export const getProductionreceiptJobMain = async (id: number) => { + return await request.get({ url: `/wms/productionreceipt-job-main/get?id=` + id }) +} + +// 新增生产收料任务主 +export const createProductionreceiptJobMain = async (data: ProductionreceiptJobMainVO) => { + return await request.post({ url: `/wms/productionreceipt-job-main/create`, data }) +} + +// 修改生产收料任务主 +export const updateProductionreceiptJobMain = async (data: ProductionreceiptJobMainVO) => { + return await request.put({ url: `/wms/productionreceipt-job-main/update`, data }) +} + +// 删除生产收料任务主 +export const deleteProductionreceiptJobMain = async (id: number) => { + return await request.delete({ url: `/wms/productionreceipt-job-main/delete?id=` + id }) +} + +// 导出生产收料任务主 Excel +export const exportProductionreceiptJobMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/productionreceipt-job-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/productionreceipt-job-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productionreceipt-job-main/get-import-template' }) +} + +// 承接发料任务 +export const acceptIssueMain = async (id) => { + return await request.get({ url: `/wms/productionreceipt-job-main/accept?id=` + id }) +} + +// 放弃发料任务 +export const abandonIssueMain = async (id) => { + return await request.get({ url: `/wms/productionreceipt-job-main/abandon?id=` + id }) +} + +// 关闭发料任务 +export const closeIssueMain = async (id) => { + return await request.get({ url: `/wms/productionreceipt-job-main/close?id=` + id }) +} + +// 执行发料任务 +export const executeIssueMain = async (data) => { + return await request.put({ url: `/wms/productionreceipt-job-main/execute`, data}) +} \ No newline at end of file diff --git a/src/api/wms/productionreceiptRecordDetail/index.ts b/src/api/wms/productionreceiptRecordDetail/index.ts new file mode 100644 index 0000000..1afb5f5 --- /dev/null +++ b/src/api/wms/productionreceiptRecordDetail/index.ts @@ -0,0 +1,77 @@ +import request from '@/config/axios' + +export interface ProductionreceiptRecordDetailVO { + productionLineCode: string + workStationCode: string + onTheWayLocationCode: string + fromPackingNumber: string + toPackingNumber: string + fromBatch: string + toBatch: string + inventoryStatus: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string + fromContainerNumber: string + toContainerNumber: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询生产收料记录子列表 +export const getProductionreceiptRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productionreceipt-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productionreceipt-record-detail/page`, params }) + } +} + +// 查询生产收料记录子详情 +export const getProductionreceiptRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/productionreceipt-record-detail/get?id=` + id }) +} + +// 新增生产收料记录子 +export const createProductionreceiptRecordDetail = async (data: ProductionreceiptRecordDetailVO) => { + return await request.post({ url: `/wms/productionreceipt-record-detail/create`, data }) +} + +// 修改生产收料记录子 +export const updateProductionreceiptRecordDetail = async (data: ProductionreceiptRecordDetailVO) => { + return await request.put({ url: `/wms/productionreceipt-record-detail/update`, data }) +} + +// 删除生产收料记录子 +export const deleteProductionreceiptRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/productionreceipt-record-detail/delete?id=` + id }) +} + +// 导出生产收料记录子 Excel +export const exportProductionreceiptRecordDetail = async (params) => { + return await request.download({ url: `/wms/productionreceipt-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productionreceipt-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productionreceiptRecordMain/index.ts b/src/api/wms/productionreceiptRecordMain/index.ts new file mode 100644 index 0000000..ebc176e --- /dev/null +++ b/src/api/wms/productionreceiptRecordMain/index.ts @@ -0,0 +1,70 @@ +import request from '@/config/axios' + +export interface ProductionreceiptRecordMainVO { + issueJobNumber: string + jobNumber: string + workshopCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + useOnTheWayLocation: string + available: string +} + +// 查询生产收料记录主列表 +export const getProductionreceiptRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productionreceipt-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/productionreceipt-record-main/page`, params }) + } +} + +// 查询生产收料记录主详情 +export const getProductionreceiptRecordMain = async (id: number) => { + return await request.get({ url: `/wms/productionreceipt-record-main/get?id=` + id }) +} + +// 新增生产收料记录主 +export const createProductionreceiptRecordMain = async (data: ProductionreceiptRecordMainVO) => { + return await request.post({ url: `/wms/productionreceipt-record-main/create`, data }) +} + +// 修改生产收料记录主 +export const updateProductionreceiptRecordMain = async (data: ProductionreceiptRecordMainVO) => { + return await request.put({ url: `/wms/productionreceipt-record-main/update`, data }) +} + +// 删除生产收料记录主 +export const deleteProductionreceiptRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/productionreceipt-record-main/delete?id=` + id }) +} + +// 导出生产收料记录主 Excel +export const exportProductionreceiptRecordMain = async (params) => { + return await request.download({ url: `/wms/productionreceipt-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productionreceipt-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productionreturnJobDetail/index.ts b/src/api/wms/productionreturnJobDetail/index.ts new file mode 100644 index 0000000..f2bd6d5 --- /dev/null +++ b/src/api/wms/productionreturnJobDetail/index.ts @@ -0,0 +1,66 @@ +import request from '@/config/axios' + +export interface ProductionreturnJobDetailVO { + productionLineCode: string + workStationCode: string + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + fromLocationCode: string + toLocationCode: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询生产退料任务子列表 +export const getProductionreturnJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productionreturn-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productionreturn-job-detail/page`, params }) + } +} + +// 查询生产退料任务子详情 +export const getProductionreturnJobDetail = async (id: number) => { + return await request.get({ url: `/wms/productionreturn-job-detail/get?id=` + id }) +} + +// 新增生产退料任务子 +export const createProductionreturnJobDetail = async (data: ProductionreturnJobDetailVO) => { + return await request.post({ url: `/wms/productionreturn-job-detail/create`, data }) +} + +// 修改生产退料任务子 +export const updateProductionreturnJobDetail = async (data: ProductionreturnJobDetailVO) => { + return await request.put({ url: `/wms/productionreturn-job-detail/update`, data }) +} + +// 删除生产退料任务子 +export const deleteProductionreturnJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/productionreturn-job-detail/delete?id=` + id }) +} + +// 导出生产退料任务子 Excel +export const exportProductionreturnJobDetail = async (params) => { + return await request.download({ url: `/wms/productionreturn-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productionreturn-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productionreturnJobMain/index.ts b/src/api/wms/productionreturnJobMain/index.ts new file mode 100644 index 0000000..79c2f96 --- /dev/null +++ b/src/api/wms/productionreturnJobMain/index.ts @@ -0,0 +1,107 @@ +import request from '@/config/axios' + +export interface ProductionreturnJobMainVO { + requestNumber: string + workshopCode: string + fromWarehouseCode: string + toWarehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromAreaCodes: string + toAreaCodes: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询生产退料任务主列表 +export const getProductionreturnJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productionreturn-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/productionreturn-job-main/page`, params }) + } +} + +// 查询生产退料任务主详情 +export const getProductionreturnJobMain = async (id: number) => { + return await request.get({ url: `/wms/productionreturn-job-main/get?id=` + id }) +} + +// 新增生产退料任务主 +export const createProductionreturnJobMain = async (data: ProductionreturnJobMainVO) => { + return await request.post({ url: `/wms/productionreturn-job-main/create`, data }) +} + +// 修改生产退料任务主 +export const updateProductionreturnJobMain = async (data: ProductionreturnJobMainVO) => { + return await request.put({ url: `/wms/productionreturn-job-main/update`, data }) +} + +// 删除生产退料任务主 +export const deleteProductionreturnJobMain = async (id: number) => { + return await request.delete({ url: `/wms/productionreturn-job-main/delete?id=` + id }) +} + +// 导出生产退料任务主 Excel +export const exportProductionreturnJobMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/productionreturn-job-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/productionreturn-job-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productionreturn-job-main/get-import-template' }) +} + +// 承接发料任务 +export const acceptProductionreturnMain = async (id) => { + return await request.put({ url: `/wms/productionreturn-job-main/accept?id=` + id }) +} + +// 放弃发料任务 +export const abandonProductionreturnMain = async (id) => { + return await request.put({ url: `/wms/productionreturn-job-main/abandon?id=` + id }) +} + +// 关闭发料任务 +export const closeProductionreturnMain = async (id) => { + return await request.put({ url: `/wms/productionreturn-job-main/close?id=` + id }) +} + +// 执行发料任务 +export const executeProductionreturnMain = async (data) => { + return await request.put({ url: `/wms/productionreturn-job-main/execute`, data}) +} \ No newline at end of file diff --git a/src/api/wms/productionreturnRecordDetail/index.ts b/src/api/wms/productionreturnRecordDetail/index.ts new file mode 100644 index 0000000..f9ffcd4 --- /dev/null +++ b/src/api/wms/productionreturnRecordDetail/index.ts @@ -0,0 +1,76 @@ +import request from '@/config/axios' + +export interface ProductionreturnRecordDetailVO { + productionLineCode: string + workStationCode: string + inventoryStatus: string + fromOwnerCode: string + fromPackingNumber: string + fromContainerNumber: string + fromBatch: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + toOwnerCode: string + toPackingNumber: string + toContainerNumber: string + toBatch: string + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string +} + +// 查询生产退料记录子列表 +export const getProductionreturnRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productionreturn-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productionreturn-record-detail/page`, params }) + } +} + +// 查询生产退料记录子详情 +export const getProductionreturnRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/productionreturn-record-detail/get?id=` + id }) +} + +// 新增生产退料记录子 +export const createProductionreturnRecordDetail = async (data: ProductionreturnRecordDetailVO) => { + return await request.post({ url: `/wms/productionreturn-record-detail/create`, data }) +} + +// 修改生产退料记录子 +export const updateProductionreturnRecordDetail = async (data: ProductionreturnRecordDetailVO) => { + return await request.put({ url: `/wms/productionreturn-record-detail/update`, data }) +} + +// 删除生产退料记录子 +export const deleteProductionreturnRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/productionreturn-record-detail/delete?id=` + id }) +} + +// 导出生产退料记录子 Excel +export const exportProductionreturnRecordDetail = async (params) => { + return await request.download({ url: `/wms/productionreturn-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productionreturn-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productionreturnRecordMain/index.ts b/src/api/wms/productionreturnRecordMain/index.ts new file mode 100644 index 0000000..2615d1a --- /dev/null +++ b/src/api/wms/productionreturnRecordMain/index.ts @@ -0,0 +1,69 @@ +import request from '@/config/axios' + +export interface ProductionreturnRecordMainVO { + requestNumber: string + jobNumber: string + workshopCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + available: string +} + +// 查询生产退料记录主列表 +export const getProductionreturnRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productionreturn-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/productionreturn-record-main/page`, params }) + } +} + +// 查询生产退料记录主详情 +export const getProductionreturnRecordMain = async (id: number) => { + return await request.get({ url: `/wms/productionreturn-record-main/get?id=` + id }) +} + +// 新增生产退料记录主 +export const createProductionreturnRecordMain = async (data: ProductionreturnRecordMainVO) => { + return await request.post({ url: `/wms/productionreturn-record-main/create`, data }) +} + +// 修改生产退料记录主 +export const updateProductionreturnRecordMain = async (data: ProductionreturnRecordMainVO) => { + return await request.put({ url: `/wms/productionreturn-record-main/update`, data }) +} + +// 删除生产退料记录主 +export const deleteProductionreturnRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/productionreturn-record-main/delete?id=` + id }) +} + +// 导出生产退料记录主 Excel +export const exportProductionreturnRecordMain = async (params) => { + return await request.download({ url: `/wms/productionreturn-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productionreturn-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productionreturnRequestDetail/index.ts b/src/api/wms/productionreturnRequestDetail/index.ts new file mode 100644 index 0000000..0b7bdd7 --- /dev/null +++ b/src/api/wms/productionreturnRequestDetail/index.ts @@ -0,0 +1,72 @@ +import request from '@/config/axios' + +export interface ProductionreturnRequestDetailVO { + productionLineCode: string + workStationCode: string + inventoryStatus: string + fromOwnerCode: string + packingNumber: string + containerNumber: string + batch: string + fromLocationCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + toOwnerCode: string +} + +// 查询生产退料申请子列表 +export const getProductionreturnRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productionreturn-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productionreturn-request-detail/page`, params }) + } +} + +// 查询生产退料申请子详情 +export const getProductionreturnRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/productionreturn-request-detail/get?id=` + id }) +} + +// 新增生产退料申请子 +export const createProductionreturnRequestDetail = async (data: ProductionreturnRequestDetailVO) => { + return await request.post({ url: `/wms/productionreturn-request-detail/create`, data }) +} + +// 修改生产退料申请子 +export const updateProductionreturnRequestDetail = async (data: ProductionreturnRequestDetailVO) => { + return await request.put({ url: `/wms/productionreturn-request-detail/update`, data }) +} + +// 删除生产退料申请子 +export const deleteProductionreturnRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/productionreturn-request-detail/delete?id=` + id }) +} + +// 导出生产退料申请子 Excel +export const exportProductionreturnRequestDetail = async (params) => { + return await request.download({ url: `/wms/productionreturn-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productionreturn-request-detail/get-import-template' }) +} + +// 创建包装信息后更新子表数据packingNumber +export const updateDetailPackingNumber = async (id: number, number) => { + return await request.put({ url: '/wms/productionreturn-request-detail/updateDetailPackingNumber?id=' + id + '&number=' + number }) +} \ No newline at end of file diff --git a/src/api/wms/productionreturnRequestDetailNo/index.ts b/src/api/wms/productionreturnRequestDetailNo/index.ts new file mode 100644 index 0000000..66dd592 --- /dev/null +++ b/src/api/wms/productionreturnRequestDetailNo/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface ProductionreturnRequestDetailVO { + productionLineCode: string + workStationCode: string + inventoryStatus: string + fromOwnerCode: string + packingNumber: string + containerNumber: string + batch: string + fromLocationCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + toOwnerCode: string +} + +// 查询生产退料申请子列表 +export const getProductionreturnRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productionreturn-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productionreturn-request-detail/page`, params }) + } +} + +// 查询生产退料申请子详情 +export const getProductionreturnRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/productionreturn-request-detail/get?id=` + id }) +} + +// 新增生产退料申请子 +export const createProductionreturnRequestDetail = async (data: ProductionreturnRequestDetailVO) => { + return await request.post({ url: `/wms/productionreturn-request-detail/create`, data }) +} + +// 修改生产退料申请子 +export const updateProductionreturnRequestDetail = async (data: ProductionreturnRequestDetailVO) => { + return await request.put({ url: `/wms/productionreturn-request-detail/update`, data }) +} + +// 删除生产退料申请子 +export const deleteProductionreturnRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/productionreturn-request-detail/delete?id=` + id }) +} + +// 导出生产退料申请子 Excel +export const exportProductionreturnRequestDetail = async (params) => { + return await request.download({ url: `/wms/productionreturn-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productionreturn-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productionreturnRequestMain/index.ts b/src/api/wms/productionreturnRequestMain/index.ts new file mode 100644 index 0000000..e6e47d9 --- /dev/null +++ b/src/api/wms/productionreturnRequestMain/index.ts @@ -0,0 +1,104 @@ +import request from '@/config/axios' + +export interface ProductionreturnRequestMainVO { + workshopCode: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询生产退料申请主列表 +export const getProductionreturnRequestMainPage = async (params) => { + params.businessType = 'ReturnToStore' + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productionreturn-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/productionreturn-request-main/page`, params }) + } +} + +// 查询生产退料申请主详情 +export const getProductionreturnRequestMain = async (id: number) => { + return await request.get({ url: `/wms/productionreturn-request-main/get?id=` + id }) +} + +// 新增生产退料申请主 +export const createProductionreturnRequestMain = async (data: ProductionreturnRequestMainVO) => { + return await request.post({ url: `/wms/productionreturn-request-main/create`, data }) +} + +// 修改生产退料申请主 +export const updateProductionreturnRequestMain = async (data: ProductionreturnRequestMainVO) => { + return await request.put({ url: `/wms/productionreturn-request-main/update`, data }) +} + +// 删除生产退料申请主 +export const deleteProductionreturnRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/productionreturn-request-main/delete?id=` + id }) +} + +// 导出生产退料申请主 Excel +export const exportProductionreturnRequestMain = async (params) => { + params.businessType = 'ReturnToStore' + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/productionreturn-request-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/productionreturn-request-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productionreturn-request-main/get-import-template' }) +} + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/productionreturn-request-main/close?id=' + id }) +} + +// 重新添加 +export const reAdd = (id) => { + return request.put({ url: '/wms/productionreturn-request-main/reAdd?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/productionreturn-request-main/submit?id=' + id }) +} + +// 驳回 +export const refused = (id) => { + return request.put({ url: '/wms/productionreturn-request-main/refused?id=' + id }) +} + +// 审批通过 +export const agree = (id) => { + return request.put({ url: '/wms/productionreturn-request-main/agree?id=' + id }) +} + +// 处理 +export const handle = (id) => { + return request.put({ url: '/wms/productionreturn-request-main/handle?id=' + id }) +} \ No newline at end of file diff --git a/src/api/wms/productionreturnRequestMainNo/index.ts b/src/api/wms/productionreturnRequestMainNo/index.ts new file mode 100644 index 0000000..8f369cd --- /dev/null +++ b/src/api/wms/productionreturnRequestMainNo/index.ts @@ -0,0 +1,104 @@ +import request from '@/config/axios' + +export interface ProductionreturnRequestMainVO { + workshopCode: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询不合格生产退料申请主列表 +export const getProductionreturnRequestMainPage = async (params) => { + params.businessType = 'ReturnToHold' + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productionreturn-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/productionreturn-request-main/page`, params }) + } +} + +// 查询不合格生产退料申请主详情 +export const getProductionreturnRequestMain = async (id: number) => { + return await request.get({ url: `/wms/productionreturn-request-main/get?id=` + id }) +} + +// 新增不合格生产退料申请主 +export const createProductionreturnRequestMain = async (data: ProductionreturnRequestMainVO) => { + return await request.post({ url: `/wms/productionreturn-request-main/create`, data }) +} + +// 修改不合格生产退料申请主 +export const updateProductionreturnRequestMain = async (data: ProductionreturnRequestMainVO) => { + return await request.put({ url: `/wms/productionreturn-request-main/update`, data }) +} + +// 删除不合格生产退料申请主 +export const deleteProductionreturnRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/productionreturn-request-main/delete?id=` + id }) +} + +// 导出不合格生产退料申请主 Excel +export const exportProductionreturnRequestMain = async (params) => { + params.businessType = 'ReturnToHold' + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/productionreturn-request-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/productionreturn-request-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productionreturn-request-main/get-import-template' }) +} + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/productionreturn-request-main/close?id=' + id }) +} + +// 重新添加 +export const reAdd = (id) => { + return request.put({ url: '/wms/productionreturn-request-main/reAdd?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/productionreturn-request-main/submit?id=' + id }) +} + +// 驳回 +export const refused = (id) => { + return request.put({ url: '/wms/productionreturn-request-main/refused?id=' + id }) +} + +// 审批通过 +export const agree = (id) => { + return request.put({ url: '/wms/productionreturn-request-main/agree?id=' + id }) +} + +// 处理 +export const handle = (id) => { + return request.put({ url: '/wms/productionreturn-request-main/handle?id=' + id }) +} \ No newline at end of file diff --git a/src/api/wms/productputawayJobDetail/index.ts b/src/api/wms/productputawayJobDetail/index.ts new file mode 100644 index 0000000..0265d3f --- /dev/null +++ b/src/api/wms/productputawayJobDetail/index.ts @@ -0,0 +1,66 @@ +import request from '@/config/axios' + +export interface ProductputawayJobDetailVO { + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + poNumber: string + poLine: string + fromLocationCode: string + toLocationCode: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询制品上架任务子列表 +export const getProductputawayJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productputaway-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productputaway-job-detail/page`, params }) + } +} + +// 查询制品上架任务子详情 +export const getProductputawayJobDetail = async (id: number) => { + return await request.get({ url: `/wms/productputaway-job-detail/get?id=` + id }) +} + +// 新增制品上架任务子 +export const createProductputawayJobDetail = async (data: ProductputawayJobDetailVO) => { + return await request.post({ url: `/wms/productputaway-job-detail/create`, data }) +} + +// 修改制品上架任务子 +export const updateProductputawayJobDetail = async (data: ProductputawayJobDetailVO) => { + return await request.put({ url: `/wms/productputaway-job-detail/update`, data }) +} + +// 删除制品上架任务子 +export const deleteProductputawayJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/productputaway-job-detail/delete?id=` + id }) +} + +// 导出制品上架任务子 Excel +export const exportProductputawayJobDetail = async (params) => { + return await request.download({ url: `/wms/productputaway-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productputaway-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productputawayJobMain/index.ts b/src/api/wms/productputawayJobMain/index.ts new file mode 100644 index 0000000..c70270a --- /dev/null +++ b/src/api/wms/productputawayJobMain/index.ts @@ -0,0 +1,107 @@ +import request from '@/config/axios' + +export interface ProductputawayJobMainVO { + requestNumber: string + supplierCode: string + fromWarehouseCode: string + toWarehouseCode: string + fromAreaCodes: string + toAreaCodes: string + fromLocationTypes: string + toLocationTypes: string + completetime: Date + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询制品上架任务主列表 +export const getProductputawayJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productputaway-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/productputaway-job-main/page`, params }) + } +} + +// 查询制品上架任务主详情 +export const getProductputawayJobMain = async (id: number) => { + return await request.get({ url: `/wms/productputaway-job-main/get?id=` + id }) +} + +// 新增制品上架任务主 +export const createProductputawayJobMain = async (data: ProductputawayJobMainVO) => { + return await request.post({ url: `/wms/productputaway-job-main/create`, data }) +} + +// 修改制品上架任务主 +export const updateProductputawayJobMain = async (data: ProductputawayJobMainVO) => { + return await request.put({ url: `/wms/productputaway-job-main/update`, data }) +} + +// 删除制品上架任务主 +export const deleteProductputawayJobMain = async (id: number) => { + return await request.delete({ url: `/wms/productputaway-job-main/delete?id=` + id }) +} + +// 导出制品上架任务主 Excel +export const exportProductputawayJobMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/productputaway-job-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/productputaway-job-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productputaway-job-main/get-import-template' }) +} + +// 承接发料任务 +export const acceptProductputawayMain = async (id) => { + return await request.put({ url: `/wms/productputaway-job-main/accept?id=` + id }) +} + +// 放弃发料任务 +export const abandonProductputawayMain = async (id) => { + return await request.put({ url: `/wms/productputaway-job-main/abandon?id=` + id }) +} + +// 关闭发料任务 +export const closeProductputawayMain = async (id) => { + return await request.put({ url: `/wms/productputaway-job-main/close?id=` + id }) +} + +// 执行发料任务 +export const executeProductputawayMain = async (data) => { + return await request.put({ url: `/wms/productputaway-job-main/execute`, data}) +} \ No newline at end of file diff --git a/src/api/wms/productputawayRecordDetail/index.ts b/src/api/wms/productputawayRecordDetail/index.ts new file mode 100644 index 0000000..2ab8e2d --- /dev/null +++ b/src/api/wms/productputawayRecordDetail/index.ts @@ -0,0 +1,76 @@ +import request from '@/config/axios' + +export interface ProductputawayRecordDetailVO { + fromPackingNumber: string + toPackingNumber: string + fromBatch: string + toBatch: string + fromContainerNumber: string + toContainerNumber: string + inventoryStatus: string + poNumber: string + poLine: string + fromOwnerCode: string + toOwnerCode: string + fromLocationCode: string + toLocationCode: string + fromLocationGroupCode: string + toLocationGroupCode: string + fromAreaCode: string + toAreaCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string +} + +// 查询制品上架记录子列表 +export const getProductputawayRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productputaway-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productputaway-record-detail/page`, params }) + } +} + +// 查询制品上架记录子详情 +export const getProductputawayRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/productputaway-record-detail/get?id=` + id }) +} + +// 新增制品上架记录子 +export const createProductputawayRecordDetail = async (data: ProductputawayRecordDetailVO) => { + return await request.post({ url: `/wms/productputaway-record-detail/create`, data }) +} + +// 修改制品上架记录子 +export const updateProductputawayRecordDetail = async (data: ProductputawayRecordDetailVO) => { + return await request.put({ url: `/wms/productputaway-record-detail/update`, data }) +} + +// 删除制品上架记录子 +export const deleteProductputawayRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/productputaway-record-detail/delete?id=` + id }) +} + +// 导出制品上架记录子 Excel +export const exportProductputawayRecordDetail = async (params) => { + return await request.download({ url: `/wms/productputaway-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productputaway-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productputawayRecordMain/index.ts b/src/api/wms/productputawayRecordMain/index.ts new file mode 100644 index 0000000..ea3fcb6 --- /dev/null +++ b/src/api/wms/productputawayRecordMain/index.ts @@ -0,0 +1,70 @@ +import request from '@/config/axios' + +export interface ProductputawayRecordMainVO { + requestNumber: string + jobNumber: string + supplierCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + ruleUserId: number + available: string +} + +// 查询制品上架记录主列表 +export const getProductputawayRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productputaway-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/productputaway-record-main/page`, params }) + } +} + +// 查询制品上架记录主详情 +export const getProductputawayRecordMain = async (id: number) => { + return await request.get({ url: `/wms/productputaway-record-main/get?id=` + id }) +} + +// 新增制品上架记录主 +export const createProductputawayRecordMain = async (data: ProductputawayRecordMainVO) => { + return await request.post({ url: `/wms/productputaway-record-main/create`, data }) +} + +// 修改制品上架记录主 +export const updateProductputawayRecordMain = async (data: ProductputawayRecordMainVO) => { + return await request.put({ url: `/wms/productputaway-record-main/update`, data }) +} + +// 删除制品上架记录主 +export const deleteProductputawayRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/productputaway-record-main/delete?id=` + id }) +} + +// 导出制品上架记录主 Excel +export const exportProductputawayRecordMain = async (params) => { + return await request.download({ url: `/wms/productputaway-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productputaway-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productputawayRequestDetail/index.ts b/src/api/wms/productputawayRequestDetail/index.ts new file mode 100644 index 0000000..0f3a061 --- /dev/null +++ b/src/api/wms/productputawayRequestDetail/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface ProductputawayRequestDetailVO { + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + poNumber: string + poLine: string + fromLocationCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询制品上架申请子列表 +export const getProductputawayRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productputaway-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productputaway-request-detail/page`, params }) + } +} + +// 查询制品上架申请子详情 +export const getProductputawayRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/productputaway-request-detail/get?id=` + id }) +} + +// 新增制品上架申请子 +export const createProductputawayRequestDetail = async (data: ProductputawayRequestDetailVO) => { + return await request.post({ url: `/wms/productputaway-request-detail/create`, data }) +} + +// 修改制品上架申请子 +export const updateProductputawayRequestDetail = async (data: ProductputawayRequestDetailVO) => { + return await request.put({ url: `/wms/productputaway-request-detail/update`, data }) +} + +// 删除制品上架申请子 +export const deleteProductputawayRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/productputaway-request-detail/delete?id=` + id }) +} + +// 导出制品上架申请子 Excel +export const exportProductputawayRequestDetail = async (params) => { + return await request.download({ url: `/wms/productputaway-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productputaway-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productputawayRequestMain/index.ts b/src/api/wms/productputawayRequestMain/index.ts new file mode 100644 index 0000000..72640c6 --- /dev/null +++ b/src/api/wms/productputawayRequestMain/index.ts @@ -0,0 +1,104 @@ +import request from '@/config/axios' + +export interface ProductputawayRequestMainVO { + id: number + supplierCode: string + fromWarehouseCode: string + toWarehouseCode: string + fromLocationTypes: string + toLocationTypes: string + fromAreaCodes: string + toAreaCodes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询制品上架申请主列表 +export const getProductputawayRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productputaway-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/productputaway-request-main/page`, params }) + } +} + +// 查询制品上架申请主详情 +export const getProductputawayRequestMain = async (id: number) => { + return await request.get({ url: `/wms/productputaway-request-main/get?id=` + id }) +} + +// 新增制品上架申请主 +export const createProductputawayRequestMain = async (data: ProductputawayRequestMainVO) => { + return await request.post({ url: `/wms/productputaway-request-main/create`, data }) +} + +// 修改制品上架申请主 +export const updateProductputawayRequestMain = async (data: ProductputawayRequestMainVO) => { + return await request.put({ url: `/wms/productputaway-request-main/update`, data }) +} + +// 删除制品上架申请主 +export const deleteProductputawayRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/productputaway-request-main/delete?id=` + id }) +} + +// 导出制品上架申请主 Excel +export const exportProductputawayRequestMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/productputaway-request-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/productputaway-request-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productputaway-request-main/get-import-template' }) +} + + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/productputaway-request-main/close?id=' + id }) +} + +// 重新添加 +export const reAdd = (id) => { + return request.put({ url: '/wms/productputaway-request-main/reAdd?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/productputaway-request-main/submit?id=' + id }) +} + +// 驳回 +export const refused = (id) => { + return request.put({ url: '/wms/productputaway-request-main/refused?id=' + id }) +} + +// 审批通过 +export const agree = (id) => { + return request.put({ url: '/wms/productputaway-request-main/agree?id=' + id }) +} + +// 处理 +export const handle = (id) => { + return request.put({ url: '/wms/productputaway-request-main/handle?id=' + id }) +} \ No newline at end of file diff --git a/src/api/wms/productreceiptJobDetail/index.ts b/src/api/wms/productreceiptJobDetail/index.ts new file mode 100644 index 0000000..5b864f7 --- /dev/null +++ b/src/api/wms/productreceiptJobDetail/index.ts @@ -0,0 +1,71 @@ +import request from '@/config/axios' + +export interface ProductreceiptJobDetailVO { + productionLineCode: string + workStationCode: string + processCode: string + packingNumber: string + containerNumber: string + batch: string + produceDate: Date + expireDate: Date + inventoryStatus: string + toLocationCode: string + woNumber: string + woLine: string + stdPackQty: number + stdPackUnit: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string + toOwnerCode: string +} + +// 查询制品收货任务子列表 +export const getProductreceiptJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productreceipt-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productreceipt-job-detail/page`, params }) + } +} + +// 查询制品收货任务子详情 +export const getProductreceiptJobDetail = async (id: number) => { + return await request.get({ url: `/wms/productreceipt-job-detail/get?id=` + id }) +} + +// 新增制品收货任务子 +export const createProductreceiptJobDetail = async (data: ProductreceiptJobDetailVO) => { + return await request.post({ url: `/wms/productreceipt-job-detail/create`, data }) +} + +// 修改制品收货任务子 +export const updateProductreceiptJobDetail = async (data: ProductreceiptJobDetailVO) => { + return await request.put({ url: `/wms/productreceipt-job-detail/update`, data }) +} + +// 删除制品收货任务子 +export const deleteProductreceiptJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/productreceipt-job-detail/delete?id=` + id }) +} + +// 导出制品收货任务子 Excel +export const exportProductreceiptJobDetail = async (params) => { + return await request.download({ url: `/wms/productreceipt-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productreceipt-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productreceiptJobMain/index.ts b/src/api/wms/productreceiptJobMain/index.ts new file mode 100644 index 0000000..b22dae6 --- /dev/null +++ b/src/api/wms/productreceiptJobMain/index.ts @@ -0,0 +1,109 @@ +import request from '@/config/axios' + +export interface ProductreceiptJobMainVO { + requestNumber: string + productionPlanNumber: string + workShopCode: string + team: string + shift: string + details: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + toWarehouseCode: string + toAreaCodes: string + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询制品收货任务主列表 +export const getProductreceiptJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productreceipt-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/productreceipt-job-main/page`, params }) + } +} + +// 查询制品收货任务主详情 +export const getProductreceiptJobMain = async (id: number) => { + return await request.get({ url: `/wms/productreceipt-job-main/get?id=` + id }) +} + +// 新增制品收货任务主 +export const createProductreceiptJobMain = async (data: ProductreceiptJobMainVO) => { + return await request.post({ url: `/wms/productreceipt-job-main/create`, data }) +} + +// 修改制品收货任务主 +export const updateProductreceiptJobMain = async (data: ProductreceiptJobMainVO) => { + return await request.put({ url: `/wms/productreceipt-job-main/update`, data }) +} + +// 删除制品收货任务主 +export const deleteProductreceiptJobMain = async (id: number) => { + return await request.delete({ url: `/wms/productreceipt-job-main/delete?id=` + id }) +} + +// 导出制品收货任务主 Excel +export const exportProductreceiptJobMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/productreceipt-job-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/productreceipt-job-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productreceipt-job-main/get-import-template' }) +} + +// 承接发料任务 +export const acceptProductreceiptMain = async (id) => { + return await request.put({ url: `/wms/productreceipt-job-main/accept?id=` + id }) +} + +// 放弃发料任务 +export const abandonProductreceiptMain = async (id) => { + return await request.put({ url: `/wms/productreceipt-job-main/abandon?id=` + id }) +} + +// 关闭发料任务 +export const closeProductreceiptMain = async (id) => { + return await request.put({ url: `/wms/productreceipt-job-main/close?id=` + id }) +} + +// 执行发料任务 +export const executeProductreceiptMain = async (data) => { + return await request.put({ url: `/wms/productreceipt-job-main/execute`, data}) +} \ No newline at end of file diff --git a/src/api/wms/productreceiptRecordDetail/index.ts b/src/api/wms/productreceiptRecordDetail/index.ts new file mode 100644 index 0000000..766ae08 --- /dev/null +++ b/src/api/wms/productreceiptRecordDetail/index.ts @@ -0,0 +1,76 @@ +import request from '@/config/axios' + +export interface ProductreceiptRecordDetailVO { + productionlineCode: string + workStationCode: string + processCode: string + packingNumber: string + containerNumber: string + batch: string + produceDate: Date + expireDate: Date + inventoryStatus: string + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + toOwnerCode: string + woNumber: string + woLine: string + stdPackQty: number + stdPackUnit: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string +} + +// 查询制品收货记录子列表 +export const getProductreceiptRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productreceipt-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productreceipt-record-detail/page`, params }) + } +} + +// 查询制品收货记录子详情 +export const getProductreceiptRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/productreceipt-record-detail/get?id=` + id }) +} + +// 新增制品收货记录子 +export const createProductreceiptRecordDetail = async (data: ProductreceiptRecordDetailVO) => { + return await request.post({ url: `/wms/productreceipt-record-detail/create`, data }) +} + +// 修改制品收货记录子 +export const updateProductreceiptRecordDetail = async (data: ProductreceiptRecordDetailVO) => { + return await request.put({ url: `/wms/productreceipt-record-detail/update`, data }) +} + +// 删除制品收货记录子 +export const deleteProductreceiptRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/productreceipt-record-detail/delete?id=` + id }) +} + +// 导出制品收货记录子 Excel +export const exportProductreceiptRecordDetail = async (params) => { + return await request.download({ url: `/wms/productreceipt-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productreceipt-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productreceiptRecordMain/index.ts b/src/api/wms/productreceiptRecordMain/index.ts new file mode 100644 index 0000000..acd8667 --- /dev/null +++ b/src/api/wms/productreceiptRecordMain/index.ts @@ -0,0 +1,69 @@ +import request from '@/config/axios' + +export interface ProductreceiptRecordMainVO { + requestNumber: string + jobNumber: string + productionPlanNumber: string + workshopCode: string + team: string + shift: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + available: string +} + +// 查询制品收货记录主列表 +export const getProductreceiptRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productreceipt-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/productreceipt-record-main/page`, params }) + } +} + +// 查询制品收货记录主详情 +export const getProductreceiptRecordMain = async (id: number) => { + return await request.get({ url: `/wms/productreceipt-record-main/get?id=` + id }) +} + +// 新增制品收货记录主 +export const createProductreceiptRecordMain = async (data: ProductreceiptRecordMainVO) => { + return await request.post({ url: `/wms/productreceipt-record-main/create`, data }) +} + +// 修改制品收货记录主 +export const updateProductreceiptRecordMain = async (data: ProductreceiptRecordMainVO) => { + return await request.put({ url: `/wms/productreceipt-record-main/update`, data }) +} + +// 删除制品收货记录主 +export const deleteProductreceiptRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/productreceipt-record-main/delete?id=` + id }) +} + +// 导出制品收货记录主 Excel +export const exportProductreceiptRecordMain = async (params) => { + return await request.download({ url: `/wms/productreceipt-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productreceipt-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productreceiptRequestDetail/index.ts b/src/api/wms/productreceiptRequestDetail/index.ts new file mode 100644 index 0000000..6f11ce7 --- /dev/null +++ b/src/api/wms/productreceiptRequestDetail/index.ts @@ -0,0 +1,77 @@ +import request from '@/config/axios' + +export interface ProductreceiptRequestDetailVO { + productionLineCode: string + workStationCode: string + processCode: string + packingNumber: string + containerNumber: string + batch: string + produceDate: Date + expireDate: Date + inventoryStatus: string + woNumber: string + woLine: string + stdPackQty: number + stdPackUnit: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + toOwnerCode: string +} + +// 查询制品收货申请子列表 +export const getProductreceiptRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productreceipt-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productreceipt-request-detail/page`, params }) + } +} + +// 查询制品收货申请子详情 +export const getProductreceiptRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/productreceipt-request-detail/get?id=` + id }) +} + +// 新增制品收货申请子 +export const createProductreceiptRequestDetail = async (data: ProductreceiptRequestDetailVO) => { + return await request.post({ url: `/wms/productreceipt-request-detail/create`, data }) +} + +// 修改制品收货申请子 +export const updateProductreceiptRequestDetail = async (data: ProductreceiptRequestDetailVO) => { + return await request.put({ url: `/wms/productreceipt-request-detail/update`, data }) +} + +// 删除制品收货申请子 +export const deleteProductreceiptRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/productreceipt-request-detail/delete?id=` + id }) +} + +// 导出制品收货申请子 Excel +export const exportProductreceiptRequestDetail = async (params) => { + return await request.download({ url: `/wms/productreceipt-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productreceipt-request-detail/get-import-template' }) +} + +// 创建包装信息后更新子表数据packingNumber +export const updateDetailPackingNumber = async (id: number, number) => { + return await request.put({ url: '/wms/productreceipt-request-detail/updateDetailPackingNumber?id=' + id + '&number=' + number }) +} diff --git a/src/api/wms/productreceiptRequestMain/index.ts b/src/api/wms/productreceiptRequestMain/index.ts new file mode 100644 index 0000000..3934a81 --- /dev/null +++ b/src/api/wms/productreceiptRequestMain/index.ts @@ -0,0 +1,102 @@ +import request from '@/config/axios' + +export interface ProductreceiptRequestMainVO { + productionPlanNumber: string + workshopCode: string + team: string + shift: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询制品收货申请主列表 +export const getProductreceiptRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productreceipt-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/productreceipt-request-main/page`, params }) + } +} + +// 查询制品收货申请主详情 +export const getProductreceiptRequestMain = async (id: number) => { + return await request.get({ url: `/wms/productreceipt-request-main/get?id=` + id }) +} + +// 新增制品收货申请主 +export const createProductreceiptRequestMain = async (data: ProductreceiptRequestMainVO) => { + return await request.post({ url: `/wms/productreceipt-request-main/create`, data }) +} + +// 修改制品收货申请主 +export const updateProductreceiptRequestMain = async (data: ProductreceiptRequestMainVO) => { + return await request.put({ url: `/wms/productreceipt-request-main/update`, data }) +} + +// 删除制品收货申请主 +export const deleteProductreceiptRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/productreceipt-request-main/delete?id=` + id }) +} + +// 导出制品收货申请主 Excel +export const exportProductreceiptRequestMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/productreceipt-request-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/productreceipt-request-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productreceipt-request-main/get-import-template' }) +} + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/productreceipt-request-main/close?id=' + id }) +} + +// 重新添加 +export const reAdd = (id) => { + return request.put({ url: '/wms/productreceipt-request-main/reAdd?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/productreceipt-request-main/submit?id=' + id }) +} + +// 驳回 +export const refused = (id) => { + return request.put({ url: '/wms/productreceipt-request-main/refused?id=' + id }) +} + +// 审批通过 +export const agree = (id) => { + return request.put({ url: '/wms/productreceipt-request-main/agree?id=' + id }) +} + +// 处理 +export const handle = (id) => { + return request.put({ url: '/wms/productreceipt-request-main/handle?id=' + id }) +} \ No newline at end of file diff --git a/src/api/wms/productrepairRecordDetail/index.ts b/src/api/wms/productrepairRecordDetail/index.ts new file mode 100644 index 0000000..20faa97 --- /dev/null +++ b/src/api/wms/productrepairRecordDetail/index.ts @@ -0,0 +1,72 @@ +import request from '@/config/axios' + +export interface ProductrepairRecordDetailVO { + fromOwnerCode: string + productionLineCode: string + workStationCode: string + processCode: string + packingNumber: string + containerNumber: string + batch: string + produceDate: Date + expireDate: Date + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + inventoryStatus: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string +} + +// 查询制品返修记录子列表 +export const getProductrepairRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productrepair-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productrepair-record-detail/page`, params }) + } +} + +// 查询制品返修记录子详情 +export const getProductrepairRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/productrepair-record-detail/get?id=` + id }) +} + +// 新增制品返修记录子 +export const createProductrepairRecordDetail = async (data: ProductrepairRecordDetailVO) => { + return await request.post({ url: `/wms/productrepair-record-detail/create`, data }) +} + +// 修改制品返修记录子 +export const updateProductrepairRecordDetail = async (data: ProductrepairRecordDetailVO) => { + return await request.put({ url: `/wms/productrepair-record-detail/update`, data }) +} + +// 删除制品返修记录子 +export const deleteProductrepairRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/productrepair-record-detail/delete?id=` + id }) +} + +// 导出制品返修记录子 Excel +export const exportProductrepairRecordDetail = async (params) => { + return await request.download({ url: `/wms/productrepair-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productrepair-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productrepairRecordMain/index.ts b/src/api/wms/productrepairRecordMain/index.ts new file mode 100644 index 0000000..6f3e66a --- /dev/null +++ b/src/api/wms/productrepairRecordMain/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface ProductrepairRecordMainVO { + requestNumber: string + workshopCode: string + team: string + shift: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + available: string +} + +// 查询制品返修记录主列表 +export const getProductrepairRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productrepair-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/productrepair-record-main/page`, params }) + } +} + +// 查询制品返修记录主详情 +export const getProductrepairRecordMain = async (id: number) => { + return await request.get({ url: `/wms/productrepair-record-main/get?id=` + id }) +} + +// 新增制品返修记录主 +export const createProductrepairRecordMain = async (data: ProductrepairRecordMainVO) => { + return await request.post({ url: `/wms/productrepair-record-main/create`, data }) +} + +// 修改制品返修记录主 +export const updateProductrepairRecordMain = async (data: ProductrepairRecordMainVO) => { + return await request.put({ url: `/wms/productrepair-record-main/update`, data }) +} + +// 删除制品返修记录主 +export const deleteProductrepairRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/productrepair-record-main/delete?id=` + id }) +} + +// 导出制品返修记录主 Excel +export const exportProductrepairRecordMain = async (params) => { + return await request.download({ url: `/wms/productrepair-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productrepair-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productrepairRequestDetaila/index.ts b/src/api/wms/productrepairRequestDetaila/index.ts new file mode 100644 index 0000000..5b5adee --- /dev/null +++ b/src/api/wms/productrepairRequestDetaila/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface ProductrepairRequestDetailaVO { + fromOwnerCode: string + productionlineCode: string + workStationCode: string + processCode: string + packingNumber: string + containerNumber: string + batch: string + fromLocationCode: string + inventoryStatus: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string +} + +// 查询制品返修申请子列表 +export const getProductrepairRequestDetailaPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productrepair-request-detaila/senior', data }) + } else { + return await request.get({ url: `/wms/productrepair-request-detaila/page`, params }) + } +} + +// 查询制品返修申请子详情 +export const getProductrepairRequestDetaila = async (id: number) => { + return await request.get({ url: `/wms/productrepair-request-detaila/get?id=` + id }) +} + +// 新增制品返修申请子 +export const createProductrepairRequestDetaila = async (data: ProductrepairRequestDetailaVO) => { + return await request.post({ url: `/wms/productrepair-request-detaila/create`, data }) +} + +// 修改制品返修申请子 +export const updateProductrepairRequestDetaila = async (data: ProductrepairRequestDetailaVO) => { + return await request.put({ url: `/wms/productrepair-request-detaila/update`, data }) +} + +// 删除制品返修申请子 +export const deleteProductrepairRequestDetaila = async (id: number) => { + return await request.delete({ url: `/wms/productrepair-request-detaila/delete?id=` + id }) +} + +// 导出制品返修申请子 Excel +export const exportProductrepairRequestDetaila = async (params) => { + return await request.download({ url: `/wms/productrepair-request-detaila/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productrepair-request-detaila/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productrepairRequestMain/index.ts b/src/api/wms/productrepairRequestMain/index.ts new file mode 100644 index 0000000..17eb6d6 --- /dev/null +++ b/src/api/wms/productrepairRequestMain/index.ts @@ -0,0 +1,101 @@ +import request from '@/config/axios' + +export interface ProductrepairRequestMainVO { + workshopCode: string + team: string + shift: string + fromWarehouseCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + fromLocationTypes: string + fromAreaCodes: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询制品返修申请主列表 +export const getProductrepairRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productrepair-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/productrepair-request-main/page`, params }) + } +} + +// 查询制品返修申请主详情 +export const getProductrepairRequestMain = async (id: number) => { + return await request.get({ url: `/wms/productrepair-request-main/get?id=` + id }) +} + +// 新增制品返修申请主 +export const createProductrepairRequestMain = async (data: ProductrepairRequestMainVO) => { + return await request.post({ url: `/wms/productrepair-request-main/create`, data }) +} + +// 修改制品返修申请主 +export const updateProductrepairRequestMain = async (data: ProductrepairRequestMainVO) => { + return await request.put({ url: `/wms/productrepair-request-main/update`, data }) +} + +// 删除制品返修申请主 +export const deleteProductrepairRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/productrepair-request-main/delete?id=` + id }) +} + +// 导出制品返修申请主 Excel +export const exportProductrepairRequestMain = async (params) => { + return await request.download({ url: `/wms/productrepair-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productrepair-request-main/get-import-template' }) +} + +// 关闭-制品返修申请 +export const closeProductrepairRequestMain = async (id) => { + return await request.put({ url: `/wms/productrepair-request-main/close?id=` + id }) +} + +// 重新添加-制品返修申请 +export const reAddProductrepairRequestMain = async (id) => { + return await request.put({ url: `/wms/productrepair-request-main/reAdd?id=` + id }) +} + +// 提交审批-制品返修申请 +export const submitProductrepairRequestMain = async (id) => { + return await request.put({ url: `/wms/productrepair-request-main/submit?id=` + id }) +} + +// 审批驳回-制品返修申请 +export const refusedProductrepairRequestMain = async (id) => { + return await request.put({ url: `/wms/productrepair-request-main/refused?id=` + id }) +} + +// 审批通过-制品返修申请 +export const agreeProductrepairRequestMain = async (id) => { + return await request.put({ url: `/wms/productrepair-request-main/agree?id=` + id }) +} + +// 处理-制品返修申请 +export const handleProductrepairRequestMain = async (id) => { + return await request.put({ url: `/wms/productrepair-request-main/handle?id=` + id }) +} + +// 修改制品返修BOM数据 +export const updateProductscrapDetailRequestBom = async (id, data) => { + return await request.post({ url: `/wms/productrepair-request-main/updateBom?id=`+id, data }) +} diff --git a/src/api/wms/productscrapJobDetail/index.ts b/src/api/wms/productscrapJobDetail/index.ts new file mode 100644 index 0000000..226fd56 --- /dev/null +++ b/src/api/wms/productscrapJobDetail/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface ProductscrapJobDetailVO { + ownerCode: string + packingNumber: string + containerNumber: string + batch: string + fromLocationCode: string + inventoryStatus: string + reason: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string +} + +// 查询制品报废任务子列表 +export const getProductscrapJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productscrap-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productscrap-job-detail/page`, params }) + } +} + +// 查询制品报废任务子详情 +export const getProductscrapJobDetail = async (id: number) => { + return await request.get({ url: `/wms/productscrap-job-detail/get?id=` + id }) +} + +// 新增制品报废任务子 +export const createProductscrapJobDetail = async (data: ProductscrapJobDetailVO) => { + return await request.post({ url: `/wms/productscrap-job-detail/create`, data }) +} + +// 修改制品报废任务子 +export const updateProductscrapJobDetail = async (data: ProductscrapJobDetailVO) => { + return await request.put({ url: `/wms/productscrap-job-detail/update`, data }) +} + +// 删除制品报废任务子 +export const deleteProductscrapJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/productscrap-job-detail/delete?id=` + id }) +} + +// 导出制品报废任务子 Excel +export const exportProductscrapJobDetail = async (params) => { + return await request.download({ url: `/wms/productscrap-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productscrap-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productscrapJobMain/index.ts b/src/api/wms/productscrapJobMain/index.ts new file mode 100644 index 0000000..49f7758 --- /dev/null +++ b/src/api/wms/productscrapJobMain/index.ts @@ -0,0 +1,79 @@ +import request from '@/config/axios' + +export interface ProductscrapJobMainVO { + requestNumber: string + fromWarehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromAreaCodes: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询制品报废任务主列表 +export const getProductscrapJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productscrap-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/productscrap-job-main/page`, params }) + } +} + +// 查询制品报废任务主详情 +export const getProductscrapJobMain = async (id: number) => { + return await request.get({ url: `/wms/productscrap-job-main/get?id=` + id }) +} + +// 新增制品报废任务主 +export const createProductscrapJobMain = async (data: ProductscrapJobMainVO) => { + return await request.post({ url: `/wms/productscrap-job-main/create`, data }) +} + +// 修改制品报废任务主 +export const updateProductscrapJobMain = async (data: ProductscrapJobMainVO) => { + return await request.put({ url: `/wms/productscrap-job-main/update`, data }) +} + +// 删除制品报废任务主 +export const deleteProductscrapJobMain = async (id: number) => { + return await request.delete({ url: `/wms/productscrap-job-main/delete?id=` + id }) +} + +// 导出制品报废任务主 Excel +export const exportProductscrapJobMain = async (params) => { + return await request.download({ url: `/wms/productscrap-job-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productscrap-job-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productscrapRecordDetail/index.ts b/src/api/wms/productscrapRecordDetail/index.ts new file mode 100644 index 0000000..ae2aae8 --- /dev/null +++ b/src/api/wms/productscrapRecordDetail/index.ts @@ -0,0 +1,70 @@ +import request from '@/config/axios' + +export interface ProductscrapRecordDetailVO { + fromOwnerCode: string + packingNumber: string + containerNumber: string + batch: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + inventoryStatus: string + reason: string + singlePrice: number + amount: number + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + jobDetailId: string +} + +// 查询制品报废记录子列表 +export const getProductscrapRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productscrap-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productscrap-record-detail/page`, params }) + } +} + +// 查询制品报废记录子详情 +export const getProductscrapRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/productscrap-record-detail/get?id=` + id }) +} + +// 新增制品报废记录子 +export const createProductscrapRecordDetail = async (data: ProductscrapRecordDetailVO) => { + return await request.post({ url: `/wms/productscrap-record-detail/create`, data }) +} + +// 修改制品报废记录子 +export const updateProductscrapRecordDetail = async (data: ProductscrapRecordDetailVO) => { + return await request.put({ url: `/wms/productscrap-record-detail/update`, data }) +} + +// 删除制品报废记录子 +export const deleteProductscrapRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/productscrap-record-detail/delete?id=` + id }) +} + +// 导出制品报废记录子 Excel +export const exportProductscrapRecordDetail = async (params) => { + return await request.download({ url: `/wms/productscrap-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productscrap-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productscrapRecordMain/index.ts b/src/api/wms/productscrapRecordMain/index.ts new file mode 100644 index 0000000..7d415ea --- /dev/null +++ b/src/api/wms/productscrapRecordMain/index.ts @@ -0,0 +1,66 @@ +import request from '@/config/axios' + +export interface ProductscrapRecordMainVO { + requestNumber: string + jobNumber: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + code: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + ruleUserId: number + available: string +} + +// 查询制品报废记录主列表 +export const getProductscrapRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productscrap-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/productscrap-record-main/page`, params }) + } +} + +// 查询制品报废记录主详情 +export const getProductscrapRecordMain = async (id: number) => { + return await request.get({ url: `/wms/productscrap-record-main/get?id=` + id }) +} + +// 新增制品报废记录主 +export const createProductscrapRecordMain = async (data: ProductscrapRecordMainVO) => { + return await request.post({ url: `/wms/productscrap-record-main/create`, data }) +} + +// 修改制品报废记录主 +export const updateProductscrapRecordMain = async (data: ProductscrapRecordMainVO) => { + return await request.put({ url: `/wms/productscrap-record-main/update`, data }) +} + +// 删除制品报废记录主 +export const deleteProductscrapRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/productscrap-record-main/delete?id=` + id }) +} + +// 导出制品报废记录主 Excel +export const exportProductscrapRecordMain = async (params) => { + return await request.download({ url: `/wms/productscrap-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productscrap-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productscrapRequestDetail/index.ts b/src/api/wms/productscrapRequestDetail/index.ts new file mode 100644 index 0000000..ffb2671 --- /dev/null +++ b/src/api/wms/productscrapRequestDetail/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface ProductscrapRequestDetailVO { + fromOwnerCode: string + packingNumber: string + containerNumber: string + batch: string + fromLocationCode: string + inventoryStatus: string + reason: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string +} + +// 查询制品报废申请子列表 +export const getProductscrapRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productscrap-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/productscrap-request-detail/page`, params }) + } +} + +// 查询制品报废申请子详情 +export const getProductscrapRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/productscrap-request-detail/get?id=` + id }) +} + +// 新增制品报废申请子 +export const createProductscrapRequestDetail = async (data: ProductscrapRequestDetailVO) => { + return await request.post({ url: `/wms/productscrap-request-detail/create`, data }) +} + +// 修改制品报废申请子 +export const updateProductscrapRequestDetail = async (data: ProductscrapRequestDetailVO) => { + return await request.put({ url: `/wms/productscrap-request-detail/update`, data }) +} + +// 删除制品报废申请子 +export const deleteProductscrapRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/productscrap-request-detail/delete?id=` + id }) +} + +// 导出制品报废申请子 Excel +export const exportProductscrapRequestDetail = async (params) => { + return await request.download({ url: `/wms/productscrap-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productscrap-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productscrapRequestMain/index.ts b/src/api/wms/productscrapRequestMain/index.ts new file mode 100644 index 0000000..3a468e4 --- /dev/null +++ b/src/api/wms/productscrapRequestMain/index.ts @@ -0,0 +1,98 @@ +import request from '@/config/axios' + +export interface ProductscrapRequestMainVO { + fromWarehouseCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + fromLocationTypes: string + fromAreaCodes: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询制品报废申请主列表 +export const getProductscrapRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/productscrap-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/productscrap-request-main/page`, params }) + } +} + +// 查询制品报废申请主详情 +export const getProductscrapRequestMain = async (id: number) => { + return await request.get({ url: `/wms/productscrap-request-main/get?id=` + id }) +} + +// 新增制品报废申请主 +export const createProductscrapRequestMain = async (data: ProductscrapRequestMainVO) => { + return await request.post({ url: `/wms/productscrap-request-main/create`, data }) +} + +// 修改制品报废申请主 +export const updateProductscrapRequestMain = async (data: ProductscrapRequestMainVO) => { + return await request.put({ url: `/wms/productscrap-request-main/update`, data }) +} + +// 删除制品报废申请主 +export const deleteProductscrapRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/productscrap-request-main/delete?id=` + id }) +} + +// 导出制品报废申请主 Excel +export const exportProductscrapRequestMain = async (params) => { + return await request.download({ url: `/wms/productscrap-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productscrap-request-main/get-import-template' }) +} + +// 关闭-制品报废申请 +export const closeProductscrapRequestMain = async (id) => { + return await request.put({ url: `/wms/productscrap-request-main/close?id=` + id }) +} + +// 重新添加-制品报废申请 +export const reAddProductscrapRequestMain = async (id) => { + return await request.put({ url: `/wms/productscrap-request-main/reAdd?id=` + id }) +} + +// 提交审批-制品报废申请 +export const submitProductscrapRequestMain = async (id) => { + return await request.put({ url: `/wms/productscrap-request-main/submit?id=` + id }) +} + +// 审批驳回-制品报废申请 +export const refusedProductscrapRequestMain = async (id) => { + return await request.put({ url: `/wms/productscrap-request-main/refused?id=` + id }) +} + +// 审批通过-制品报废申请 +export const agreeProductscrapRequestMain = async (id) => { + return await request.put({ url: `/wms/productscrap-request-main/agree?id=` + id }) +} + +// 处理-制品报废申请 +export const handleProductscrapRequestMain = async (id) => { + return await request.put({ url: `/wms/productscrap-request-main/handle?id=` + id }) +} + +// 修改制品报废BOM数据 +export const updateProductscrapDetailRequestBom = async (id, data) => { + return await request.post({ url: `/wms/productscrap-request-main/updateBom?id=`+id, data }) +} diff --git a/src/api/wms/project/index.ts b/src/api/wms/project/index.ts new file mode 100644 index 0000000..2689abd --- /dev/null +++ b/src/api/wms/project/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface ProjectVO { + code: string + name: string + description: string + customerCode: string + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询项目列表 +export const getProjectPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/project/senior', data }) + } else { + return await request.get({ url: `/wms/project/page`, params }) + } +} + +// 查询项目详情 +export const getProject = async (id: number) => { + return await request.get({ url: `/wms/project/get?id=` + id }) +} + +// 新增项目 +export const createProject = async (data: ProjectVO) => { + return await request.post({ url: `/wms/project/create`, data }) +} + +// 修改项目 +export const updateProject = async (data: ProjectVO) => { + return await request.put({ url: `/wms/project/update`, data }) +} + +// 删除项目 +export const deleteProject = async (id: number) => { + return await request.delete({ url: `/wms/project/delete?id=` + id }) +} + +// 导出项目 Excel +export const exportProject = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/project/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/project/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/project/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/purchaseDetail/index.ts b/src/api/wms/purchaseDetail/index.ts new file mode 100644 index 0000000..bf16cec --- /dev/null +++ b/src/api/wms/purchaseDetail/index.ts @@ -0,0 +1,72 @@ +import request from '@/config/axios' + +export interface PurchaseDetailVO { + lineNumber: string + erpLocationCode: string + projectCode: string + stdPackQty: number + stdPackUnit: string + supplierQty: number + supplierUom: string + convertRate: number + shippedQty: number + receivedQty: number + returnedQty: number + putawayQty: number + overReceivingPercent: number + singlePrice: number + amount: number + number: string + itemCode: string + remark: string + createTime: Date + creator: string + orderQty: number + uom: string + updateTime: Date + updater: string + concurrencyStamp: string + status: string + available: string +} + +// 查询采购订单子列表 +export const getPurchaseDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchase-detail/senior', data }) + } else { + return await request.get({ url: `/wms/purchase-detail/page`, params }) + } +} + +// 查询采购订单子详情 +export const getPurchaseDetail = async (id: number) => { + return await request.get({ url: `/wms/purchase-detail/get?id=` + id }) +} + +// 新增采购订单子 +export const createPurchaseDetail = async (data: PurchaseDetailVO) => { + return await request.post({ url: `/wms/purchase-detail/create`, data }) +} + +// 修改采购订单子 +export const updatePurchaseDetail = async (data: PurchaseDetailVO) => { + return await request.put({ url: `/wms/purchase-detail/update`, data }) +} + +// 删除采购订单子 +export const deletePurchaseDetail = async (id: number) => { + return await request.delete({ url: `/wms/purchase-detail/delete?id=` + id }) +} + +// 导出采购订单子 Excel +export const exportPurchaseDetail = async (params) => { + return await request.download({ url: `/wms/purchase-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchase-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/purchaseMain/index.ts b/src/api/wms/purchaseMain/index.ts new file mode 100644 index 0000000..a833a54 --- /dev/null +++ b/src/api/wms/purchaseMain/index.ts @@ -0,0 +1,81 @@ +import request from '@/config/axios' + +export interface PurchaseMainVO { + supplierCode: string + number: string + type: string + status: string + orderDate: Date + dueDate: Date + version: string + taxRate: number + contactName: string + contactPhone: string + contactEmail: string + isConsignment: string + businessType: string + remark: string + createTime: Date + creator: string + updateTime: Date + updater: string + currentStage: number + available: string +} + +// 查询采购订单主列表 +export const getPurchaseMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchase-main/senior', data }) + } else { + return await request.get({ url: `/wms/purchase-main/page`, params }) + } +} + +// 查询采购订单主详情 +export const getPurchaseMain = async (id: number) => { + return await request.get({ url: `/wms/purchase-main/get?id=` + id }) +} + +// 新增采购订单主 +export const createPurchaseMain = async (data: PurchaseMainVO) => { + return await request.post({ url: `/wms/purchase-main/create`, data }) +} + +// 修改采购订单主 +export const updatePurchaseMain = async (data: PurchaseMainVO) => { + return await request.put({ url: `/wms/purchase-main/update`, data }) +} + +// 删除采购订单主 +export const deletePurchaseMain = async (id: number) => { + return await request.delete({ url: `/wms/purchase-main/delete?id=` + id }) +} + +// 关闭采购订单主 +export const closePurchaseMain = async (id: number) => { + return await request.post({ url: `/wms/purchase-main/close?id=` + id }) +} +// 打开采购订单主 +export const openPurchaseMain = async (id: number) => { + return await request.post({ url: `/wms/purchase-main/open?id=` + id }) +} +// 发布采购订单主 +export const publishPurchaseMain = async (id: number) => { + return await request.post({ url: `/wms/purchase-main/publish?id=` + id }) +} +// 下架采购订单主 +export const witPurchaseMain = async (id: number) => { + return await request.post({ url: `/wms/purchase-main/wit?id=` + id }) +} +// 导出采购订单主 Excel +export const exportPurchaseMain = async (params) => { + return await request.download({ url: `/wms/purchase-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchase-main/get-import-template' }) +} diff --git a/src/api/wms/purchasePlanDetail/index.ts b/src/api/wms/purchasePlanDetail/index.ts new file mode 100644 index 0000000..3c1cb27 --- /dev/null +++ b/src/api/wms/purchasePlanDetail/index.ts @@ -0,0 +1,52 @@ +import request from '@/config/axios' + +export interface PurchasePlanDetailVO { + poNumber: string + poLine: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + shippedQty: number + planQty: number + uom: string + updateTime: Date + updater: string + available: string +} + +// 查询要货计划子列表 +export const getPurchasePlanDetailPage = async (params) => { + return await request.get({ url: `/wms/purchase-plan-detail/page`, params }) +} + +// 查询采购收货记录子列表 +export const getPurchasePlanDetailList = async (params) => { + return await request.get({ url: `/wms/purchase-plan-detail/allList`, params }) +} + +// 查询要货计划子详情 +export const getPurchasePlanDetail = async (id: number) => { + return await request.get({ url: `/wms/purchase-plan-detail/get?id=` + id }) +} + +// 新增要货计划子 +export const createPurchasePlanDetail = async (data: PurchasePlanDetailVO) => { + return await request.post({ url: `/wms/purchase-plan-detail/create`, data }) +} + +// 修改要货计划子 +export const updatePurchasePlanDetail = async (data: PurchasePlanDetailVO) => { + return await request.put({ url: `/wms/purchase-plan-detail/update`, data }) +} + +// 删除要货计划子 +export const deletePurchasePlanDetail = async (id: number) => { + return await request.delete({ url: `/wms/purchase-plan-detail/delete?id=` + id }) +} + +// 导出要货计划子 Excel +export const exportPurchasePlanDetail = async (params) => { + return await request.download({ url: `/wms/purchase-plan-detail/export-excel`, params }) +} diff --git a/src/api/wms/purchasePlanMain/index.ts b/src/api/wms/purchasePlanMain/index.ts new file mode 100644 index 0000000..df18a82 --- /dev/null +++ b/src/api/wms/purchasePlanMain/index.ts @@ -0,0 +1,87 @@ +import request from '@/config/axios' + +export interface PurchasePlanMainVO { + supplierCode: string + timeWindow: string + warehouseCode: string + dockCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + beginTime: Date + endTime: Date + status: string + updateTime: Date + updater: string + available: string +} + +// 查询要货计划主列表 +export const getPurchasePlanMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchase-plan-main/senior', data }) + } else { + return await request.get({ url: `/wms/purchase-plan-main/page`, params }) + } +} + +// 查询要货计划主详情 +export const getPurchasePlanMain = async (id: number) => { + return await request.get({ url: `/wms/purchase-plan-main/get?id=` + id }) +} + +// 新增要货计划主 +export const createPurchasePlanMain = async (data: PurchasePlanMainVO) => { + return await request.post({ url: `/wms/purchase-plan-main/create`, data }) +} + +// 修改要货计划主 +export const updatePurchasePlanMain = async (data: PurchasePlanMainVO) => { + return await request.put({ url: `/wms/purchase-plan-main/update`, data }) +} + +// 删除要货计划主 +export const deletePurchasePlanMain = async (id: number) => { + return await request.delete({ url: `/wms/purchase-plan-main/delete?id=` + id }) +} + +// 关闭要货计划主 +export const closePurchasePlanMain = async (id: number) => { + return await request.post({ url: `/wms/purchase-plan-main/close?id=` + id }) +} +// 打开要货计划主 +export const openPurchasePlanMain = async (id: number) => { + return await request.post({ url: `/wms/purchase-plan-main/open?id=` + id }) +} +// 发布要货计划主 +export const publishPurchasePlanMain = async (id: number) => { + return await request.post({ url: `/wms/purchase-plan-main/publish?id=` + id }) +} +// 下架要货计划主 +export const witPurchasePlanMain = async (id: number) => { + return await request.post({ url: `/wms/purchase-plan-main/wit?id=` + id }) +} + +// 接受要货计划主 +export const accPurchasePlanMain = async (id: number) => { + return await request.post({ url: `/wms/purchase-plan-main/acc?id=` + id }) +} + +// 驳回要货计划主 +export const rejPurchasePlanMain = async (id: number) => { + return await request.post({ url: `/wms/purchase-plan-main/rej?id=` + id }) +} + +// 导出要货计划主 Excel +export const exportPurchasePlanMain = async (params) => { + return await request.download({ url: `/wms/purchase-plan-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchase-plan-main/get-import-template' }) +} diff --git a/src/api/wms/purchaseclaimRecordDetail/index.ts b/src/api/wms/purchaseclaimRecordDetail/index.ts new file mode 100644 index 0000000..89f1f53 --- /dev/null +++ b/src/api/wms/purchaseclaimRecordDetail/index.ts @@ -0,0 +1,66 @@ +import request from '@/config/axios' + +export interface PurchaseclaimRecordDetailVO { + batch: string + altBatch: string + poNumber: string + poLine: string + reason: string + singlePrice: number + amount: number + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string +} + +// 查询采购索赔记录子列表 +export const getPurchaseclaimRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchaseclaim-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/purchaseclaim-record-detail/page`, params }) + } +} + +// 查询采购索赔记录子详情 +export const getPurchaseclaimRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/purchaseclaim-record-detail/get?id=` + id }) +} + +// 新增采购索赔记录子 +export const createPurchaseclaimRecordDetail = async (data: PurchaseclaimRecordDetailVO) => { + return await request.post({ url: `/wms/purchaseclaim-record-detail/create`, data }) +} + +// 修改采购索赔记录子 +export const updatePurchaseclaimRecordDetail = async (data: PurchaseclaimRecordDetailVO) => { + return await request.put({ url: `/wms/purchaseclaim-record-detail/update`, data }) +} + +// 删除采购索赔记录子 +export const deletePurchaseclaimRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/purchaseclaim-record-detail/delete?id=` + id }) +} + +// 导出采购索赔记录子 Excel +export const exportPurchaseclaimRecordDetail = async (params) => { + return await request.download({ url: `/wms/purchaseclaim-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchaseclaim-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/purchaseclaimRecordMain/index.ts b/src/api/wms/purchaseclaimRecordMain/index.ts new file mode 100644 index 0000000..a4baa7d --- /dev/null +++ b/src/api/wms/purchaseclaimRecordMain/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +export interface PurchaseclaimRecordMainVO { + requestNumber: string + asnNumber: string + ppNumber: string + supplierCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + available: string +} + +// 查询采购索赔记录主列表 +export const getPurchaseclaimRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchaseclaim-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/purchaseclaim-record-main/page`, params }) + } +} + +// 查询采购索赔记录主详情 +export const getPurchaseclaimRecordMain = async (id: number) => { + return await request.get({ url: `/wms/purchaseclaim-record-main/get?id=` + id }) +} + +// 新增采购索赔记录主 +export const createPurchaseclaimRecordMain = async (data: PurchaseclaimRecordMainVO) => { + return await request.post({ url: `/wms/purchaseclaim-record-main/create`, data }) +} + +// 修改采购索赔记录主 +export const updatePurchaseclaimRecordMain = async (data: PurchaseclaimRecordMainVO) => { + return await request.put({ url: `/wms/purchaseclaim-record-main/update`, data }) +} + +// 删除采购索赔记录主 +export const deletePurchaseclaimRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/purchaseclaim-record-main/delete?id=` + id }) +} + +// 导出采购索赔记录主 Excel +export const exportPurchaseclaimRecordMain = async (params) => { + return await request.download({ url: `/wms/purchaseclaim-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchaseclaim-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/purchaseclaimRequestDetail/index.ts b/src/api/wms/purchaseclaimRequestDetail/index.ts new file mode 100644 index 0000000..fed254b --- /dev/null +++ b/src/api/wms/purchaseclaimRequestDetail/index.ts @@ -0,0 +1,53 @@ +import request from '@/config/axios' + +export interface PurchaseclaimRequestDetailVO { + altBatch: string + amount: Number + batch: Number + id: string + itemCode: string + itemDesc1: string + itemDesc2: string + itemName: string + number: string + poLine: string + poNumber: string + projectCode: string + qty: Number + reason: string + remark: string + singlePrice: Number + uom: string +} + +// 查询采购索赔申请子列表 +export const getPurchaseclaimRequestDetailPage = async (params) => { + // return await request.get({ url: `/wms/purchaseclaim-request-detail/page`, params }) + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/purchaseclaim-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/purchaseclaim-request-detail/page`, params }) + } +} + +// 查询采购索赔申请子详情 +export const getPurchaseclaimRequesDetail = async (id: number) => { + return await request.get({ url: `/wms/purchaseclaim-request-detail/get?id=` + id }) +} + +// 新增采购索赔申请子 +export const createPurchaseclaimRequestDetail = async (data: PurchaseclaimRequestDetailVO) => { + return await request.post({ url: `/wms/purchaseclaim-request-detail/create`, data }) +} + +// 修改采购索赔申请子 +export const updatePurchaseclaimRequestDetail = async (data: PurchaseclaimRequestDetailVO) => { + return await request.put({ url: `/wms/purchaseclaim-request-detail/update`, data }) +} + +// 删除采购索赔申请子 +export const deletePurchaseclaimRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/purchaseclaim-request-detail/delete?id=` + id }) +} diff --git a/src/api/wms/purchaseclaimRequestMain/index.ts b/src/api/wms/purchaseclaimRequestMain/index.ts new file mode 100644 index 0000000..392f873 --- /dev/null +++ b/src/api/wms/purchaseclaimRequestMain/index.ts @@ -0,0 +1,86 @@ +import request from '@/config/axios' + +export interface PurchaseclaimRequestMainVO { + asnNumber: string + ppNumber: string + supplierCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询采购索赔申请主列表 +export const getPurchaseclaimRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/purchaseclaim-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/purchaseclaim-request-main/page`, params }) + } +} +// 查询采购索赔申请主详情 +export const getPurchaseclaimRequestMain = async (id: number) => { + return await request.get({ url: `/wms/purchaseclaim-request-main/get?id=` + id }) +} + +// 新增采购索赔申请主 +export const createPurchaseclaimRequestMain = async (data: PurchaseclaimRequestMainVO) => { + return await request.post({ url: `/wms/purchaseclaim-request-main/create`, data }) +} + +// 修改采购索赔申请主 +export const updatePurchaseclaimRequestMain = async (data: PurchaseclaimRequestMainVO) => { + return await request.put({ url: `/wms/purchaseclaim-request-main/update`, data }) +} + +// 删除采购索赔申请主 +export const deletePurchaseclaimRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/purchaseclaim-request-main/delete?id=` + id }) +} + +// 打开供应商发货申请主 +export const opePurchaseclaimRequestMain = async (id: number) => { + return await request.post({ url: `/wms/purchaseclaim-request-main/open?id=` + id }) +} +// 关闭供应商发货申请主 +export const cloPurchaseclaimRequestMain = async (id: number) => { + return await request.post({ url: `/wms/purchaseclaim-request-main/close?id=` + id }) +} +// 提交审批供应商发货申请主 +export const subPurchaseclaimRequestMain = async (id: number) => { + return await request.post({ url: `/wms/purchaseclaim-request-main/sub?id=` + id }) +} +// 审批通过供应商发货申请主 +export const appPurchaseclaimRequestMain = async (id: number) => { + return await request.post({ url: `/wms/purchaseclaim-request-main/app?id=` + id }) +} +// 驳回供应商发货申请主 +export const rejPurchaseclaimRequestMain = async (id: number) => { + return await request.post({ url: `/wms/purchaseclaim-request-main/rej?id=` + id }) +} +// 处理 +export const genRecordsPurchaseclaimRequestMain = async (id) => { + return await request.post({ url: `/wms/purchaseclaim-request-main/genRecords?id=` + id }) +} +// 导出采购索赔申请主 Excel +export const exportPurchaseclaimRequestMain = async (params) => { + return await request.download({ url: `/wms/purchaseclaim-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchaseclaim-request-main/get-import-template' }) +} diff --git a/src/api/wms/purchaseprice/index.ts b/src/api/wms/purchaseprice/index.ts new file mode 100644 index 0000000..cf24386 --- /dev/null +++ b/src/api/wms/purchaseprice/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface PurchasepriceVO { + supplierCode: string + itemCode: string + currency: string + price: number + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询采购价格单列表 +export const getPurchasepricePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/purchaseprice/senior', data }) + } else { + return await request.get({ url: `/wms/purchaseprice/page`, params }) + } +} + +// 查询采购价格单详情 +export const getPurchaseprice = async (id: number) => { + return await request.get({ url: `/wms/purchaseprice/get?id=` + id }) +} + +// 新增采购价格单 +export const createPurchaseprice = async (data: PurchasepriceVO) => { + return await request.post({ url: `/wms/purchaseprice/create`, data }) +} + +// 修改采购价格单 +export const updatePurchaseprice = async (data: PurchasepriceVO) => { + return await request.put({ url: `/wms/purchaseprice/update`, data }) +} + +// 删除采购价格单 +export const deletePurchaseprice = async (id: number) => { + return await request.delete({ url: `/wms/purchaseprice/delete?id=` + id }) +} + +// 导出采购价格单 Excel +export const exportPurchaseprice = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/purchaseprice/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/purchaseprice/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchaseprice/get-import-template' }) +} diff --git a/src/api/wms/purchasereceiptJobDetail/index.ts b/src/api/wms/purchasereceiptJobDetail/index.ts new file mode 100644 index 0000000..6201fbe --- /dev/null +++ b/src/api/wms/purchasereceiptJobDetail/index.ts @@ -0,0 +1,75 @@ +import request from '@/config/axios' + +export interface PurchasereceiptJobDetailVO { + packingNumber: string + containerNumber: string + batch: string + altBatch: string + arriveDate: Date + produceDate: Date + expireDate: Date + inventoryStatus: string + fromLocationCode: string + toLocationCode: string + poNumber: string + poLine: string + stdPackQty: number + stdPackUnit: string + supplierQty: number + supplierUom: string + convertRate: number + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + eemark: string + createTime: Date + creator: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询采购收货任务子列表 +export const getPurchasereceiptJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchasereceipt-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/purchasereceipt-job-detail/page`, params }) + } +} + +// 查询采购收货任务子详情 +export const getPurchasereceiptJobDetail = async (id: number) => { + return await request.get({ url: `/wms/purchasereceipt-job-detail/get?id=` + id }) +} + +// 新增采购收货任务子 +export const createPurchasereceiptJobDetail = async (data: PurchasereceiptJobDetailVO) => { + return await request.post({ url: `/wms/purchasereceipt-job-detail/create`, data }) +} + +// 修改采购收货任务子 +export const updatePurchasereceiptJobDetail = async (data: PurchasereceiptJobDetailVO) => { + return await request.put({ url: `/wms/purchasereceipt-job-detail/update`, data }) +} + +// 删除采购收货任务子 +export const deletePurchasereceiptJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/purchasereceipt-job-detail/delete?id=` + id }) +} + +// 导出采购收货任务子 Excel +export const exportPurchasereceiptJobDetail = async (params) => { + return await request.download({ url: `/wms/purchasereceipt-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchasereceipt-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/purchasereceiptJobMain/index.ts b/src/api/wms/purchasereceiptJobMain/index.ts new file mode 100644 index 0000000..3e2f9a2 --- /dev/null +++ b/src/api/wms/purchasereceiptJobMain/index.ts @@ -0,0 +1,99 @@ +import request from '@/config/axios' + +export interface PurchasereceiptJobMainVO { + requestNumber: string + asnNumber: string + ppNumber: string + supplierCode: string + toDockCode: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + userPositionCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + allowModifyBatch: string + fromAreaCodes: string + toAreaCodes: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyPackingNumber: string +} + +// 查询采购收货任务主列表 +export const getPurchasereceiptJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchasereceipt-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/purchasereceipt-job-main/page`, params }) + } +} + +// 查询采购收货任务主详情 +export const getPurchasereceiptJobMain = async (id: number) => { + return await request.get({ url: `/wms/purchasereceipt-job-main/get?id=` + id }) +} + +// 新增采购收货任务主 +export const createPurchasereceiptJobMain = async (data: PurchasereceiptJobMainVO) => { + return await request.post({ url: `/wms/purchasereceipt-job-main/create`, data }) +} + +// 修改采购收货任务主 +export const updatePurchasereceiptJobMain = async (data: PurchasereceiptJobMainVO) => { + return await request.put({ url: `/wms/purchasereceipt-job-main/update`, data }) +} + +// 删除采购收货任务主 +export const deletePurchasereceiptJobMain = async (id: number) => { + return await request.delete({ url: `/wms/purchasereceipt-job-main/delete?id=` + id }) +} + +// 导出采购收货任务主 Excel +export const exportPurchasereceiptJobMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/purchasereceipt-job-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/purchasereceipt-job-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchasereceipt-job-main/get-import-template' }) +} + +// 关闭采购收货任务主 +export const closePurchasereceiptJobMain = (id: number) => { + return request.put({ url: '/wms/purchasereceipt-job-main/close?id=' + id }) +} diff --git a/src/api/wms/purchasereceiptRecordDetail/index.ts b/src/api/wms/purchasereceiptRecordDetail/index.ts new file mode 100644 index 0000000..b326094 --- /dev/null +++ b/src/api/wms/purchasereceiptRecordDetail/index.ts @@ -0,0 +1,103 @@ +import request from '@/config/axios' + +export interface PurchasereceiptRecordDetailVO { + fromPackingNumber: string + toPackingNumber: string + fromContainerNumber: string + toContainerNumber: string + fromBatch: string + altBatch: string + arriveDate: Date + produceDate: Date + expireDate: Date + inventoryStatus: string + fromLocationCode: string + toLocationCode: string + fromLocationGroupCode: string + toLocationGroupCode: string + fromAreaCodes: string + toAreaCodes: string + poNumber: string + poLine: string + stdPackQty: number + stdPackUnit: string + qty: number + uom: string + supplierQty: number + supplierUom: string + convertRate: number + visualInspectResult: string + visualInspectPhotos: string + failedReason: string + singlePrice: number + amount: number + jobDetailId: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + number: string + remark: string + createTime: Date + creator: string + projectCode: string + code: string + interfaceType: string + fromOwnerCode: string + toOwnerCode: string + toBatch: string +} + +// 查询采购收货记录子列表 +export const getPurchasereceiptRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchasereceipt-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/purchasereceipt-record-detail/page`, params }) + } +} +// 查询采购收货记录子列表 +export const getPurchasereceiptRecordDetailList = async (params) => { + return await request.get({ url: `/wms/purchasereceipt-record-detail/list`, params }) +} +// 查询采购收货记录子详情 +export const getPurchasereceiptRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/purchasereceipt-record-detail/get?id=` + id }) +} + +// 新增采购收货记录子 +export const createPurchasereceiptRecordDetail = async (data: PurchasereceiptRecordDetailVO) => { + return await request.post({ url: `/wms/purchasereceipt-record-detail/create`, data }) +} + +// 修改采购收货记录子 +export const updatePurchasereceiptRecordDetail = async (data: PurchasereceiptRecordDetailVO) => { + return await request.put({ url: `/wms/purchasereceipt-record-detail/update`, data }) +} + +// 删除采购收货记录子 +export const deletePurchasereceiptRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/purchasereceipt-record-detail/delete?id=` + id }) +} + +// 导出采购收货记录子 Excel +export const exportPurchasereceiptRecordDetail = async (params) => { + return await request.download({ url: `/wms/purchasereceipt-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchasereceipt-record-detail/get-import-template' }) +} +// 缺货明细 +export const getScarceGoodsDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchaseshortage-detail/senior', data }) + } else { + return await request.get({ url: `/wms/purchaseshortage-detail/page`, params }) + } +} \ No newline at end of file diff --git a/src/api/wms/purchasereceiptRecordMain/index.ts b/src/api/wms/purchasereceiptRecordMain/index.ts new file mode 100644 index 0000000..7c61327 --- /dev/null +++ b/src/api/wms/purchasereceiptRecordMain/index.ts @@ -0,0 +1,80 @@ +import request from '@/config/axios' + +export interface PurchasereceiptRecordMainVO { + requestNumber: string + jobNumber: string + asnNumber: string + ppNumber: string + supplierCode: string + toDockCode: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + outTransaction: string + inTransaction: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + fromLocationTypes: string + toLocationTypes: string + fromAreaCodes: string + toAreaCodes: string + available: string +} + +// 查询采购收货记录主列表 +export const getPurchasereceiptRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchasereceipt-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/purchasereceipt-record-main/page`, params }) + } +} + +// 查询采购收货记录主详情 +export const getPurchasereceiptRecordMain = async (id: number) => { + return await request.get({ url: `/wms/purchasereceipt-record-main/get?id=` + id }) +} + +// 新增采购收货记录主 +export const createPurchasereceiptRecordMain = async (data: PurchasereceiptRecordMainVO) => { + return await request.post({ url: `/wms/purchasereceipt-record-main/create`, data }) +} + +// 修改采购收货记录主 +export const updatePurchasereceiptRecordMain = async (data: PurchasereceiptRecordMainVO) => { + return await request.put({ url: `/wms/purchasereceipt-record-main/update`, data }) +} + +// 删除采购收货记录主 +export const deletePurchasereceiptRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/purchasereceipt-record-main/delete?id=` + id }) +} + +// 导出采购收货记录主 Excel +export const exportPurchasereceiptRecordMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/purchasereceipt-record-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/purchasereceipt-record-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchasereceipt-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/purchasereceiptRequestDetail/index.ts b/src/api/wms/purchasereceiptRequestDetail/index.ts new file mode 100644 index 0000000..20f40f6 --- /dev/null +++ b/src/api/wms/purchasereceiptRequestDetail/index.ts @@ -0,0 +1,78 @@ +import request from '@/config/axios' + +export interface PurchasereceiptRequestDetailVO { + packingNumber: string + containerNumber: string + batch: string + altBatch: string + arriveDate: Date + produceDate: Date + expireDate: Date + inventoryStatus: string + fromLocationCode: string + poNumber: string + poLine: string + stdPackQty: number + stdPackUnit: string + supplierPackQty: number + supplierPackUnit: string + convertRate: number + number: string + itemCode: string + remark: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + fromOwnerCode: string + toOwnerCode: string + createTime: Date + creator: string +} + +// 查询采购收货申请子列表 +export const getPurchasereceiptRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchasereceipt-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/purchasereceipt-request-detail/page`, params }) + } +} + +// 查询采购收货申请子详情 +export const getPurchasereceiptRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/purchasereceipt-request-detail/get?id=` + id }) +} + +// 新增采购收货申请子 +export const createPurchasereceiptRequestDetail = async (data: PurchasereceiptRequestDetailVO) => { + return await request.post({ url: `/wms/purchasereceipt-request-detail/create`, data }) +} + +// 修改采购收货申请子 +export const updatePurchasereceiptRequestDetail = async (data: PurchasereceiptRequestDetailVO) => { + return await request.put({ url: `/wms/purchasereceipt-request-detail/update`, data }) +} + +// 删除采购收货申请子 +export const deletePurchasereceiptRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/purchasereceipt-request-detail/delete?id=` + id }) +} + + + +// 导出采购收货申请子 Excel +export const exportPurchasereceiptRequestDetail = async (params) => { + return await request.download({ url: `/wms/purchasereceipt-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchasereceipt-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/purchasereceiptRequestMain/index.ts b/src/api/wms/purchasereceiptRequestMain/index.ts new file mode 100644 index 0000000..4aa84e5 --- /dev/null +++ b/src/api/wms/purchasereceiptRequestMain/index.ts @@ -0,0 +1,108 @@ +import request from '@/config/axios' + +export interface PurchasereceiptRequestMainVO { + asnNumber: string + ppNumber: string + supplierCode: string + carrierCode: string + transferMode: string + fromWarehouseCode: string + toWarehouseCode: string + fromLocationTypes: string + toLocationTypes: string + fromAreaCodes: string + toAreaCodes: string + toDockCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + updateTime: Date + updater: string + status: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string + vehiclePlateNumber: string +} + +// 查询采购收货申请主列表 +export const getPurchasereceiptRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchasereceipt-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/purchasereceipt-request-main/page`, params }) + } +} + +// 查询采购收货申请主详情 +export const getPurchasereceiptRequestMain = async (id: number) => { + return await request.get({ url: `/wms/purchasereceipt-request-main/get?id=` + id }) +} + +// 新增采购收货申请主 +export const createPurchasereceiptRequestMain = async (data: PurchasereceiptRequestMainVO) => { + return await request.post({ url: `/wms/purchasereceipt-request-main/create`, data }) +} + +// 修改采购收货申请主 +export const updatePurchasereceiptRequestMain = async (data: PurchasereceiptRequestMainVO) => { + return await request.put({ url: `/wms/purchasereceipt-request-main/update`, data }) +} + +// 删除采购收货申请主 +export const deletePurchasereceiptRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/purchasereceipt-request-main/delete?id=` + id }) +} + +// 导出采购收货申请主 Excel +export const exportPurchasereceiptRequestMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/purchasereceipt-request-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/purchasereceipt-request-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchasereceipt-request-main/get-import-template' }) +} + +// 关闭采购收货申请主 Excel +export const closePurchasereceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/purchasereceipt-request-main/close?id=` + id }) +} + +// 重新添加采购收货申请主 Excel +export const reAddPurchasereceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/purchasereceipt-request-main/reAdd?id=` + id }) +} + +// 提交采购收货申请主 Excel +export const submitPurchasereceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/purchasereceipt-request-main/submit?id=` + id }) +} + +// 审批通过采购收货申请主 Excel +export const agreePurchasereceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/purchasereceipt-request-main/agree?id=` + id }) +} + +// 审批驳回采购收货申请主 Excel +export const refusedPurchasereceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/purchasereceipt-request-main/refused?id=` + id }) +} + +// 处理采购收货申请主 Excel +export const handlePurchasereceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/purchasereceipt-request-main/handle?id=` + id }) +} diff --git a/src/api/wms/purchasereturnJobDetail/index.ts b/src/api/wms/purchasereturnJobDetail/index.ts new file mode 100644 index 0000000..2fadb78 --- /dev/null +++ b/src/api/wms/purchasereturnJobDetail/index.ts @@ -0,0 +1,68 @@ +import request from '@/config/axios' + +export interface PurchasereturnJobDetailVO { + fromOwnerCode: string + packingNumber: string + containerNumber: string + batch: string + altBatch: string + fromLocationCode: string + toLocationCode: string + inventoryStatus: string + poNumber: string + poLine: string + reason: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: number + toOwnerCode: string +} + +// 查询采购退货任务子列表 +export const getPurchasereturnJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchasereturn-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/purchasereturn-job-detail/page`, params }) + } +} + +// 查询采购退货任务子详情 +export const getPurchasereturnJobDetail = async (id: number) => { + return await request.get({ url: `/wms/purchasereturn-job-detail/get?id=` + id }) +} + +// 新增采购退货任务子 +export const createPurchasereturnJobDetail = async (data: PurchasereturnJobDetailVO) => { + return await request.post({ url: `/wms/purchasereturn-job-detail/create`, data }) +} + +// 修改采购退货任务子 +export const updatePurchasereturnJobDetail = async (data: PurchasereturnJobDetailVO) => { + return await request.put({ url: `/wms/purchasereturn-job-detail/update`, data }) +} + +// 删除采购退货任务子 +export const deletePurchasereturnJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/purchasereturn-job-detail/delete?id=` + id }) +} + +// 导出采购退货任务子 Excel +export const exportPurchasereturnJobDetail = async (params) => { + return await request.download({ url: `/wms/purchasereturn-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchasereturn-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/purchasereturnJobMain/index.ts b/src/api/wms/purchasereturnJobMain/index.ts new file mode 100644 index 0000000..ec925e9 --- /dev/null +++ b/src/api/wms/purchasereturnJobMain/index.ts @@ -0,0 +1,95 @@ +import request from '@/config/axios' + +export interface PurchasereturnJobMainVO { + requestNumber: string + purchaseReceiptRecordNumber: string + asnNumber: string + ppNumber: string + supplierCode: string + deliverDock: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromAreaCodes: string + toAreaCodes: string + fromDockCode: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询采购退货任务主列表 +export const getPurchasereturnJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchasereturn-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/purchasereturn-job-main/page`, params }) + } +} + +// 查询采购退货任务主详情 +export const getPurchasereturnJobMain = async (id: number) => { + return await request.get({ url: `/wms/purchasereturn-job-main/get?id=` + id }) +} + +// 新增采购退货任务主 +export const createPurchasereturnJobMain = async (data: PurchasereturnJobMainVO) => { + return await request.post({ url: `/wms/purchasereturn-job-main/create`, data }) +} + +// 修改采购退货任务主 +export const updatePurchasereturnJobMain = async (data: PurchasereturnJobMainVO) => { + return await request.put({ url: `/wms/purchasereturn-job-main/update`, data }) +} + +// 删除采购退货任务主 +export const deletePurchasereturnJobMain = async (id: number) => { + return await request.delete({ url: `/wms/purchasereturn-job-main/delete?id=` + id }) +} + +// 导出采购退货任务主 Excel +export const exportPurchasereturnJobMain = async (params) => { + return await request.download({ url: `/wms/purchasereturn-job-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchasereturn-job-main/get-import-template' }) +} + +// 关闭采购退货任务主 +export const closePurchasereturnJobMain = (id: number) => { + return request.put({ url: '/wms/purchasereturn-job-main/close?id=' + id }) +} diff --git a/src/api/wms/purchasereturnRecordDetail/index.ts b/src/api/wms/purchasereturnRecordDetail/index.ts new file mode 100644 index 0000000..f136685 --- /dev/null +++ b/src/api/wms/purchasereturnRecordDetail/index.ts @@ -0,0 +1,80 @@ +import request from '@/config/axios' + +export interface PurchasereturnRecordDetailVO { + fromPackingNumber: string + toPackingNumber: string + fromContainerNumber: string + fromBatch: string + altBatch: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + inventoryStatus: string + poNumber: string + poLine: string + reason: string + singlePrice: number + amount: number + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string + toContainerNumber: string + fromOwnerCode: string + toOwnerCode: string + toBatch: string +} + +// 查询采购退货记录子列表 +export const getPurchasereturnRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchasereturn-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/purchasereturn-record-detail/page`, params }) + } +} + +// 查询采购退货记录子详情 +export const getPurchasereturnRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/purchasereturn-record-detail/get?id=` + id }) +} + +// 新增采购退货记录子 +export const createPurchasereturnRecordDetail = async (data: PurchasereturnRecordDetailVO) => { + return await request.post({ url: `/wms/purchasereturn-record-detail/create`, data }) +} + +// 修改采购退货记录子 +export const updatePurchasereturnRecordDetail = async (data: PurchasereturnRecordDetailVO) => { + return await request.put({ url: `/wms/purchasereturn-record-detail/update`, data }) +} + +// 删除采购退货记录子 +export const deletePurchasereturnRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/purchasereturn-record-detail/delete?id=` + id }) +} + +// 导出采购退货记录子 Excel +export const exportPurchasereturnRecordDetail = async (params) => { + return await request.download({ url: `/wms/purchasereturn-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchasereturn-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/purchasereturnRecordMain/index.ts b/src/api/wms/purchasereturnRecordMain/index.ts new file mode 100644 index 0000000..47b793b --- /dev/null +++ b/src/api/wms/purchasereturnRecordMain/index.ts @@ -0,0 +1,76 @@ +import request from '@/config/axios' + +export interface PurchasereturnRecordMainVO { + requestNumber: string + jobNumber: string + purchaseReceiptRecordNumber: string + asnNumber: string + ppNumber: string + supplierCode: string + fromDockCode: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + fromLocationTypes: string + toLocationTypes: string + fromAreaCodes: string + toAreaCodes: string + available: string +} + +// 查询采购退货记录主列表 +export const getPurchasereturnRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchasereturn-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/purchasereturn-record-main/page`, params }) + } +} + +// 查询采购退货记录主详情 +export const getPurchasereturnRecordMain = async (id: number) => { + return await request.get({ url: `/wms/purchasereturn-record-main/get?id=` + id }) +} + +// 新增采购退货记录主 +export const createPurchasereturnRecordMain = async (data: PurchasereturnRecordMainVO) => { + return await request.post({ url: `/wms/purchasereturn-record-main/create`, data }) +} + +// 修改采购退货记录主 +export const updatePurchasereturnRecordMain = async (data: PurchasereturnRecordMainVO) => { + return await request.put({ url: `/wms/purchasereturn-record-main/update`, data }) +} + +// 删除采购退货记录主 +export const deletePurchasereturnRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/purchasereturn-record-main/delete?id=` + id }) +} + +// 导出采购退货记录主 Excel +export const exportPurchasereturnRecordMain = async (params) => { + return await request.download({ url: `/wms/purchasereturn-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchasereturn-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/purchasereturnRequestDetail/index.ts b/src/api/wms/purchasereturnRequestDetail/index.ts new file mode 100644 index 0000000..a50d8fc --- /dev/null +++ b/src/api/wms/purchasereturnRequestDetail/index.ts @@ -0,0 +1,69 @@ +import request from '@/config/axios' + +export interface PurchasereturnRequestDetailVO { + packingNumber: string + containerNumber: string + batch: string + altBatch: string + toLocationCode: string + inventoryStatus: string + poNumber: string + poLine: string + reason: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询采购退货申请子列表 +export const getPurchasereturnRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchasereturn-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/purchasereturn-request-detail/page`, params }) + } +} + +// 查询采购退货申请子详情 +export const getPurchasereturnRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/purchasereturn-request-detail/get?id=` + id }) +} + +// 新增采购退货申请子 +export const createPurchasereturnRequestDetail = async (data: PurchasereturnRequestDetailVO) => { + return await request.post({ url: `/wms/purchasereturn-request-detail/create`, data }) +} + +// 修改采购退货申请子 +export const updatePurchasereturnRequestDetail = async (data: PurchasereturnRequestDetailVO) => { + return await request.put({ url: `/wms/purchasereturn-request-detail/update`, data }) +} + +// 删除采购退货申请子 +export const deletePurchasereturnRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/purchasereturn-request-detail/delete?id=` + id }) +} + +// 导出采购退货申请子 Excel +export const exportPurchasereturnRequestDetail = async (params) => { + return await request.download({ url: `/wms/purchasereturn-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchasereturn-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/purchasereturnRequestMain/index.ts b/src/api/wms/purchasereturnRequestMain/index.ts new file mode 100644 index 0000000..bcdfbd6 --- /dev/null +++ b/src/api/wms/purchasereturnRequestMain/index.ts @@ -0,0 +1,104 @@ +import request from '@/config/axios' + +export interface PurchasereturnRequestMainVO { + purchaseReceiptRecordNumber: string + asnNumber: string + ppNumber: string + supplierCode: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + fromLocationTypes: string + fromAreaCodes: string + fromDockCode: string + toLocationTypes: string + toAreaCodes: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询采购退货申请主列表 +export const getPurchasereturnRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchasereturn-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/purchasereturn-request-main/page`, params }) + } +} + +// 查询采购退货申请主详情 +export const getPurchasereturnRequestMain = async (id: number) => { + return await request.get({ url: `/wms/purchasereturn-request-main/get?id=` + id }) +} + +// 新增采购退货申请主 +export const createPurchasereturnRequestMain = async (data: PurchasereturnRequestMainVO) => { + return await request.post({ url: `/wms/purchasereturn-request-main/create`, data }) +} + +// 修改采购退货申请主 +export const updatePurchasereturnRequestMain = async (data: PurchasereturnRequestMainVO) => { + return await request.put({ url: `/wms/purchasereturn-request-main/update`, data }) +} + +// 删除采购退货申请主 +export const deletePurchasereturnRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/purchasereturn-request-main/delete?id=` + id }) +} + +// 导出采购退货申请主 Excel +export const exportPurchasereturnRequestMain = async (params) => { + return await request.download({ url: `/wms/purchasereturn-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchasereturn-request-main/get-import-template' }) +} + +// 关闭采购退货申请主 Excel +export const closePurchasereturnRequestMain = async (id) => { + return await request.put({ url: `/wms/purchasereturn-request-main/close?id=` + id }) +} + +// 重新添加采购退货申请主 Excel +export const reAddPurchasereturnRequestMain = async (id) => { + return await request.put({ url: `/wms/purchasereturn-request-main/reAdd?id=` + id }) +} + +// 提交采购退货申请主 Excel +export const submitPurchasereturnRequestMain = async (id) => { + return await request.put({ url: `/wms/purchasereturn-request-main/submit?id=` + id }) +} + +// 审批通过采购退货申请主 Excel +export const agreePurchasereturnRequestMain = async (id) => { + return await request.put({ url: `/wms/purchasereturn-request-main/agree?id=` + id }) +} + +// 审批驳回采购退货申请主 Excel +export const refusedPurchasereturnRequestMain = async (id) => { + return await request.put({ url: `/wms/purchasereturn-request-main/refused?id=` + id }) +} + +// 处理采购退货申请主 Excel +export const handlePurchasereturnRequestMain = async (id) => { + return await request.put({ url: `/wms/purchasereturn-request-main/handle?id=` + id }) +} diff --git a/src/api/wms/putawayJobDetail/index.ts b/src/api/wms/putawayJobDetail/index.ts new file mode 100644 index 0000000..af3a173 --- /dev/null +++ b/src/api/wms/putawayJobDetail/index.ts @@ -0,0 +1,66 @@ +import request from '@/config/axios' + +export interface PutawayJobDetailVO { + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + poNumber: string + poLine: string + fromLocationCode: string + toLocationCode: string + itemCode: string + itemName: string + itemDesc1: string + itemdesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询上架任务子列表 +export const getPutawayJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/putaway-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/putaway-job-detail/page`, params }) + } +} + +// 查询上架任务子详情 +export const getPutawayJobDetail = async (id: number) => { + return await request.get({ url: `/wms/putaway-job-detail/get?id=` + id }) +} + +// 新增上架任务子 +export const createPutawayJobDetail = async (data: PutawayJobDetailVO) => { + return await request.post({ url: `/wms/putaway-job-detail/create`, data }) +} + +// 修改上架任务子 +export const updatePutawayJobDetail = async (data: PutawayJobDetailVO) => { + return await request.put({ url: `/wms/putaway-job-detail/update`, data }) +} + +// 删除上架任务子 +export const deletePutawayJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/putaway-job-detail/delete?id=` + id }) +} + +// 导出上架任务子 Excel +export const exportPutawayJobDetail = async (params) => { + return await request.download({ url: `/wms/putaway-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/putaway-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/putawayJobMain/index.ts b/src/api/wms/putawayJobMain/index.ts new file mode 100644 index 0000000..6437b86 --- /dev/null +++ b/src/api/wms/putawayJobMain/index.ts @@ -0,0 +1,88 @@ +import request from '@/config/axios' + +export interface PutawayJobMainVO { + requestNumber: string + supplierCode: string + fromWarehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + concurrencyStamp: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + toWarehouseCode: string + fromAreaCodes: string + toAreaCodes: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询上架任务主列表 +export const getPutawayJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/putaway-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/putaway-job-main/page`, params }) + } +} + +// 查询上架任务主详情 +export const getPutawayJobMain = async (id: number) => { + return await request.get({ url: `/wms/putaway-job-main/get?id=` + id }) +} + +// 新增上架任务主 +export const createPutawayJobMain = async (data: PutawayJobMainVO) => { + return await request.post({ url: `/wms/putaway-job-main/create`, data }) +} + +// 修改上架任务主 +export const updatePutawayJobMain = async (data: PutawayJobMainVO) => { + return await request.put({ url: `/wms/putaway-job-main/update`, data }) +} + +// 删除上架任务主 +export const deletePutawayJobMain = async (id: number) => { + return await request.delete({ url: `/wms/putaway-job-main/delete?id=` + id }) +} + +// 导出上架任务主 Excel +export const exportPutawayJobMain = async (params) => { + return await request.download({ url: `/wms/putaway-job-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/putaway-job-main/get-import-template' }) +} + +// 关闭上架任务主 +export const closePutawayJobMain = (id: number) => { + return request.put({ url: '/wms/putaway-job-main/close?id=' + id }) +} diff --git a/src/api/wms/putawayRecordDetail/index.ts b/src/api/wms/putawayRecordDetail/index.ts new file mode 100644 index 0000000..af8a433 --- /dev/null +++ b/src/api/wms/putawayRecordDetail/index.ts @@ -0,0 +1,76 @@ +import request from '@/config/axios' + +export interface PutawayRecordDetailVO { + fromPackingNumber: string + toPackingNumber: string + fromBatch: string + inventoryStatus: string + poNumber: string + poLine: string + fromOwnerCode: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + toOwnerCode: string + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string + fromContainerNumber: string + toContainerNumber: string + toBatch: string +} + +// 查询上架记录子列表 +export const getPutawayRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/putaway-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/putaway-record-detail/page`, params }) + } +} + +// 查询上架记录子详情 +export const getPutawayRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/putaway-record-detail/get?id=` + id }) +} + +// 新增上架记录子 +export const createPutawayRecordDetail = async (data: PutawayRecordDetailVO) => { + return await request.post({ url: `/wms/putaway-record-detail/create`, data }) +} + +// 修改上架记录子 +export const updatePutawayRecordDetail = async (data: PutawayRecordDetailVO) => { + return await request.put({ url: `/wms/putaway-record-detail/update`, data }) +} + +// 删除上架记录子 +export const deletePutawayRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/putaway-record-detail/delete?id=` + id }) +} + +// 导出上架记录子 Excel +export const exportPutawayRecordDetail = async (params) => { + return await request.download({ url: `/wms/putaway-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/putaway-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/putawayRecordMain/index.ts b/src/api/wms/putawayRecordMain/index.ts new file mode 100644 index 0000000..6f5924d --- /dev/null +++ b/src/api/wms/putawayRecordMain/index.ts @@ -0,0 +1,69 @@ +import request from '@/config/axios' + +export interface PutawayRecordMainVO { + requestNumber: string + jobNumber: string + supplierCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + available: string +} + +// 查询上架记录主列表 +export const getPutawayRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/putaway-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/putaway-record-main/page`, params }) + } +} + +// 查询上架记录主详情 +export const getPutawayRecordMain = async (id: number) => { + return await request.get({ url: `/wms/putaway-record-main/get?id=` + id }) +} + +// 新增上架记录主 +export const createPutawayRecordMain = async (data: PutawayRecordMainVO) => { + return await request.post({ url: `/wms/putaway-record-main/create`, data }) +} + +// 修改上架记录主 +export const updatePutawayRecordMain = async (data: PutawayRecordMainVO) => { + return await request.put({ url: `/wms/putaway-record-main/update`, data }) +} + +// 删除上架记录主 +export const deletePutawayRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/putaway-record-main/delete?id=` + id }) +} + +// 导出上架记录主 Excel +export const exportPutawayRecordMain = async (params) => { + return await request.download({ url: `/wms/putaway-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/putaway-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/putawayRequestDetail/index.ts b/src/api/wms/putawayRequestDetail/index.ts new file mode 100644 index 0000000..3d2f27a --- /dev/null +++ b/src/api/wms/putawayRequestDetail/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface PutawayRequestDetailVO { + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + poNumber: string + poLine: string + fromLocationCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询上架申请子列表 +export const getPutawayRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/putaway-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/putaway-request-detail/page`, params }) + } +} + +// 查询上架申请子详情 +export const getPutawayRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/putaway-request-detail/get?id=` + id }) +} + +// 新增上架申请子 +export const createPutawayRequestDetail = async (data: PutawayRequestDetailVO) => { + return await request.post({ url: `/wms/putaway-request-detail/create`, data }) +} + +// 修改上架申请子 +export const updatePutawayRequestDetail = async (data: PutawayRequestDetailVO) => { + return await request.put({ url: `/wms/putaway-request-detail/update`, data }) +} + +// 删除上架申请子 +export const deletePutawayRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/putaway-request-detail/delete?id=` + id }) +} + +// 导出上架申请子 Excel +export const exportPutawayRequestDetail = async (params) => { + return await request.download({ url: `/wms/putaway-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/putaway-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/putawayRequestMain/index.ts b/src/api/wms/putawayRequestMain/index.ts new file mode 100644 index 0000000..e8f454d --- /dev/null +++ b/src/api/wms/putawayRequestMain/index.ts @@ -0,0 +1,97 @@ +import request from '@/config/axios' + +export interface PutawayRequestMainVO { + supplierCode: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询上架申请主列表 +export const getPutawayRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/putaway-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/putaway-request-main/page`, params }) + } +} + +// 查询上架申请主详情 +export const getPutawayRequestMain = async (id: number) => { + return await request.get({ url: `/wms/putaway-request-main/get?id=` + id }) +} + +// 新增上架申请主 +export const createPutawayRequestMain = async (data: PutawayRequestMainVO) => { + return await request.post({ url: `/wms/putaway-request-main/create`, data }) +} + +// 修改上架申请主 +export const updatePutawayRequestMain = async (data: PutawayRequestMainVO) => { + return await request.put({ url: `/wms/putaway-request-main/update`, data }) +} + +// 删除上架申请主 +export const deletePutawayRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/putaway-request-main/delete?id=` + id }) +} + +// 导出上架申请主 Excel +export const exportPutawayRequestMain = async (params) => { + return await request.download({ url: `/wms/putaway-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/putaway-request-main/get-import-template' }) +} + +// 关闭上架申请主 Excel +export const closePutawayRequestMain = async (id) => { + return await request.put({ url: `/wms/putaway-request-main/close?id=` + id }) +} + +// 重新添加上架申请主 Excel +export const reAddPutawayRequestMain = async (id) => { + return await request.put({ url: `/wms/putaway-request-main/reAdd?id=` + id }) +} + +// 提交上架申请主 Excel +export const submitPutawayRequestMain = async (id) => { + return await request.put({ url: `/wms/putaway-request-main/submit?id=` + id }) +} + +// 审批通过上架申请主 Excel +export const agreePutawayRequestMain = async (id) => { + return await request.put({ url: `/wms/putaway-request-main/agree?id=` + id }) +} + +// 审批驳回上架申请主 Excel +export const refusedPutawayRequestMain = async (id) => { + return await request.put({ url: `/wms/putaway-request-main/refused?id=` + id }) +} + +// 处理上架申请主 Excel +export const handlePutawayRequestMain = async (id) => { + return await request.put({ url: `/wms/putaway-request-main/handle?id=` + id }) +} diff --git a/src/api/wms/recordsetting/index.ts b/src/api/wms/recordsetting/index.ts new file mode 100644 index 0000000..25f8d0d --- /dev/null +++ b/src/api/wms/recordsetting/index.ts @@ -0,0 +1,52 @@ +import request from '@/config/axios' + +export interface RecordsettingVO { + code: string + interfaceType: string + activeTime: Date + expireTime: Date + remark: string + available: string + isSoftDeleted: string +} + +// 查询记录设置列表 +export const getRecordsettingPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/recordsetting/senior', data }) + } else { + return await request.get({ url: `/wms/recordsetting/page`, params }) + } +} + +// 查询记录设置详情 +export const getRecordsetting = async (id: number) => { + return await request.get({ url: `/wms/recordsetting/get?id=` + id }) +} + +// 新增记录设置 +export const createRecordsetting = async (data: RecordsettingVO) => { + return await request.post({ url: `/wms/recordsetting/create`, data }) +} + +// 修改记录设置 +export const updateRecordsetting = async (data: RecordsettingVO) => { + return await request.put({ url: `/wms/recordsetting/update`, data }) +} + +// 删除记录设置 +export const deleteRecordsetting = async (id: number) => { + return await request.delete({ url: `/wms/recordsetting/delete?id=` + id }) +} + +// 导出记录设置 Excel +export const exportRecordsetting = async (params) => { + return await request.download({ url: `/wms/recordsetting/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/recordsetting/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/remark/index.ts b/src/api/wms/remark/index.ts new file mode 100644 index 0000000..7a1ac36 --- /dev/null +++ b/src/api/wms/remark/index.ts @@ -0,0 +1,14 @@ +import request from '@/config/axios' +// 查询备注列表 +export const getRemarkPage = async (params) => { + return await request.get({ url: `/infra/remark/list`, params }) +} + +// 新增备注 +export const createRemark= async (data) => { + return await request.post({ url: `/infra/remark/create`, data }) +} +// 查询变更记录列表 +export const getChangeRecordPage = async (params) => { + return await request.get({ url: `/infra/trends/list`, params }) +} diff --git a/src/api/wms/repleinshJobDetail/index.ts b/src/api/wms/repleinshJobDetail/index.ts new file mode 100644 index 0000000..86483e0 --- /dev/null +++ b/src/api/wms/repleinshJobDetail/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +export interface RepleinshJobDetailVO { + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + fromLocationCode: string + toLocationCode: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询补料任务子列表 +export const getRepleinshJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/job/repleinsh-job-detail/senior', data }) + } else { + return await request.get({ url: `/job/repleinsh-job-detail/page`, params }) + } +} + +// 查询补料任务子详情 +export const getRepleinshJobDetail = async (id: number) => { + return await request.get({ url: `/job/repleinsh-job-detail/get?id=` + id }) +} + +// 新增补料任务子 +export const createRepleinshJobDetail = async (data: RepleinshJobDetailVO) => { + return await request.post({ url: `/job/repleinsh-job-detail/create`, data }) +} + +// 修改补料任务子 +export const updateRepleinshJobDetail = async (data: RepleinshJobDetailVO) => { + return await request.put({ url: `/job/repleinsh-job-detail/update`, data }) +} + +// 删除补料任务子 +export const deleteRepleinshJobDetail = async (id: number) => { + return await request.delete({ url: `/job/repleinsh-job-detail/delete?id=` + id }) +} + +// 导出补料任务子 Excel +export const exportRepleinshJobDetail = async (params) => { + return await request.download({ url: `/job/repleinsh-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/job/repleinsh-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/repleinshJobMain/index.ts b/src/api/wms/repleinshJobMain/index.ts new file mode 100644 index 0000000..7be585c --- /dev/null +++ b/src/api/wms/repleinshJobMain/index.ts @@ -0,0 +1,106 @@ +import request from '@/config/axios' + +export interface RepleinshJobMainVO { + requestNumber: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromWarehouseCode: string + toWarehouseCode: string + fromAreaCodes: string + toAreaCodes: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询补料任务主列表 +export const getRepleinshJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/repleinsh-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/repleinsh-job-main/page`, params }) + } +} + +// 查询补料任务主详情 +export const getRepleinshJobMain = async (id: number) => { + return await request.get({ url: `/wms/repleinsh-job-main/get?id=` + id }) +} + +// 新增补料任务主 +export const createRepleinshJobMain = async (data: RepleinshJobMainVO) => { + return await request.post({ url: `/wms/repleinsh-job-main/create`, data }) +} + +// 修改补料任务主 +export const updateRepleinshJobMain = async (data: RepleinshJobMainVO) => { + return await request.put({ url: `/wms/repleinsh-job-main/update`, data }) +} + +// 删除补料任务主 +export const deleteRepleinshJobMain = async (id: number) => { + return await request.delete({ url: `/wms/repleinsh-job-main/delete?id=` + id }) +} + +// 导出补料任务主 Excel +export const exportRepleinshJobMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/repleinsh-job-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/repleinsh-job-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/repleinsh-job-main/get-import-template' }) +} + +// 承接发料任务 +export const acceptRepleinshMain = async (id) => { + return await request.put({ url: `/wms/repleinsh-job-main/accept?id=` + id }) +} + +// 放弃发料任务 +export const abandonRepleinshMain = async (id) => { + return await request.put({ url: `/wms/repleinsh-job-main/abandon?id=` + id }) +} + +// 关闭发料任务 +export const closeRepleinshMain = async (id) => { + return await request.put({ url: `/wms/repleinsh-job-main/close?id=` + id }) +} + +// 执行发料任务 +export const executeRepleinshMain = async (data) => { + return await request.put({ url: `/wms/repleinsh-job-main/execute`, data}) +} \ No newline at end of file diff --git a/src/api/wms/repleinshRecordDetail/index.ts b/src/api/wms/repleinshRecordDetail/index.ts new file mode 100644 index 0000000..2dc7060 --- /dev/null +++ b/src/api/wms/repleinshRecordDetail/index.ts @@ -0,0 +1,74 @@ +import request from '@/config/axios' + +export interface RepleinshRecordDetailVO { + fromPackingNumber: string + fromContainerNumber: string + fromBatch: string + inventoryStatus: string + fromOwnerCode: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + toOwnerCode: string + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string + toPackingNumber: string + toContainerNumber: string + toBatch: string +} + +// 查询补料记录子列表 +export const getRepleinshRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/repleinsh-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/repleinsh-record-detail/page`, params }) + } +} + +// 查询补料记录子详情 +export const getRepleinshRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/repleinsh-record-detail/get?id=` + id }) +} + +// 新增补料记录子 +export const createRepleinshRecordDetail = async (data: RepleinshRecordDetailVO) => { + return await request.post({ url: `/wms/repleinsh-record-detail/create`, data }) +} + +// 修改补料记录子 +export const updateRepleinshRecordDetail = async (data: RepleinshRecordDetailVO) => { + return await request.put({ url: `/wms/repleinsh-record-detail/update`, data }) +} + +// 删除补料记录子 +export const deleteRepleinshRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/repleinsh-record-detail/delete?id=` + id }) +} + +// 导出补料记录子 Excel +export const exportRepleinshRecordDetail = async (params) => { + return await request.download({ url: `/wms/repleinsh-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/repleinsh-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/repleinshRecordMain/index.ts b/src/api/wms/repleinshRecordMain/index.ts new file mode 100644 index 0000000..b1557d5 --- /dev/null +++ b/src/api/wms/repleinshRecordMain/index.ts @@ -0,0 +1,68 @@ +import request from '@/config/axios' + +export interface RepleinshRecordMainVO { + requestNumber: string + jobNumber: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + available: string +} + +// 查询补料记录主列表 +export const getRepleinshRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/repleinsh-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/repleinsh-record-main/page`, params }) + } +} + +// 查询补料记录主详情 +export const getRepleinshRecordMain = async (id: number) => { + return await request.get({ url: `/wms/repleinsh-record-main/get?id=` + id }) +} + +// 新增补料记录主 +export const createRepleinshRecordMain = async (data: RepleinshRecordMainVO) => { + return await request.post({ url: `/wms/repleinsh-record-main/create`, data }) +} + +// 修改补料记录主 +export const updateRepleinshRecordMain = async (data: RepleinshRecordMainVO) => { + return await request.put({ url: `/wms/repleinsh-record-main/update`, data }) +} + +// 删除补料记录主 +export const deleteRepleinshRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/repleinsh-record-main/delete?id=` + id }) +} + +// 导出补料记录主 Excel +export const exportRepleinshRecordMain = async (params) => { + return await request.download({ url: `/wms/repleinsh-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/repleinsh-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/repleinshRequestDetail/index.ts b/src/api/wms/repleinshRequestDetail/index.ts new file mode 100644 index 0000000..9e15b37 --- /dev/null +++ b/src/api/wms/repleinshRequestDetail/index.ts @@ -0,0 +1,62 @@ +import request from '@/config/axios' + +export interface RepleinshRequestDetailVO { + inventoryStatus: string + toLocationCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询补料申请子列表 +export const getRepleinshRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/repleinsh-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/repleinsh-request-detail/page`, params }) + } +} + +// 查询补料申请子详情 +export const getRepleinshRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/repleinsh-request-detail/get?id=` + id }) +} + +// 新增补料申请子 +export const createRepleinshRequestDetail = async (data: RepleinshRequestDetailVO) => { + return await request.post({ url: `/wms/repleinsh-request-detail/create`, data }) +} + +// 修改补料申请子 +export const updateRepleinshRequestDetail = async (data: RepleinshRequestDetailVO) => { + return await request.put({ url: `/wms/repleinsh-request-detail/update`, data }) +} + +// 删除补料申请子 +export const deleteRepleinshRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/repleinsh-request-detail/delete?id=` + id }) +} + +// 导出补料申请子 Excel +export const exportRepleinshRequestDetail = async (params) => { + return await request.download({ url: `/wms/repleinsh-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/repleinsh-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/repleinshRequestMain/index.ts b/src/api/wms/repleinshRequestMain/index.ts new file mode 100644 index 0000000..5a30d78 --- /dev/null +++ b/src/api/wms/repleinshRequestMain/index.ts @@ -0,0 +1,102 @@ +import request from '@/config/axios' + +export interface RepleinshRequestMainVO { + fomWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询补料申请主列表 +export const getRepleinshRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/repleinsh-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/repleinsh-request-main/page`, params }) + } +} + +// 查询补料申请主详情 +export const getRepleinshRequestMain = async (id: number) => { + return await request.get({ url: `/wms/repleinsh-request-main/get?id=` + id }) +} + +// 新增补料申请主 +export const createRepleinshRequestMain = async (data: RepleinshRequestMainVO) => { + return await request.post({ url: `/wms/repleinsh-request-main/create`, data }) +} + +// 修改补料申请主 +export const updateRepleinshRequestMain = async (data: RepleinshRequestMainVO) => { + return await request.put({ url: `/wms/repleinsh-request-main/update`, data }) +} + +// 删除补料申请主 +export const deleteRepleinshRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/repleinsh-request-main/delete?id=` + id }) +} + +// 导出补料申请主 Excel +export const exportRepleinshRequestMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/repleinsh-request-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/repleinsh-request-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/repleinsh-request-main/get-import-template' }) +} + + +// 关闭 +export const close = (id) => { + return request.put({ url: '/wms/repleinsh-request-main/close?id=' + id }) +} + +// 重新添加 +export const reAdd = (id) => { + return request.put({ url: '/wms/repleinsh-request-main/reAdd?id=' + id }) +} + +// 提交审批 +export const submit = (id) => { + return request.put({ url: '/wms/repleinsh-request-main/submit?id=' + id }) +} + +// 驳回 +export const refused = (id) => { + return request.put({ url: '/wms/repleinsh-request-main/refused?id=' + id }) +} + +// 审批通过 +export const agree = (id) => { + return request.put({ url: '/wms/repleinsh-request-main/agree?id=' + id }) +} + +// 处理 +export const handle = (id) => { + return request.put({ url: '/wms/repleinsh-request-main/handle?id=' + id }) +} \ No newline at end of file diff --git a/src/api/wms/requestsetting/index.ts b/src/api/wms/requestsetting/index.ts new file mode 100644 index 0000000..7c6ea88 --- /dev/null +++ b/src/api/wms/requestsetting/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export interface RequestsettingVO { + code: string + requestMode: string + activeTime: Date + expireTime: Date + remark: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string + available: string + isSoftDeleted: string +} + +// 查询申请设置列表 +export const getRequestsettingPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/requestsetting/senior', data }) + } else { + return await request.get({ url: `/wms/requestsetting/page`, params }) + } +} + +// 查询申请设置详情 +export const getRequestsetting = async (id: number) => { + return await request.get({ url: `/wms/requestsetting/get?id=` + id }) +} + +// 新增申请设置 +export const createRequestsetting = async (data: RequestsettingVO) => { + return await request.post({ url: `/wms/requestsetting/create`, data }) +} + +// 修改申请设置 +export const updateRequestsetting = async (data: RequestsettingVO) => { + return await request.put({ url: `/wms/requestsetting/update`, data }) +} + +// 删除申请设置 +export const deleteRequestsetting = async (id: number) => { + return await request.delete({ url: `/wms/requestsetting/delete?id=` + id }) +} + +// 导出申请设置 Excel +export const exportRequestsetting = async (params) => { + return await request.download({ url: `/wms/requestsetting/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/requestsetting/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/rule/index.ts b/src/api/wms/rule/index.ts new file mode 100644 index 0000000..52b279f --- /dev/null +++ b/src/api/wms/rule/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface RuleVO { + strategyCode: string + priority: number + code: string + name: string + description: string + status: number + condition: string + configuration: string +} + +// 查询规则列表 +export const getRulePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/rule/senior', data }) + } else { + return await request.get({ url: `/wms/rule/page`, params }) + } +} + +// 查询规则详情 +export const getRule = async (id: number) => { + return await request.get({ url: `/wms/rule/get?id=` + id }) +} + +// 新增规则 +export const createRule = async (data: RuleVO) => { + return await request.post({ url: `/wms/rule/create`, data }) +} + +// 修改规则 +export const updateRule = async (data: RuleVO) => { + return await request.put({ url: `/wms/rule/update`, data }) +} + +// 删除规则 +export const deleteRule = async (id: number) => { + return await request.delete({ url: `/wms/rule/delete?id=` + id }) +} + +// 导出规则 Excel +export const exportRule = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/rule/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/rule/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/rule/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/saleDetail/index.ts b/src/api/wms/saleDetail/index.ts new file mode 100644 index 0000000..a197299 --- /dev/null +++ b/src/api/wms/saleDetail/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export interface SaleDetailVO { + lineNumber: string + projectCode: string + stdPackQty: number + stdPackUnit: string + customerPackQty: number + customerPackUnit: string + convertRate: number + shippedQty: number + receivedQty: number + returnedQty: number + singlePrice: number + amount: number + number: string + itemCode: string + remark: string + createTime: Date + creator: string + orderQty: number + uom: string + updateTime: Date + updater: string + available: string +} + +// 查询销售订单子列表 +export const getSaleDetailPage = async (params) => { + return await request.get({ url: `/wms/sale-detail/page`, params }) +} + +// 查询销售订单子详情 +export const getSaleDetail = async (id: number) => { + return await request.get({ url: `/wms/sale-detail/get?id=` + id }) +} + +// 新增销售订单子 +export const createSaleDetail = async (data: SaleDetailVO) => { + return await request.post({ url: `/wms/sale-detail/create`, data }) +} + +// 修改销售订单子 +export const updateSaleDetail = async (data: SaleDetailVO) => { + return await request.put({ url: `/wms/sale-detail/update`, data }) +} + +// 删除销售订单子 +export const deleteSaleDetail = async (id: number) => { + return await request.delete({ url: `/wms/sale-detail/delete?id=` + id }) +} + +// 导出销售订单子 Excel +export const exportSaleDetail = async (params) => { + return await request.download({ url: `/wms/sale-detail/export-excel`, params }) +} diff --git a/src/api/wms/saleMain/index.ts b/src/api/wms/saleMain/index.ts new file mode 100644 index 0000000..75b3ca1 --- /dev/null +++ b/src/api/wms/saleMain/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface SaleMainVO { + customerCode: string + type: string + orderDate: Date + dueDate: Date + version: string + taxRate: number + contactName: string + contactPhone: string + contactEmail: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + updateTime: Date + updater: string + currentStage: number + available: string +} + +// 查询销售订单主列表 +export const getSaleMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/sale-main/senior', data }) + } else { + return await request.get({ url: `/wms/sale-main/page`, params }) + } +} + +// 查询销售订单主详情 +export const getSaleMain = async (id: number) => { + return await request.get({ url: `/wms/sale-main/get?id=` + id }) +} + +// 新增销售订单主 +export const createSaleMain = async (data: SaleMainVO) => { + return await request.post({ url: `/wms/sale-main/create`, data }) +} + +// 修改销售订单主 +export const updateSaleMain = async (data: SaleMainVO) => { + return await request.put({ url: `/wms/sale-main/update`, data }) +} + +// 删除销售订单主 +export const deleteSaleMain = async (id: number) => { + return await request.delete({ url: `/wms/sale-main/delete?id=` + id }) +} + +// 导出销售订单主 Excel +export const exportSaleMain = async (params) => { + return await request.download({ url: `/wms/sale-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/sale-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/saleprice/index.ts b/src/api/wms/saleprice/index.ts new file mode 100644 index 0000000..6ac634e --- /dev/null +++ b/src/api/wms/saleprice/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface SalepriceVO { + customercode: string + itemcode: string + currency: string + price: number + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询销售价格单列表 +export const getSalepricePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/saleprice/senior', data }) + } else { + return await request.get({ url: `/wms/saleprice/page`, params }) + } +} + +// 查询销售价格单详情 +export const getSaleprice = async (id: number) => { + return await request.get({ url: `/wms/saleprice/get?id=` + id }) +} + +// 新增销售价格单 +export const createSaleprice = async (data: SalepriceVO) => { + return await request.post({ url: `/wms/saleprice/create`, data }) +} + +// 修改销售价格单 +export const updateSaleprice = async (data: SalepriceVO) => { + return await request.put({ url: `/wms/saleprice/update`, data }) +} + +// 删除销售价格单 +export const deleteSaleprice = async (id: number) => { + return await request.delete({ url: `/wms/saleprice/delete?id=` + id }) +} + +// 导出销售价格单 Excel +export const exportSaleprice = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/saleprice/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/saleprice/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/saleprice/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/scrapJobDetail/index.ts b/src/api/wms/scrapJobDetail/index.ts new file mode 100644 index 0000000..c333d80 --- /dev/null +++ b/src/api/wms/scrapJobDetail/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface ScrapJobDetailVO { + ownerCode: string + packingNumber: string + containerNumber: string + batch: string + fromLocationCode: string + inventoryStatus: string + reason: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string +} + +// 查询报废出库任务子列表 +export const getScrapJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/scrap-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/scrap-job-detail/page`, params }) + } +} + +// 查询报废出库任务子详情 +export const getScrapJobDetail = async (id: number) => { + return await request.get({ url: `/wms/scrap-job-detail/get?id=` + id }) +} + +// 新增报废出库任务子 +export const createScrapJobDetail = async (data: ScrapJobDetailVO) => { + return await request.post({ url: `/wms/scrap-job-detail/create`, data }) +} + +// 修改报废出库任务子 +export const updateScrapJobDetail = async (data: ScrapJobDetailVO) => { + return await request.put({ url: `/wms/scrap-job-detail/update`, data }) +} + +// 删除报废出库任务子 +export const deleteScrapJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/scrap-job-detail/delete?id=` + id }) +} + +// 导出报废出库任务子 Excel +export const exportScrapJobDetail = async (params) => { + return await request.download({ url: `/wms/scrap-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/scrap-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/scrapJobMain/index.ts b/src/api/wms/scrapJobMain/index.ts new file mode 100644 index 0000000..3cc50a9 --- /dev/null +++ b/src/api/wms/scrapJobMain/index.ts @@ -0,0 +1,79 @@ +import request from '@/config/axios' + +export interface ScrapJobMainVO { + requestNumber: string + fromWarehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromAreaCodes: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询报废出库任务主列表 +export const getScrapJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/scrap-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/scrap-job-main/page`, params }) + } +} + +// 查询报废出库任务主详情 +export const getScrapJobMain = async (id: number) => { + return await request.get({ url: `/wms/scrap-job-main/get?id=` + id }) +} + +// 新增报废出库任务主 +export const createScrapJobMain = async (data: ScrapJobMainVO) => { + return await request.post({ url: `/wms/scrap-job-main/create`, data }) +} + +// 修改报废出库任务主 +export const updateScrapJobMain = async (data: ScrapJobMainVO) => { + return await request.put({ url: `/wms/scrap-job-main/update`, data }) +} + +// 删除报废出库任务主 +export const deleteScrapJobMain = async (id: number) => { + return await request.delete({ url: `/wms/scrap-job-main/delete?id=` + id }) +} + +// 导出报废出库任务主 Excel +export const exportScrapJobMain = async (params) => { + return await request.download({ url: `/wms/scrap-job-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/scrap-job-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/scrapRecordDetail/index.ts b/src/api/wms/scrapRecordDetail/index.ts new file mode 100644 index 0000000..4ff183b --- /dev/null +++ b/src/api/wms/scrapRecordDetail/index.ts @@ -0,0 +1,70 @@ +import request from '@/config/axios' + +export interface ScrapRecordDetailVO { + fromOwnerCode: string + packingNumber: string + containerNumber: string + batch: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + inventoryStatus: string + reason: string + singlePrice: number + amount: number + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + jobDetailId: string +} + +// 查询报废出库记录子列表 +export const getScrapRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/scrap-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/scrap-record-detail/page`, params }) + } +} + +// 查询报废出库记录子详情 +export const getScrapRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/scrap-record-detail/get?id=` + id }) +} + +// 新增报废出库记录子 +export const createScrapRecordDetail = async (data: ScrapRecordDetailVO) => { + return await request.post({ url: `/wms/scrap-record-detail/create`, data }) +} + +// 修改报废出库记录子 +export const updateScrapRecordDetail = async (data: ScrapRecordDetailVO) => { + return await request.put({ url: `/wms/scrap-record-detail/update`, data }) +} + +// 删除报废出库记录子 +export const deleteScrapRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/scrap-record-detail/delete?id=` + id }) +} + +// 导出报废出库记录子 Excel +export const exportScrapRecordDetail = async (params) => { + return await request.download({ url: `/wms/scrap-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/scrap-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/scrapRecordMain/index.ts b/src/api/wms/scrapRecordMain/index.ts new file mode 100644 index 0000000..57f2a8b --- /dev/null +++ b/src/api/wms/scrapRecordMain/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface ScrapRecordMainVO { + requestNumber: string + jobNumber: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + code: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + available: string +} + +// 查询报废出库记录主列表 +export const getScrapRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/scrap-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/scrap-record-main/page`, params }) + } +} + +// 查询报废出库记录主详情 +export const getScrapRecordMain = async (id: number) => { + return await request.get({ url: `/wms/scrap-record-main/get?id=` + id }) +} + +// 新增报废出库记录主 +export const createScrapRecordMain = async (data: ScrapRecordMainVO) => { + return await request.post({ url: `/wms/scrap-record-main/create`, data }) +} + +// 修改报废出库记录主 +export const updateScrapRecordMain = async (data: ScrapRecordMainVO) => { + return await request.put({ url: `/wms/scrap-record-main/update`, data }) +} + +// 删除报废出库记录主 +export const deleteScrapRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/scrap-record-main/delete?id=` + id }) +} + +// 导出报废出库记录主 Excel +export const exportScrapRecordMain = async (params) => { + return await request.download({ url: `/wms/scrap-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/scrap-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/scrapRequestDetail/index.ts b/src/api/wms/scrapRequestDetail/index.ts new file mode 100644 index 0000000..99a15ec --- /dev/null +++ b/src/api/wms/scrapRequestDetail/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface ScrapRequestDetailVO { + fromOwnerCode: string + packingNumber: string + containerNumber: string + batch: string + fromLocationCode: string + inventoryStatus: string + reason: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string +} + +// 查询报废出库申请子列表 +export const getScrapRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/scrap-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/scrap-request-detail/page`, params }) + } +} + +// 查询报废出库申请子详情 +export const getScrapRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/scrap-request-detail/get?id=` + id }) +} + +// 新增报废出库申请子 +export const createScrapRequestDetail = async (data: ScrapRequestDetailVO) => { + return await request.post({ url: `/wms/scrap-request-detail/create`, data }) +} + +// 修改报废出库申请子 +export const updateScrapRequestDetail = async (data: ScrapRequestDetailVO) => { + return await request.put({ url: `/wms/scrap-request-detail/update`, data }) +} + +// 删除报废出库申请子 +export const deleteScrapRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/scrap-request-detail/delete?id=` + id }) +} + +// 导出报废出库申请子 Excel +export const exportScrapRequestDetail = async (params) => { + return await request.download({ url: `/wms/scrap-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/scrap-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/scrapRequestMain/index.ts b/src/api/wms/scrapRequestMain/index.ts new file mode 100644 index 0000000..6a6ef1f --- /dev/null +++ b/src/api/wms/scrapRequestMain/index.ts @@ -0,0 +1,98 @@ +import request from '@/config/axios' + +export interface ScrapRequestMainVO { + fromWarehouseCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + fromLocationTypes: string + fromAreaCodes: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询报废出库申请主列表 +export const getScrapRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/scrap-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/scrap-request-main/page`, params }) + } +} + +// 查询报废出库申请主详情 +export const getScrapRequestMain = async (id: number) => { + return await request.get({ url: `/wms/scrap-request-main/get?id=` + id }) +} + +// 新增报废出库申请主 +export const createScrapRequestMain = async (data: ScrapRequestMainVO) => { + return await request.post({ url: `/wms/scrap-request-main/create`, data }) +} + +// 修改报废出库申请主 +export const updateScrapRequestMain = async (data: ScrapRequestMainVO) => { + return await request.put({ url: `/wms/scrap-request-main/update`, data }) +} + +// 删除报废出库申请主 +export const deleteScrapRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/scrap-request-main/delete?id=` + id }) +} + +// 导出报废出库申请主 Excel +export const exportScrapRequestMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/scrap-request-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/scrap-request-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/scrap-request-main/get-import-template' }) +} + +// 关闭-报废出库申请 +export const closeScrapRequestMain = async (id) => { + return await request.put({ url: `/wms/scrap-request-main/close?id=` + id }) +} + +// 重新添加-报废出库申请 +export const reAddScrapRequestMain = async (id) => { + return await request.put({ url: `/wms/scrap-request-main/reAdd?id=` + id }) +} + +// 提交审批-报废出库申请 +export const submitScrapRequestMain = async (id) => { + return await request.put({ url: `/wms/scrap-request-main/submit?id=` + id }) +} + +// 审批驳回-报废出库申请 +export const refusedScrapRequestMain = async (id) => { + return await request.put({ url: `/wms/scrap-request-main/refused?id=` + id }) +} + +// 审批通过-报废出库申请 +export const agreeScrapRequestMain = async (id) => { + return await request.put({ url: `/wms/scrap-request-main/agree?id=` + id }) +} + +// 处理-报废出库申请 +export const handleScrapRequestMain = async (id) => { + return await request.put({ url: `/wms/scrap-request-main/handle?id=` + id }) +} diff --git a/src/api/wms/shift/index.ts b/src/api/wms/shift/index.ts new file mode 100644 index 0000000..f663b79 --- /dev/null +++ b/src/api/wms/shift/index.ts @@ -0,0 +1,60 @@ +import request from '@/config/axios' + +export interface ShiftVO { + code: string + name: string + description: string + beginTime: Date + entTime: Date + activeTime: Date + expireTime: Date + remark: string + endAtNextDay: string + available: string +} + +// 查询班次列表 +export const getShiftPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/shift/senior', data }) + } else { + return await request.get({ url: `/wms/shift/page`, params }) + } +} + +// 查询班次详情 +export const getShift = async (id: number) => { + return await request.get({ url: `/wms/shift/get?id=` + id }) +} + +// 新增班次 +export const createShift = async (data: ShiftVO) => { + return await request.post({ url: `/wms/shift/create`, data }) +} + +// 修改班次 +export const updateShift = async (data: ShiftVO) => { + return await request.put({ url: `/wms/shift/update`, data }) +} + +// 删除班次 +export const deleteShift = async (id: number) => { + return await request.delete({ url: `/wms/shift/delete?id=` + id }) +} + +// 导出班次 Excel +export const exportShift = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/shift/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/shift/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/shift/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/stdcostprice/index.ts b/src/api/wms/stdcostprice/index.ts new file mode 100644 index 0000000..b7e3be1 --- /dev/null +++ b/src/api/wms/stdcostprice/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface StdcostpriceVO { + supplierCode: string + itemCode: string + currency: string + price: number + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询标准成本价格单列表 +export const getStdcostpricePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/stdcostprice/senior', data }) + } else { + return await request.get({ url: `/wms/stdcostprice/page`, params }) + } +} + +// 查询标准成本价格单详情 +export const getStdcostprice = async (id: number) => { + return await request.get({ url: `/wms/stdcostprice/get?id=` + id }) +} + +// 新增标准成本价格单 +export const createStdcostprice = async (data: StdcostpriceVO) => { + return await request.post({ url: `/wms/stdcostprice/create`, data }) +} + +// 修改标准成本价格单 +export const updateStdcostprice = async (data: StdcostpriceVO) => { + return await request.put({ url: `/wms/stdcostprice/update`, data }) +} + +// 删除标准成本价格单 +export const deleteStdcostprice = async (id: number) => { + return await request.delete({ url: `/wms/stdcostprice/delete?id=` + id }) +} + +// 导出标准成本价格单 Excel +export const exportStdcostprice = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/stdcostprice/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/stdcostprice/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/stdcostprice/get-import-template' }) +} diff --git a/src/api/wms/strategy/index.ts b/src/api/wms/strategy/index.ts new file mode 100644 index 0000000..a4e235b --- /dev/null +++ b/src/api/wms/strategy/index.ts @@ -0,0 +1,41 @@ +import request from '@/config/axios' + +export interface StrategyVO { + remark: string + code: string + name: string + description: string + type: string + priority: number + isActive: string +} + +// 查询策略列表 +export const getStrategyPage = async (params) => { + return await request.get({ url: `/wms/strategy/page`, params }) +} + +// 查询策略详情 +export const getStrategy = async (id: number) => { + return await request.get({ url: `/wms/strategy/get?id=` + id }) +} + +// 新增策略 +export const createStrategy = async (data: StrategyVO) => { + return await request.post({ url: `/wms/strategy/create`, data }) +} + +// 修改策略 +export const updateStrategy = async (data: StrategyVO) => { + return await request.put({ url: `/wms/strategy/update`, data }) +} + +// 删除策略 +export const deleteStrategy = async (id: number) => { + return await request.delete({ url: `/wms/strategy/delete?id=` + id }) +} + +// 导出策略 Excel +export const exportStrategy = async (params) => { + return await request.download({ url: `/wms/strategy/export-excel`, params }) +} diff --git a/src/api/wms/supplier/index.ts b/src/api/wms/supplier/index.ts new file mode 100644 index 0000000..805a416 --- /dev/null +++ b/src/api/wms/supplier/index.ts @@ -0,0 +1,72 @@ +import request from '@/config/axios' + +export interface SupplierVO { + code: string + name: string + shortName: string + address: string + country: string + city: string + phone: string + fax: string + postId: string + contacts: string + bank: string + currency: string + taxRate: number + type: string + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询供应商列表分页 +export const getSupplierPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/supplier/senior', data }) + } else { + return await request.get({ url: `/wms/supplier/page`, params }) + } +} +// 查询供应商列表 +export const getSupplierList = async (params) => { + return await request.get({ url: `/wms/supplier/list`, params }) +} + +// 查询供应商详情 +export const getSupplier = async (id: number) => { + return await request.get({ url: `/wms/supplier/get?id=` + id }) +} + +// 新增供应商 +export const createSupplier = async (data: SupplierVO) => { + return await request.post({ url: `/wms/supplier/create`, data }) +} + +// 修改供应商 +export const updateSupplier = async (data: SupplierVO) => { + return await request.put({ url: `/wms/supplier/update`, data }) +} + +// 删除供应商 +export const deleteSupplier = async (id: number) => { + return await request.delete({ url: `/wms/supplier/delete?id=` + id }) +} + +// 导出供应商 Excel +export const exportSupplier = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/supplier/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/supplier/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/supplier/get-import-template' }) +} diff --git a/src/api/wms/supplierUser/index.ts b/src/api/wms/supplierUser/index.ts new file mode 100644 index 0000000..bdb7c5b --- /dev/null +++ b/src/api/wms/supplierUser/index.ts @@ -0,0 +1,54 @@ +import request from '@/config/axios' + +export interface SupplierUserVO { + id: number + userId: number + supplierCode: string + status: string + deletionTime: Date + deleterId: string + extraProperties: string + concurrencyStamp: number + remark: string +} + +// 查询供应商用户关联信息列表 +export const getSupplierUserPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/supplier-user/senior', data }) + } else { + return await request.get({ url: `/wms/supplier-user/page`, params }) + } +} + +// 查询供应商用户关联信息详情 +export const getSupplierUser = async (id: number) => { + return await request.get({ url: `/wms/supplier-user/get?id=` + id }) +} + +// 新增供应商用户关联信息 +export const createSupplierUser = async (data: SupplierUserVO) => { + return await request.post({ url: `/wms/supplier-user/create`, data }) +} + +// 修改供应商用户关联信息 +export const updateSupplierUser = async (data: SupplierUserVO) => { + return await request.put({ url: `/wms/supplier-user/update`, data }) +} + +// 删除供应商用户关联信息 +export const deleteSupplierUser = async (id: number) => { + return await request.delete({ url: `/wms/supplier-user/delete?id=` + id }) +} + +// 导出供应商用户关联信息 Excel +export const exportSupplierUser = async (params) => { + return await request.download({ url: `/wms/supplier-user/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/supplier-user/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/supplierdeliverRecordDetail/index.ts b/src/api/wms/supplierdeliverRecordDetail/index.ts new file mode 100644 index 0000000..d346cbb --- /dev/null +++ b/src/api/wms/supplierdeliverRecordDetail/index.ts @@ -0,0 +1,87 @@ +import request from '@/config/axios' + +export interface SupplierdeliverRecordDetailVO { + fromPackingNumber: string + toPackingNumber: string + fromBatch: string + altBatch: string + fromContainerNumber: string + toContainerNumber: string + arriveDate: Date + produceDate: Date + expireDate: Date + poNumber: string + poLine: string + stdPackQty: number + stdPackUnit: string + supplierQty: number + supplierUom: string + convertRate: number + fromLocationCode: string + toLocationCode: string + fromLocationGroupCode: string + toLocationGroupCode: string + fromAreaCode: string + toAreaCode: string + fromOwnerCode: string + toOwnerCode: string + projectCode: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string + jobDetailId: string + toBatch: string +} + +// 查询供应商发货记录子列表 +export const getSupplierdeliverRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/supplierdeliver-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/supplierdeliver-record-detail/page`, params }) + } +} + +// 查询采供应商发货记录子列表 +export const getSupplierdeliverRecordDetailList = async (params) => { + return await request.get({ url: `/wms/supplierdeliver-record-detail/allList`, params }) +} + +// 查询供应商发货记录子详情 +export const getSupplierdeliverRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/supplierdeliver-record-detail/get?id=` + id }) +} + +// 新增供应商发货记录子 +export const createSupplierdeliverRecordDetail = async (data: SupplierdeliverRecordDetailVO) => { + return await request.post({ url: `/wms/supplierdeliver-record-detail/create`, data }) +} + +// 修改供应商发货记录子 +export const updateSupplierdeliverRecordDetail = async (data: SupplierdeliverRecordDetailVO) => { + return await request.put({ url: `/wms/supplierdeliver-record-detail/update`, data }) +} + +// 删除供应商发货记录子 +export const deleteSupplierdeliverRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/supplierdeliver-record-detail/delete?id=` + id }) +} + +// 导出供应商发货记录子 Excel +export const exportSupplierdeliverRecordDetail = async (params) => { + return await request.download({ url: `/wms/supplierdeliver-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/supplierdeliver-record-detail/get-import-template' }) +} diff --git a/src/api/wms/supplierdeliverRecordMain/index.ts b/src/api/wms/supplierdeliverRecordMain/index.ts new file mode 100644 index 0000000..1b1fce2 --- /dev/null +++ b/src/api/wms/supplierdeliverRecordMain/index.ts @@ -0,0 +1,75 @@ +import request from '@/config/axios' + +export interface SupplierdeliverRecordMainVO { + requestNumber: string + ppNumber: string + asnNumber: string + supplierCode: string + contactName: string + contactPhone: string + contactEmail: string + fromWarehouseCode: string + toWarehouseCode: string + toDockCode: string + timeWindow: string + planArriveTime: Date + carrierCode: string + transferMode: string + vehiclePlateNumber: string + outTransaction: string + inTransaction: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: number + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + serialNumber: string + available: string +} + +// 查询供应商发货记录主列表 +export const getSupplierdeliverRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/supplierdeliver-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/supplierdeliver-record-main/page`, params }) + } +} + +// 查询供应商发货记录主详情 +export const getSupplierdeliverRecordMain = async (id: number) => { + return await request.get({ url: `/wms/supplierdeliver-record-main/get?id=` + id }) +} + +// 新增供应商发货记录主 +export const createSupplierdeliverRecordMain = async (data: SupplierdeliverRecordMainVO) => { + return await request.post({ url: `/wms/supplierdeliver-record-main/create`, data }) +} + +// 修改供应商发货记录主 +export const updateSupplierdeliverRecordMain = async (data: SupplierdeliverRecordMainVO) => { + return await request.put({ url: `/wms/supplierdeliver-record-main/update`, data }) +} + +// 删除供应商发货记录主 +export const deleteSupplierdeliverRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/supplierdeliver-record-main/delete?id=` + id }) +} + +// 导出供应商发货记录主 Excel +export const exportSupplierdeliverRecordMain = async (params) => { + return await request.download({ url: `/wms/supplierdeliver-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/supplierdeliver-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/supplierdeliverRequestDetail/index.ts b/src/api/wms/supplierdeliverRequestDetail/index.ts new file mode 100644 index 0000000..e029b88 --- /dev/null +++ b/src/api/wms/supplierdeliverRequestDetail/index.ts @@ -0,0 +1,74 @@ +import request from '@/config/axios' + +export interface SupplierdeliverRequestDetailVO { + packingNumber: string + containerNumber: string + batch: string + altBatch: string + arriveDate: Date + produceDate: Date + expireDate: Date + poNumber: string + poLine: string + stdPackQty: number + stdPackUnit: string + supplierPackQty: number + supplierPackUnit: string + convertRate: number + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询供应商发货申请子列表 +export const getSupplierdeliverRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/supplierdeliver-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/supplierdeliver-request-detail/page`, params }) + } +} + +// 查询供应商发货申请子详情 +export const getSupplierdeliverRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/supplierdeliver-request-detail/get?id=` + id }) +} + +// 新增供应商发货申请子 +export const createSupplierdeliverRequestDetail = async (data: SupplierdeliverRequestDetailVO) => { + return await request.post({ url: `/wms/supplierdeliver-request-detail/create`, data }) +} + +// 修改供应商发货申请子 +export const updateSupplierdeliverRequestDetail = async (data: SupplierdeliverRequestDetailVO) => { + return await request.put({ url: `/wms/supplierdeliver-request-detail/update`, data }) +} + +// 删除供应商发货申请子 +export const deleteSupplierdeliverRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/supplierdeliver-request-detail/delete?id=` + id }) +} + +// 导出供应商发货申请子 Excel +export const exportSupplierdeliverRequestDetail = async (params) => { + return await request.download({ url: `/wms/supplierdeliver-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/supplierdeliver-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/supplierdeliverRequestMain/index.ts b/src/api/wms/supplierdeliverRequestMain/index.ts new file mode 100644 index 0000000..82ac6b9 --- /dev/null +++ b/src/api/wms/supplierdeliverRequestMain/index.ts @@ -0,0 +1,103 @@ +import request from '@/config/axios' + +export interface SupplierdeliverRequestMainVO { + ppNumber: string + asnNumber: string + supplierCode: string + contactName: string + contactPhone: string + contactEmail: string + fromWarehouseCode: string + toWarehouseCode: string + toDockCode: string + timeWindow: string + planArriveTime: Date + carrierCode: string + transferMode: string + vehiclePlateNumber: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询供应商发货申请主列表 +export const getSupplierdeliverRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/supplierdeliver-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/supplierdeliver-request-main/page`, params }) + } +} + +// 查询供应商发货申请主详情 +export const getSupplierdeliverRequestMain = async (id: number) => { + return await request.get({ url: `/wms/supplierdeliver-request-main/get?id=` + id }) +} + +// 新增供应商发货申请主 +export const createSupplierdeliverRequestMain = async (data: SupplierdeliverRequestMainVO) => { + return await request.post({ url: `/wms/supplierdeliver-request-main/create`, data }) +} + +// 修改供应商发货申请主 +export const updateSupplierdeliverRequestMain = async (data: SupplierdeliverRequestMainVO) => { + return await request.put({ url: `/wms/supplierdeliver-request-main/update`, data }) +} + +// 删除供应商发货申请主 +export const deleteSupplierdeliverRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/supplierdeliver-request-main/delete?id=` + id }) +} + +// 打开供应商发货申请主 +export const opeSupplierdeliverRequestMain = async (id: number) => { + return await request.post({ url: `/wms/supplierdeliver-request-main/open?id=` + id }) +} +// 关闭供应商发货申请主 +export const cloSupplierdeliverRequestMain = async (id: number) => { + return await request.post({ url: `/wms/supplierdeliver-request-main/close?id=` + id }) +} +// 提交审批供应商发货申请主 +export const subSupplierdeliverRequestMain = async (id: number) => { + return await request.post({ url: `/wms/supplierdeliver-request-main/sub?id=` + id }) +} +// 审批通过供应商发货申请主 +export const appSupplierdeliverRequestMain = async (id: number) => { + return await request.post({ url: `/wms/supplierdeliver-request-main/app?id=` + id }) +} +// 驳回供应商发货申请主 +export const rejSupplierdeliverRequestMain = async (id: number) => { + return await request.post({ url: `/wms/supplierdeliver-request-main/rej?id=` + id }) +} +// 生成标签 +export const genLabel = async (id) => { + return await request.post({ url: `/wms/supplierdeliver-request-main/genLabel?id=` + id }) +} +// 生成记录 +export const genRecordsSupplierdeliverRequestMain = async (id) => { + return await request.post({ url: `/wms/supplierdeliver-request-main/genRecords?id=` + id }) +} +// 导出供应商发货申请主 Excel +export const exportSupplierdeliverRequestMain = async (params) => { + return await request.download({ url: `/wms/supplierdeliver-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/supplierdeliver-request-main/get-import-template' }) +} + diff --git a/src/api/wms/supplierinvoiceRecordDeatil/index.ts b/src/api/wms/supplierinvoiceRecordDeatil/index.ts new file mode 100644 index 0000000..f797d2f --- /dev/null +++ b/src/api/wms/supplierinvoiceRecordDeatil/index.ts @@ -0,0 +1,73 @@ +import request from '@/config/axios' + +export interface SupplierinvoiceRecordDeatilVO { + recordNumber: string + packingNumber: string + containerNumber: string + batch: string + altBatch: string + poNumber: string + poLine: string + stdPackQty: number + stdPackUnit: string + supplierQty: number + supplierUom: string + convertRate: number + singlePrice: number + amount: number + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + jobDetailId: string +} + +// 查询供应商发票记录子列表 +export const getSupplierinvoiceRecordDeatilPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/supplierinvoice-record-deatil/senior', data }) + } else { + return await request.get({ url: `/wms/supplierinvoice-record-deatil/page`, params }) + } +} + +// 查询供应商发票记录子详情 +export const getSupplierinvoiceRecordDeatil = async (id: number) => { + return await request.get({ url: `/wms/supplierinvoice-record-deatil/get?id=` + id }) +} + +// 新增供应商发票记录子 +export const createSupplierinvoiceRecordDeatil = async (data: SupplierinvoiceRecordDeatilVO) => { + return await request.post({ url: `/wms/supplierinvoice-record-deatil/create`, data }) +} + +// 修改供应商发票记录子 +export const updateSupplierinvoiceRecordDeatil = async (data: SupplierinvoiceRecordDeatilVO) => { + return await request.put({ url: `/wms/supplierinvoice-record-deatil/update`, data }) +} + +// 删除供应商发票记录子 +export const deleteSupplierinvoiceRecordDeatil = async (id: number) => { + return await request.delete({ url: `/wms/supplierinvoice-record-deatil/delete?id=` + id }) +} + +// 导出供应商发票记录子 Excel +export const exportSupplierinvoiceRecordDeatil = async (params) => { + return await request.download({ url: `/wms/supplierinvoice-record-deatil/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/supplierinvoice-record-deatil/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/supplierinvoiceRecordMain/index.ts b/src/api/wms/supplierinvoiceRecordMain/index.ts new file mode 100644 index 0000000..4f04bde --- /dev/null +++ b/src/api/wms/supplierinvoiceRecordMain/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface SupplierinvoiceRecordMainVO { + requestNumber: string + supplierCode: string + adjustAmount: number + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + code: string + available: string +} + +// 查询供应商发票记录主列表 +export const getSupplierinvoiceRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/supplierinvoice-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/supplierinvoice-record-main/page`, params }) + } +} + +// 查询供应商发票记录主详情 +export const getSupplierinvoiceRecordMain = async (id: number) => { + return await request.get({ url: `/wms/supplierinvoice-record-main/get?id=` + id }) +} + +// 新增供应商发票记录主 +export const createSupplierinvoiceRecordMain = async (data: SupplierinvoiceRecordMainVO) => { + return await request.post({ url: `/wms/supplierinvoice-record-main/create`, data }) +} + +// 修改供应商发票记录主 +export const updateSupplierinvoiceRecordMain = async (data: SupplierinvoiceRecordMainVO) => { + return await request.put({ url: `/wms/supplierinvoice-record-main/update`, data }) +} + +// 删除供应商发票记录主 +export const deleteSupplierinvoiceRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/supplierinvoice-record-main/delete?id=` + id }) +} + +// 导出供应商发票记录主 Excel +export const exportSupplierinvoiceRecordMain = async (params) => { + return await request.download({ url: `/wms/supplierinvoice-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/supplierinvoice-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/supplierinvoiceRequestDetail/index.ts b/src/api/wms/supplierinvoiceRequestDetail/index.ts new file mode 100644 index 0000000..8633e63 --- /dev/null +++ b/src/api/wms/supplierinvoiceRequestDetail/index.ts @@ -0,0 +1,70 @@ +import request from '@/config/axios' + +export interface SupplierinvoiceRequestDetailVO { + recordNumber: string + ownerCode: string + packingNumber: string + containerNumber: string + batch: string + altBatch: string + poNumber: string + poLine: string + stdPackQty: number + stdPackUnit: string + supplierPackQty: number + supplierPackUnit: string + convertRate: number + singlePrice: number + amount: number + number: string + itemCode: string + remark: string + createTime: Date + creator: string +} + +// 查询供应商发票申请子列表 +export const getSupplierinvoiceRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/supplierinvoice-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/supplierinvoice-request-detail/page`, params }) + } +} + +// 查询供应商发票申请主详情 +export const getPoNumber = async (params) => { + return await request.get({ url: `/wms/supplierinvoice-request-detail/getPoNumber`, params}) +} + +// 查询供应商发票申请子详情 +export const getSupplierinvoiceRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/supplierinvoice-request-detail/get?id=` + id }) +} + +// 新增供应商发票申请子 +export const createSupplierinvoiceRequestDetail = async (data: SupplierinvoiceRequestDetailVO) => { + return await request.post({ url: `/wms/supplierinvoice-request-detail/create`, data }) +} + +// 修改供应商发票申请子 +export const updateSupplierinvoiceRequestDetail = async (data: SupplierinvoiceRequestDetailVO) => { + return await request.put({ url: `/wms/supplierinvoice-request-detail/update`, data }) +} + +// 删除供应商发票申请子 +export const deleteSupplierinvoiceRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/supplierinvoice-request-detail/delete?id=` + id }) +} + +// 导出供应商发票申请子 Excel +export const exportSupplierinvoiceRequestDetail = async (params) => { + return await request.download({ url: `/wms/supplierinvoice-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/supplierinvoice-request-detail/get-import-template' }) +} diff --git a/src/api/wms/supplierinvoiceRequestMain/index.ts b/src/api/wms/supplierinvoiceRequestMain/index.ts new file mode 100644 index 0000000..62d9231 --- /dev/null +++ b/src/api/wms/supplierinvoiceRequestMain/index.ts @@ -0,0 +1,86 @@ +import request from '@/config/axios' + +export interface SupplierinvoiceRequestMainVO { + supplierCode: string + adjustAmount: number + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询供应商发票申请主列表 +export const getSupplierinvoiceRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/supplierinvoice-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/supplierinvoice-request-main/page`, params }) + } +} + +// 查询供应商发票申请主详情 +export const getSupplierinvoiceRequestMain = async (id: number) => { + return await request.get({ url: `/wms/supplierinvoice-request-main/get?id=` + id }) +} + +// 查询供应商发票申请主详情 +export const getNumber = async (params) => { + return await request.get({ url: `/wms/supplierinvoice-request-main/getNumber`, params}) +} + +// 新增供应商发票申请主 +export const createSupplierinvoiceRequestMain = async (data: SupplierinvoiceRequestMainVO) => { + return await request.post({ url: `/wms/supplierinvoice-request-main/create`, data }) +} + +// 修改供应商发票申请主 +export const updateSupplierinvoiceRequestMain = async (data: SupplierinvoiceRequestMainVO) => { + return await request.put({ url: `/wms/supplierinvoice-request-main/update`, data }) +} + +// 删除供应商发票申请主 +export const deleteSupplierinvoiceRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/supplierinvoice-request-main/delete?id=` + id }) +} + +// 打开供应商发货申请主 +export const opeSupplierinvoiceRequestMain = async (id: number) => { + return await request.post({ url: `/wms/supplierinvoice-request-main/open?id=` + id }) +} +// 关闭供应商发货申请主 +export const cloSupplierinvoiceRequestMain = async (id: number) => { + return await request.post({ url: `/wms/supplierinvoice-request-main/close?id=` + id }) +} +// 提交审批供应商发货申请主 +export const subSupplierinvoiceRequestMain = async (id: number) => { + return await request.post({ url: `/wms/supplierinvoice-request-main/sub?id=` + id }) +} +// 审批通过供应商发货申请主 +export const appSupplierinvoiceRequestMain = async (id: number) => { + return await request.post({ url: `/wms/supplierinvoice-request-main/app?id=` + id }) +} +// 驳回供应商发货申请主 +export const rejSupplierinvoiceRequestMain = async (id: number) => { + return await request.post({ url: `/wms/supplierinvoice-request-main/rej?id=` + id }) +} +// 生成记录 +export const genRecordsSupplierinvoiceRequestMain = async (id) => { + return await request.post({ url: `/wms/supplierinvoice-request-main/genRecords?id=` + id }) +} +// 导出供应商发票申请主 Excel +export const exportSupplierinvoiceRequestMain = async (params) => { + return await request.download({ url: `/wms/supplierinvoice-request-main/export-excel`, params }) +} diff --git a/src/api/wms/supplieritem/index.ts b/src/api/wms/supplieritem/index.ts new file mode 100644 index 0000000..387777a --- /dev/null +++ b/src/api/wms/supplieritem/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface SupplieritemVO { + supplierCode: string + itemCode: string + supplierItemCode: string + supplierUom: string + convertRate: number + packUnit: string + packQty: number + altPackUnit: string + altPackQty: number + packQtyOfContainer: number + defaultWarehouseCode: string + defaultLocationCode: string + settlementType: string + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询供应商物品列表 +export const getSupplieritemPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/supplieritem/senior', data }) + } else { + return await request.get({ url: `/wms/supplieritem/page`, params }) + } +} + +// 查询供应商物品详情 +export const getSupplieritem = async (id: number) => { + return await request.get({ url: `/wms/supplieritem/get?id=` + id }) +} + +// 新增供应商物品 +export const createSupplieritem = async (data: SupplieritemVO) => { + return await request.post({ url: `/wms/supplieritem/create`, data }) +} + +// 修改供应商物品 +export const updateSupplieritem = async (data: SupplieritemVO) => { + return await request.put({ url: `/wms/supplieritem/update`, data }) +} + +// 删除供应商物品 +export const deleteSupplieritem = async (id: number) => { + return await request.delete({ url: `/wms/supplieritem/delete?id=` + id }) +} + +// 导出供应商物品 Excel +export const exportSupplieritem = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/supplieritem/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/supplieritem/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/supplieritem/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/switch/index.ts b/src/api/wms/switch/index.ts new file mode 100644 index 0000000..aeb11a1 --- /dev/null +++ b/src/api/wms/switch/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +export interface SwitchVO { + id: number + code: string + description: string + effectiveSetValue: string + available: string +} + +// 查询单据开关列表 +export const getSwitchPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/switch/senior', data }) + } else { + return await request.get({ url: `/wms/switch/page`, params }) + } +} + +// 查询单据开关详情 +export const getSwitch = async (id: number) => { + return await request.get({ url: `/wms/switch/get?id=` + id }) +} + +// 新增单据开关 +export const createSwitch = async (data: SwitchVO) => { + return await request.post({ url: `/wms/switch/create`, data }) +} + +// 修改单据开关 +export const updateSwitch = async (data: SwitchVO) => { + return await request.put({ url: `/wms/switch/update`, data }) +} + +// 删除单据开关 +export const deleteSwitch = async (id: number) => { + return await request.delete({ url: `/wms/switch/delete?id=` + id }) +} + +// 导出单据开关 Excel +export const exportSwitch = async (params) => { + return await request.download({ url: `/wms/switch/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/switch/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/systemcalendar/index.ts b/src/api/wms/systemcalendar/index.ts new file mode 100644 index 0000000..0499f49 --- /dev/null +++ b/src/api/wms/systemcalendar/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +export interface SystemcalendarVO { + module: string + startTime: Date + stopTime: Date + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询系统日历列表 +export const getSystemcalendarPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/systemcalendar/senior', data }) + } else { + return await request.get({ url: `/wms/systemcalendar/page`, params }) + } +} + +// 查询系统日历详情 +export const getSystemcalendar = async (id: number) => { + return await request.get({ url: `/wms/systemcalendar/get?id=` + id }) +} + +// 新增系统日历 +export const createSystemcalendar = async (data: SystemcalendarVO) => { + return await request.post({ url: `/wms/systemcalendar/create`, data }) +} + +// 修改系统日历 +export const updateSystemcalendar = async (data: SystemcalendarVO) => { + return await request.put({ url: `/wms/systemcalendar/update`, data }) +} + +// 删除系统日历 +export const deleteSystemcalendar = async (id: number) => { + return await request.delete({ url: `/wms/systemcalendar/delete?id=` + id }) +} + +// 导出系统日历 Excel +export const exportSystemcalendar = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/systemcalendar/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/systemcalendar/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/systemcalendar/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/team/index.ts b/src/api/wms/team/index.ts new file mode 100644 index 0000000..6c978a4 --- /dev/null +++ b/src/api/wms/team/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface TeamVO { + code: string + name: string + description: string + members: string + activeTime: Date + expireTime: Date + remark: string + available: string +} + +// 查询班组列表 +export const getTeamPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/team/senior', data }) + } else { + return await request.get({ url: `/wms/team/page`, params }) + } +} + +// 查询班组详情 +export const getTeam = async (id: number) => { + return await request.get({ url: `/wms/team/get?id=` + id }) +} + +// 新增班组 +export const createTeam = async (data: TeamVO) => { + return await request.post({ url: `/wms/team/create`, data }) +} + +// 修改班组 +export const updateTeam = async (data: TeamVO) => { + return await request.put({ url: `/wms/team/update`, data }) +} + +// 删除班组 +export const deleteTeam = async (id: number) => { + return await request.delete({ url: `/wms/team/delete?id=` + id }) +} + +// 导出班组 Excel +export const exportTeam = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/team/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/team/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/team/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/transaction/index.ts b/src/api/wms/transaction/index.ts new file mode 100644 index 0000000..e4b38fc --- /dev/null +++ b/src/api/wms/transaction/index.ts @@ -0,0 +1,71 @@ +import request from '@/config/axios' + +export interface TransactionVO { + number: string + transactionType: string + inventoryAction: string + worker: string + businessType: string + recordNumber: string + activeTime: Date + itemCode: string + batch: string + inventoryStatus: string + uom: string + qty: number + singlePrice: number + amount: number + altBatch: string + arriveDate: Date + produceDate: Date + expireDate: Date + packingNumber: string + containerNumber: string + locationCode: string + warehouseCode: string + areaCode: string + locationGroupCode: string + erpLocationCode: string + ownerCode: string +} + +// 查询库存事务列表 +export const getTransactionPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/transaction/senior', data }) + } else { + return await request.get({ url: `/wms/transaction/page`, params }) + } +} + +// 查询库存事务详情 +export const getTransaction = async (id: number) => { + return await request.get({ url: `/wms/transaction/get?id=` + id }) +} + +// 新增库存事务 +export const createTransaction = async (data: TransactionVO) => { + return await request.post({ url: `/wms/transaction/create`, data }) +} + +// 修改库存事务 +export const updateTransaction = async (data: TransactionVO) => { + return await request.put({ url: `/wms/transaction/update`, data }) +} + +// 删除库存事务 +export const deleteTransaction = async (id: number) => { + return await request.delete({ url: `/wms/transaction/delete?id=` + id }) +} + +// 导出库存事务 Excel +export const exportTransaction = async (params) => { + return await request.download({ url: `/wms/transaction/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transaction/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/transactiontype/index.ts b/src/api/wms/transactiontype/index.ts new file mode 100644 index 0000000..88c259b --- /dev/null +++ b/src/api/wms/transactiontype/index.ts @@ -0,0 +1,55 @@ +import request from '@/config/axios' + +export interface TransactiontypeVO { + code: string + name: string + description: string + inventoryAction: string + activeTime: Date + expireTime: Date + remark: string + allowNegative: string + available: string + isSoftDeleted: string +} + +// 查询事务类型列表 +export const getTransactiontypePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/transactiontype/senior', data }) + } else { + return await request.get({ url: `/wms/transactiontype/page`, params }) + } +} + +// 查询事务类型详情 +export const getTransactiontype = async (id: number) => { + return await request.get({ url: `/wms/transactiontype/get?id=` + id }) +} + +// 新增事务类型 +export const createTransactiontype = async (data: TransactiontypeVO) => { + return await request.post({ url: `/wms/transactiontype/create`, data }) +} + +// 修改事务类型 +export const updateTransactiontype = async (data: TransactiontypeVO) => { + return await request.put({ url: `/wms/transactiontype/update`, data }) +} + +// 删除事务类型 +export const deleteTransactiontype = async (id: number) => { + return await request.delete({ url: `/wms/transactiontype/delete?id=` + id }) +} + +// 导出事务类型 Excel +export const exportTransactiontype = async (params) => { + return await request.download({ url: `/wms/transactiontype/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transactiontype/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/transferissueJobDetail/index.ts b/src/api/wms/transferissueJobDetail/index.ts new file mode 100644 index 0000000..3837dcb --- /dev/null +++ b/src/api/wms/transferissueJobDetail/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +export interface TransferissueJobDetailVO { + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + fromLocationCode: string + toLocationCode: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询调拨出库任务子列表 +export const getTransferissueJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/transferissue-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/transferissue-job-detail/page`, params }) + } +} + +// 查询调拨出库任务子详情 +export const getTransferissueJobDetail = async (id: number) => { + return await request.get({ url: `/wms/transferissue-job-detail/get?id=` + id }) +} + +// 新增调拨出库任务子 +export const createTransferissueJobDetail = async (data: TransferissueJobDetailVO) => { + return await request.post({ url: `/wms/transferissue-job-detail/create`, data }) +} + +// 修改调拨出库任务子 +export const updateTransferissueJobDetail = async (data: TransferissueJobDetailVO) => { + return await request.put({ url: `/wms/transferissue-job-detail/update`, data }) +} + +// 删除调拨出库任务子 +export const deleteTransferissueJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/transferissue-job-detail/delete?id=` + id }) +} + +// 导出调拨出库任务子 Excel +export const exportTransferissueJobDetail = async (params) => { + return await request.download({ url: `/wms/transferissue-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transferissue-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/transferissueJobMain/index.ts b/src/api/wms/transferissueJobMain/index.ts new file mode 100644 index 0000000..53e7e32 --- /dev/null +++ b/src/api/wms/transferissueJobMain/index.ts @@ -0,0 +1,101 @@ +import request from '@/config/axios' + +export interface TransferissueJobMainVO { + requestNumber: string + deliverDock: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + fromAreaCodes: string + fromDockCode: string + toAreaCodes: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询调拨出库任务主列表 +export const getTransferissueJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/transferissue-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/transferissue-job-main/page`, params }) + } +} + +// 查询调拨出库任务主详情 +export const getTransferissueJobMain = async (id: number) => { + return await request.get({ url: `/wms/transferissue-job-main/get?id=` + id }) +} + +// 新增调拨出库任务主 +export const createTransferissueJobMain = async (data: TransferissueJobMainVO) => { + return await request.post({ url: `/wms/transferissue-job-main/create`, data }) +} + +// 修改调拨出库任务主 +export const updateTransferissueJobMain = async (data: TransferissueJobMainVO) => { + return await request.put({ url: `/wms/transferissue-job-main/update`, data }) +} + +// 删除调拨出库任务主 +export const deleteTransferissueJobMain = async (id: number) => { + return await request.delete({ url: `/wms/transferissue-job-main/delete?id=` + id }) +} + +// 导出调拨出库任务主 Excel +export const exportTransferissueJobMain = async (params) => { + return await request.download({ url: `/wms/transferissue-job-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transferissue-job-main/get-import-template' }) +} + +// 关闭-调拨出库任务主 +export const closeTransferissueJobMain = (id: number) => { + return request.download({ url: '/wms/transferissue-job-main/close?id=' + id }) +} + +// 承接-调拨出库任务主 +export const acceptTransferissueJobMain = (id: number) => { + return request.download({ url: '/wms/transferissue-job-main/accept?id=' + id }) +} + +// 放弃-调拨出库任务主 +export const abandonTransferissueJobMain = (id: number) => { + return request.download({ url: '/wms/transferissue-job-main/abandon?id=' + id }) +} diff --git a/src/api/wms/transferissueRecordDetail/index.ts b/src/api/wms/transferissueRecordDetail/index.ts new file mode 100644 index 0000000..507b9aa --- /dev/null +++ b/src/api/wms/transferissueRecordDetail/index.ts @@ -0,0 +1,74 @@ +import request from '@/config/axios' + +export interface TransferissueRecordDetailVO { + fromBatch: string + inventoryStatus: string + fromOwnerCode: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + toOwnerCode: string + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + code: string + interfaceType: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + jobDetailId: string + fromPackingNumber: string + toPackingNumber: string + fromContainerNumber: string + toContainerNumber: string + toBatch: string +} + +// 查询调拨出库记录子列表 +export const getTransferissueRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/transferissue-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/transferissue-record-detail/page`, params }) + } +} + +// 查询调拨出库记录子详情 +export const getTransferissueRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/transferissue-record-detail/get?id=` + id }) +} + +// 新增调拨出库记录子 +export const createTransferissueRecordDetail = async (data: TransferissueRecordDetailVO) => { + return await request.post({ url: `/wms/transferissue-record-detail/create`, data }) +} + +// 修改调拨出库记录子 +export const updateTransferissueRecordDetail = async (data: TransferissueRecordDetailVO) => { + return await request.put({ url: `/wms/transferissue-record-detail/update`, data }) +} + +// 删除调拨出库记录子 +export const deleteTransferissueRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/transferissue-record-detail/delete?id=` + id }) +} + +// 导出调拨出库记录子 Excel +export const exportTransferissueRecordDetail = async (params) => { + return await request.download({ url: `/wms/transferissue-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transferissue-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/transferissueRecordMain/index.ts b/src/api/wms/transferissueRecordMain/index.ts new file mode 100644 index 0000000..7433ba3 --- /dev/null +++ b/src/api/wms/transferissueRecordMain/index.ts @@ -0,0 +1,72 @@ +import request from '@/config/axios' + +export interface TransferissueRecordMainVO { + requestNumber: string + jobNumber: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + code: string + interfaceType: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromDockCode: string + fromLocationTypes: string + fromAreaCodes: string + toLocationTypes: string + toAreaCodes: string + available: string +} + +// 查询调拨出库记录主列表 +export const getTransferissueRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/transferissue-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/transferissue-record-main/page`, params }) + } +} + +// 查询调拨出库记录主详情 +export const getTransferissueRecordMain = async (id: number) => { + return await request.get({ url: `/wms/transferissue-record-main/get?id=` + id }) +} + +// 新增调拨出库记录主 +export const createTransferissueRecordMain = async (data: TransferissueRecordMainVO) => { + return await request.post({ url: `/wms/transferissue-record-main/create`, data }) +} + +// 修改调拨出库记录主 +export const updateTransferissueRecordMain = async (data: TransferissueRecordMainVO) => { + return await request.put({ url: `/wms/transferissue-record-main/update`, data }) +} + +// 删除调拨出库记录主 +export const deleteTransferissueRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/transferissue-record-main/delete?id=` + id }) +} + +// 导出调拨出库记录主 Excel +export const exportTransferissueRecordMain = async (params) => { + return await request.download({ url: `/wms/transferissue-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transferissue-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/transferissueRequestDetail/index.ts b/src/api/wms/transferissueRequestDetail/index.ts new file mode 100644 index 0000000..06092fb --- /dev/null +++ b/src/api/wms/transferissueRequestDetail/index.ts @@ -0,0 +1,66 @@ +import request from '@/config/axios' + +export interface TransferissueRequestDetailVO { + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + toOwnerCode: string + toLocationCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + fromOwnerCode: string + fromLocationCode: string +} + +// 查询调拨出库申请子列表 +export const getTransferissueRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/transferissue-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/transferissue-request-detail/page`, params }) + } +} + +// 查询调拨出库申请子详情 +export const getTransferissueRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/transferissue-request-detail/get?id=` + id }) +} + +// 新增调拨出库申请子 +export const createTransferissueRequestDetail = async (data: TransferissueRequestDetailVO) => { + return await request.post({ url: `/wms/transferissue-request-detail/create`, data }) +} + +// 修改调拨出库申请子 +export const updateTransferissueRequestDetail = async (data: TransferissueRequestDetailVO) => { + return await request.put({ url: `/wms/transferissue-request-detail/update`, data }) +} + +// 删除调拨出库申请子 +export const deleteTransferissueRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/transferissue-request-detail/delete?id=` + id }) +} + +// 导出调拨出库申请子 Excel +export const exportTransferissueRequestDetail = async (params) => { + return await request.download({ url: `/wms/transferissue-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transferissue-request-detail/get-import-template' }) +} diff --git a/src/api/wms/transferissueRequestMain/index.ts b/src/api/wms/transferissueRequestMain/index.ts new file mode 100644 index 0000000..2842541 --- /dev/null +++ b/src/api/wms/transferissueRequestMain/index.ts @@ -0,0 +1,100 @@ +import request from '@/config/axios' + +export interface TransferissueRequestMainVO { + carrierCode: string + transferMode: string + vehiclePlateNumber: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + fromWarehouseCode: string + fromDockCode: string + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询调拨出库申请主列表 +export const getTransferissueRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/transferissue-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/transferissue-request-main/page`, params }) + } +} + +// 查询调拨出库申请主详情 +export const getTransferissueRequestMain = async (id: number) => { + return await request.get({ url: `/wms/transferissue-request-main/get?id=` + id }) +} + +// 新增-调拨出库申请主 +export const createTransferissueRequestMain = async (data: TransferissueRequestMainVO) => { + return await request.post({ url: `/wms/transferissue-request-main/create`, data }) +} + +// 修改-调拨出库申请主 +export const updateTransferissueRequestMain = async (data: TransferissueRequestMainVO) => { + return await request.put({ url: `/wms/transferissue-request-main/update`, data }) +} + +// 删除-调拨出库申请主 +export const deleteTransferissueRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/transferissue-request-main/delete?id=` + id }) +} + +// 导出-调拨出库申请主 Excel +export const exportTransferissueRequestMain = async (params) => { + return await request.download({ url: `/wms/transferissue-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transferissue-request-main/get-import-template' }) +} + +// 关闭-调拨出库申请 +export const closeTransferissueRequestMain = async (id) => { + return await request.put({ url: `/wms/transferissue-request-main/close?id=` + id }) +} + +// 重新添加-调拨出库申请 +export const reAddTransferissueRequestMain = async (id) => { + return await request.put({ url: `/wms/transferissue-request-main/reAdd?id=` + id }) +} + +// 提交审批-调拨出库申请 +export const submitTransferissueRequestMain = async (id) => { + return await request.put({ url: `/wms/transferissue-request-main/submit?id=` + id }) +} + +// 审批驳回-调拨出库申请 +export const refusedTransferissueRequestMain = async (id) => { + return await request.put({ url: `/wms/transferissue-request-main/refused?id=` + id }) +} + +// 审批通过-调拨出库申请 +export const agreeTransferissueRequestMain = async (id) => { + return await request.put({ url: `/wms/transferissue-request-main/agree?id=` + id }) +} + +// 处理-调拨出库申请 +export const handleTransferissueRequestMain = async (id) => { + return await request.put({ url: `/wms/transferissue-request-main/handle?id=` + id }) +} diff --git a/src/api/wms/transferlog/index.ts b/src/api/wms/transferlog/index.ts new file mode 100644 index 0000000..43d8cbe --- /dev/null +++ b/src/api/wms/transferlog/index.ts @@ -0,0 +1,80 @@ +import request from '@/config/axios' + +export interface TransferlogVO { + number: string + transactionType: string + worker: string + businessType: string + recordNumber: string + activeTime: Date + itemCode: string + uom: string + qty: number + altBatch: string + arriveDate: Date + produceDate: Date + expireDate: Date + fomTransactionNumber: string + fromPackingNumber: string + fromBatch: string + fromInventoryStatus: string + fromContainerNumber: string + fromLocationCode: string + fromWarehouseCode: string + fromAreaCode: string + fromLocationGroupCode: string + fromErpLocationCode: string + fromOwnerCode: string + toTransactionNumber: string + toPackingNumber: string + toBatch: string + toInventoryStatus: string + toContainerNumber: string + toLocationCode: string + toWarehouseCode: string + toAreaCode: string + toLocationGroupCode: string + toErpLocationCode: string + toOwnerCode: string +} + +// 查询库存转移日志列表 +export const getTransferlogPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/transferlog/senior', data }) + } else { + return await request.get({ url: `/wms/transferlog/page`, params }) + } +} + +// 查询库存转移日志详情 +export const getTransferlog = async (id: number) => { + return await request.get({ url: `/wms/transferlog/get?id=` + id }) +} + +// 新增库存转移日志 +export const createTransferlog = async (data: TransferlogVO) => { + return await request.post({ url: `/wms/transferlog/create`, data }) +} + +// 修改库存转移日志 +export const updateTransferlog = async (data: TransferlogVO) => { + return await request.put({ url: `/wms/transferlog/update`, data }) +} + +// 删除库存转移日志 +export const deleteTransferlog = async (id: number) => { + return await request.delete({ url: `/wms/transferlog/delete?id=` + id }) +} + +// 导出库存转移日志 Excel +export const exportTransferlog = async (params) => { + return await request.download({ url: `/wms/transferlog/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transferlog/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/transferreceiptJobDetail/index.ts b/src/api/wms/transferreceiptJobDetail/index.ts new file mode 100644 index 0000000..f424cc4 --- /dev/null +++ b/src/api/wms/transferreceiptJobDetail/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +export interface TransferreceiptJobDetailVO { + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + fromLocationCode: string + toLocationCode: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string + fromOwnerCode: string + toOwnerCode: string +} + +// 查询调拨入库任务子列表 +export const getTransferreceiptJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/transferreceipt-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/transferreceipt-job-detail/page`, params }) + } +} + +// 查询调拨入库任务子详情 +export const getTransferreceiptJobDetail = async (id: number) => { + return await request.get({ url: `/wms/transferreceipt-job-detail/get?id=` + id }) +} + +// 新增调拨入库任务子 +export const createTransferreceiptJobDetail = async (data: TransferreceiptJobDetailVO) => { + return await request.post({ url: `/wms/transferreceipt-job-detail/create`, data }) +} + +// 修改调拨入库任务子 +export const updateTransferreceiptJobDetail = async (data: TransferreceiptJobDetailVO) => { + return await request.put({ url: `/wms/transferreceipt-job-detail/update`, data }) +} + +// 删除调拨入库任务子 +export const deleteTransferreceiptJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/transferreceipt-job-detail/delete?id=` + id }) +} + +// 导出调拨入库任务子 Excel +export const exportTransferreceiptJobDetail = async (params) => { + return await request.download({ url: `/wms/transferreceipt-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transferreceipt-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/transferreceiptJobMain/index.ts b/src/api/wms/transferreceiptJobMain/index.ts new file mode 100644 index 0000000..d2538c3 --- /dev/null +++ b/src/api/wms/transferreceiptJobMain/index.ts @@ -0,0 +1,85 @@ +import request from '@/config/axios' + +export interface TransferreceiptJobMainVO { + requestNumber: string + toDockCode: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromAreaCodes: string + toAreaCodes: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询调拨入库任务主列表 +export const getTransferreceiptJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/transferreceipt-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/transferreceipt-job-main/page`, params }) + } +} + +// 查询调拨入库任务主详情 +export const getTransferreceiptJobMain = async (id: number) => { + return await request.get({ url: `/wms/transferreceipt-job-main/get?id=` + id }) +} + +// 新增调拨入库任务主 +export const createTransferreceiptJobMain = async (data: TransferreceiptJobMainVO) => { + return await request.post({ url: `/wms/transferreceipt-job-main/create`, data }) +} + +// 修改调拨入库任务主 +export const updateTransferreceiptJobMain = async (data: TransferreceiptJobMainVO) => { + return await request.put({ url: `/wms/transferreceipt-job-main/update`, data }) +} + +// 删除调拨入库任务主 +export const deleteTransferreceiptJobMain = async (id: number) => { + return await request.delete({ url: `/wms/transferreceipt-job-main/delete?id=` + id }) +} + +// 导出调拨入库任务主 Excel +export const exportTransferreceiptJobMain = async (params) => { + return await request.download({ url: `/wms/transferreceipt-job-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transferreceipt-job-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/transferreceiptRecordDetail/index.ts b/src/api/wms/transferreceiptRecordDetail/index.ts new file mode 100644 index 0000000..869ea1e --- /dev/null +++ b/src/api/wms/transferreceiptRecordDetail/index.ts @@ -0,0 +1,74 @@ +import request from '@/config/axios' + +export interface TransferreceiptRecordDetailVO { + fromBatch: string + inventoryStatus: string + fromOwnerCode: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + toOwnerCode: string + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + jobDetailId: string + fromPackingNumber: string + toPackingNumber: string + fromContainerNumber: string + toContainerNumber: string + toBatch: string +} + +// 查询调拨入库记录子列表 +export const getTransferreceiptRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/transferreceipt-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/transferreceipt-record-detail/page`, params }) + } +} + +// 查询调拨入库记录子详情 +export const getTransferreceiptRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/transferreceipt-record-detail/get?id=` + id }) +} + +// 新增调拨入库记录子 +export const createTransferreceiptRecordDetail = async (data: TransferreceiptRecordDetailVO) => { + return await request.post({ url: `/wms/transferreceipt-record-detail/create`, data }) +} + +// 修改调拨入库记录子 +export const updateTransferreceiptRecordDetail = async (data: TransferreceiptRecordDetailVO) => { + return await request.put({ url: `/wms/transferreceipt-record-detail/update`, data }) +} + +// 删除调拨入库记录子 +export const deleteTransferreceiptRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/transferreceipt-record-detail/delete?id=` + id }) +} + +// 导出调拨入库记录子 Excel +export const exportTransferreceiptRecordDetail = async (params) => { + return await request.download({ url: `/wms/transferreceipt-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transferreceipt-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/transferreceiptRecordMain/index.ts b/src/api/wms/transferreceiptRecordMain/index.ts new file mode 100644 index 0000000..ec41b42 --- /dev/null +++ b/src/api/wms/transferreceiptRecordMain/index.ts @@ -0,0 +1,73 @@ +import request from '@/config/axios' + +export interface TransferreceiptRecordMainVO { + requestNumber: string + jobNumber: string + receiptDock: string + carrierCode: string + transferMode: string + vehiclePlateNumber: string + fromWarehouseCode: string + toWarehouseCode: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + code: string + interfaceType: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromLocationTypes: string + fromAreaCodes: string + toDockCode: string + toLocationTypes: string + toAreaCodes: string + available: string +} + +// 查询调拨入库记录主列表 +export const getTransferreceiptRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/transferreceipt-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/transferreceipt-record-main/page`, params }) + } +} + +// 查询调拨入库记录主详情 +export const getTransferreceiptRecordMain = async (id: number) => { + return await request.get({ url: `/wms/transferreceipt-record-main/get?id=` + id }) +} + +// 新增调拨入库记录主 +export const createTransferreceiptRecordMain = async (data: TransferreceiptRecordMainVO) => { + return await request.post({ url: `/wms/transferreceipt-record-main/create`, data }) +} + +// 修改调拨入库记录主 +export const updateTransferreceiptRecordMain = async (data: TransferreceiptRecordMainVO) => { + return await request.put({ url: `/wms/transferreceipt-record-main/update`, data }) +} + +// 删除调拨入库记录主 +export const deleteTransferreceiptRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/transferreceipt-record-main/delete?id=` + id }) +} + +// 导出调拨入库记录主 Excel +export const exportTransferreceiptRecordMain = async (params) => { + return await request.download({ url: `/wms/transferreceipt-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transferreceipt-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/transferreceiptRequestDetail/index.ts b/src/api/wms/transferreceiptRequestDetail/index.ts new file mode 100644 index 0000000..bcaa5b2 --- /dev/null +++ b/src/api/wms/transferreceiptRequestDetail/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface TransferreceiptRequestDetailVO { + packingNumber: string + containerNumber: string + batch: string + inventoryStatus: string + fromOwnerCode: string + fromLocationCode: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string + toOwnerCode: string +} + +// 查询调拨入库申请子列表 +export const getTransferreceiptRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/transferreceipt-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/transferreceipt-request-detail/page`, params }) + } +} + +// 查询调拨入库申请子详情 +export const getTransferreceiptRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/transferreceipt-request-detail/get?id=` + id }) +} + +// 新增调拨入库申请子 +export const createTransferreceiptRequestDetail = async (data: TransferreceiptRequestDetailVO) => { + return await request.post({ url: `/wms/transferreceipt-request-detail/create`, data }) +} + +// 修改调拨入库申请子 +export const updateTransferreceiptRequestDetail = async (data: TransferreceiptRequestDetailVO) => { + return await request.put({ url: `/wms/transferreceipt-request-detail/update`, data }) +} + +// 删除调拨入库申请子 +export const deleteTransferreceiptRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/transferreceipt-request-detail/delete?id=` + id }) +} + +// 导出调拨入库申请子 Excel +export const exportTransferreceiptRequestDetail = async (params) => { + return await request.download({ url: `/wms/transferreceipt-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transferreceipt-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/transferreceiptRequestMain/index.ts b/src/api/wms/transferreceiptRequestMain/index.ts new file mode 100644 index 0000000..dcf0e53 --- /dev/null +++ b/src/api/wms/transferreceiptRequestMain/index.ts @@ -0,0 +1,100 @@ +import request from '@/config/axios' + +export interface TransferreceiptRequestMainVO { + carrierCode: string + transferMode: string + vehiclePlateNumber: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + fromWarehouseCode: string + toDockCode: string + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询调拨入库申请主列表 +export const getTransferreceiptRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/transferreceipt-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/transferreceipt-request-main/page`, params }) + } +} + +// 查询调拨入库申请主详情 +export const getTransferreceiptRequestMain = async (id: number) => { + return await request.get({ url: `/wms/transferreceipt-request-main/get?id=` + id }) +} + +// 新增调拨入库申请主 +export const createTransferreceiptRequestMain = async (data: TransferreceiptRequestMainVO) => { + return await request.post({ url: `/wms/transferreceipt-request-main/create`, data }) +} + +// 修改调拨入库申请主 +export const updateTransferreceiptRequestMain = async (data: TransferreceiptRequestMainVO) => { + return await request.put({ url: `/wms/transferreceipt-request-main/update`, data }) +} + +// 删除调拨入库申请主 +export const deleteTransferreceiptRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/transferreceipt-request-main/delete?id=` + id }) +} + +// 导出调拨入库申请主 Excel +export const exportTransferreceiptRequestMain = async (params) => { + return await request.download({ url: `/wms/transferreceipt-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + // return request.download({ url: '/wms/transferreceipt-request-main/get-import-template' }) +} + +// 关闭-调拨入库申请 +export const closeTransferreceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/transferreceipt-request-main/close?id=` + id }) +} + +// 重新添加-调拨入库申请 +export const reAddTransferreceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/transferreceipt-request-main/reAdd?id=` + id }) +} + +// 提交审批-调拨入库申请 +export const submitTransferreceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/transferreceipt-request-main/submit?id=` + id }) +} + +// 审批驳回-调拨入库申请 +export const refusedTransferreceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/transferreceipt-request-main/refused?id=` + id }) +} + +// 审批通过-调拨入库申请 +export const agreeTransferreceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/transferreceipt-request-main/agree?id=` + id }) +} + +// 处理-调拨入库申请 +export const handleTransferreceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/transferreceipt-request-main/handle?id=` + id }) +} diff --git a/src/api/wms/unplannedissueJobDetail/index.ts b/src/api/wms/unplannedissueJobDetail/index.ts new file mode 100644 index 0000000..62afa1f --- /dev/null +++ b/src/api/wms/unplannedissueJobDetail/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface UnplannedissueJobDetailVO { + ownerCode: string + packingNumber: string + containerNumber: string + batch: string + fromLocationCode: string + inventoryStatus: string + reason: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string +} + +// 查询计划外出库任务子列表 +export const getUnplannedissueJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/unplannedissue-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/unplannedissue-job-detail/page`, params }) + } +} + +// 查询计划外出库任务子详情 +export const getUnplannedissueJobDetail = async (id: number) => { + return await request.get({ url: `/wms/unplannedissue-job-detail/get?id=` + id }) +} + +// 新增计划外出库任务子 +export const createUnplannedissueJobDetail = async (data: UnplannedissueJobDetailVO) => { + return await request.post({ url: `/wms/unplannedissue-job-detail/create`, data }) +} + +// 修改计划外出库任务子 +export const updateUnplannedissueJobDetail = async (data: UnplannedissueJobDetailVO) => { + return await request.put({ url: `/wms/unplannedissue-job-detail/update`, data }) +} + +// 删除计划外出库任务子 +export const deleteUnplannedissueJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/unplannedissue-job-detail/delete?id=` + id }) +} + +// 导出计划外出库任务子 Excel +export const exportUnplannedissueJobDetail = async (params) => { + return await request.download({ url: `/wms/unplannedissue-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/unplannedissue-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/unplannedissueJobMain/index.ts b/src/api/wms/unplannedissueJobMain/index.ts new file mode 100644 index 0000000..ce835fe --- /dev/null +++ b/src/api/wms/unplannedissueJobMain/index.ts @@ -0,0 +1,79 @@ +import request from '@/config/axios' + +export interface UnplannedissueJobMainVO { + requestNumber: string + fromWarehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + fromAreaCodes: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询计划外出库任务主列表 +export const getUnplannedissueJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/unplannedissue-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/unplannedissue-job-main/page`, params }) + } +} + +// 查询计划外出库任务主详情 +export const getUnplannedissueJobMain = async (id: number) => { + return await request.get({ url: `/wms/unplannedissue-job-main/get?id=` + id }) +} + +// 新增计划外出库任务主 +export const createUnplannedissueJobMain = async (data: UnplannedissueJobMainVO) => { + return await request.post({ url: `/wms/unplannedissue-job-main/create`, data }) +} + +// 修改计划外出库任务主 +export const updateUnplannedissueJobMain = async (data: UnplannedissueJobMainVO) => { + return await request.put({ url: `/wms/unplannedissue-job-main/update`, data }) +} + +// 删除计划外出库任务主 +export const deleteUnplannedissueJobMain = async (id: number) => { + return await request.delete({ url: `/wms/unplannedissue-job-main/delete?id=` + id }) +} + +// 导出计划外出库任务主 Excel +export const exportUnplannedissueJobMain = async (params) => { + return await request.download({ url: `/wms/unplannedissue-job-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/unplannedissue-job-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/unplannedissueRecordDetail/index.ts b/src/api/wms/unplannedissueRecordDetail/index.ts new file mode 100644 index 0000000..a8dd317 --- /dev/null +++ b/src/api/wms/unplannedissueRecordDetail/index.ts @@ -0,0 +1,70 @@ +import request from '@/config/axios' + +export interface UnplannedissueRecordDetailVO { + ownerCode: string + packingNumber: string + containerNumber: string + batch: string + fromLocationCode: string + fromLocationGroupCode: string + fromAreaCode: string + inventoryStatus: string + reason: string + singlePrice: number + amount: number + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + jobDetailId: string +} + +// 查询计划外出库记录子列表 +export const getUnplannedissueRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/unplannedissue-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/unplannedissue-record-detail/page`, params }) + } +} + +// 查询计划外出库记录子详情 +export const getUnplannedissueRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/unplannedissue-record-detail/get?id=` + id }) +} + +// 新增计划外出库记录子 +export const createUnplannedissueRecordDetail = async (data: UnplannedissueRecordDetailVO) => { + return await request.post({ url: `/wms/unplannedissue-record-detail/create`, data }) +} + +// 修改计划外出库记录子 +export const updateUnplannedissueRecordDetail = async (data: UnplannedissueRecordDetailVO) => { + return await request.put({ url: `/wms/unplannedissue-record-detail/update`, data }) +} + +// 删除计划外出库记录子 +export const deleteUnplannedissueRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/unplannedissue-record-detail/delete?id=` + id }) +} + +// 导出计划外出库记录子 Excel +export const exportUnplannedissueRecordDetail = async (params) => { + return await request.download({ url: `/wms/unplannedissue-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/unplannedissue-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/unplannedissueRecordMain/index.ts b/src/api/wms/unplannedissueRecordMain/index.ts new file mode 100644 index 0000000..c0544e0 --- /dev/null +++ b/src/api/wms/unplannedissueRecordMain/index.ts @@ -0,0 +1,66 @@ +import request from '@/config/axios' + +export interface UnplannedissueRecordMainVO { + requestNumber: string + jobNumber: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + code: string + number: string + businessType: string + remark: string + createTime: Date + creatorId: string + fromWarehouseCode: string + fromLocationTypes: string + fromAreaCodes: string + fromDockCode: string + available: string +} + +// 查询计划外出库记录主列表 +export const getUnplannedissueRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/unplannedissue-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/unplannedissue-record-main/page`, params }) + } +} + +// 查询计划外出库记录主详情 +export const getUnplannedissueRecordMain = async (id: number) => { + return await request.get({ url: `/wms/unplannedissue-record-main/get?id=` + id }) +} + +// 新增计划外出库记录主 +export const createUnplannedissueRecordMain = async (data: UnplannedissueRecordMainVO) => { + return await request.post({ url: `/wms/unplannedissue-record-main/create`, data }) +} + +// 修改计划外出库记录主 +export const updateUnplannedissueRecordMain = async (data: UnplannedissueRecordMainVO) => { + return await request.put({ url: `/wms/unplannedissue-record-main/update`, data }) +} + +// 删除计划外出库记录主 +export const deleteUnplannedissueRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/unplannedissue-record-main/delete?id=` + id }) +} + +// 导出计划外出库记录主 Excel +export const exportUnplannedissueRecordMain = async (params) => { + return await request.download({ url: `/wms/unplannedissue-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/unplannedissue-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/unplannedissueRequestDetail/index.ts b/src/api/wms/unplannedissueRequestDetail/index.ts new file mode 100644 index 0000000..e5105fc --- /dev/null +++ b/src/api/wms/unplannedissueRequestDetail/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface UnplannedissueRequestDetailVO { + fromOwnerCode: string + packingNumber: string + containerNumber: string + batch: string + fromLocationCode: string + inventoryStatus: string + reason: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string +} + +// 查询计划外出库申请子列表 +export const getUnplannedissueRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/unplannedissue-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/unplannedissue-request-detail/page`, params }) + } +} + +// 查询计划外出库申请子详情 +export const getUnplannedissueRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/unplannedissue-request-detail/get?id=` + id }) +} + +// 新增计划外出库申请子 +export const createUnplannedissueRequestDetail = async (data: UnplannedissueRequestDetailVO) => { + return await request.post({ url: `/wms/unplannedissue-request-detail/create`, data }) +} + +// 修改计划外出库申请子 +export const updateUnplannedissueRequestDetail = async (data: UnplannedissueRequestDetailVO) => { + return await request.put({ url: `/wms/unplannedissue-request-detail/update`, data }) +} + +// 删除计划外出库申请子 +export const deleteUnplannedissueRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/unplannedissue-request-detail/delete?id=` + id }) +} + +// 导出计划外出库申请子 Excel +export const exportUnplannedissueRequestDetail = async (params) => { + return await request.download({ url: `/wms/unplannedissue-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/unplannedissue-request-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/unplannedissueRequestMain/index.ts b/src/api/wms/unplannedissueRequestMain/index.ts new file mode 100644 index 0000000..b0a4f09 --- /dev/null +++ b/src/api/wms/unplannedissueRequestMain/index.ts @@ -0,0 +1,99 @@ +import request from '@/config/axios' + +export interface UnplannedissueRequestMainVO { + fromWarehouseCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + concurrencyStamp: string + fromLocationTypes: string + fromAreaCodes: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询计划外出库申请主列表 +export const getUnplannedissueRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/unplannedissue-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/unplannedissue-request-main/page`, params }) + } +} + +// 查询计划外出库申请主详情 +export const getUnplannedissueRequestMain = async (id: number) => { + return await request.get({ url: `/wms/unplannedissue-request-main/get?id=` + id }) +} + +// 新增计划外出库申请主 +export const createUnplannedissueRequestMain = async (data: UnplannedissueRequestMainVO) => { + return await request.post({ url: `/wms/unplannedissue-request-main/create`, data }) +} + +// 修改计划外出库申请主 +export const updateUnplannedissueRequestMain = async (data: UnplannedissueRequestMainVO) => { + return await request.put({ url: `/wms/unplannedissue-request-main/update`, data }) +} + +// 删除计划外出库申请主 +export const deleteUnplannedissueRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/unplannedissue-request-main/delete?id=` + id }) +} + +// 导出计划外出库申请主 Excel +export const exportUnplannedissueRequestMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/unplannedissue-request-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/unplannedissue-request-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/unplannedissue-request-main/get-import-template' }) +} + +// 关闭-计划外出库申请 +export const closeUnplannedissueRequestMain = async (id) => { + return await request.put({ url: `/wms/unplannedissue-request-main/close?id=` + id }) +} + +// 重新添加-计划外出库申请 +export const reAddUnplannedissueRequestMain = async (id) => { + return await request.put({ url: `/wms/unplannedissue-request-main/reAdd?id=` + id }) +} + +// 提交审批-计划外出库申请 +export const submitUnplannedissueRequestMain = async (id) => { + return await request.put({ url: `/wms/unplannedissue-request-main/submit?id=` + id }) +} + +// 审批驳回-计划外出库申请 +export const refusedUnplannedissueRequestMain = async (id) => { + return await request.put({ url: `/wms/unplannedissue-request-main/refused?id=` + id }) +} + +// 审批通过-计划外出库申请 +export const agreeUnplannedissueRequestMain = async (id) => { + return await request.put({ url: `/wms/unplannedissue-request-main/agree?id=` + id }) +} + +// 处理-计划外出库申请 +export const handleUnplannedissueRequestMain = async (id) => { + return await request.put({ url: `/wms/unplannedissue-request-main/handle?id=` + id }) +} diff --git a/src/api/wms/unplannedreceiptJobDetail/index.ts b/src/api/wms/unplannedreceiptJobDetail/index.ts new file mode 100644 index 0000000..450f813 --- /dev/null +++ b/src/api/wms/unplannedreceiptJobDetail/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface UnplannedreceiptJobDetailVO { + ownerCode: string + packingNumber: string + containerNumber: string + batch: string + altBatch: string + arriveDate: Date + produceDate: Date + expireDate: Date + toLocationCode: string + inventoryStatus: string + reason: string + itemCode: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + number: string + remark: string + createTime: Date + creator: string +} + +// 查询计划外入库任务子列表 +export const getUnplannedreceiptJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/unplannedreceipt-job-detail/senior', data }) + } else { + return await request.get({ url: `/wms/unplannedreceipt-job-detail/page`, params }) + } +} + +// 查询计划外入库任务子详情 +export const getUnplannedreceiptJobDetail = async (id: number) => { + return await request.get({ url: `/wms/unplannedreceipt-job-detail/get?id=` + id }) +} + +// 新增计划外入库任务子 +export const createUnplannedreceiptJobDetail = async (data: UnplannedreceiptJobDetailVO) => { + return await request.post({ url: `/wms/unplannedreceipt-job-detail/create`, data }) +} + +// 修改计划外入库任务子 +export const updateUnplannedreceiptJobDetail = async (data: UnplannedreceiptJobDetailVO) => { + return await request.put({ url: `/wms/unplannedreceipt-job-detail/update`, data }) +} + +// 删除计划外入库任务子 +export const deleteUnplannedreceiptJobDetail = async (id: number) => { + return await request.delete({ url: `/wms/unplannedreceipt-job-detail/delete?id=` + id }) +} + +// 导出计划外入库任务子 Excel +export const exportUnplannedreceiptJobDetail = async (params) => { + return await request.download({ url: `/wms/unplannedreceipt-job-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/unplannedreceipt-job-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/unplannedreceiptJobMain/index.ts b/src/api/wms/unplannedreceiptJobMain/index.ts new file mode 100644 index 0000000..88e2f8e --- /dev/null +++ b/src/api/wms/unplannedreceiptJobMain/index.ts @@ -0,0 +1,79 @@ +import request from '@/config/axios' + +export interface UnplannedreceiptJobMainVO { + requestNumber: string + toWarehouseCode: string + requestTime: Date + requestDueTime: Date + status: string + expiredTime: Date + updateTime: Date + updater: string + jobStageStatus: string + priority: number + priorityIncrement: number + departmentCode: string + acceptUserId: string + acceptTime: Date + completeUserId: string + completeTime: Date + fromLocationTypes: string + toLocationTypes: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + toAreaCodes: string + autoComplete: string + allowModifyLocation: string + allowModifyQty: string + allowBiggerQty: string + allowSmallerQty: string + allowModifyInventoryStatus: string + allowContinuousScanning: string + allowPartialComplete: string + allowModifyBatch: string + allowModifyPackingNumber: string +} + +// 查询计划外入库任务主列表 +export const getUnplannedreceiptJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/unplannedreceipt-job-main/senior', data }) + } else { + return await request.get({ url: `/wms/unplannedreceipt-job-main/page`, params }) + } +} + +// 查询计划外入库任务主详情 +export const getUnplannedreceiptJobMain = async (id: number) => { + return await request.get({ url: `/wms/unplannedreceipt-job-main/get?id=` + id }) +} + +// 新增计划外入库任务主 +export const createUnplannedreceiptJobMain = async (data: UnplannedreceiptJobMainVO) => { + return await request.post({ url: `/wms/unplannedreceipt-job-main/create`, data }) +} + +// 修改计划外入库任务主 +export const updateUnplannedreceiptJobMain = async (data: UnplannedreceiptJobMainVO) => { + return await request.put({ url: `/wms/unplannedreceipt-job-main/update`, data }) +} + +// 删除计划外入库任务主 +export const deleteUnplannedreceiptJobMain = async (id: number) => { + return await request.delete({ url: `/wms/unplannedreceipt-job-main/delete?id=` + id }) +} + +// 导出计划外入库任务主 Excel +export const exportUnplannedreceiptJobMain = async (params) => { + return await request.download({ url: `/wms/unplannedreceipt-job-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/unplannedreceipt-job-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/unplannedreceiptRecordDetail/index.ts b/src/api/wms/unplannedreceiptRecordDetail/index.ts new file mode 100644 index 0000000..458ebab --- /dev/null +++ b/src/api/wms/unplannedreceiptRecordDetail/index.ts @@ -0,0 +1,74 @@ +import request from '@/config/axios' + +export interface UnplannedreceiptRecordDetailVO { + ownerCode: string + packingNumber: string + containerNumber: string + batch: string + altBatch: string + arriveDate: Date + produceDate: Date + expireDate: Date + toLocationCode: string + toLocationGroupCode: string + toAreaCode: string + inventoryStatus: string + reason: string + singlePrice: number + amount: number + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + code: string + interfaceType: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + jobDetailId: string +} + +// 查询计划外入库记录子列表 +export const getUnplannedreceiptRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/unplannedreceipt-record-detail/senior', data }) + } else { + return await request.get({ url: `/wms/unplannedreceipt-record-detail/page`, params }) + } +} + +// 查询计划外入库记录子详情 +export const getUnplannedreceiptRecordDetail = async (id: number) => { + return await request.get({ url: `/wms/unplannedreceipt-record-detail/get?id=` + id }) +} + +// 新增计划外入库记录子 +export const createUnplannedreceiptRecordDetail = async (data: UnplannedreceiptRecordDetailVO) => { + return await request.post({ url: `/wms/unplannedreceipt-record-detail/create`, data }) +} + +// 修改计划外入库记录子 +export const updateUnplannedreceiptRecordDetail = async (data: UnplannedreceiptRecordDetailVO) => { + return await request.put({ url: `/wms/unplannedreceipt-record-detail/update`, data }) +} + +// 删除计划外入库记录子 +export const deleteUnplannedreceiptRecordDetail = async (id: number) => { + return await request.delete({ url: `/wms/unplannedreceipt-record-detail/delete?id=` + id }) +} + +// 导出计划外入库记录子 Excel +export const exportUnplannedreceiptRecordDetail = async (params) => { + return await request.download({ url: `/wms/unplannedreceipt-record-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/unplannedreceipt-record-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/unplannedreceiptRecordMain/index.ts b/src/api/wms/unplannedreceiptRecordMain/index.ts new file mode 100644 index 0000000..e54a19f --- /dev/null +++ b/src/api/wms/unplannedreceiptRecordMain/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface UnplannedreceiptRecordMainVO { + requestNumber: string + jobNumber: string + outTransactionType: string + inTransactionType: string + executeTime: Date + activeDate: Date + requestTime: Date + dueTime: Date + departmentCode: string + interfaceType: string + code: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + available: string +} + +// 查询计划外入库记录主列表 +export const getUnplannedreceiptRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/unplannedreceipt-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/unplannedreceipt-record-main/page`, params }) + } +} + +// 查询计划外入库记录主详情 +export const getUnplannedreceiptRecordMain = async (id: number) => { + return await request.get({ url: `/wms/unplannedreceipt-record-main/get?id=` + id }) +} + +// 新增计划外入库记录主 +export const createUnplannedreceiptRecordMain = async (data: UnplannedreceiptRecordMainVO) => { + return await request.post({ url: `/wms/unplannedreceipt-record-main/create`, data }) +} + +// 修改计划外入库记录主 +export const updateUnplannedreceiptRecordMain = async (data: UnplannedreceiptRecordMainVO) => { + return await request.put({ url: `/wms/unplannedreceipt-record-main/update`, data }) +} + +// 删除计划外入库记录主 +export const deleteUnplannedreceiptRecordMain = async (id: number) => { + return await request.delete({ url: `/wms/unplannedreceipt-record-main/delete?id=` + id }) +} + +// 导出计划外入库记录主 Excel +export const exportUnplannedreceiptRecordMain = async (params) => { + return await request.download({ url: `/wms/unplannedreceipt-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/unplannedreceipt-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/unplannedreceiptRequestDetail/index.ts b/src/api/wms/unplannedreceiptRequestDetail/index.ts new file mode 100644 index 0000000..c62a7e1 --- /dev/null +++ b/src/api/wms/unplannedreceiptRequestDetail/index.ts @@ -0,0 +1,74 @@ +import request from '@/config/axios' + +export interface UnplannedreceiptRequestDetailVO { + toOwnerCode: string + packingNumber: string + containerNumber: string + batch: string + altBatch: string + arriveDate: Date + produceDate: Date + expireDate: Date + toLocationCode: string + inventoryStatus: string + reason: string + number: string + itemCode: string + remark: string + createTime: Date + creator: string + itemName: string + itemDesc1: string + itemDesc2: string + projectCode: string + qty: number + uom: string + updateTime: Date + updater: string +} + +// 查询计划外入库申请子列表 +export const getUnplannedreceiptRequestDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/unplannedreceipt-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/unplannedreceipt-request-detail/page`, params }) + } +} + +// 查询计划外入库申请子详情 +export const getUnplannedreceiptRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/unplannedreceipt-request-detail/get?id=` + id }) +} + +// 新增计划外入库申请子 +export const createUnplannedreceiptRequestDetail = async (data: UnplannedreceiptRequestDetailVO) => { + return await request.post({ url: `/wms/unplannedreceipt-request-detail/create`, data }) +} + +// 修改计划外入库申请子 +export const updateUnplannedreceiptRequestDetail = async (data: UnplannedreceiptRequestDetailVO) => { + return await request.put({ url: `/wms/unplannedreceipt-request-detail/update`, data }) +} + +// 删除计划外入库申请子 +export const deleteUnplannedreceiptRequestDetail = async (id: number) => { + return await request.delete({ url: `/wms/unplannedreceipt-request-detail/delete?id=` + id }) +} + +// 导出计划外入库申请子 Excel +export const exportUnplannedreceiptRequestDetail = async (params) => { + return await request.download({ url: `/wms/unplannedreceipt-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/unplannedreceipt-request-detail/get-import-template' }) +} + +// 创建包装信息后更新子表数据packingNumber +export const updateDetailPackingNumber = async (id: number, number) => { + return await request.put({ url: '/wms/unplannedreceipt-request-detail/updateDetailPackingNumber?id=' + id + '&number=' + number }) +} diff --git a/src/api/wms/unplannedreceiptRequestMain/index.ts b/src/api/wms/unplannedreceiptRequestMain/index.ts new file mode 100644 index 0000000..30b0243 --- /dev/null +++ b/src/api/wms/unplannedreceiptRequestMain/index.ts @@ -0,0 +1,98 @@ +import request from '@/config/axios' + +export interface UnplannedreceiptRequestMainVO { + toWarehouseCode: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + requestTime: Date + dueTime: Date + departmentCode: string + status: string + updateTime: Date + updater: string + toLocationTypes: string + toAreaCodes: string + autoCommit: string + autoAgree: string + autoExecute: string + directCreateRecord: string +} + +// 查询计划外入库申请主列表 +export const getUnplannedreceiptRequestMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/unplannedreceipt-request-main/senior', data }) + } else { + return await request.get({ url: `/wms/unplannedreceipt-request-main/page`, params }) + } +} + +// 查询计划外入库申请主详情 +export const getUnplannedreceiptRequestMain = async (id: number) => { + return await request.get({ url: `/wms/unplannedreceipt-request-main/get?id=` + id }) +} + +// 新增计划外入库申请主 +export const createUnplannedreceiptRequestMain = async (data: UnplannedreceiptRequestMainVO) => { + return await request.post({ url: `/wms/unplannedreceipt-request-main/create`, data }) +} + +// 修改计划外入库申请主 +export const updateUnplannedreceiptRequestMain = async (data: UnplannedreceiptRequestMainVO) => { + return await request.put({ url: `/wms/unplannedreceipt-request-main/update`, data }) +} + +// 删除计划外入库申请主 +export const deleteUnplannedreceiptRequestMain = async (id: number) => { + return await request.delete({ url: `/wms/unplannedreceipt-request-main/delete?id=` + id }) +} + +// 导出计划外入库申请主 Excel +export const exportUnplannedreceiptRequestMain = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/unplannedreceipt-request-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/unplannedreceipt-request-main/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/unplannedreceipt-request-main/get-import-template' }) +} + +// 关闭-计划外入库申请 +export const closeUnplannedreceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/unplannedreceipt-request-main/close?id=` + id }) +} + +// 重新添加-计划外入库申请 +export const reAddUnplannedreceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/unplannedreceipt-request-main/reAdd?id=` + id }) +} + +// 提交审批-计划外入库申请 +export const submitUnplannedreceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/unplannedreceipt-request-main/submit?id=` + id }) +} + +// 审批驳回-计划外入库申请 +export const refusedUnplannedreceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/unplannedreceipt-request-main/refused?id=` + id }) +} + +// 审批通过-计划外入库申请 +export const agreeUnplannedreceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/unplannedreceipt-request-main/agree?id=` + id }) +} + +// 处理-计划外入库申请 +export const handleUnplannedreceiptRequestMain = async (id) => { + return await request.put({ url: `/wms/unplannedreceipt-request-main/handle?id=` + id }) +} diff --git a/src/api/wms/warehouse/index.ts b/src/api/wms/warehouse/index.ts new file mode 100644 index 0000000..882fac2 --- /dev/null +++ b/src/api/wms/warehouse/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +export interface WarehouseVO { + code: string + name: string + description: string + type: string + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询仓库列表 +export const getWarehousePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/warehouse/senior', data }) + } else { + return await request.get({ url: `/wms/warehouse/page`, params }) + } +} +// 查询仓库所有列表 +export const getWarehouseList = async (params) => { + return await request.get({ url: `/wms/warehouse/list`, params }) +} +// 查询仓库详情 +export const getWarehouse = async (id: number) => { + return await request.get({ url: `/wms/warehouse/get?id=` + id }) +} + +// 新增仓库 +export const createWarehouse = async (data: WarehouseVO) => { + return await request.post({ url: `/wms/warehouse/create`, data }) +} + +// 修改仓库 +export const updateWarehouse = async (data: WarehouseVO) => { + return await request.put({ url: `/wms/warehouse/update`, data }) +} + +// 删除仓库 +export const deleteWarehouse = async (id: number) => { + return await request.delete({ url: `/wms/warehouse/delete?id=` + id }) +} + +// 导出仓库 Excel +export const exportWarehouse = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/warehouse/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/warehouse/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/warehouse/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/workDetail/index.ts b/src/api/wms/workDetail/index.ts new file mode 100644 index 0000000..2c5a1c8 --- /dev/null +++ b/src/api/wms/workDetail/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +export interface WorkDetailVO { + lineNumber: string + projectCode: string + finishedQty: number + number: string + itemCode: string + remark: string + createTime: Date + creator: string + orderQty: number + uom: string + updateTime: Date + updater: string + available: string +} + +// 查询生产订单子列表 +export const getWorkDetailPage = async (params) => { + return await request.get({ url: `/wms/work-detail/page`, params }) +} + +// 查询生产订单子详情 +export const getWorkDetail = async (id: number) => { + return await request.get({ url: `/wms/work-detail/get?id=` + id }) +} + +// 新增生产订单子 +export const createWorkDetail = async (data: WorkDetailVO) => { + return await request.post({ url: `/wms/work-detail/create`, data }) +} + +// 修改生产订单子 +export const updateWorkDetail = async (data: WorkDetailVO) => { + return await request.put({ url: `/wms/work-detail/update`, data }) +} + +// 删除生产订单子 +export const deleteWorkDetail = async (id: number) => { + return await request.delete({ url: `/wms/work-detail/delete?id=` + id }) +} + +// 导出生产订单子 Excel +export const exportWorkDetail = async (params) => { + return await request.download({ url: `/wms/work-detail/export-excel`, params }) +} diff --git a/src/api/wms/workMain/index.ts b/src/api/wms/workMain/index.ts new file mode 100644 index 0000000..6465bc7 --- /dev/null +++ b/src/api/wms/workMain/index.ts @@ -0,0 +1,59 @@ +import request from '@/config/axios' + +export interface WorkMainVO { + customerCode: string + type: string + orderDate: Date + dueDate: Date + version: string + number: string + businessType: string + remark: string + createTime: Date + creator: string + updateTime: Date + updater: string + currentStage: number + available: string +} + +// 查询生产订单主列表 +export const getWorkMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/work-main/senior', data }) + } else { + return await request.get({ url: `/wms/work-main/page`, params }) + } +} + +// 查询生产订单主详情 +export const getWorkMain = async (id: number) => { + return await request.get({ url: `/wms/work-main/get?id=` + id }) +} + +// 新增生产订单主 +export const createWorkMain = async (data: WorkMainVO) => { + return await request.post({ url: `/wms/work-main/create`, data }) +} + +// 修改生产订单主 +export const updateWorkMain = async (data: WorkMainVO) => { + return await request.put({ url: `/wms/work-main/update`, data }) +} + +// 删除生产订单主 +export const deleteWorkMain = async (id: number) => { + return await request.delete({ url: `/wms/work-main/delete?id=` + id }) +} + +// 导出生产订单主 Excel +export const exportWorkMain = async (params) => { + return await request.download({ url: `/wms/work-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/work-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/workshop/index.ts b/src/api/wms/workshop/index.ts new file mode 100644 index 0000000..7272534 --- /dev/null +++ b/src/api/wms/workshop/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface WorkshopVO { + code: string + name: string + description: string + type: string + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询车间列表 +export const getWorkshopPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/workshop/senior', data }) + } else { + return await request.get({ url: `/wms/workshop/page`, params }) + } +} + +// 查询车间详情 +export const getWorkshop = async (id: number) => { + return await request.get({ url: `/wms/workshop/get?id=` + id }) +} + +// 新增车间 +export const createWorkshop = async (data: WorkshopVO) => { + return await request.post({ url: `/wms/workshop/create`, data }) +} + +// 修改车间 +export const updateWorkshop = async (data: WorkshopVO) => { + return await request.put({ url: `/wms/workshop/update`, data }) +} + +// 删除车间 +export const deleteWorkshop = async (id: number) => { + return await request.delete({ url: `/wms/workshop/delete?id=` + id }) +} + +// 导出车间 Excel +export const exportWorkshop = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/workshop/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/workshop/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/workshop/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/workstation/index.ts b/src/api/wms/workstation/index.ts new file mode 100644 index 0000000..40e5dd6 --- /dev/null +++ b/src/api/wms/workstation/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface WorkstationVO { + code: string + name: string + description: string + type: string + workshopCode: string + productionLineCode: string + rawLocationCode: string + fgLocationCode: string + available: number + activeTime: Date + expireTime: Date + remark: string +} + +// 查询工位列表 +export const getWorkstationPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/workstation/senior', data }) + } else { + return await request.get({ url: `/wms/workstation/page`, params }) + } +} + +// 查询工位详情 +export const getWorkstation = async (id: number) => { + return await request.get({ url: `/wms/workstation/get?id=` + id }) +} + +// 新增工位 +export const createWorkstation = async (data: WorkstationVO) => { + return await request.post({ url: `/wms/workstation/create`, data }) +} + +// 修改工位 +export const updateWorkstation = async (data: WorkstationVO) => { + return await request.put({ url: `/wms/workstation/update`, data }) +} + +// 删除工位 +export const deleteWorkstation = async (id: number) => { + return await request.delete({ url: `/wms/workstation/delete?id=` + id }) +} + +// 导出工位 Excel +export const exportWorkstation = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/workstation/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/workstation/export-excel`, params }) + } +} + +// 下载用户导入模板 +export const importWorkstationTemplate = () => { + return request.download({ url: '/wms/workstation/get-import-template' }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/workstation/get-import-template' }) +} diff --git a/src/assets/imgs/Eyes-closed.png b/src/assets/imgs/Eyes-closed.png new file mode 100644 index 0000000000000000000000000000000000000000..450f114645d1ce69dd4e9bbce541cd392b4024ee GIT binary patch literal 6454 zcmeHsS5#A7(Dnf$RV4u_3P^~dBOq0}k zEA-AuBJ1Uaq$KsX8wDSJnt;LFIuva0!WpE(Q7%`6#?#S=YRiu%!EkrYp6RbcdX!Oh z?`VxXX_V<<)>k0)hi8_T0er40{nIZ8l~31R8Vt6MWy6IJ!$MC(eQv+pyrkh(1%p9L zY5<4>@c^93O~Hc+Rscna($XRpS9$(h6`-`4JWx}xqHvX66 zp%9dfUTwx2pAMWH=Nr37!jz5ShYvw!t)b`29UUDSOvGeu!HWhf!F?6vo-I&+4N@t< zl)Fq%*$n=HZiN7|ddNOf@(c)&RXJVzN;1&bzbMXVc2|*w^<+!CUicDmYL_@{kSpVx zRm^gV_|>t0ujwvciSVGcgLa|*0$x;*W*W%x_msdzKFsI|i+1UdVA0dGi8y0Z=t9%; zp16-taWTqAj~>ySwuChsyOb!3Q?!Yt8S_&kyxdXE7N8j1vcS-81spe1C7+pm2N%~N zuBcR*-@`!p74iekNbw*J!^#2MEx*FRO7QDV;Z^C!6=XqkWIbn(OH1+_5rQuaSv!1s zfwocv*uteuEGRO3G~081&KyJsJ0Xc*oh$gJ?hq-JGmw@~3K5ATdPpGmip8(CTK-H} z9%GESpODCdE5B=>fMGwZN{fMV$hh7AJmWD(3n&~)jIa8HK5>z{RR}z2w)@uyVNFee zmsas~d#t@J>GhieD365RFUxqZ3nHSe-eKiSGQMyY6vSiLmXg?r*>}Kd#ACp#;x0Qd z9|5I3*t8d8M&JY*Zvgrm_9ES+#N!qfc^R35b53~}`Vna1eyB+boRI&eO#&1L-aedh zbAV}bc3Z)5w(it4fE9h@{QVr6Z=(q@;iD(6+NE`ANi#Z-?WY_dvtRZ_RhrYD8l9DF z_n?gmGL%L)xEKH{kvlp=yVpIWZq3yol3X#%cX>g9eYan(-3$7Gpiz1h>3+}58zkc~ zUGLg7vqay^x#c>mU*h90W*c3g@*azh#mwFN$yUP!j&S(eFuqIB(=OGWBND(s z8%LF!T<@BN>p%|Sd;L#A*vWJD=&)2-t>igx@?D4N2>$ZPYX?WHLcFEoJZ?wkzQ>-t z5mDE(1LpUjw4yRZmOL&7@(olb=b52Ufqp)Ae6%#>HKW?4?>@Dq8Fxb$Otq`UifK3_ z1Y-4paET#^_`x@`0G z9etlYgY8nj5RLTu>CG7yjR{gdXY1Lzja2*`-trLzjwmfHRZ<#i8tMvdJszeBPXr;_ zJi8UK&3xc2AHo~ z_sik#-<0rvrVI9CRU-xxOgcNg_49rc4in_onF!-Bg~n27{_cxgTp=w&!CsDQ=wH8srd%%;YO)`YY`c@BV2|Rx{c| z0bW)1TmVYtd~c*%#JqN`cc;Wiaa`ScAY1wl1Dhz}I?&}dmEZmJ_iIu+NXxUP0uHz*q#tsIhjPGS7d*6!4s3jFK z4Oz{SR~X4x(K;VAP(h$-ThAwP-6PkYFo!Z867|Zt2Cc!bwPV5&VPEad43lqiv45-8 z>G0qARLDI_(|1QLVawy=eeIn>Br_YOgF8&70cfqxeT!y8tsP9$XA^V;)QXakQ zqo}H?+H}{laqr6-aVb?K4I13Qixb{`jWq}|f8IYT+Q`Un1>aBAue-Hv@@kc3&mL%_ zLx6+di;#*SAAY&yCBe0_9OJ$|t4hZV(sgXrexiqsagd?m=1EH!B0^oJInNHerMTIt zUTE}PY{8h;*x`M{+e~-fF2@;itvLk*9PRMxq$|2TQ}w+Fe{e&M256(f8lOpO{(&PG z>q<~>UPN|!2QxwB6c&H3v$~pp0Om`yOZ!6RS_%E9sB%duXxCAH{pKk*6qib2ogrfL zZ&r@TK~S$(-4vAe6AGx&PC}LMZ@{%KYD{5NTgR#Sq?vShuf4Hi)2Umh_nC6h&o9W% zc-NzVj(3TNFkH>%JLyO#e1j+FVIl`6`A^;0%ycF%ZKUUQ z;bwzjP4fMV>rYge9VQm;I|I}p=P1f-$WsKx1!$@BktZIhs3}{`@B#XIMP`Sob8|GF!dnqbiDbB zD!ChFdMKGhXc-CR(51Z)EQ(i~&E)J014Dc+9}ejyO|S@Z^51vbxG)ub!4H{P37qxE zEVCjBVc^KcozLrjr)krVrgsUZV8~^T!NIQ}FwxnDUElOkul#ce+2j#m9`~usz31Be zE33NdBc97axR%Fm$Yn8^F-%vJ>p;VOUc4ZFe|2nALQ1L=bRUbk{%a=2+WUZmo{4-=Wg2`2fnEkI;3hVMDDR);;}(* zFV_QS_b#tpyQX(pKnfgbGERk0NNc4u%jaD;tyFv>xUZpIIwx2p-?sTa#*Ys-gIRuE z+hZ+9Qhd~9>0p(w@&4l{QlO*Mt$5wmWy$}XV5Dd(iKR|gEzmjr1jRLl%&E-zB_42k zW1M1W!Nihwam7?N-k4<-9p9QfXW+;S3{p}k-iMP30yiJ7)t~*$GtF4z&cfu)0>bN} zkrfL7@ImR8j=N{73Y?P4x^uT&cO@a-IuVJ=$&39^+Qy58O>J_b)y)t5^7=53J&Ug7 zv|;xc`z92Ndj*6K-NvGgTCC4-vm6ngLHYg;g~aiS8-^;HIIKJegoGDW5kpv*@*8O@ z<->bpx3{-f8*Orx8SWXeezD-*%zGKeBB8zZ(X>r&X~_b479jiN1d-yASF-f~?d8E4 z*yYZ(KU<+%qetd`f2Qj?Q1dwxKKxpU!TLPo_%h34uL1wUR323 zFh)KcP6XPB2(Z`7m1$cSm%r9?hnxL)0s2AkvafuY^CY2|8$MB+@DD3Fe^rXH=oNZ7 zARx1n6T_Z!;@d1^d&_ZPfAB%4uIqK5-#-~s#2LZcgcV1Ni$caXdAGGa%j-E?wtt|l z%CYk8$?)gP7fb*OgfOhPA&h35pPa}A z$9;SWlE>VC{L`IVbH^|R{^r$awkdPoPiYv=N?Z=?{m7^djYnm|wKix@aiMA|DwO%8 zc-dRmMAgil_9EZ~4v}6l`fP8u!_7q>Hv9Bx69PG{bTs8`Q-8;uGHLdy`OKHqNVq-Iq6V37ee3M(yeku- z?^#(Nl)o-<>Pdn<55847va*%&C!RdDG;MLPPaS7idnz%%3IlID8r^7)IMqWR>;@tg zd#m(BjUN9+9aqurbok~KVk3#@Rc_&;gPN-c6_}$Vw;Vib^$Hn1;`2$(*@=}xMNb_j z99#RhDJq&U%N2f2%`VTM?<7n_d@}p$KvIiioe{aE?gmli@yxpclW{sC3h_3eI1y>>vAF*td&G9ZjG4XR%{?F2`Ot z;p_f_M|G6@NO}6C@R*pG)2g1OG{HDHijEREESl12NtONQ(~kX(vO73~Xq%(tPxt!M zb9nT~8F1VZrkMf{<~s}Is})&R#9h-!H4b_O6Osyzo4(4_c~JCfr9csC9MrW-;H~w0GvC<)4UD)M0tT4el(wk?1jFCZc!wy7N7AcJ42BiQBNJpG-?x zDZbMGukR1TwOR^jhOSnP-C1y=mJ^1pj^d|m?d+mn3br(5Ab@}ef-ioriJDAtHOy2y zkL*sa%cR0V;cQGqU+*Yqne*Q>$6SOszu@4rxtDU)$H#wvl^1*+(O1~kt{m7_MXs4^ z4I=n8gVLHb1oxS8-l=SNG7nj{1k16t`^Z#}c0-7(KzO-fi*LH^?5Dofhuc4X{CHhh zSlF7$^?0c93EK7P^h70j9K9ze=lpV8K=J{3w7UYFQTHv?(?b&LoW&FILSS}83lk2tXq6V@&u(7efQy(c2?70H5Xh7V7`Q!Wd??W;~ zEhqO6x{6gEnWsU?Dgm+xyUw>gIM?p3pk=~CZek<|QA4lQZg;tv0aE$dZKScG4BUAV z$pYbGiT*9LidhnW!V;;gr>A$)GFJn4OQ?24w#H(@+~1KN7cqeZZTdPq$>tqc5CZPC zF04*{q$f8Fi?87dF6+-2L|{QuS5;>VWq#Ps(^c7YM61f@CH(T?MOO1&RW0XV(sgJM z0%;YfR#1f3WiHAUBy66(Nr;b6doI$B%B3yIcWOk4};j2)B7lK4FlZQL!Hns^+@h_KSVbcm-x5;W}*LQSGYD5WO zd^mPMeF4}ig3=~@wJHA?PtO!(RkJJX@A?XpkXc@sDNS?b+BGS%%hM(qO{R`Ux_Bx^%rH@UcK(0l)Yj`q^O`I+dH z^V8Q2=(r9j6x6NWb;=GatD}QtuvQyopS)v^G7#LE@G$>_LI$VZwN+bxyiT8zGKsqO z>gLggdZz_VcI-mFMi|-R?(LzN9`tK4tPy^-V`K+-T1s$gk)18aWgq1rFwKFjT)P z^jrs|z1{C(XI^1wSWjf^9+T;D`Jw&IZ!craR=I}zl6y&1df=Rri4?e;XK?VeS?aJz z>ie1{%4rKs(-st0-XWe_(P?xre=wC#@*Xke_)~-FVZ5M{qs}ISn93t)I3PLt;4s4 z8uY+Kg?4d*d>zjAwKf>uoU#=n<{2_H?Iop^Vrxkz##t(O>4JEYAC<6_7$X}m}|m0w)`q$SeVYUVM)H-bDaXcc6w22YisMj&pfTzGSX<3YhL`2$(g0i ze{xy2fPb*TPS$PQ%erKw;eJOB-qrZIS8Iy)TWyFPHSvBz!}yeIJ<~M ztsgAK#L&6U_*xF)Mzg1y?`a)5w!DZY>rS#{eeIjQn^~|k{y1%aj}hS1L^6ser@{k& z>=Mjrj#2(CXF^&@BB>_!S!68Nh6S0Gj7-e!DtbuQaRU}p9(A&)v@?@DMjlNQNBsrA z$Z&8cUH`&|GO}P@Chx;k#|(;s>RYq&o2WgYHU5>ATAv4ng1jle-Y*rRe3(==nA^Dy zB5U8wncuWbAmGTyFP7jQ{N#^w+eGxsV#C27$|U){6%Y?-7eEf)#wO&`O!DMnrs&8z zIKOyYY8ea)D*fB9HLVW@N8XPx%YDp3@qecL4^fG@q&d_oX^=EJ9wYw<0kqWgkrfZE GBmW=0wC*&L}rxG$$9JAR-LhrN_UcMBnKUyqQ#v!fFg@4U*x23O{ju@-hnE_2a&q=w?aX>G z9^QLHCX=l_{JCF()HOP)p`pPqJF}#uB)s=#adGkSKQkaeQ8BY2J7DJPv=pSTT@#wL5EgaDPSFKy6!cR#tDdAr+RZ?hUgS@!Nbug1z}c zzH40FkO)%@>=!6A6o3GnP2Z-Ff&c)$C<4R~ERiP266Hw>WpautH7z~kRAyFoPVVV5 zdFrzoZGJ&vQE`c`^jukaMdkUb>YCcR`f?iaLK>4q7h8iM4tptuU?2e$1Bh==?g5>c zz1=sHNWCt^Uh6waj2;5^ngMq|3Ex8na6K2NW!O#wQE#}hAS3ro%^KRC+Wov75MZO5 zQ8xL~)reX=4!x$8xB6or!9CT>{jt?Sl9R0LFKHp-eIBWHwRxL{C|y_6ZS4+LQC5v# zi$TzL8%KG_a#WlrhRF9oCFHY@WQ1mb9irtP;a|&^MTu?`qk9?`^zdE|-NHQRAZP4U zYmA?*BF4MzniXf;B1*)oqZ$BIAV$B#S{aXx_8G7{BaLBGU+{ z1Mhb9s%SMlq#>DB|2%RV*dA}j$IkYo8Ykjh#0vZ|CTpTF(WBk!?s_q2PDC~c-H`bY z=eAf%E5dxkQU0gCy2Si`Lfdo#?LoEjyl~*p(X!c{1t0!W~?rlKZ z2gRxc8xjV?4IzMbEotrdtS8&uTr>`OyJSoZf72|Xw#$8dIz63(^@yDmesW=E@^oy+ zim5Yk0|%$_j!l+MssHq2j*#`HRw%&P8n6T$0q*Nsp-i;`0N7NkL}>yFAd{umPS~U@ zg%YNkIz!0J&R0rV5LFG5O#LE)VjQYeTb@)1;HywNwbO;{Lb@7NrpD{D3bAc0oSM*m zRauJfQrGv%ay##UL&K2Nr52=$&yF@s)ppg+&1SXL5*HvQm2mli_=g`Ur8IX8FYq+y660Ir(VErRi_H8Cy`>#K$H`J31^2DoMQDnDf=ZQI zSY)yWBiQXNyOOS-9MQGtc>wb8CxjY}l{p?*d5;s;9vEn~{28ifFkU1z%Yc8`d*sQ} zEii`1)2Ipr<3%yqxMNP?s9vz^qX$^B%QT$me3_|n?b$zp=i3Tm-Po9}Ili@J4#r(0 zJja2&3WY{a>*w!(m|<}&qOb!auz%zp%lh^Z2kREO>EpJ-%TIkd9jk`jM4}guxAw2% z9Dezdh4uJ#7~<$QvYG1kVBUYp6~^8CY(*?+jwHZka z(u*pA3N^0`Us<)#up`D;)d3#MTz?liOipVqIdZMQgS$SKG#E zLRbcC?aE=x$jNDVi!A{xyQ|8ND3FWgBOwlYRN^;7*-g5%{gP|o(lc~eZONvY_99Ox>ieYh{1rDQ4rdodoMu~@XMd?{W`0E)n(f-Ha_#$m!xz1!c2i1${WwaKop6HMgb=z-;> zi2V->Y8FvBBZsL5^Rrz`Jsj&4*?H&2f8o}K(RBk(t_EkS$GViw|lW~OA((#4A zz`4EgR~_%MpG9cwH*Mn^+30}W!ww;UjzwB6L{%;mwMmIPr_SF`VUgb)GbG?l1?Ye+ zu*8(vhzR-Weue-UAWc#vBq9^#N>g5&DXNt8B!9dZR1t}3r(xP=2&Acz*+md>vqqc= zm7h0dg{&zhpGQ(JDT(JxT9fep=gF5Y!<)&4N?OZJnB;#;as3W7bXP&_l5QT>n{t&E zeRp~)sd_UJ-?iNKxy8>GwtunU--^P9s(wg!WkY(VTWkv?J$M6iVo6nmJYk7X(nYi;&dK@iObK2bqM;I6yo_B2!wFhdO5T4vINJVZ&#*NR!JCLnOEfW^DLOfH1;NI zE{YjL!^z*lb=_r%?X5E6XbNLC0ryCbon5l_`HSa)9xpjbiee&Xp+KWTV0QI9-@YHE zJdSXFSM<(wrw9lZ9vkXAV1}1va)Qb|O?Mn;FRBWO;e~U)Jk{bG1hg;;P*csQpdGq> z++fR_?3M>}X-4k`I497fC>T0$KA96Z56pU&!Zw=#ZTQSZyHNi#c+`K>j07-%rLTA4 z;cvSjW=gQqBq^4R2SI$YDhYRC(dhEkca#FzrR1)TshG)JBxMw!L=JZ zvD5aM1@d|DGh3wFB;0^G?&Z!iCa&7kSgu+4Tvg_alY54;MO~SzcJA?@JylW8g%72f z-7D7bsRLRsn335K*=0w6i0g@*gYoZsdmy-%c4I_V&P}#O6Du%yS3k>;ee-P@X9Afv z^7Zcq_V*^>8Jl?`o(J!(A*8EI5#=IQ&&+roE#{OQM4tKB!cmq;p(T31Cr z=m7YhI1O(>(D9z2B9kIm(=JK?_khRvoH6#Qcu1wGvQ!XLBbS<)p_Y%>mAN~!>#jvV zf)&RBo_IeBn7nax^5oLX(u!2bFIZ6@xIARVt-L@gN;13B+x6gke>iwGOi15ZX~OgAU>y1V%oC|v=dDW zl8TB-01^nf5G$>#vujHj5CKck;+k@sfr1Pw8mA?8%DYPvjV{`PKDfW6G@}Er&AN;J zPB)f8cG9Lkn9`+Z;IUf$<0-Gveq-cKIhg@?Gt>p_Ri%Uo7czVNU z_L!|9rw$I(MQPSw@*4bOruh=aA1JgL`8|KYD$diWvgCnYwnwCc)?(yM@`ga?C#PQ9 z{802SCY#^-&E|zUrMp+!5;T22K7mO?_;y?H16V>2$TduA_aq-1tMm3Ri#kKh4sSJmBwQc#z*pme1x5G zPpB$%XC0s8&CMUJ7%R1^P}X6;jHD1K&U?DN?q8CkS7f|@j62a^Dt`fJ&}v|{ZICzj zT|(d4;19AHn$OIRkOL_=uLmMa;9%5uh)vm|mXmsSU6>SRAvo-p0X$}+MCQ(uyqwXG zaXxjP&OmP(TsMx8o~njW4#Ihmx-mKuGTZX$@BaE{!j`@gwoD3$e;0P5GMOTNW9-6Q zz+`L~d=2WH#;Gwom##roXz+%tTx>fFry*RurYysEYZ`7T61oP# z;kzbc*PDo~9lJPP-(COcVOD!R@yRPs2|p>8bz_P@tYjWTKEQH_cDBy^s#XCmvD#?$ zQomgi9}k$14Kkx5TnJV`NRw~>)l(VH+vc!=)kp*pzY_cM@`U4T7KS1c@!0-moxXi; z^yh(kOuktv^?(oRP@RUltY$t^HSCs>wi)zx*frWFCDnkyH6y5PO8ZU;uKGHJ#TzBo{g4Z85W-m}_FLaE8GHP?K7}%C zGB)`>Onq!J_SSLQQwjMe+k?}_2pOK=;hJYzNi+w-?LnI zNQLR}<>9_`J*qIer}+l+nMXHUCV>f^doOI`v5E~kJaojCOWQ4K78q^XuD;H(oCY7H=X(|Oq~1SX`!E*Kn`PGfRR-W zCL-)RlzPkrI}2&~(TuiwC#-woGppMXpRToRw%$MFuYXXnp8T5$Ffo#yZf7G+R@;@0BhXe!y5NHtZ~1?`s^!LGhVy8<*lo6CRh6# zZkSx%r|21g28R{IPAP8aN=-ULR&?+5WKuPbi0@o(`;)~B3)`P9_IW_6<^i1@$3dh!1f)?P1HzJ_(`Z?K-o-rfo&{|0NW z3Dy?EdqaZg-(cd$1x^3ScIXcrz@HGirP$xd5 zHNUoxLL39<-VNIkYWI&^|f| zhjp3F$3==X)Lo6SyZPhyS-X;GwA3mAaN1>8d1EXW!*K{n^>M;Cx`@Cpdf(3^umtAp zutHsh2WsstagO8=7*vPpUJry-%^&e7SJBamP0y`iGsZS=#-;#z=nhCz9Q@w9b`#UB zV!SRB-2iGS6n@^tTJeRQ!K^{I(dsHB`^g|fF21okRt{$I^+gCPlXi@`O*lcwl tSeX}8JPlhsJH^s%`^fr8K)RRk_D-Z(;fYh+bq~SM_Ebo|rD1@Le+4VAC8PiV literal 0 HcmV?d00001 diff --git a/src/assets/imgs/avatar.jpg b/src/assets/imgs/avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d46a70a46430e31744420865138cc7eedb8b77e1 GIT binary patch literal 6264 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 BLq7lj literal 0 HcmV?d00001 diff --git a/src/assets/imgs/code.png b/src/assets/imgs/code.png new file mode 100644 index 0000000000000000000000000000000000000000..ac4c16f913928a6490c26c7b0b96c05c55f8a9c1 GIT binary patch literal 4871 zcmV+i6Zq_jP)Px{!AV3xRCr$Pom*1e$P$K2V6Wrgl^7N+iS>^A`+ts_ zw}+qGwz*rJ{jp4}dev1&0ZFLIdpO=4{^+aJn5VXF?-pktt`e$ZbyZP75^3`LhyNZo zrv0{29fc%%>nI@6o4}Zza7^men)X^PNt}jKK;r1WeyR}Y;U#Aza6i`4|vbkOKG~Ph#sBsCZ6kJXLfu+I=I>j4ZCx0>5&4GE(%5-U5f;SXUQUL)(q7*@A z#%J!ic9S~D%$tJ?)?A4(M&lAnt7!}(qn70^PVvUf1fb(RH5KgG@@hdG1?&Uy)iQPV z{6^cF%f(-(w{ul-cG+~zJYHZ|~9fcaBRu*AIm~)p82Ro|bX) z^@saPxm30e%u8 z(cdNCq5buIS^I`81!N3(i3cdmb=XiYl?@o@0Dg>3Dz_%p10v#14OSzy5m(HbR2-jF z3y4_f5uDqwSq1LzBGzPWQNqSm+;^6`u1Y|hGd{2CFH^G`a~(r+K^)}*~Nzg})j2Biu>#K4H0p^|bNgsn-@r_dJ-NDoHSd=fco$HP()sSeM* zk6?nL*v~Z-2Z-qC7(2;2FrVcHl5$+HVgT_0MmOP?OAzi1iQ^vl-=5!? z?!?Ds?qABv9uO~J6zEQ&0F9r3W1Xln_mJVFmVMib(fWlhmn9%;D5Twr zG(OqV*O-GPvdvifojCW)29SxRcrSAJ^OjnvED_-}qOWVb4MdY=EUCkiG$6jA=-Nra zu;b;$jh#Mru-qxak{lo*pcug@eUi)G^=T!%gOZ?SNdk~iPz>Fnn#>ff`{Sj9fHJ_+ zXTo00_gDdb6hHz4(YJi(N~y)bAwWt717#BAhX%$wAiap)-|C!MF9G&!V`^3k>F3U6 zyax08YB$ccc(gDgfUE?1b7ag*|7o$NY5p_J%DR7QjMIDy21hmLYx;h0czE12=97<1 zqqTx7V7k9$?=`%b@BM#G^TbUnvj7=BLfKh{H~`EmwQO5+7t3F@Hef{sg1cXcwiAHR z8Garh505QUpCDz_S_F}q`;h2XWv1foujhBjGJPH(Umt&nENtVdKIY8}-;2PNC)Mjx zg2gW&50Br1yH^TDs{Ni-uh_7hpPfR+0V=euz?V>fC={&Dm)k`#V967ZE{JN)Q)}Aq zI%knvH*I~sa_EHD;m9<(-o-@$FV>|oPv;*`-y!wl zxma94)|+VB|E0Jv4G~Ps#8Y5B>DpS?c;lK&$I5UcvIM;W-8E|vmfYXtp0yaI4+ zOmO{qfULe`gakuyzB#;{`oz){7*?5EvskTZPSEA=EI>M8zaT4m3Hj#I8cW|NyaF&F z;7Z=^4fue7D|*o>{qS`}l+T+Fs0cuEb=7-;LO0xk+bfDk{?9RLtrZsOADdM&1a zk6Co5ARVm`W!4gtLQAOvzbk;wqIVx4J^y%miE8LzLBQE`VujF(YdKY5ssIWIb-?BW zg3hKBeLih=Re+-a922+Zl5%dEe?W9LozvcW4N(Dj7M-xn#3=^pE{3uO3J9^OwKzus z7!blT6A3_|^RaZf38%^R8j1qwBq4QW2iwIOEC>XMP8L#{TFY`2Kmnl+)^334Y&xec z^%@Tf_;UB10D&_HgbgYlw9{J#P+&a2s(+Nj=LR@cMd#$Gb0E$!2wE{}?wKQ!UK3A& zodaceAmGpE6XXPS*P5eqAjtyKebD6m?DWJ{2)#Z%1@>l-0%b5!Ksd)xxw%+6S(sjr z4Ok;2wHm^EK^T#?ZfZ_RHa)LMdKj3}=vbib1-U!Bf4uaf;LUDP4oM z^|a0*21XDNR-z~%Ai8lXrOr;R3z{j~xNiXK0oRLJ7Xd)PeIc6arS{2W%EO&-v&O6u zoBGmd-MHB_cR)1NOKsDv%A*}{>!pIg(I<(}ApxCq&*T@t`CQZ9gmSeFy1FBSI~ z790VVk?a%NcLqz&f}pA1$buHvtA$=DM>t3sEQi=vBuF2ECCy|Bb=Z)%$rX+PkRPTs zM>f4UixkIuh6lufW}6WDJ57O{;Runz5_7S-8)+ts);VLB&K-^r0lF|CSSCvY_1I{1 zgBjdbua)ign77R(`teKOZ;1lpnmHA7vAR<&^vk!tyM_DxOMrtEpflHCiN_$Jd_wmw zQtut$L2N2fVwPj9n(rkhz5u~8SsJJZr?ezELJr1aE|v!B!TUV?z|!DA;}41LzQTaO z!C$cb0&~4+$hy5ZO`k_!wm+Y*LmYAj_iCYnEI7I&auT-k`2vzbpx$?ww};<;n_%jF z?e=bQ_TfsXZ$`gOiExAr&_&a{p@S!G@3Sqm_~N0LP6n=9qHtlr2Y$J|^m7 z4Z%~gfjX4pEWnbK3`fWS-HQc5XVfJED9Xs#ClUUByl5KJjjH?qGKQpdI0$Vhavqns z1%XEC6`D`yA5Y)e`l{sbaNUObM3-Bv zvpNrtP-0~Iin&=1Vhkw~e|Q80oG^?Khx9_v&4pwLNiCKmM*QIqkc8uqk%1B*sR@n& z5brw(x5r2?F$gUViFc@V&XBO+a9sKgxXj*)!0BCwGq845-Wwor91_XR%Gr|C1_#Bx zlAd4l2S^5PmNO)QzT&!(=HvwA8C#BZBI4^K=3WWEt2aP$akFxQq(;lJ%8G(XpKfkV z`21(DfWU56BHs>S$0PwP2@4JrFTRruM&P+ChZ7X%>gyR0ko?GT$W$EiZ2Kw~_|$rY zgae1PFD}{PsrQ0s&xPG9Z)skR&&>ITHC1S|d`ghOqv!PHJdC8McGBfyx>rE}$<58$ zh)LcY{vb8DuqCM-4pR2Ylbi0<#Uck-iEZ8&WMxIb#fu3A>#+iNh2vFu)Oz?FSi=B9nlwx^HAxxG)=f-| zN#KEGbEFQwB3jr`?7SUCZ=VUCAb=3vtl&Eh(FUh9+7uFG=OpXi1-ezEZj{va`Pr$r ze(deW+ntV-uJe%3Mj^13V|8SU>&Uui!EjLGKHsO%1OucLE7HeQ=;05Wa}zr)BkNuT z!$C~#iZ3nM9w37PLg@^t?|7rU%bdH#x<}z~36NkGb^9V^5aFCKX!rN;1ArJ)+ivR6% z5=eS%5QikA0m48q16 zTFLGgvB5NC?z+!H9QQ{B74}tK+xt&{r|g{cy`+6#y_2vYWGj;Jei2G1skJO+zelH$ z&ka$wHb@2#l4uoXdu$Dv)9;i?!PqM)k^yAMhu@giTp*1d)9fPk(=xjiAWjfRcc+sA zgla`{SPrkCY$`xX>n3ncT2g@YXpO#LR5-YhUi)aUyzu^ zJjiw>NdbFzaVFbyqxI5A56;!K8s$pTf{c};2JGr;MWSHOW4}B+!plig3CyRjlQtmg zYNglX2{p>uwaUVR^Z`5N6clx}2;J9j(cE3DYycr=wGv7Z`t5@0-km(CCA^IxX%}l9 zi!fX*pC8psw`-#x>{bpJZlrS*59dcggO9@+aB2f!f~~_Jr~Hg zIk@8Kb(;!M_IUJHW{{fC3Xo1y>IjuXBa{FdH7L(z@X8JlMgXYmwLB9@h9jdyN_K#7 zT`iqN^g~JM16G!R^pH@N#jpHb4ca|0LUwr*PU-HFCtE-i5)Zwdc+1k^SdFV0{|)9H zU-dg!63uM6H##F@m8AvG8j$t;$lJqjq%St9yX8a(!*ZC^=R4*E$sQ2aB%;P7Y(Q#) zBYPKX+RB_%qXzCYPIz$Sy(PK`3oJ)&uECXOc}dEXb|ed@XB;mUn^9RbaVW6$bC*+40w|u{=LJ zJ;}SL?5=&WF4p$zvQoe!B!#)IW%MAv&Kck<~-g`S;w7Hf?0h#G3A}-ffjADMh+%6V>K1so{ zhPi1zImQ_4D%I{%sf$JEol<`MWH{>JShg?byNgv3wQ?H}rx8C9n#g-mwIG1R{R-Cu z)44A$nV`)lb#6@C-chVdZ`A~?MPH$z9*eUNSAZ1N6;VLICigOGZ@XaTU^xx!C(nEj zfAJT5AI(r5T0%uSM_e!;o))9m`^@p1$GrR0B1}08Xh{|LT@lt zz$laJ|GxBaytJeO;ziaS0sY%UnPni`_0_=JYYQqMUgiBA zl;MOGw|Nc5BxAtWEb37TNTlXmyI=?AJv8T`P(*1d1tf~>zdv*fn0`r1YufK-Yj!=6 t>Q++?1*Dp$))(a{pnz~x(`%|x;Qy%W@qKP`15W?|002ovPDHLkV1oTH9ku`f literal 0 HcmV?d00001 diff --git a/src/assets/imgs/eye.png b/src/assets/imgs/eye.png new file mode 100644 index 0000000000000000000000000000000000000000..e149f7cba7a8e287485690484717c5f7a108e5a3 GIT binary patch literal 8173 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 XP-B+mvrlZE_&o|(K?77LXCC%nXl$K0 literal 0 HcmV?d00001 diff --git a/src/assets/imgs/icon1.png b/src/assets/imgs/icon1.png new file mode 100644 index 0000000000000000000000000000000000000000..8fb718a352c41ee3a5878c902de2e9603d7e0e77 GIT binary patch literal 4141 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 SrC#L!0rJ5k#8P|Owf_J|?UUBUC6|rdC8S70 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 G68k^BKaHUP literal 0 HcmV?d00001 diff --git a/src/assets/imgs/icon6.png b/src/assets/imgs/icon6.png new file mode 100644 index 0000000000000000000000000000000000000000..976d00b74d6d9c696b11761d864a99eb72f0c9e1 GIT binary patch literal 5382 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