From 7f7491da89fdec2ccf678c104b449213ea4fdbef Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 22 七月 2025 13:27:54 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
index 2780e06..b6a9e2d 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
@@ -161,17 +161,24 @@
                 if (null == diffItem) {
                     return R.error("鏁版嵁閿欒锛屾湭鎵惧埌宸紓鍗曟槑缁�");
                 }
+                diffItem.setCheckQty(ckDiffItem.getCheckQty()).setReason(ckDiffItem.getReason()).setMemo(ckDiffItem.getMemo());
             }
 
             diffItem.setExceStatus(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_HOLD.val);
             if (!checkDiffItemService.updateById(diffItem)) {
                 throw new CoolException("鏇存柊宸紓鍗曟槑缁嗗け璐�");
             }
-            Double checkQty = Math.round((checkDiff.getCheckQty() + diffItem.getCheckQty()) * 10000) / 10000.0;
-            checkDiff.setCheckQty(checkQty);
+//            Double checkQty = Math.round((checkDiff.getCheckQty() + diffItem.getCheckQty()) * 10000) / 10000.0;
+//            checkDiff.setCheckQty(checkQty);
         }
-        checkDiff.setExceStatus(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_HOLD.val);
 
+        List<CheckDiffItem> diffItems = checkDiffItemService.list(new LambdaQueryWrapper<CheckDiffItem>()
+                .eq(CheckDiffItem::getCheckId, checkDiff.getId()));
+        if (diffItems.isEmpty()) {
+            throw new CoolException("鐩樼偣宸紓鍗曟槑缁嗕笉瀛樺湪锛侊紒");
+        }
+        Double sum = diffItems.stream().mapToDouble(CheckDiffItem::getCheckQty).sum();
+        checkDiff.setExceStatus(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_HOLD.val).setCheckQty(sum);
         if (!checkDiffService.updateById(checkDiff)) {
             throw new CoolException("鏇存柊宸紓鍗曞け璐�");
         }
@@ -192,6 +199,9 @@
             return R.error("鐗╂枡鐮佷负绌�");
         }
         Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, matnrCode));
+        if (null == matnr){
+            return R.error("鏈壘鍒扮紪鐮佸搴旂殑鏄庣粏");
+        }
         CheckDiffItem checkDiffItem = new CheckDiffItem()
                 .setMatnrCode(matnr.getCode())
                 .setMaktx(matnr.getName())

--
Gitblit v1.9.1