Commit d77906fd125e2fe84ebbcd126e124d8d5f8ca7cd
1 parent
64c4e6ca
feat:被设置为前置任务的任务,是浅库位,设有前置任务的任务,是深库位,浅库位任务要优先出,所以深库位优先级-1
Showing
3 changed files
with
33 additions
and
29 deletions
src/main/java/com/huaheng/api/wcs/service/taskAssignService/TaskAssignServiceImpl.java
@@ -145,7 +145,7 @@ public class TaskAssignServiceImpl implements TaskAssignService { | @@ -145,7 +145,7 @@ public class TaskAssignServiceImpl implements TaskAssignService { | ||
145 | // 出库动作 | 145 | // 出库动作 |
146 | if (!direction) { | 146 | if (!direction) { |
147 | int rowFlag = location.getRowFlag(); | 147 | int rowFlag = location.getRowFlag(); |
148 | - //如果是外侧库位 | 148 | + //当前任务如果是深库位 |
149 | if (rowFlag == QuantityConstant.ROW_OUT) { | 149 | if (rowFlag == QuantityConstant.ROW_OUT) { |
150 | Location insideLocation = locationService.getInsideNear(location); | 150 | Location insideLocation = locationService.getInsideNear(location); |
151 | String insideLocationCode = insideLocation.getCode(); | 151 | String insideLocationCode = insideLocation.getCode(); |
@@ -155,7 +155,7 @@ public class TaskAssignServiceImpl implements TaskAssignService { | @@ -155,7 +155,7 @@ public class TaskAssignServiceImpl implements TaskAssignService { | ||
155 | //获取是否有未完成的任务 | 155 | //获取是否有未完成的任务 |
156 | TaskHeader taskHeader2 = taskHeaderService.getUndoneTaskByFromLocationCode(insideLocationCode); | 156 | TaskHeader taskHeader2 = taskHeaderService.getUndoneTaskByFromLocationCode(insideLocationCode); |
157 | if (taskHeader2 != null) { | 157 | if (taskHeader2 != null) { |
158 | - preTaskNo = taskHeader2.getId(); | 158 | + preTaskNo = taskHeader2.getId();//浅库位任务号 |
159 | } else { | 159 | } else { |
160 | //是否自建单据库位 | 160 | //是否自建单据库位 |
161 | int isSelfCreated = 0; | 161 | int isSelfCreated = 0; |
@@ -220,9 +220,6 @@ public class TaskAssignServiceImpl implements TaskAssignService { | @@ -220,9 +220,6 @@ public class TaskAssignServiceImpl implements TaskAssignService { | ||
220 | wcsTask.setFromPort(""); | 220 | wcsTask.setFromPort(""); |
221 | wcsTask.setToPort(taskHeader.getPort()); | 221 | wcsTask.setToPort(taskHeader.getPort()); |
222 | wcsTask.setContainerCode(taskHeader.getContainerCode()); | 222 | wcsTask.setContainerCode(taskHeader.getContainerCode()); |
223 | - if (preTaskNo != 0) { | ||
224 | - wcsTask.setPreTaskNo(String.valueOf(preTaskNo)); | ||
225 | - } | ||
226 | 223 | ||
227 | if (location != null) { | 224 | if (location != null) { |
228 | wcsTask.setStation(location.getRoadway()); | 225 | wcsTask.setStation(location.getRoadway()); |
@@ -251,7 +248,11 @@ public class TaskAssignServiceImpl implements TaskAssignService { | @@ -251,7 +248,11 @@ public class TaskAssignServiceImpl implements TaskAssignService { | ||
251 | } | 248 | } |
252 | wcsTask.setRemark("0"); | 249 | wcsTask.setRemark("0"); |
253 | wcsTask.setPlatform(platform); | 250 | wcsTask.setPlatform(platform); |
254 | - | 251 | + //浅库位任务优先出,深库位优先级-1 |
252 | + if (preTaskNo != 0) { | ||
253 | + wcsTask.setPreTaskNo(String.valueOf(preTaskNo)); | ||
254 | + wcsTask.setPriority(wcsTask.getPriority() - 1); | ||
255 | + } | ||
255 | Container container = containerService.getContainerByCode(containerCode, warehouseCode); | 256 | Container container = containerService.getContainerByCode(containerCode, warehouseCode); |
256 | String area = container.getArea(); | 257 | String area = container.getArea(); |
257 | //4、发送数据 | 258 | //4、发送数据 |
src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java
@@ -193,12 +193,13 @@ public class RyTask extends BaseController { | @@ -193,12 +193,13 @@ public class RyTask extends BaseController { | ||
193 | * 自动出库,自动出库单据间隔从定时任务那边配置 | 193 | * 自动出库,自动出库单据间隔从定时任务那边配置 |
194 | */ | 194 | */ |
195 | public void autoShipment() { | 195 | public void autoShipment() { |
196 | + //上一个出库单未完成,不执行下一个 | ||
196 | ShipmentHeader header = shipmentHeaderService.getOne(new LambdaQueryWrapper<ShipmentHeader>() | 197 | ShipmentHeader header = shipmentHeaderService.getOne(new LambdaQueryWrapper<ShipmentHeader>() |
197 | .eq(ShipmentHeader::getDeleted, 0) | 198 | .eq(ShipmentHeader::getDeleted, 0) |
198 | .in(ShipmentHeader::getAutoShipmentStatus, 2) | 199 | .in(ShipmentHeader::getAutoShipmentStatus, 2) |
199 | .last("ORDER BY requestedStartDate asc,id asc limit 1")); | 200 | .last("ORDER BY requestedStartDate asc,id asc limit 1")); |
200 | - if (header!=null) { | ||
201 | - if(header.getLastStatus()<QuantityConstant.SHIPMENT_HEADER_COMPLETED){ | 201 | + if (header != null) { |
202 | + if (header.getLastStatus() < QuantityConstant.SHIPMENT_HEADER_COMPLETED) { | ||
202 | return; | 203 | return; |
203 | } | 204 | } |
204 | } | 205 | } |
@@ -208,7 +209,7 @@ public class RyTask extends BaseController { | @@ -208,7 +209,7 @@ public class RyTask extends BaseController { | ||
208 | .in(ShipmentHeader::getAutoShipmentStatus, 1) | 209 | .in(ShipmentHeader::getAutoShipmentStatus, 1) |
209 | .last("ORDER BY requestedStartDate asc,id asc limit 1")); | 210 | .last("ORDER BY requestedStartDate asc,id asc limit 1")); |
210 | if (!shipmentHeaders.isEmpty()) { | 211 | if (!shipmentHeaders.isEmpty()) { |
211 | - AjaxResult ajaxResult = handleMultiProcessV1("autoShipment",new MultiProcessListener() { | 212 | + AjaxResult ajaxResult = handleMultiProcessV1("autoShipment", new MultiProcessListener() { |
212 | @Override | 213 | @Override |
213 | public AjaxResult doProcess() { | 214 | public AjaxResult doProcess() { |
214 | shipmentHeaderService.autoShipmentExecute(shipmentHeaders.get(0)); | 215 | shipmentHeaderService.autoShipmentExecute(shipmentHeaders.get(0)); |
src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java
@@ -489,7 +489,8 @@ public class ShipmentTaskService { | @@ -489,7 +489,8 @@ public class ShipmentTaskService { | ||
489 | 489 | ||
490 | //设置出库货箱表头状态为拣货任务完成 | 490 | //设置出库货箱表头状态为拣货任务完成 |
491 | LambdaUpdateWrapper<ShipmentContainerHeader> shipmentContainerHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate(); | 491 | LambdaUpdateWrapper<ShipmentContainerHeader> shipmentContainerHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate(); |
492 | - shipmentContainerHeaderLambdaUpdateWrapper.eq(ShipmentContainerHeader::getId, task.getAllocationHeadId()) | 492 | + shipmentContainerHeaderLambdaUpdateWrapper |
493 | + .eq(ShipmentContainerHeader::getId, task.getAllocationHeadId()) | ||
493 | .set(ShipmentContainerHeader::getStatus, QuantityConstant.SHIPMENT_CONTAINER_FINISHED); | 494 | .set(ShipmentContainerHeader::getStatus, QuantityConstant.SHIPMENT_CONTAINER_FINISHED); |
494 | if (!containerHeaderService.update(shipmentContainerHeaderLambdaUpdateWrapper)) { | 495 | if (!containerHeaderService.update(shipmentContainerHeaderLambdaUpdateWrapper)) { |
495 | throw new ServiceException("更新组盘头状态失败"); | 496 | throw new ServiceException("更新组盘头状态失败"); |
@@ -502,9 +503,9 @@ public class ShipmentTaskService { | @@ -502,9 +503,9 @@ public class ShipmentTaskService { | ||
502 | ShipmentDetail shipmentDetail = shipmentDetailService.getById(taskDetail.getBillDetailId()); | 503 | ShipmentDetail shipmentDetail = shipmentDetailService.getById(taskDetail.getBillDetailId()); |
503 | if (StringUtils.isNotNull(shipmentDetail)) { | 504 | if (StringUtils.isNotNull(shipmentDetail)) { |
504 | if (shipmentDetail.getQty().compareTo(shipmentDetail.getTaskQty()) == 0) { | 505 | if (shipmentDetail.getQty().compareTo(shipmentDetail.getTaskQty()) == 0) { |
505 | - | ||
506 | //一条单据明细可能有多条组盘多条任务 | 506 | //一条单据明细可能有多条组盘多条任务 |
507 | - List<ShipmentContainerDetail> list = shipmentContainerDetailService.list(new LambdaQueryWrapper<ShipmentContainerDetail>().eq(ShipmentContainerDetail::getShipmentDetailId, shipmentDetail.getId())); | 507 | + List<ShipmentContainerDetail> list = shipmentContainerDetailService.list(new LambdaQueryWrapper<ShipmentContainerDetail>() |
508 | + .eq(ShipmentContainerDetail::getShipmentDetailId, shipmentDetail.getId())); | ||
508 | boolean flag = true; | 509 | boolean flag = true; |
509 | for (ShipmentContainerDetail shipmentContainerDetail : list) { | 510 | for (ShipmentContainerDetail shipmentContainerDetail : list) { |
510 | if (shipmentContainerDetail.getStatus() != 20) { | 511 | if (shipmentContainerDetail.getStatus() != 20) { |
@@ -524,31 +525,32 @@ public class ShipmentTaskService { | @@ -524,31 +525,32 @@ public class ShipmentTaskService { | ||
524 | 525 | ||
525 | } | 526 | } |
526 | 527 | ||
527 | - /*更新出库单状态*/ | 528 | + /* 更新出库单状态 */ |
528 | for (Integer id : ids) { | 529 | for (Integer id : ids) { |
529 | ShipmentHeader shipmentHeader = shipmentHeaderService.getById(id); | 530 | ShipmentHeader shipmentHeader = shipmentHeaderService.getById(id); |
530 | if (shipmentHeader != null) { | 531 | if (shipmentHeader != null) { |
531 | Map<String, Integer> status = shipmentDetailService.selectStatus(shipmentHeader.getId()); | 532 | Map<String, Integer> status = shipmentDetailService.selectStatus(shipmentHeader.getId()); |
532 | Integer maxStatus = status.get("maxStatus"); | 533 | Integer maxStatus = status.get("maxStatus"); |
533 | Integer minStatus = status.get("minStatus"); | 534 | Integer minStatus = status.get("minStatus"); |
534 | - if (maxStatus.equals(QuantityConstant.SHIPMENT_HEADER_COMPLETED)) { | ||
535 | - shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED); | ||
536 | - } | ||
537 | - if (minStatus.equals(QuantityConstant.SHIPMENT_HEADER_COMPLETED)) { | ||
538 | - shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED); | ||
539 | - shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED); | ||
540 | - shipmentHeader.setCompleteTime(new Date()); | 535 | + |
536 | + // 检查 maxStatus 和 minStatus 是否不为空 | ||
537 | + if (maxStatus != null && minStatus != null) { | ||
538 | + boolean isStatusCompleted = QuantityConstant.SHIPMENT_HEADER_COMPLETED.equals(maxStatus); | ||
539 | + | ||
540 | + if (isStatusCompleted) { | ||
541 | + shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED); | ||
542 | + } | ||
543 | + | ||
544 | + if (QuantityConstant.SHIPMENT_HEADER_COMPLETED.equals(minStatus)) { | ||
545 | + shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED); | ||
546 | + shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED); | ||
547 | + shipmentHeader.setCompleteTime(new Date()); | ||
548 | + } | ||
541 | } | 549 | } |
542 | shipmentHeader.setLastUpdated(new Date()); | 550 | shipmentHeader.setLastUpdated(new Date()); |
543 | - shipmentHeaderService.updateById(shipmentHeader); | ||
544 | -// // 单子每完成,返回给MOM--merge(合并订单) | ||
545 | -// if (("MOM".equals(shipmentHeader.getCreatedBy()) || "merge".equals(shipmentHeader.getShipmentType())) &&minStatus >= 500) { | ||
546 | -// if (!mesReceiptController.postE_Rd_Out(shipmentHeader)){ | ||
547 | -// logger.debug("在出库单据(ID: " + shipmentHeader.getId() + ")完成后反馈给MOM失败!!!"); | ||
548 | -// }else { | ||
549 | -// logger.debug("在出库单据(ID: " + shipmentHeader + ")完成后反馈给MOM成功!!!"); | ||
550 | -// } | ||
551 | -// } | 551 | + if (!shipmentHeaderService.updateById(shipmentHeader)) { |
552 | + throw new ServiceException("更新入库单头表失败"); | ||
553 | + } | ||
552 | } | 554 | } |
553 | } | 555 | } |
554 | //删除自建单据物料 | 556 | //删除自建单据物料 |