From 6d67e37ab96516f127e1635e92518109fd1c926c Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期二, 21 四月 2026 14:06:11 +0800
Subject: [PATCH] 料箱码查询优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java |   23 +++++++++++++++++------
 1 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
index 5ff3493..b2bf8c8 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
@@ -49,6 +49,8 @@
     private MatnrMapper matnrMapper;
     @Autowired
     private ConfigService configService;
+    @Autowired
+    private CusBarcodeSyncMatnrService cusBarcodeSyncMatnrService;
 
 
     /**
@@ -126,6 +128,11 @@
                     if (matnr == null) {
                         throw new CoolException("鐗╂枡淇℃伅涓嶅瓨鍦紝鐗╂枡ID锛�" + pakinItem1.getMatnrId());
                     }
+                    cusBarcodeSyncMatnrService.syncFromMatnrCodes(Collections.singletonList(matnr.getCode()), userId);
+                    matnr = matnrMapper.selectById(pakinItem1.getMatnrId());
+                    if (matnr == null) {
+                        throw new CoolException("鐗╂枡淇℃伅涓嶅瓨鍦紝鐗╂枡ID锛�" + pakinItem1.getMatnrId());
+                    }
                     if (pakinItem1.getReceiptQty() == null || pakinItem1.getReceiptQty().compareTo(0.0) <= 0) {
                         throw new CoolException("缁勬墭鏁伴噺涓嶈兘灏忎簬绛変簬闆讹紒锛�");
                     }
@@ -178,7 +185,7 @@
                         .setMatnrCode(areaItem.getMatnrCode());
                 WkOrder order = asnOrderService.getById(areaItem.getAsnId());
                 if (order != null) {
-                    pakinItem.setType(order.getType()).setWkType(StringUtils.isNotBlank(order.getWkType()) ? Short.parseShort(order.getWkType()) : null);
+                    pakinItem.setType(order.getType()).setWkType(order.getWkType());
                 }
                 if (pakinItem1.getReceiptQty() == null || pakinItem1.getReceiptQty().compareTo(0.0) <= 0) {
                     throw new CoolException("缁勬墭鏁伴噺涓嶈兘灏忎簬绛変簬闆讹紒锛�");
@@ -236,7 +243,11 @@
 
         for (PakinItem pakinItem1 : waitPakin.getItems()) {
             WaitPakinItem pakinItem = new WaitPakinItem();
-            if (StringUtils.isBlank(pakinItem1.getAsnCode())) {
+            // 鍘熼�昏緫锛歩f (StringUtils.isBlank(pakinItem1.getAsnCode())) { ... } else { 鎸夊崟鎹檺鍒� ... }
+            // 鍙湁鍗曟嵁鍙峰瓨鍦ㄤ笖鑳芥煡鍒板崟鎹椂鎵嶆寜鍗曟嵁闄愬埗
+            WkOrder bindOrder = StringUtils.isBlank(pakinItem1.getAsnCode()) ? null :
+                    asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>().eq(WkOrder::getCode, pakinItem1.getAsnCode()));
+            if (bindOrder == null) {
                 if (Objects.isNull(pakinItem1.getMatnrId())) {
                     throw new CoolException("鐗╂枡ID涓嶈兘涓虹┖锛侊紒");
                 }
@@ -279,9 +290,9 @@
                 if (null == orderItem) {
                     throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦紒锛�");
                 }
-                WkOrder order = asnOrderService.getById(orderItem.getOrderId());
-                if (null == order) {
-                    throw new CoolException("璁㈠崟涓嶅瓨鍦紒锛�");
+                WkOrder order = bindOrder;
+                if (orderItem.getOrderId() == null || !orderItem.getOrderId().equals(order.getId())) {
+                    throw new CoolException("鐗╂枡涓嶅湪褰撳墠鍗曟嵁涓紝涓嶈兘鎸夊崟鎹粍鎵橈紒锛�");
                 }
                 pakinItem.setAnfme(QuantityUtils.roundToScale(orderItem.getAnfme()))
                         .setPakinId(waitPakin1.getId())
@@ -303,7 +314,7 @@
                         .setCreateBy(userId)
                         .setMatnrCode(orderItem.getMatnrCode());
                 pakinItem.setType(null == order.getType() ? null : order.getType())
-                        .setWkType(StringUtils.isNotBlank(order.getWkType()) ? Short.parseShort(order.getWkType()) : null);
+                        .setWkType(order.getWkType());
 
                 for (PakinItem waitPakinItem : waitPakin.getItems()) {
                     if (waitPakinItem.getId().equals(orderItem.getId())) {

--
Gitblit v1.9.1