From 555a49f3a4e2ea408b14923fa095df6f74c62600 Mon Sep 17 00:00:00 2001 From: Lenovo Date: Fri, 18 Sep 2026 15:31:27 +0800 Subject: [PATCH] =?UTF-8?q?pda=E7=95=8C=E9=9D=A2=E5=92=8C=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=BC=98=E5=8C=96=EF=BC=8C=E5=AE=8C=E5=96=84mes?= =?UTF-8?q?=E4=B8=8B=E5=8F=91=E7=89=88=E8=BE=8A=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pda/api/warehouse/inbound/bindTray.js | 63 +++ .../inbound/cancelBindTrayByRoller.js | 27 ++ .../inbound/cancelBindTrayByTrayCode.js | 28 ++ pda/api/warehouse/inbound/emptyTray.js | 10 + pda/api/warehouse/inbound/index.js | 19 + pda/api/warehouse/inbound/supply.js | 1 + pda/api/warehouse/inventory/index.js | 2 + .../warehouse/inventory/inventoryConfirm.js | 38 ++ pda/api/warehouse/inventory/jobList.js | 21 + pda/api/warehouse/outbound/confirm.js | 29 ++ pda/api/warehouse/outbound/container.js | 18 + pda/api/warehouse/outbound/exception.js | 20 + pda/api/warehouse/outbound/index.js | 10 + pda/api/warehouse/outbound/trayConfirm.js | 40 ++ .../warehouse/outbound/trayConfirmManual.js | 29 ++ pda/pages.json | 9 +- pda/pages/index.vue | 6 +- pda/pages/warehouse/inbound/bindTray.vue | 44 +- ...indTray.vue => cancelBindTrayByRoller.vue} | 2 +- .../inbound/cancelBindTrayByTrayCode.vue | 424 ++++++++++++++++++ pda/pages/warehouse/inbound/emptyTray.vue | 2 +- pda/pages/warehouse/inbound/index.vue | 37 +- .../warehouse/inventory/inventoryConfirm.vue | 2 +- pda/pages/warehouse/inventory/jobList.vue | 4 +- pda/pages/warehouse/outbound/confirm.vue | 10 +- pda/pages/warehouse/outbound/container.vue | 2 +- pda/pages/warehouse/outbound/exception.vue | 2 +- pda/pages/warehouse/outbound/index.vue | 2 +- pda/pages/warehouse/outbound/trayConfirm.vue | 2 +- .../warehouse/outbound/trayConfirmManual.vue | 2 +- .../ruoyi/api/service/impl/ApiErpService.java | 4 +- .../com/ruoyi/bas/stock/domain/BasStock.java | 12 +- .../com/ruoyi/in/bind/domain/InTrayMsg.java | 12 + .../in/bind/service/IInTrayMsgService.java | 11 +- .../service/impl/InTrayMsgServiceImpl.java | 12 + .../job/service/impl/MydoJobServiceImpl.java | 41 +- .../ruoyi/pda/controller/PdaController.java | 68 ++- .../controller/PdaInventoryController.java | 119 +++++ .../pda/controller/PdaStockinController.java | 315 +++++++++++++ .../pda/controller/PdaStockoutController.java | 219 +++++++++ .../com/ruoyi/pda/domain/BindTrayRequest.java | 10 + .../com/ruoyi/pda/service/IPdaService.java | 19 +- .../pda/service/impl/PdaServiceImpl.java | 57 ++- .../ruoyi/scheduleTask/MydoJobHandler.java | 69 +-- .../resources/mapper/bas/BasStockMapper.xml | 19 +- .../resources/mapper/in/InTrayMsgMapper.xml | 12 +- .../mapper/out/OutStockoutDetailMapper.xml | 16 +- ruoyi-ui/src/views/in/bindTrayMsg/index.vue | 70 ++- ruoyi-ui/src/views/in/stockin/index.vue | 6 +- ruoyi-ui/src/views/out/stockout/index.vue | 4 + ruoyi-ui/src/views/pd/create/index.vue | 34 +- 51 files changed, 1873 insertions(+), 161 deletions(-) create mode 100644 pda/api/warehouse/inbound/bindTray.js create mode 100644 pda/api/warehouse/inbound/cancelBindTrayByRoller.js create mode 100644 pda/api/warehouse/inbound/cancelBindTrayByTrayCode.js create mode 100644 pda/api/warehouse/inbound/emptyTray.js create mode 100644 pda/api/warehouse/inbound/index.js create mode 100644 pda/api/warehouse/inbound/supply.js create mode 100644 pda/api/warehouse/inventory/index.js create mode 100644 pda/api/warehouse/inventory/inventoryConfirm.js create mode 100644 pda/api/warehouse/inventory/jobList.js create mode 100644 pda/api/warehouse/outbound/confirm.js create mode 100644 pda/api/warehouse/outbound/container.js create mode 100644 pda/api/warehouse/outbound/exception.js create mode 100644 pda/api/warehouse/outbound/index.js create mode 100644 pda/api/warehouse/outbound/trayConfirm.js create mode 100644 pda/api/warehouse/outbound/trayConfirmManual.js rename pda/pages/warehouse/inbound/{cancelBindTray.vue => cancelBindTrayByRoller.vue} (99%) create mode 100644 pda/pages/warehouse/inbound/cancelBindTrayByTrayCode.vue create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaInventoryController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaStockinController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaStockoutController.java diff --git a/pda/api/warehouse/inbound/bindTray.js b/pda/api/warehouse/inbound/bindTray.js new file mode 100644 index 0000000..46dd710 --- /dev/null +++ b/pda/api/warehouse/inbound/bindTray.js @@ -0,0 +1,63 @@ +import request from '@/utils/request' + + +// 根据入库明细ID查询物料信息(入库绑盘用) +export function getMaterialByDetailId(detailId) { + return request({ + url: '/pda/getProductInfoByInDetailId', + method: 'get', + params: { detailId } + }) +} + +// 根据辊号查询物料信息(入库绑盘用) +export function getMaterialByRollerNumber(rollerNumber) { + return request({ + url: '/pda/getStockinInfoByRollerNumber', + method: 'get', + params: { rollerNumber } + }) +} + +export function submitBindTray(data) { + return request({ + url: '/pda/bindTray', + method: 'post', + data: data + }) +} + +export function submitBindTrayMsg(data) { + return request({ + url: '/pda/bindTrayMsgs', + method: 'post', + data: data + }) +} + +// 获取入库待处理单据列表 +export function getInboundStockList(query) { + return request({ + url: '/pda/inboundStockList', + method: 'get', + params: query + }) +} + +// 获取入库单据子单列表 +export function getDetailList(query) { + return request({ + url: '/pda/getDetailListByStockinId', + method: 'get', + params: query + }) +} + +// 生成入库作业 +export function submitAddInJob(data) { + return request({ + url: '/pda/addInJob', + method: 'post', + data: data + }) +} diff --git a/pda/api/warehouse/inbound/cancelBindTrayByRoller.js b/pda/api/warehouse/inbound/cancelBindTrayByRoller.js new file mode 100644 index 0000000..89b4f80 --- /dev/null +++ b/pda/api/warehouse/inbound/cancelBindTrayByRoller.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +// 根据入库明细ID查询物料信息(入库绑盘用) +export function getMaterialByDetailId(detailId) { + return request({ + url: '/pda/getProductInfoByInDetailId', + method: 'get', + params: { detailId } + }) +} + +// 根据辊号查询物料信息(入库绑盘用) +export function getTrayMsgByRollerNumber(rollerNumber) { + return request({ + url: '/pda/getTrayMsgByRollerNumber', + method: 'get', + params: { rollerNumber } + }) +} + +export function submitCancelTrayMsg(data) { + return request({ + url: '/pda/cancelTrayMsgs', + method: 'post', + data: data + }) +} \ No newline at end of file diff --git a/pda/api/warehouse/inbound/cancelBindTrayByTrayCode.js b/pda/api/warehouse/inbound/cancelBindTrayByTrayCode.js new file mode 100644 index 0000000..d736d2b --- /dev/null +++ b/pda/api/warehouse/inbound/cancelBindTrayByTrayCode.js @@ -0,0 +1,28 @@ +import request from '@/utils/request' + +export function getTrayCodeDetail(trayCode) { + return request({ + url: '/pda/getTrayBindMsgInfoByTrayCode', + method: 'get', + params: { trayCode } + }) +} + +// 取消版辊绑定状态 +export function cancelTrayMsg(data) { + return request({ + url: '/pda/cancelTrayMsg', + method: 'post', + data: data + }) +} + +// 取消当前托盘的所有绑定信息 +export function cancelTrayMsgAllByTrayCode(data) { + return request({ + url: '/pda/cancelTrayMsgs', + method: 'post', + // data: { trayCode: trayCode } + data: data + }) +} \ No newline at end of file diff --git a/pda/api/warehouse/inbound/emptyTray.js b/pda/api/warehouse/inbound/emptyTray.js new file mode 100644 index 0000000..f215bbb --- /dev/null +++ b/pda/api/warehouse/inbound/emptyTray.js @@ -0,0 +1,10 @@ +import request from '@/utils/request' + +// 生成空托入库作业 +export function submitAddEmptyTrayJob(data) { + return request({ + url: '/pda/addEmptyTrayJob', + method: 'post', + data: data + }) +} \ No newline at end of file diff --git a/pda/api/warehouse/inbound/index.js b/pda/api/warehouse/inbound/index.js new file mode 100644 index 0000000..2f6fd8d --- /dev/null +++ b/pda/api/warehouse/inbound/index.js @@ -0,0 +1,19 @@ +import request from '@/utils/request' + +// 获取入库待处理任务列表 +export function getInboundTaskList(query) { + return request({ + url: '/pda/inboundTaskList', + method: 'get', + params: query + }) +} + +// 获取入库待处理单据列表 +export function getInboundStockList(query) { + return request({ + url: '/pda/inboundStockList', + method: 'get', + params: query + }) +} \ No newline at end of file diff --git a/pda/api/warehouse/inbound/supply.js b/pda/api/warehouse/inbound/supply.js new file mode 100644 index 0000000..5d1beae --- /dev/null +++ b/pda/api/warehouse/inbound/supply.js @@ -0,0 +1 @@ +import request from '@/utils/request' \ No newline at end of file diff --git a/pda/api/warehouse/inventory/index.js b/pda/api/warehouse/inventory/index.js new file mode 100644 index 0000000..d95ed38 --- /dev/null +++ b/pda/api/warehouse/inventory/index.js @@ -0,0 +1,2 @@ +import request from '@/utils/request' + diff --git a/pda/api/warehouse/inventory/inventoryConfirm.js b/pda/api/warehouse/inventory/inventoryConfirm.js new file mode 100644 index 0000000..82eb8ce --- /dev/null +++ b/pda/api/warehouse/inventory/inventoryConfirm.js @@ -0,0 +1,38 @@ +import request from '@/utils/request' + +// 获取盘点待处理任务列表 +export function getInventoryOutTaskList(query) { + return request({ + url: '/pda/inventoryOutTaskList', + method: 'get', + params: query + }) +} + +// 获取出库盘点任务库存 +export function getTrayCodeDetail(trayCode) { + return request({ + url: '/pda/getInventoryOutInfoByTrayCode', + method: 'get', + params: { trayCode } + }) +} + +// 确认版辊库存状态 +export function confirmExcetion(data) { + return request({ + url: '/pda/inventoryStockExcetion', + method: 'post', + data: data + }) +} + +// 确认托盘盘点出库完成 - 盘点出库 +export function inventoryTrayCodeComplete(data) { + return request({ + url: '/pda/inventoryTrayCodeComplete', + method: 'post', + // data: { trayCode: trayCode } + data: data + }) +} \ No newline at end of file diff --git a/pda/api/warehouse/inventory/jobList.js b/pda/api/warehouse/inventory/jobList.js new file mode 100644 index 0000000..864d247 --- /dev/null +++ b/pda/api/warehouse/inventory/jobList.js @@ -0,0 +1,21 @@ +import request from '@/utils/request' + + +// 获取盘点待处理任务列表 +export function getInventoryOutTaskList(query) { + return request({ + url: '/pda/inventoryOutTaskList', + method: 'get', + params: query + }) +} + +// 确认托盘盘点出库完成 - 盘点出库 +export function inventoryTrayCodeComplete(data) { + return request({ + url: '/pda/inventoryTrayCodeComplete', + method: 'post', + // data: { trayCode: trayCode } + data: data + }) +} \ No newline at end of file diff --git a/pda/api/warehouse/outbound/confirm.js b/pda/api/warehouse/outbound/confirm.js new file mode 100644 index 0000000..349baf5 --- /dev/null +++ b/pda/api/warehouse/outbound/confirm.js @@ -0,0 +1,29 @@ +import request from '@/utils/request' + +// 获取出库任务详情 +export function getOutboundDetail(rollerNumber) { + return request({ + url: '/pda/getStockoutInfoByRollerNumber', + method: 'get', + params: { rollerNumber } + }) +} + +// 确认版辊出库数量 - 单独出库确认 +export function confirmOutbound(data) { + return request({ + url: '/pda/stockoutDetailComplete', + method: 'post', + data: data + }) +} + +// 版辊强制出库确认 +export function rollerNumberComplete(data) { + return request({ + url: '/pda/rollerNumberComplete', + method: 'post', + data: data + }) +} + diff --git a/pda/api/warehouse/outbound/container.js b/pda/api/warehouse/outbound/container.js new file mode 100644 index 0000000..a38b961 --- /dev/null +++ b/pda/api/warehouse/outbound/container.js @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +/** + * 呼叫空托出库 + * @param {String} cargoAreaId 库区ID + * @param {Number} palletType 托盘类型 + */ +export function callStockOutForContainer(cargoAreaId, palletType) { + return request({ + url: '/pda/callStockOutForContainer', + method: 'post', + data: { + cargoAreaId: cargoAreaId, + palletType: palletType + }, + }) +} + diff --git a/pda/api/warehouse/outbound/exception.js b/pda/api/warehouse/outbound/exception.js new file mode 100644 index 0000000..029fe4f --- /dev/null +++ b/pda/api/warehouse/outbound/exception.js @@ -0,0 +1,20 @@ +import request from '@/utils/request' + +// 获取出库任务详情 +export function getOutboundDetail(rollerNumber) { + return request({ + url: '/pda/getStockoutInfoByRollerNumber', + method: 'get', + params: { rollerNumber } + }) +} + +// 提交出库异常确认 +export function submitOutboundException(data) { + return request({ + url: '/wms/outbound/exception', + method: 'post', + data: data + }) +} + diff --git a/pda/api/warehouse/outbound/index.js b/pda/api/warehouse/outbound/index.js new file mode 100644 index 0000000..6a5a254 --- /dev/null +++ b/pda/api/warehouse/outbound/index.js @@ -0,0 +1,10 @@ +import request from '@/utils/request' + +// 获取出库待处理任务列表 +export function getOutboundTaskList(query) { + return request({ + url: '/pda/outboundTaskList', + method: 'get', + params: query + }) +} \ No newline at end of file diff --git a/pda/api/warehouse/outbound/trayConfirm.js b/pda/api/warehouse/outbound/trayConfirm.js new file mode 100644 index 0000000..e09b3ff --- /dev/null +++ b/pda/api/warehouse/outbound/trayConfirm.js @@ -0,0 +1,40 @@ +import request from '@/utils/request' + +// 获取出库任务详情 - 拣选/常规出库 +export function getTrayCodeDetail(trayCode) { + return request({ + url: '/pda/getStockoutInfoByTrayCode', + method: 'get', + params: { trayCode } + }) +} + +// 确认版辊出库数量 - 单独出库确认 +export function confirmOutbound(data) { + return request({ + url: '/pda/stockoutDetailComplete', + method: 'post', + data: data + }) +} + +// 确认托盘出库完成 - 单据出库 +export function stockoutTrayCodeComplete(trayCode) { + return request({ + url: '/pda/stockoutTrayCodeComplete', + method: 'post', + // data: { trayCode: trayCode } + params: { trayCode } + }) +} + +// 确认托盘出库完成 - 一键确认 +export function stockoutTrayCodeCompleteAll(trayCode) { + return request({ + url: '/pda/stockoutTrayCodeCompleteAll', + method: 'post', + // data: { trayCode: trayCode } + params: { trayCode } + }) +} + diff --git a/pda/api/warehouse/outbound/trayConfirmManual.js b/pda/api/warehouse/outbound/trayConfirmManual.js new file mode 100644 index 0000000..810fc59 --- /dev/null +++ b/pda/api/warehouse/outbound/trayConfirmManual.js @@ -0,0 +1,29 @@ +import request from '@/utils/request' + +// 获取出库任务详情 - 手动指定出库 +export function getTrayCodeDetailForManual(trayCode) { + return request({ + url: '/pda/getManualStockoutInfoByTrayCode', + method: 'get', + params: { trayCode } + }) +} + +// 确认版辊出库数量 - 单独出库确认 +export function confirmOutbound(data) { + return request({ + url: '/pda/stockoutDetailComplete', + method: 'post', + data: data + }) +} + +// 确认托盘出库完成 - 手动出库 +export function stockoutTrayCodeCompleteManual(trayCode) { + return request({ + url: '/pda/stockoutTrayCodeCompleteManual', + method: 'post', + // data: { trayCode: trayCode } + params: { trayCode } + }) +} \ No newline at end of file diff --git a/pda/pages.json b/pda/pages.json index e8cc280..294d94e 100644 --- a/pda/pages.json +++ b/pda/pages.json @@ -71,9 +71,14 @@ "navigationBarTitleText": "入库绑盘" } }, { - "path": "pages/warehouse/inbound/cancelBindTray", + "path": "pages/warehouse/inbound/cancelBindTrayByTrayCode", "style": { - "navigationBarTitleText": "版辊绑定取消" + "navigationBarTitleText": "取消版辊绑定信息" + } + },{ + "path": "pages/warehouse/inbound/cancelBindTrayByRoller", + "style": { + "navigationBarTitleText": "单版辊绑定信息作废" } },{ "path": "pages/warehouse/inbound/emptyTray", diff --git a/pda/pages/index.vue b/pda/pages/index.vue index 06a555c..7713ac3 100644 --- a/pda/pages/index.vue +++ b/pda/pages/index.vue @@ -1,5 +1,5 @@ + + diff --git a/pda/pages/warehouse/inbound/emptyTray.vue b/pda/pages/warehouse/inbound/emptyTray.vue index 1b408ea..3c701fc 100644 --- a/pda/pages/warehouse/inbound/emptyTray.vue +++ b/pda/pages/warehouse/inbound/emptyTray.vue @@ -30,7 +30,7 @@