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/api/service/impl/PdaCheckOrderServiceImpl.java |   26 ++++++++++++++++++--------
 1 files changed, 18 insertions(+), 8 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 436fed0..ff3e3af 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
@@ -74,7 +74,7 @@
     private CheckOrderService checkOrderService;
 
     @Autowired
-    private CusItemSyncViewQueryService cusItemSyncViewQueryService;
+    private CusBarcodeSyncViewQueryService cusBarcodeSyncViewQueryService;
 
 
     @Override
@@ -279,7 +279,15 @@
         return R.ok(checkDiffItem);
     }
 
-    /** 鎵墿鏂欏厛鏌ヨ鍥撅紝鍛戒腑鍚庡悓姝ョ墿鏂欎富鏁版嵁 */
+    private Matnr findLocalMatnrByCode(String matnrCode) {
+        String t = StringUtils.trimToNull(matnrCode);
+        if (t == null) {
+            return null;
+        }
+        return matnrService.getOneByCodeAndBatch(t, "");
+    }
+
+    /** 瑙嗗浘 barcode 鍗崇墿鏂欏彿锛屼笌 man_matnr.code 涓�鑷� */
     private Matnr getMatnrByCodePreferView(String matnrCode) {
         String code = StringUtils.trimToNull(matnrCode);
         if (code == null) {
@@ -287,28 +295,30 @@
         }
         List<Map<String, Object>> viewItems = null;
         try {
-            viewItems = cusItemSyncViewQueryService.listByItemNos(Collections.singletonList(code));
+            viewItems = cusBarcodeSyncViewQueryService.listByItemNos(Collections.singletonList(code));
         } catch (Exception ignore) {
         }
         Map<String, Object> row = null;
         if (viewItems != null) {
             row = viewItems.stream()
-                    .filter(v -> StringUtils.equals(code, StringUtils.trimToNull(Objects.toString(v.get("item_no"), null))))
+                    .filter(v -> CusBarcodeSyncViewQueryService.rowMatchesOrderMatnr(code, Objects.toString(v.get("barcode"), null)))
                     .findFirst()
                     .orElse(null);
         }
         if (row == null) {
-            return matnrService.getOneByCodeAndBatch(code, "");
+            return findLocalMatnrByCode(code);
         }
+        String fullCode = CusBarcodeSyncViewQueryService.matnrCodeFromBarcode(Objects.toString(row.get("barcode"), null));
         String viewSpec = StringUtils.trimToEmpty(Objects.toString(row.get("item_spec"), ""));
         String viewUnit = StringUtils.trimToNull(Objects.toString(row.get("unit_no"), null));
+        String viewName = StringUtils.trimToNull(Objects.toString(row.get("item_name"), null));
         Long loginUserId = SystemAuthUtils.getLoginUserId() == null ? 1L : SystemAuthUtils.getLoginUserId();
-        Matnr local = matnrService.getOneByCodeAndBatch(code, "");
+        Matnr local = findLocalMatnrByCode(fullCode);
         if (local == null) {
             Matnr matnr = new Matnr();
-            matnr.setCode(code)
+            matnr.setCode(fullCode)
                     .setBatch("")
-                    .setName(code)
+                    .setName(viewName != null ? viewName : fullCode)
                     .setSpec(viewSpec)
                     .setUnit(viewUnit)
                     .setStockUnit(viewUnit)

--
Gitblit v1.9.1