From 6b3529bba4057669ad8bdd813ae5d82dad1a657e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B8=B8=E7=86=9F=E5=90=B4=E5=BD=A6=E7=A5=96?= Date: Fri, 31 Oct 2025 12:07:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=88=86=E6=8B=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/AgvMessageServiceImpl.java | 78 +++++++++---------- .../service/impl/AgvTaskServiceImpl.java | 3 +- .../service/impl/WcsTaskServiceImpl.java | 41 ++++++---- .../task/WcsTaskScheduler.java | 6 +- 4 files changed, 69 insertions(+), 59 deletions(-) diff --git a/src/main/java/com/gaotao/modules/api/service/impl/AgvMessageServiceImpl.java b/src/main/java/com/gaotao/modules/api/service/impl/AgvMessageServiceImpl.java index 9f3bc885..24ae900e 100644 --- a/src/main/java/com/gaotao/modules/api/service/impl/AgvMessageServiceImpl.java +++ b/src/main/java/com/gaotao/modules/api/service/impl/AgvMessageServiceImpl.java @@ -163,45 +163,45 @@ import java.util.Map; /** * 执行移库操作 */ - private void executeWarehouseTransfer(WmsTransportTask transportTask) { - try { - // 获取起始站点和目标站点信息 - Map fromStationInfo = getStationInfo(transportTask.getFromLocation()); - Map toStationInfo = getStationInfo(transportTask.getToLocation()); - - // 检查站点的仓库和库位是否不同 - String fromWarehouseId = (String) fromStationInfo.get("warehouseCode"); - String fromLocationId = (String) fromStationInfo.get("locationCode"); - String toWarehouseId = (String) toStationInfo.get("warehouseCode"); - String toLocationId = (String) toStationInfo.get("locationCode"); - - if (!fromWarehouseId.equals(toWarehouseId) || !fromLocationId.equals(toLocationId)) { - log.info("站点仓库或库位不同,执行移库操作:从 {}-{} 到 {}-{}", - fromWarehouseId, fromLocationId, toWarehouseId, toLocationId); - - // 构建移库请求 - WareHouseTransferRequest transferRequest = new WareHouseTransferRequest(); - transferRequest.setSite(transportTask.getSite()); - transferRequest.setTransType("移库"); - transferRequest.setPalletId(transportTask.getPalletId()); - transferRequest.setToWarehouseId(toWarehouseId); - transferRequest.setToLocationId(toLocationId); - transferRequest.setBusinessType("AGV移库"); - transferRequest.setRemark("AGV任务完成自动移库"); - transferRequest.setToStation(transportTask.getToLocation()); - // 调用移库方法 - wmsMessageService.doWareHouseForPallet(transferRequest); - log.info("移库操作执行成功"); - } else { - log.info("站点仓库和库位相同,无需执行移库操作"); - } - - } catch (Exception e) { - log.error("移库操作执行失败:{}", e.getMessage(), e); - throw new RuntimeException("移库操作失败:" + e.getMessage()); - } - } - + // private void executeWarehouseTransfer(WmsTransportTask transportTask) { + // try { + // // 获取起始站点和目标站点信息 + // Map fromStationInfo = getStationInfo(transportTask.getFromLocation()); + // Map toStationInfo = getStationInfo(transportTask.getToLocation()); + // + // // 检查站点的仓库和库位是否不同 + // String fromWarehouseId = (String) fromStationInfo.get("warehouseCode"); + // String fromLocationId = (String) fromStationInfo.get("locationCode"); + // String toWarehouseId = (String) toStationInfo.get("warehouseCode"); + // String toLocationId = (String) toStationInfo.get("locationCode"); + // + // if (!fromWarehouseId.equals(toWarehouseId) || !fromLocationId.equals(toLocationId)) { + // log.info("站点仓库或库位不同,执行移库操作:从 {}-{} 到 {}-{}", + // fromWarehouseId, fromLocationId, toWarehouseId, toLocationId); + // + // // 构建移库请求 + // WareHouseTransferRequest transferRequest = new WareHouseTransferRequest(); + // transferRequest.setSite(transportTask.getSite()); + // transferRequest.setTransType("移库"); + // transferRequest.setPalletId(transportTask.getPalletId()); + // transferRequest.setToWarehouseId(toWarehouseId); + // transferRequest.setToLocationId(toLocationId); + // transferRequest.setBusinessType("AGV移库"); + // transferRequest.setRemark("AGV任务完成自动移库"); + // transferRequest.setToStation(transportTask.getToLocation()); + // // 调用移库方法 + // wmsMessageService.doWareHouseForPallet(transferRequest); + // log.info("移库操作执行成功"); + // } else { + // log.info("站点仓库和库位相同,无需执行移库操作"); + // } + // + // } catch (Exception e) { + // log.error("移库操作执行失败:{}", e.getMessage(), e); + // throw new RuntimeException("移库操作失败:" + e.getMessage()); + // } + // } + // /** * 仅更新栈板位置(复用现有Pallet service逻辑) */ diff --git a/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/AgvTaskServiceImpl.java b/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/AgvTaskServiceImpl.java index 3d3502fb..34f553f0 100644 --- a/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/AgvTaskServiceImpl.java +++ b/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/AgvTaskServiceImpl.java @@ -362,8 +362,7 @@ public class AgvTaskServiceImpl implements AgvTaskService { transferRequest.setBusinessType("AGV移库"); transferRequest.setRemark("AGV任务完成自动移库"); transferRequest.setToStation(transportTask.getToLocation()); - - // 调用移库方法 + transferRequest.setUsername("sys_wms"); // 调用移库方法 wmsMessageService.doWareHouseForPallet(transferRequest); log.info("移库操作执行成功"); } else { diff --git a/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsTaskServiceImpl.java b/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsTaskServiceImpl.java index 47a5e7c0..ba1e1e58 100644 --- a/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsTaskServiceImpl.java +++ b/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/WcsTaskServiceImpl.java @@ -72,14 +72,14 @@ public class WcsTaskServiceImpl implements WcsTaskService { } // 获取用户名 - rqrq - List orderTasks = wcsIntegrationMapper.findOrderTasksByTaskNo( - callbackTask.getSite(), - callbackTask.getTaskNo() - ); + // List orderTasks = wcsIntegrationMapper.findOrderTasksByTaskNo( + // callbackTask.getSite(), + // callbackTask.getTaskNo() + // ); String userName = "sys_wms"; - if (orderTasks != null && !orderTasks.isEmpty()) { - userName = orderTasks.get(0).getCreatedBy(); - } + // if (orderTasks != null && !orderTasks.isEmpty()) { + // userName = orderTasks.get(0).getCreatedBy(); + // } // 1. 使用乐观锁更新状态为处理中(防止重复处理)- rqrq int updateCount = wcsIntegrationMapper.updateWcsCallbackTaskStatusWithLock( @@ -104,7 +104,7 @@ public class WcsTaskServiceImpl implements WcsTaskService { if ("入库".equals(callbackTask.getTransTypeDesc()) || "出库".equals(callbackTask.getTransTypeDesc())) { // 入库和出库需要执行移库操作 - rqrq WareHouseTransferRequest request = buildWareHouseTransferRequest(callbackTask); - request.setUsername(userName); + request.setUsername("sys_wms"); result = wmsMessageService.doWareHouseForPallet(request); // 更新托盘状态 - rqrq @@ -319,7 +319,6 @@ public class WcsTaskServiceImpl implements WcsTaskService { */ private String processPickupNotification(WcsCallbackTask callbackTask) { System.out.println("开始处理取货通知 - rqrq,palletId=" + callbackTask.getPalletId() + ", toStation=" + callbackTask.getToStation()); - try { // 2. 更新托盘calling_flag为N - rqrq wcsIntegrationMapper.updatePalletCallingFlag(callbackTask.getSite(), callbackTask.getPalletId(), "N", "SYS_WMS"); @@ -329,22 +328,34 @@ public class WcsTaskServiceImpl implements WcsTaskService { // 4. 更新托盘位置 - rqrq wcsIntegrationMapper.updatePalletLocationCode(callbackTask.getSite(), callbackTask.getPalletId(), callbackTask.getToStation()); + // 1. 更新订单任务状态 - rqrq if (callbackTask.getTaskNo() != null && callbackTask.getItemNo() != null) { WmsOrderTask orderTask = wcsIntegrationMapper.findOrderTasksByTaskNoItem( callbackTask.getSite(), callbackTask.getTaskNo(), callbackTask.getItemNo()); - if (orderTask != null) { + if (orderTask == null){ + return "取货通知处理成功"; + + } + + if ( !"领料申请单".equals(orderTask.getSourceType()) && !"发货通知单".equals(orderTask.getSourceType())) { wcsIntegrationMapper.updateOrderTaskStatusAndWmsStatus( - orderTask.getId(), "待取货", "待取货"); + orderTask.getId(), "已完成", "已完成"); wcsIntegrationMapper.updateOrderTaskDetailStatusByTaskNoPalletId( - callbackTask.getSite(), callbackTask.getTaskNo(), "待取货", "待取货", callbackTask.getPalletId()); - System.out.println("更新订单任务状态为待取货 - rqrq,taskNo=" + callbackTask.getTaskNo()); + callbackTask.getSite(), callbackTask.getTaskNo(), "已完成", "已完成", callbackTask.getPalletId()); + System.out.println("更新订单任务状态为已完成 - rqrq,taskNo=" + callbackTask.getTaskNo()); + return "取货通知处理成功"; + } - + wcsIntegrationMapper.updateOrderTaskStatusAndWmsStatus( + orderTask.getId(), "待取货", "待取货"); + wcsIntegrationMapper.updateOrderTaskDetailStatusByTaskNoPalletId( + callbackTask.getSite(), callbackTask.getTaskNo(), "待取货", "待取货", callbackTask.getPalletId()); + System.out.println("更新订单任务状态为待取货 - rqrq,taskNo=" + callbackTask.getTaskNo()); // 查询下如果这个栈板没有预约任务取走,且栈板上有被预留的物料,那么直接去缓存区 - rqrq WmsTransportTask checkIfHasNeedTask = wcsIntegrationMapper.checkIfHasNeedTask( callbackTask.getSite(), callbackTask.getPalletId()); - + if (checkIfHasNeedTask == null) { System.out.println("栈板{}没有预约任务,检查是否有预留物料 - rqrq"+callbackTask.getPalletId()); diff --git a/src/main/java/com/gaotao/modules/automatedWarehouse/task/WcsTaskScheduler.java b/src/main/java/com/gaotao/modules/automatedWarehouse/task/WcsTaskScheduler.java index da4b321d..c6ccf01a 100644 --- a/src/main/java/com/gaotao/modules/automatedWarehouse/task/WcsTaskScheduler.java +++ b/src/main/java/com/gaotao/modules/automatedWarehouse/task/WcsTaskScheduler.java @@ -52,9 +52,9 @@ public class WcsTaskScheduler { @Scheduled(cron = "4/10 * * * * ?") public void scheduleWcsTaskProcessing() { // 检查定时任务开关 - if (!enabled) { - return; - } + // if (!enabled) { + // return; + // } log.info("=== 开始处理WCS入库/出库相关业务 ===");