From 46232207334414b4de1b273a9b265f0b110fecac Mon Sep 17 00:00:00 2001
From: yiwenpeng <ywp303@163.com>
Date: Wed, 28 Aug 2024 09:38:03 +0800
Subject: [PATCH] feat:出库单打印,明细列表先根据托盘分组再根据巷道排序

---
 src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java                      |  2 +-
 src/main/java/com/huaheng/api/mes/result/ReturnInfo.java                                    |  6 +++---
 src/main/java/com/huaheng/api/wcs/controller/ArrivedNoticeController.java                   |  3 +++
 src/main/java/com/huaheng/pc/monitor/job/task/RyTask.java                                   | 10 +++-------
 src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java |  6 +++++-
 src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java                |  9 +--------
 6 files changed, 16 insertions(+), 20 deletions(-)

diff --git a/src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java b/src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java
index 11ba4e3..c1508d2 100644
--- a/src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java
+++ b/src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java
@@ -861,7 +861,7 @@ public class MesReceiptController extends BaseController {
             return false;
         }
         shipmentHeader.setPushErrorCount(shipmentHeader.getPushErrorCount() + 1);
-        if (returnInfo.hasError()) {
+        if (returnInfo.noError()) {
             shipmentHeader.setPushSuccessStatus(1);
             shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_RETURN);
             shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_RETURN);
diff --git a/src/main/java/com/huaheng/api/mes/result/ReturnInfo.java b/src/main/java/com/huaheng/api/mes/result/ReturnInfo.java
index 7ce5548..8c05e39 100755
--- a/src/main/java/com/huaheng/api/mes/result/ReturnInfo.java
+++ b/src/main/java/com/huaheng/api/mes/result/ReturnInfo.java
@@ -10,10 +10,10 @@ public class ReturnInfo {
     private Integer code;
     private String msg;
 
-    public Boolean hasError(){
-        if(code == RetCode.SUCCESS.getValue()){
+    public Boolean noError() {
+        if (code == RetCode.SUCCESS.getValue()) {
             return true;
-        }else {
+        } else {
             return false;
         }
     }
diff --git a/src/main/java/com/huaheng/api/wcs/controller/ArrivedNoticeController.java b/src/main/java/com/huaheng/api/wcs/controller/ArrivedNoticeController.java
index 8c3665c..9f87c87 100644
--- a/src/main/java/com/huaheng/api/wcs/controller/ArrivedNoticeController.java
+++ b/src/main/java/com/huaheng/api/wcs/controller/ArrivedNoticeController.java
@@ -59,6 +59,9 @@ public class ArrivedNoticeController extends BaseController {
             if (status == QuantityConstant.TASK_STATUS_COMPLETED) {
                 return AjaxResult.success("更新到达站台成功, 任务已经完成,不要重复更新");
             }
+            if (status == QuantityConstant.TASK_STATUS_ARRIVED_STATION) {
+                return AjaxResult.success("状态已经是到达站台了,不要重复更新");
+            }
             taskHeader.setStatus(QuantityConstant.TASK_STATUS_ARRIVED_STATION);
         } else {
             return AjaxResult.error("没有找到任务taskNo:" + taskNo);
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 cd7223d..606a7b3 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
@@ -257,7 +257,7 @@ public class RyTask extends BaseController {
      * 回传MOM
      */
     public void backErp(String params) {
-        System.out.println("backErp params:" + params);
+        //System.out.println("backErp params:" + params);
         String taskKey = "backErp";
         if (MapUtils.getBoolean(runningTaskMap, taskKey, false)) {
             return;
@@ -294,11 +294,7 @@ public class RyTask extends BaseController {
             List<ReceiptHeader> receiptHeaderList = receiptHeaderService.list(receiptLambdaQueryWrapper);
             for (ReceiptHeader receiptHeader : receiptHeaderList) {
                 /*查询入库单明细*/
-                LambdaQueryWrapper<ReceiptDetail> receiptDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
-                receiptDetailLambdaQueryWrapper
-                        .eq(ReceiptDetail::getReceiptId, receiptHeader.getId())
-                        .eq(ReceiptDetail::getProcessStamp, QuantityConstant.RECEIPT_HEADER_POSTING);
-                List<ReceiptDetail> receiptDetailList = receiptDetailService.list(receiptDetailLambdaQueryWrapper);
+                List<ReceiptDetail> receiptDetailList = receiptDetailService.list(new LambdaQueryWrapper<ReceiptDetail>().eq(ReceiptDetail::getReceiptId, receiptHeader.getId()).eq(ReceiptDetail::getProcessStamp, QuantityConstant.RECEIPT_HEADER_POSTING));
                 receiptHeader.setPushErrorCount(receiptHeader.getPushErrorCount() + 1);
                 try {
                     ReturnInfo returnInfo = mesReceiptController.postOther_E_Rd_In(receiptDetailList, receiptHeader);
@@ -308,7 +304,7 @@ public class RyTask extends BaseController {
                         receiptHeaderService.updateById(receiptHeader);
                         continue;
                     }
-                    if (returnInfo.hasError()) {
+                    if (returnInfo.noError()) {
                         receiptDetailList.forEach(e -> e.setProcessStamp(QuantityConstant.RECEIPT_HEADER_RETURN + ""));
                         receiptDetailService.updateBatchById(receiptDetailList);
                         //修改头状态和尾状态
diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java
index 016393a..c5a492a 100644
--- a/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java
@@ -606,7 +606,7 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper,
                 return;
             }
         }
-        
+
 
         //自动打印
         int isPrint = Integer.parseInt(configService.getKey(QuantityConstant.AUTO_SHIPMENT_PRINT));
@@ -716,6 +716,10 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper,
             vo.setHeader(shipmentHeader, totalLines, totalQty, pageNumber, zoneInfo, unionCode);
 
             currentPage.stream()
+                    .collect(Collectors.groupingBy(TaskDetail::getContainerCode)) // 按托盘号分组
+                    .values() // 获取所有分组后的列表
+                    .stream()
+                    .flatMap(Collection::stream) // 将多个列表合并成一个流
                     .sorted(Comparator.comparing(taskDetail -> {
                         Location location = locationService.getOne(new LambdaQueryWrapper<Location>().eq(Location::getCode, taskDetail.getFromLocation()));
                         return location != null ? location.getRoadway() : "";
diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java
index 4b8a720..784008b 100644
--- a/src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java
+++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java
@@ -691,13 +691,6 @@ public class ReceiptTaskService {
                     taskHeaderService.updateById(taskHeader);
                     continue;
                 }
-                //TaskHeader taskHeader1 = taskHeaderService.getById(taskDetail.getTaskId());
-                //if (taskHeader1.getBackMoM() == 1) {
-                //    receiptHeader.setPushSuccessStatus(1);//1成功
-                //    receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_RETURN);
-                //    receiptHeaderService.updateById(receiptHeader);
-                //    continue;
-                //}
                 ReturnInfo returnInfo = mesReceiptController.postE_Rd_In(receiptDetail);
                 receiptHeader.setPushErrorCount(receiptHeader.getPushErrorCount() + 1);
                 if (returnInfo == null) {
@@ -706,7 +699,7 @@ public class ReceiptTaskService {
                     taskHeader.setBackMoM(3);//3回传失败
                     taskHeader.setPushErrorCount(taskHeader.getPushErrorCount() + 1);
                 } else {
-                    if (returnInfo.hasError()) {
+                    if (returnInfo.noError()) {
                         BigDecimal pushQty = receiptHeader.getPushQty().add(taskDetail.getQty());
                         receiptHeader.setPushQty(pushQty);
                         receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_RETURN);
--
libgit2 0.22.2