Commit d77906fd125e2fe84ebbcd126e124d8d5f8ca7cd

Authored by 易文鹏
1 parent 64c4e6ca

feat:被设置为前置任务的任务,是浅库位,设有前置任务的任务,是深库位,浅库位任务要优先出,所以深库位优先级-1

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 //删除自建单据物料