From 9bb62e919e8c85e7cfca55f0af90da5e48dcedeb Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期五, 30 一月 2026 17:08:39 +0800
Subject: [PATCH] 查询库存明细-订单号

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java |   36 ++++++++++++++++++++++++++++--------
 1 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
index 8e1fe0c..f771b8f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -929,22 +929,25 @@
                 return R.error("鏌ヨ鏉′欢涓嶈兘涓虹┖");
             }
 
-            // 灏咵RP鍙傛暟鏄犲皠涓篔ava瀹炰綋瀛楁鍚嶏紙椹煎嘲鏍煎紡锛夛紝PageParam浼氳嚜鍔ㄨ浆鎹负鏁版嵁搴撳瓧娈靛悕锛堜笅鍒掔嚎鏍煎紡锛�
+            // 灏咵RP鍙傛暟鏄犲皠涓烘暟鎹簱瀛楁鍚嶏紙涓嬪垝绾挎牸寮忥級
             Map<String, Object> queryMap = new HashMap<>();
-
-            // 浠庡疄浣撶被涓彁鍙栨煡璇㈡潯浠讹紝鏄犲皠涓烘暟鎹簱瀛楁鍚�
+            
+            // 浠庡疄浣撶被涓彁鍙栨煡璇㈡潯浠讹紝鏄犲皠涓虹湡瀹炵殑鏁版嵁搴撳瓧娈靛悕
             if (StringUtils.isNotBlank(condition.getLocId())) {
-                queryMap.put("locCode", condition.getLocId());
+                queryMap.put("loc_code", condition.getLocId());
             }
             if (StringUtils.isNotBlank(condition.getMatNr())) {
-                queryMap.put("matnrCode", condition.getMatNr());
+                queryMap.put("matnr_code", condition.getMatNr());
             }
             if (StringUtils.isNotBlank(condition.getPlanNo())) {
-                queryMap.put("trackCode", condition.getPlanNo());
+                queryMap.put("track_code", condition.getPlanNo());
             }
             if (StringUtils.isNotBlank(condition.getBatch())) {
                 queryMap.put("batch", condition.getBatch());
             }
+            // 娉ㄦ剰锛歰rderNo 鍜� wareHouseId 涓嶅湪 LocItem 琛ㄤ腑锛岄渶瑕侀�氳繃鍏朵粬鏂瑰紡鏌ヨ
+            // orderNo 宸插湪鍚庨潰鍗曠嫭澶勭悊锛坧lat_order_code 鍜� plat_work_code锛�
+            // wareHouseId 闇�瑕侀�氳繃 Loc 琛ㄥ叧鑱旀煡璇紝宸插湪鍚庨潰鍗曠嫭澶勭悊
 
             BaseParam baseParam = new BaseParam();
             baseParam.syncMap(queryMap);
@@ -953,10 +956,27 @@
             QueryWrapper<LocItem> wrapper = pageParam.buildWrapper(false);
 
             // 璁㈠崟鍙�/宸ュ崟鍙�/MES宸ュ崟鍙�
+            // 璁㈠崟鍙峰彲鑳藉瓨鍌ㄥ湪锛�1) LocItem.plat_order_code 2) LocItem.plat_work_code 3) WkOrder.code (閫氳繃orderId鍏宠仈)
             if (StringUtils.isNotBlank(condition.getOrderNo())) {
                 String orderNo = condition.getOrderNo();
-                wrapper.and(w -> w.eq("plat_order_code", orderNo)
-                        .or().eq("plat_work_code", orderNo));
+                
+                // 鍏堟煡璇kOrder琛紝鑾峰彇鍖归厤鐨勮鍗旾D鍒楄〃
+                LambdaQueryWrapper<WkOrder> orderWrapper = new LambdaQueryWrapper<>();
+                orderWrapper.eq(WkOrder::getCode, orderNo);
+                List<WkOrder> matchingOrders = asnOrderService.list(orderWrapper);
+                List<Long> matchingOrderIds = matchingOrders.stream()
+                        .map(WkOrder::getId)
+                        .collect(Collectors.toList());
+                
+                // 鏋勫缓璁㈠崟鍙锋煡璇㈡潯浠讹細LocItem琛ㄧ殑plat_order_code銆乸lat_work_code锛屾垨閫氳繃orderId鍏宠仈WkOrder.code
+                wrapper.and(w -> {
+                    w.eq("plat_order_code", orderNo)
+                     .or().eq("plat_work_code", orderNo);
+                    // 濡傛灉鎵惧埌浜嗗尮閰嶇殑璁㈠崟锛屼篃鏌ヨorderId
+                    if (!matchingOrderIds.isEmpty()) {
+                        w.or().in("order_id", matchingOrderIds);
+                    }
+                });
             }
 
             // 鐗╂枡缁勶紙闇�瑕侀�氳繃鐗╂枡琛ㄥ叧鑱旀煡璇級

--
Gitblit v1.9.1