From e20d964bfe6c573fc322694777e52a43364c1f74 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期二, 03 二月 2026 09:52:13 +0800
Subject: [PATCH] 库存明细支持空值,增加支持表单

---
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java |   67 ++++++++++++++++++++++++++++++---
 1 files changed, 60 insertions(+), 7 deletions(-)

diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java
index 90edbd6..8da1005 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/controller/phyz/ERPController.java
@@ -20,6 +20,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -153,9 +154,23 @@
         return CommonResponse.ok();
     }
 
+    @ApiOperation("搴撳瓨鏌ヨ鏄庣粏锛堣〃鍗曟彁浜わ級")
+    @PostMapping(value = "/inventory/details", consumes = "application/x-www-form-urlencoded")
+    public CommonResponse queryInventoryDetailsForm(HttpServletRequest request) {
+        // 浠庤〃鍗曞弬鏁版瀯寤烘煡璇㈡潯浠�
+        InventoryQueryCondition condition = buildConditionFromRequestParams(request);
+        // 璋冪敤JSON澶勭悊鏂规硶
+        return queryInventoryDetails(condition);
+    }
+
     @ApiOperation("搴撳瓨鏌ヨ鏄庣粏")
-    @PostMapping("/inventory/details")
-    public CommonResponse queryInventoryDetails(@RequestBody InventoryQueryCondition condition) {
+    @PostMapping(value = "/inventory/details", consumes = "application/json")
+    public CommonResponse queryInventoryDetails(@RequestBody(required = false) InventoryQueryCondition condition) {
+        // JSON鏂瑰紡锛氭敮鎸佷笉浼犻�掑弬鏁帮紙{}鎴杗ull鎴栫┖璇锋眰浣擄級锛屽垱寤洪粯璁ょ殑绌烘煡璇㈡潯浠跺璞�
+        if (condition == null) {
+            condition = new InventoryQueryCondition();
+        }
+        
         if (SIMULATED_DATA_ENABLE.equals("1")) {
             String x = "[\n" +
                     "  {\n" +
@@ -205,11 +220,6 @@
             if (wmsServerFeignClient == null) {
                 log.warn("WmsServerFeignClient鏈敞鍏ワ紝鏃犳硶杩涜璋冪敤");
                 return CommonResponse.error("鏈嶅姟鏈垵濮嬪寲");
-            }
-            
-            // 鍙傛暟楠岃瘉
-            if (condition == null) {
-                return CommonResponse.error("鏌ヨ鏉′欢涓嶈兘涓虹┖");
             }
             
             log.info("搴撳瓨鏌ヨ鏄庣粏璇锋眰鍙傛暟锛� {}", JSON.toJSONString(condition));
@@ -400,4 +410,47 @@
     }
     // endregion
 
+
+    /**
+     * 浠庤姹傚弬鏁帮紙琛ㄥ崟鏁版嵁锛夋瀯寤烘煡璇㈡潯浠跺璞�
+     * 鏀寔 application/x-www-form-urlencoded 鏍煎紡
+     */
+    private InventoryQueryCondition buildConditionFromRequestParams(HttpServletRequest request) {
+        InventoryQueryCondition condition = new InventoryQueryCondition();
+        
+        // 浠庤姹傚弬鏁颁腑鑾峰彇瀛楁鍊�
+        String wareHouseId = request.getParameter("wareHouseId");
+        String locId = request.getParameter("locId");
+        String matNr = request.getParameter("matNr");
+        String matGroup = request.getParameter("matGroup");
+        String orderNo = request.getParameter("orderNo");
+        String planNo = request.getParameter("planNo");
+        String batch = request.getParameter("batch");
+        
+        // 璁剧疆瀛楁鍊硷紙濡傛灉瀛樺湪锛�
+        if (wareHouseId != null && !wareHouseId.isEmpty()) {
+            condition.setWareHouseId(wareHouseId);
+        }
+        if (locId != null && !locId.isEmpty()) {
+            condition.setLocId(locId);
+        }
+        if (matNr != null && !matNr.isEmpty()) {
+            condition.setMatNr(matNr);
+        }
+        if (matGroup != null && !matGroup.isEmpty()) {
+            condition.setMatGroup(matGroup);
+        }
+        if (orderNo != null && !orderNo.isEmpty()) {
+            condition.setOrderNo(orderNo);
+        }
+        if (planNo != null && !planNo.isEmpty()) {
+            condition.setPlanNo(planNo);
+        }
+        if (batch != null && !batch.isEmpty()) {
+            condition.setBatch(batch);
+        }
+        
+        return condition;
+    }
+
 }

--
Gitblit v1.9.1