From 42b24af07f1ec2d1a375232d754128ba41d56f0a Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期四, 29 一月 2026 15:35:55 +0800
Subject: [PATCH] pda匹配单号

---
 src/main/java/com/zy/asrs/controller/MaterialReceiveController.java |   65 ++++++++++++++++++++++++--------
 1 files changed, 48 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MaterialReceiveController.java b/src/main/java/com/zy/asrs/controller/MaterialReceiveController.java
index b8f8348..e9e612e 100644
--- a/src/main/java/com/zy/asrs/controller/MaterialReceiveController.java
+++ b/src/main/java/com/zy/asrs/controller/MaterialReceiveController.java
@@ -41,24 +41,55 @@
                   @RequestParam(required = false) String condition,
                   @RequestParam(required = false) Boolean pdaQuery,
                   @RequestParam Map<String, Object> param) {
-        EntityWrapper<MaterialReceive> wrapper = new EntityWrapper<>();
-        excludeTrash(param);
-        // 绉婚櫎pdaQuery鍙傛暟锛屽洜涓哄畠涓嶆槸鏁版嵁搴撳瓧娈碉紝鍙槸鎺у埗鍙傛暟
-        param.remove("pdaQuery");
-        convert(param, wrapper);
-        allLike(MaterialReceive.class, param.keySet(), wrapper, condition);
-        
-        // 鍙傝�冨叾浠栧嚭搴撴ā鍧楋紝PDA鍑哄簱鏌ヨ鏃惰繃婊ゆ帀宸插叏閮ㄥ嚭搴撶殑鐗╂枡锛堝彧鏄剧ず杩樻湁鍓╀綑鏁伴噺鐨勶級
-        // 閫氳繃 pdaQuery 鍙傛暟鍒ゆ柇鏄惁鏄疨DA鍑哄簱鏌ヨ
-        if (pdaQuery != null && pdaQuery) {
-            // PDA鍑哄簱鏌ヨ锛氬彧鏄剧ず鍓╀綑鏁伴噺澶т簬0鐨勮褰�
-            wrapper.gt("remain_qty", 0);
+        try {
+            EntityWrapper<MaterialReceive> wrapper = new EntityWrapper<>();
+            excludeTrash(param);
+            // 绉婚櫎pdaQuery鍙傛暟锛屽洜涓哄畠涓嶆槸鏁版嵁搴撳瓧娈碉紝鍙槸鎺у埗鍙傛暟
+            param.remove("pdaQuery");
+            
+            // 澶勭悊鐢熶骇鍗曞彿/浠诲姟鍗曞彿鐨勫涓�兼煡璇紙鐢▅鍒嗛殧锛�
+            if (param.containsKey("soCodeOrFbillno")) {
+                String soCodeOrFbillno = String.valueOf(param.get("soCodeOrFbillno"));
+                param.remove("soCodeOrFbillno");
+                
+                // 鍒嗗壊澶氫釜鍊�
+                String[] codeArray = soCodeOrFbillno.split("\\|");
+                List<String> validCodes = new ArrayList<>();
+                for (String codeStr : codeArray) {
+                    String code = codeStr.trim();
+                    if (code.length() > 0) {
+                        validCodes.add(code);
+                    }
+                }
+                
+                if (!validCodes.isEmpty()) {
+                    // 鏋勫缓OR鏌ヨ鏉′欢
+                    // 鏍煎紡锛歴o_code IN (value1, value2, ...) OR fbillno IN (value1, value2, ...)
+                    wrapper.andNew()
+                          .in("so_code", validCodes)
+                          .or()
+                          .in("fbillno", validCodes);
+                }
+            }
+            
+            convert(param, wrapper);
+            allLike(MaterialReceive.class, param.keySet(), wrapper, condition);
+            
+            // 鍙傝�冨叾浠栧嚭搴撴ā鍧楋紝PDA鍑哄簱鏌ヨ鏃惰繃婊ゆ帀宸插叏閮ㄥ嚭搴撶殑鐗╂枡锛堝彧鏄剧ず杩樻湁鍓╀綑鏁伴噺鐨勶級
+            // 閫氳繃 pdaQuery 鍙傛暟鍒ゆ柇鏄惁鏄疨DA鍑哄簱鏌ヨ
+            if (pdaQuery != null && pdaQuery) {
+                // PDA鍑哄簱鏌ヨ锛氬彧鏄剧ず鍓╀綑鏁伴噺澶т簬0鐨勮褰�
+                wrapper.gt("remain_qty", 0);
+            }
+            
+            if (!Cools.isEmpty(orderByField)) {
+                wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+            }
+            return R.ok(materialReceiveService.selectPage(new Page<>(curr, limit), wrapper));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("鏌ヨ澶辫触: " + e.getMessage());
         }
-        
-        if (!Cools.isEmpty(orderByField)) {
-            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
-        }
-        return R.ok(materialReceiveService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
     @RequestMapping(value = "/materialReceive/batchSave/auth", method = RequestMethod.POST)

--
Gitblit v1.9.1