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 |   26 ++++++++++++++++++++++----
 1 files changed, 22 insertions(+), 4 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 6797225..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
@@ -107,7 +107,11 @@
             CheckDiffItem diffItem = new CheckDiffItem();
             if (Objects.isNull(ckDiffItem.getId())) {
                 BeanUtils.copyProperties(ckDiffItem, diffItem);
-                diffItem.setCheckId(params.getCheckId());
+                diffItem.setCheckId(params.getCheckId())
+                        .setOrderCode(checkDiff.getOrderCode())
+                        .setTaskId(task.getId())
+                        .setBarcode(task.getBarcode())
+                        .setAnfme(ckDiffItem.getCheckQty());
 
                 Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, diffItem.getMatnrCode()));
                 if (Objects.isNull(matnr)) {
@@ -122,6 +126,7 @@
                 BeanUtils.copyProperties(diffItem, diffItem);
                 taskItem.setTaskId(task.getId())
                         .setOrderType(OrderType.ORDER_CHECK.type)
+                        .setSourceCode(diffItem.getOrderCode())
                         .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_CHECK.type))
                         .setAnfme(diffItem.getAnfme())
                         .setWorkQty(0.0)
@@ -145,22 +150,35 @@
                 if (!taskItemService.save(taskItem)) {
                     throw new CoolException("鏂板鐩樼偣鏄庣粏淇濆瓨澶辫触锛侊紒");
                 }
+
+                diffItem.setTaskItemId(taskItem.getId());
+
+                if (!checkDiffItemService.updateById(diffItem)) {
+                    throw new CoolException("鏄庣粏淇敼澶辫触锛侊紒");
+                }
             } else {
                 diffItem = checkDiffItemService.getById(ckDiffItem.getId());
                 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("鏇存柊宸紓鍗曞け璐�");
         }

--
Gitblit v1.9.1