From be01aaa9902836ec6d763bf3e59b3476cc8f45c9 Mon Sep 17 00:00:00 2001
From: yiwenpeng <ywp303@163.com>
Date: Tue, 5 Nov 2024 19:04:42 +0800
Subject: [PATCH] 1、入库单和出库单的明细,如果创建人是MOM就不能新增。 2、完善入库回传接口。

---
 src/main/java/com/huaheng/pc/receipt/receiptDetail/controller/ReceiptDetailController.java    |  3 +++
 src/main/java/com/huaheng/pc/shipment/shipmentDetail/controller/ShipmentDetailController.java |  3 +++
 src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java                  | 66 +++++++++++++++++++++++++++++++++++++++++++-----------------------
 src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html                      | 22 ++++++++++++----------
 src/main/resources/templates/shipment/shipmentHeaderHistory/shipmentHeaderHistory.html        | 21 +++++++++++----------
 5 files changed, 72 insertions(+), 43 deletions(-)

diff --git a/src/main/java/com/huaheng/pc/receipt/receiptDetail/controller/ReceiptDetailController.java b/src/main/java/com/huaheng/pc/receipt/receiptDetail/controller/ReceiptDetailController.java
index 4c84f78..b0848f4 100644
--- a/src/main/java/com/huaheng/pc/receipt/receiptDetail/controller/ReceiptDetailController.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiptDetail/controller/ReceiptDetailController.java
@@ -270,6 +270,9 @@ public class ReceiptDetailController extends BaseController {
     @PostMapping("/add")
     @ResponseBody
     public AjaxResult addSave(ReceiptDetail receiptDetail) {
+        if (receiptDetail.getCreatedBy().equals("MOM")) {
+            AjaxResult.error("MOM下发的单据不能新增");
+        }
         return receiptDetailService.saveReceiptDetaial(receiptDetail);
     }
 
diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentDetail/controller/ShipmentDetailController.java b/src/main/java/com/huaheng/pc/shipment/shipmentDetail/controller/ShipmentDetailController.java
index acbd3ad..630d698 100644
--- a/src/main/java/com/huaheng/pc/shipment/shipmentDetail/controller/ShipmentDetailController.java
+++ b/src/main/java/com/huaheng/pc/shipment/shipmentDetail/controller/ShipmentDetailController.java
@@ -149,6 +149,9 @@ public class ShipmentDetailController extends BaseController {
     @PostMapping("/add")
     @ResponseBody
     public AjaxResult addSave(ShipmentDetail shipmentDetail) {
+        if (shipmentDetail.getCreatedBy().equals("MOM")) {
+            AjaxResult.error("MOM下发的单据不能新增");
+        }
         return shipmentDetailService.insertDetail(shipmentDetail);
     }
 
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 784008b..0af139f 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
@@ -680,46 +680,66 @@ public class ReceiptTaskService {
             taskHeaderService.updateById(taskHeader);
             return AjaxResult.success("回传成功");
         }
+
+        boolean allSuccessful = true;
+        BigDecimal pushQty = BigDecimal.ZERO;
+        ReceiptHeader receiptHeader = null; // 在循环外部初始化
+
         for (TaskDetail taskDetail : taskDetailList) {
-            /*查询入库单明细*/
+            // 查询入库单明细
             ReceiptDetail receiptDetail = receiptDetailService.getById(taskDetail.getBillDetailId());
             if ("MOM".equals(receiptDetail.getCreatedBy())) {
                 receiptDetail.setTaskQty(taskDetail.getQty());
-                ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId());
+                receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId()); // 更新receiptHeader
+
+                // 特殊条件处理
                 if ("199".equals(receiptHeader.getReceiptType()) && !"MOM".equals(receiptHeader.getCreatedBy())) {
-                    taskHeader.setBackMoM(1);//1回传成功
+                    taskHeader.setBackMoM(1); // 1回传成功
                     taskHeaderService.updateById(taskHeader);
                     continue;
                 }
+
+                // 调用接口进行回传
                 ReturnInfo returnInfo = mesReceiptController.postE_Rd_In(receiptDetail);
                 receiptHeader.setPushErrorCount(receiptHeader.getPushErrorCount() + 1);
+
                 if (returnInfo == null) {
-                    receiptHeader.setErrorMsg("入库回传错误:接口地址错误,或接口超时,或MOM报错,请用入库单号到接口日志查询具体错误!");
-                    receiptHeader.setPushSuccessStatus(2);//单据回传失败
-                    taskHeader.setBackMoM(3);//3回传失败
+                    receiptHeader.setErrorMsg("入库回传错误:接口地址错误,可能是接口超时,或MOM报错,请用入库单号到接口日志查询具体错误!");
+                    receiptHeader.setPushSuccessStatus(2); // 回传失败
+                    taskHeader.setBackMoM(3); // 3回传失败
                     taskHeader.setPushErrorCount(taskHeader.getPushErrorCount() + 1);
+                    allSuccessful = false;
+                } else if (returnInfo.noError()) {
+                    // 累加已回传数量
+                    pushQty = pushQty.add(taskDetail.getQty());
+                    receiptHeader.setPushQty(pushQty);
+                    receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_RETURN);
+                    receiptHeader.setPushSuccessStatus(3); // 部分回传
                 } else {
-                    if (returnInfo.noError()) {
-                        BigDecimal pushQty = receiptHeader.getPushQty().add(taskDetail.getQty());
-                        receiptHeader.setPushQty(pushQty);
-                        receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_RETURN);
-                        receiptHeader.setPushSuccessStatus(3);//3回传了部分
-                        if (receiptHeader.getPushQty().compareTo(receiptHeader.getTotalQty()) == 0) {
-                            receiptHeader.setPushSuccessStatus(1);//1成功
-                            receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_RETURN);
-                        }
-                        taskHeader.setBackMoM(1);//1回传成功
-                    } else {
-                        taskHeader.setPushErrorCount(taskHeader.getPushErrorCount() + 1);
-                        taskHeader.setBackMoM(3);//3回传失败
-                        receiptHeader.setErrorMsg(returnInfo.getMsg());
-                        receiptHeader.setPushSuccessStatus(2);//2失败
-                    }
+                    taskHeader.setPushErrorCount(taskHeader.getPushErrorCount() + 1);
+                    taskHeader.setBackMoM(3); // 3回传失败
+                    receiptHeader.setErrorMsg(returnInfo.getMsg());
+                    receiptHeader.setPushSuccessStatus(2); // 失败
+                    allSuccessful = false;
                 }
+
                 receiptHeaderService.updateById(receiptHeader);
             }
-            taskHeaderService.updateById(taskHeader);
         }
+
+        // 确保在所有TaskDetail处理完后更新最终状态
+        if (receiptHeader != null && pushQty.compareTo(receiptHeader.getTotalQty()) == 0) {
+            receiptHeader.setPushSuccessStatus(1); // 1成功
+            receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_RETURN);
+            taskHeader.setBackMoM(1); // 1回传成功
+        } else if (!allSuccessful) {
+            taskHeader.setBackMoM(3); // 3回传失败
+        }
+
+        taskHeaderService.updateById(taskHeader);
+
         return AjaxResult.success("回传成功");
     }
+
+
 }
diff --git a/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html b/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html
index 18a9b95..1bafcb7 100644
--- a/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html
+++ b/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html
@@ -546,13 +546,10 @@
                         return '';  // 若无值则返回空字符串
                     }
                 },
+
                 {
-                    field: 'transferWarehouseName',
-                    title: '调入仓库名称',
-                },
-                {
-                    field: 'shipmentNote',
-                    title: '备注',
+                    field: 'superiorName',
+                    title: '母件名称',
                     formatter: function (value, row, index) {
                         var actions = [];
                         if (value == undefined || value == '')
@@ -563,8 +560,8 @@
                     }
                 },
                 {
-                    field: 'superiorName',
-                    title: '母件名称',
+                    field: 'superiorCode',
+                    title: '母件编码',
                     formatter: function (value, row, index) {
                         var actions = [];
                         if (value == undefined || value == '')
@@ -575,8 +572,12 @@
                     }
                 },
                 {
-                    field: 'superiorCode',
-                    title: '母件编码',
+                    field: 'transferWarehouseName',
+                    title: '调入仓库名称',
+                },
+                {
+                    field: 'shipmentNote',
+                    title: '备注',
                     formatter: function (value, row, index) {
                         var actions = [];
                         if (value == undefined || value == '')
@@ -587,6 +588,7 @@
                     }
                 },
 
+
                 {
                     field: 'warehouseCode',
                     title: '仓库',
diff --git a/src/main/resources/templates/shipment/shipmentHeaderHistory/shipmentHeaderHistory.html b/src/main/resources/templates/shipment/shipmentHeaderHistory/shipmentHeaderHistory.html
index 2e4dd69..5e6d471 100644
--- a/src/main/resources/templates/shipment/shipmentHeaderHistory/shipmentHeaderHistory.html
+++ b/src/main/resources/templates/shipment/shipmentHeaderHistory/shipmentHeaderHistory.html
@@ -477,12 +477,8 @@
                     }
                 },
                 {
-                    field: 'transferWarehouseName',
-                    title: '调入仓库名称',
-                },
-                {
-                    field: 'shipmentNote',
-                    title: '备注',
+                    field: 'superiorName',
+                    title: '母件名称',
                     formatter: function (value, row, index) {
                         var actions = [];
                         if (value == undefined || value == '')
@@ -493,8 +489,8 @@
                     }
                 },
                 {
-                    field: 'superiorName',
-                    title: '母件名称',
+                    field: 'superiorCode',
+                    title: '母件编码',
                     formatter: function (value, row, index) {
                         var actions = [];
                         if (value == undefined || value == '')
@@ -505,8 +501,12 @@
                     }
                 },
                 {
-                    field: 'superiorCode',
-                    title: '母件编码',
+                    field: 'transferWarehouseName',
+                    title: '调入仓库名称',
+                },
+                {
+                    field: 'shipmentNote',
+                    title: '备注',
                     formatter: function (value, row, index) {
                         var actions = [];
                         if (value == undefined || value == '')
@@ -517,6 +517,7 @@
                     }
                 },
 
+
                 {
                     field: 'warehouseCode',
                     title: '仓库',
--
libgit2 0.22.2