diff --git a/src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java index 14fd72a..e0280a8 100644 --- a/src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java +++ b/src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java @@ -145,7 +145,7 @@ public class TaskAssignServiceImpl implements TaskAssignService { // 出库动作 if (!direction) { int rowFlag = location.getRowFlag(); - //如果是外侧库位 + //当前任务如果是深库位 if (rowFlag == QuantityConstant.ROW_OUT) { Location insideLocation = locationService.getInsideNear(location); String insideLocationCode = insideLocation.getCode(); @@ -155,7 +155,7 @@ public class TaskAssignServiceImpl implements TaskAssignService { //获取是否有未完成的任务 TaskHeader taskHeader2 = taskHeaderService.getUndoneTaskByFromLocationCode(insideLocationCode); if (taskHeader2 != null) { - preTaskNo = taskHeader2.getId(); + preTaskNo = taskHeader2.getId();//浅库位任务号 } else { //是否自建单据库位 int isSelfCreated = 0; @@ -220,9 +220,6 @@ public class TaskAssignServiceImpl implements TaskAssignService { wcsTask.setFromPort(""); wcsTask.setToPort(taskHeader.getPort()); wcsTask.setContainerCode(taskHeader.getContainerCode()); - if (preTaskNo != 0) { - wcsTask.setPreTaskNo(String.valueOf(preTaskNo)); - } if (location != null) { wcsTask.setStation(location.getRoadway()); @@ -251,7 +248,11 @@ public class TaskAssignServiceImpl implements TaskAssignService { } wcsTask.setRemark("0"); wcsTask.setPlatform(platform); - + //浅库位任务优先出,深库位优先级-1 + if (preTaskNo != 0) { + wcsTask.setPreTaskNo(String.valueOf(preTaskNo)); + wcsTask.setPriority(wcsTask.getPriority() - 1); + } Container container = containerService.getContainerByCode(containerCode, warehouseCode); String area = container.getArea(); //4、发送数据 diff --git a/src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java b/src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java index fd37feb..366688b 100644 --- a/src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java +++ b/src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java @@ -193,12 +193,13 @@ public class RyTask extends BaseController { * 自动出库,自动出库单据间隔从定时任务那边配置 */ public void autoShipment() { + //上一个出库单未完成,不执行下一个 ShipmentHeader header = shipmentHeaderService.getOne(new LambdaQueryWrapper<ShipmentHeader>() .eq(ShipmentHeader::getDeleted, 0) .in(ShipmentHeader::getAutoShipmentStatus, 2) .last("ORDER BY requestedStartDate asc,id asc limit 1")); - if (header!=null) { - if(header.getLastStatus()<QuantityConstant.SHIPMENT_HEADER_COMPLETED){ + if (header != null) { + if (header.getLastStatus() < QuantityConstant.SHIPMENT_HEADER_COMPLETED) { return; } } @@ -208,7 +209,7 @@ public class RyTask extends BaseController { .in(ShipmentHeader::getAutoShipmentStatus, 1) .last("ORDER BY requestedStartDate asc,id asc limit 1")); if (!shipmentHeaders.isEmpty()) { - AjaxResult ajaxResult = handleMultiProcessV1("autoShipment",new MultiProcessListener() { + AjaxResult ajaxResult = handleMultiProcessV1("autoShipment", new MultiProcessListener() { @Override public AjaxResult doProcess() { shipmentHeaderService.autoShipmentExecute(shipmentHeaders.get(0)); diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java index 64cf687..1356529 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java @@ -489,7 +489,8 @@ public class ShipmentTaskService { //设置出库货箱表头状态为拣货任务完成 LambdaUpdateWrapper<ShipmentContainerHeader> shipmentContainerHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate(); - shipmentContainerHeaderLambdaUpdateWrapper.eq(ShipmentContainerHeader::getId, task.getAllocationHeadId()) + shipmentContainerHeaderLambdaUpdateWrapper + .eq(ShipmentContainerHeader::getId, task.getAllocationHeadId()) .set(ShipmentContainerHeader::getStatus, QuantityConstant.SHIPMENT_CONTAINER_FINISHED); if (!containerHeaderService.update(shipmentContainerHeaderLambdaUpdateWrapper)) { throw new ServiceException("更新组盘头状态失败"); @@ -502,9 +503,9 @@ public class ShipmentTaskService { ShipmentDetail shipmentDetail = shipmentDetailService.getById(taskDetail.getBillDetailId()); if (StringUtils.isNotNull(shipmentDetail)) { if (shipmentDetail.getQty().compareTo(shipmentDetail.getTaskQty()) == 0) { - //一条单据明细可能有多条组盘多条任务 - List<ShipmentContainerDetail> list = shipmentContainerDetailService.list(new LambdaQueryWrapper<ShipmentContainerDetail>().eq(ShipmentContainerDetail::getShipmentDetailId, shipmentDetail.getId())); + List<ShipmentContainerDetail> list = shipmentContainerDetailService.list(new LambdaQueryWrapper<ShipmentContainerDetail>() + .eq(ShipmentContainerDetail::getShipmentDetailId, shipmentDetail.getId())); boolean flag = true; for (ShipmentContainerDetail shipmentContainerDetail : list) { if (shipmentContainerDetail.getStatus() != 20) { @@ -524,31 +525,32 @@ public class ShipmentTaskService { } - /*更新出库单状态*/ + /* 更新出库单状态 */ for (Integer id : ids) { ShipmentHeader shipmentHeader = shipmentHeaderService.getById(id); if (shipmentHeader != null) { Map<String, Integer> status = shipmentDetailService.selectStatus(shipmentHeader.getId()); Integer maxStatus = status.get("maxStatus"); Integer minStatus = status.get("minStatus"); - if (maxStatus.equals(QuantityConstant.SHIPMENT_HEADER_COMPLETED)) { - shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED); - } - if (minStatus.equals(QuantityConstant.SHIPMENT_HEADER_COMPLETED)) { - shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED); - shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED); - shipmentHeader.setCompleteTime(new Date()); + + // 检查 maxStatus 和 minStatus 是否不为空 + if (maxStatus != null && minStatus != null) { + boolean isStatusCompleted = QuantityConstant.SHIPMENT_HEADER_COMPLETED.equals(maxStatus); + + if (isStatusCompleted) { + shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED); + } + + if (QuantityConstant.SHIPMENT_HEADER_COMPLETED.equals(minStatus)) { + shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED); + shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED); + shipmentHeader.setCompleteTime(new Date()); + } } shipmentHeader.setLastUpdated(new Date()); - shipmentHeaderService.updateById(shipmentHeader); -// // 单子每完成,返回给MOM--merge(合并订单) -// if (("MOM".equals(shipmentHeader.getCreatedBy()) || "merge".equals(shipmentHeader.getShipmentType())) &&minStatus >= 500) { -// if (!mesReceiptController.postE_Rd_Out(shipmentHeader)){ -// logger.debug("在出库单据(ID: " + shipmentHeader.getId() + ")完成后反馈给MOM失败!!!"); -// }else { -// logger.debug("在出库单据(ID: " + shipmentHeader + ")完成后反馈给MOM成功!!!"); -// } -// } + if (!shipmentHeaderService.updateById(shipmentHeader)) { + throw new ServiceException("更新入库单头表失败"); + } } } //删除自建单据物料