From f21530d33ca23aeeba2ef073ac6b64422e4e26ca Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期四, 30 四月 2026 12:17:55 +0800
Subject: [PATCH] 库位编号规则和和CTU保持一致

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
index 0605c3c..8b6c53f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -213,6 +213,7 @@
                     throw new CoolException("缁勬墭鏄庣粏淇墽琛屾暟閲忎慨鏀瑰け璐ワ紒锛�");
                 }
             });
+            syncAsnOrderItemBarcodeByPakin(waitPakinItems, pakin.getBarcode(), loginUserId);
         });
 
         if (!waitPakinService.update(new LambdaUpdateWrapper<WaitPakin>()
@@ -303,6 +304,7 @@
                     throw new CoolException("缁勬墭鏄庣粏淇墽琛屾暟閲忎慨鏀瑰け璐ワ紒锛�");
                 }
             });
+            syncAsnOrderItemBarcodeByPakin(waitPakinItems, pakin.getBarcode(), loginUserId);
         });
 
         if (!waitPakinService.update(new LambdaUpdateWrapper<WaitPakin>()
@@ -455,6 +457,7 @@
                     throw new CoolException("缁勬墭鏄庣粏淇墽琛屾暟閲忎慨鏀瑰け璐ワ紒锛�");
                 }
             });
+            syncAsnOrderItemBarcodeByPakin(waitPakinItems, pakin.getBarcode(), loginUserId);
         });
 
         if (!waitPakinService.update(new LambdaUpdateWrapper<WaitPakin>()
@@ -465,6 +468,27 @@
             throw new CoolException("缁勬嫋鐘舵�佷慨鏀瑰け璐ワ紒锛�");
         }
         return R.ok("浠诲姟鐢熸垚瀹屾瘯锛�");
+    }
+
+    /** 缁勬墭鍚庡皢閫氱煡鍗曟槑缁嗘潯鐮佸洖鍐欎负鏂欑鐮� */
+    private void syncAsnOrderItemBarcodeByPakin(List<WaitPakinItem> waitPakinItems, String pakinBarcode, Long loginUserId) {
+        if (waitPakinItems == null || waitPakinItems.isEmpty() || StringUtils.isBlank(pakinBarcode)) {
+            return;
+        }
+        Set<Long> asnItemIds = waitPakinItems.stream()
+                .map(WaitPakinItem::getAsnItemId)
+                .filter(Objects::nonNull)
+                .collect(Collectors.toSet());
+        if (asnItemIds.isEmpty()) {
+            return;
+        }
+        if (!asnOrderItemService.update(new LambdaUpdateWrapper<WkOrderItem>()
+                .in(WkOrderItem::getId, asnItemIds)
+                .set(WkOrderItem::getBarcode, pakinBarcode)
+                .set(WkOrderItem::getUpdateBy, loginUserId)
+                .set(WkOrderItem::getUpdateTime, new Date()))) {
+            throw new CoolException("閫氱煡鍗曟槑缁嗘潯鐮佸洖鍐欏け璐ワ紒锛�");
+        }
     }
 
     /**
@@ -2597,6 +2621,10 @@
             WkOrder o = asnOrderService.getById(e.getKey());
             if (o != null) {
                 Double newQty = QuantityUtils.roundToScale(QuantityUtils.add(o.getQty() != null ? o.getQty() : 0.0, e.getValue()));
+                Double planQty = QuantityUtils.roundToScale(o.getAnfme() != null ? o.getAnfme() : 0.0);
+                if (QuantityUtils.compare(newQty, planQty) > 0) {
+                    newQty = planQty;
+                }
                 o.setQty(newQty);
                 if (!asnOrderService.updateById(o)) {
                     throw new CoolException("鍏ュ簱鍗曞畬鎴愭暟閲忔洿鏂板け璐ワ紒锛�");
@@ -2607,6 +2635,10 @@
             WkOrderItem oi = asnOrderItemService.getById(e.getKey());
             if (oi != null) {
                 Double newQty = QuantityUtils.roundToScale(QuantityUtils.add(oi.getQty() != null ? oi.getQty() : 0.0, e.getValue()));
+                Double planQty = QuantityUtils.roundToScale(oi.getAnfme() != null ? oi.getAnfme() : 0.0);
+                if (QuantityUtils.compare(newQty, planQty) > 0) {
+                    newQty = planQty;
+                }
                 oi.setQty(newQty);
                 if (!asnOrderItemService.updateById(oi)) {
                     throw new CoolException("鍏ュ簱鍗曟槑缁嗗畬鎴愭暟閲忔洿鏂板け璐ワ紒锛�");

--
Gitblit v1.9.1