From 76a199028c59a051e1ebd19f6827fc3c6438ddd7 Mon Sep 17 00:00:00 2001 From: Yxq <2290299376@qq.com> Date: Sun, 14 Dec 2025 21:52:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E4=BA=86=E7=AB=99=E5=8F=B0?= =?UTF-8?q?=E8=BF=9E=E7=BB=AD=E6=8B=A3=E9=80=89=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TaskControllerServiceImpl.java | 41 ++++++++++++------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/TaskControllerServiceImpl.java b/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/TaskControllerServiceImpl.java index e599b25..3f91eeb 100644 --- a/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/TaskControllerServiceImpl.java +++ b/dev_wms_serve/src/main/java/com/wms_main/service/controller/serviceImpl/TaskControllerServiceImpl.java @@ -1152,10 +1152,10 @@ public class TaskControllerServiceImpl implements ITaskControllerService { * @param response EWM接口返回的数据 * @param vehicleNo 载具号 */ - private void saveEwmDataToTempTable(EwmApiLocalResponse response, String vehicleNo) { + private boolean saveEwmDataToTempTable(EwmApiLocalResponse response, String vehicleNo) { if (response == null || response.getContent() == null || response.getContent().toString().isEmpty()) { log.warn("EWM返回数据为空或无任务明细,载具号: {}", vehicleNo); - return; + return false; } try { boolean deletedCount = tempEwmInboundDataService.remove(new LambdaQueryWrapper() @@ -1212,6 +1212,15 @@ public class TaskControllerServiceImpl implements ITaskControllerService { // 将Map中的值转换为List List dataList = new ArrayList<>(dataMap.values()); + // 新增逻辑:检查是否有多条相同matNo的数据 + Set matNoSet = new HashSet<>(); + for (TAppTempEwmInboundData data : dataList) { + if (!matNoSet.add(data.getMatNo())) { + log.warn("EWM返回数据中存在多条相同的matNo,载具号: {}, 重复的matNo: {}", vehicleNo, data.getMatNo()); + return false; // 或者抛出异常,取决于你希望如何处理这种情况 + } + } + if (!dataList.isEmpty()) { // 批量插入时指定合理的批次大小 boolean saveResult = tempEwmInboundDataService.saveBatch(dataList); @@ -1221,6 +1230,7 @@ public class TaskControllerServiceImpl implements ITaskControllerService { log.error("保存EWM数据到临时表失败,载具号: {}", vehicleNo, e); throw e; // 重新抛出异常以便上层处理 } + return true; } /** @@ -1351,15 +1361,15 @@ public class TaskControllerServiceImpl implements ITaskControllerService { if (!response.isSuccess()) { return WcsApiResponse.error(response.getMessage(), null); } - if (response.getContent().getTaskDetailInfo().size() > 1){ - return WcsApiResponse.error("该容器绑定了多个料,请检查。", null); - } +// if (response.getContent().getTaskDetailInfo().size() > 1){ +// return WcsApiResponse.error("该容器绑定了多个料,请检查。", null); +// } // 判断是否为空箱 if (response.getContent().isEmptyContainer()) { if (!outsCheckList.isEmpty() || !stockList.isEmpty()){ return WcsApiResponse.error("该容器已作为拣选任务绑定的目标容器,请检查。", null); } - return WcsApiResponse.success("该容器为空箱,请检查。", null); + return WcsApiResponse.error("该容器为空箱,请检查。", null); // 创建空载具入库任务 // TAppTask task = new TAppTask( // UUIDUtils.getNewUUID(), @@ -1389,7 +1399,9 @@ public class TaskControllerServiceImpl implements ITaskControllerService { }else{ try { // 2. 将EWM数据保存到临时表 - saveEwmDataToTempTable(response, wcsVehicleInRequest.getVehicleNo()); + if (!saveEwmDataToTempTable(response, wcsVehicleInRequest.getVehicleNo())){ + return WcsApiResponse.error("插入了多条不符合要求的数据。", null); + } // 3. 根据临时表数据生成WMS任务 generateWmsTasksFromTempData(wcsVehicleInRequest); @@ -1766,7 +1778,7 @@ public class TaskControllerServiceImpl implements ITaskControllerService { if (thisOut.size() != confirmTaskRequest.getTaskConfirm().getTotalQty()){ return BaseWmsApiResponse.error("EWM下发新需求,请刷新后重新合并!"); } - +// // 调用EWM系统检验箱子 SendEwmCheckContainerNo request = new SendEwmCheckContainerNo(); request.setContainerNo(confirmTaskRequest.getTaskConfirm().getContainerNo()); @@ -1865,6 +1877,7 @@ public class TaskControllerServiceImpl implements ITaskControllerService { } }else { log.error("调用回告EWM系统出库完成接口异常,请求参数: {}", requestForCompleted); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return BaseWmsApiResponse.error("调用回告EWM系统出库完成接口异常: " + ewmResponse.getMessage()); } } @@ -1890,12 +1903,12 @@ public class TaskControllerServiceImpl implements ITaskControllerService { log.info("容器置空调用EWM系统接口成功,请求参数: {}", request); } } -// if (appPickTaskService.exists(new LambdaQueryWrapper() -// .eq(TAppPickTask::getVehicleId, thisPickTask.getVehicleId()) -// .eq(TAppPickTask::getPickStatus, WmsPickTaskStatusEnum.ARRIVE.getCode()) -// )){ -// return BaseWmsApiResponse.success("继续拣选"); -// } + if (appPickTaskService.exists(new LambdaQueryWrapper() + .eq(TAppPickTask::getVehicleId, thisPickTask.getVehicleId()) + .eq(TAppPickTask::getPickStatus, WmsPickTaskStatusEnum.ARRIVE.getCode()) + )){ + return BaseWmsApiResponse.success("继续拣选"); + } return BaseWmsApiResponse.success("确认成功。"); }