From 3cc9e4551c42c1eb40c09f181857f2e0b1aa8355 Mon Sep 17 00:00:00 2001
From: lbq <1065079612@qq.com>
Date: 星期四, 05 三月 2026 08:14:34 +0800
Subject: [PATCH] 实现PDA灌桶入库呼叫新料功能,优化Web页面

---
 rsf-admin/src/page/orders/config/orderItemColumns.jsx                                                       |    2 
 rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx                                                          |    4 +-
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/InventoryQueryConditionParam.java |   12 ++++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/InBoundController.java                   |   26 ++++++++++++-
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java                 |   26 +++++++++++++
 5 files changed, 65 insertions(+), 5 deletions(-)

diff --git a/rsf-admin/src/page/orders/config/orderItemColumns.jsx b/rsf-admin/src/page/orders/config/orderItemColumns.jsx
index f80ec4f..6b375d1 100644
--- a/rsf-admin/src/page/orders/config/orderItemColumns.jsx
+++ b/rsf-admin/src/page/orders/config/orderItemColumns.jsx
@@ -53,9 +53,9 @@
     <TruncatedTextField source="maktx" label="table.field.asnOrderItem.maktx" key="maktx" maxLength={20} />, //鐗╂枡鍚嶇О
     <TextField source="batch" label="table.field.asnOrderItem.splrBatch" key="batch" />, //鎵规
     <TextField source="spec" label="table.field.asnOrderItem.spec" key="spec" />, //瑙勬牸
-    <TextField source="stockUnit" label="table.field.asnOrderItem.unit" key="stockUnit" />, //鍗曚綅
     <NumberField source="anfme" label="table.field.asnOrderItem.anfme" key="anfme" />, //搴旀敹鏁伴噺
     <NumberField source="qty" label="table.field.asnOrderItem.qty" key="qty" />, //瀹炴敹鏁伴噺   
+    <TextField source="stockUnit" label="table.field.asnOrderItem.unit" key="stockUnit" />, //鍗曚綅
     <TextField source="targetWarehouseId" label="table.field.asnOrderItem.targetWarehouseId" key="targetWarehouseId" />, //寤鸿鐩爣浠�
 ];
 
diff --git a/rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx b/rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx
index 5785689..3d322d4 100644
--- a/rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx
+++ b/rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx
@@ -169,9 +169,9 @@
                 <TextField source="matnrCode" label="table.field.waitPakinItem.matnrCode" />,
                 <TextField source="maktx" label="table.field.waitPakinItem.maktx" />,
                 <TextField source="batch" label="table.field.waitPakinItem.batch" />,
-                <TextField source="unit" label="table.field.waitPakinItem.unit" />,
                 <NumberField source="anfme" label="table.field.waitPakinItem.anfme" />,
-                // <NumberField source="qty" label="table.field.waitPakinItem.qty" />,               
+                // <NumberField source="qty" label="table.field.waitPakinItem.qty" />,  
+                <TextField source="unit" label="table.field.waitPakinItem.unit" />,             
                 <TextField source="platOrderCode" label="table.field.asnOrderItem.platOrderCode" />,
                 <TextField source="projectCode" label="table.field.asnOrderItem.projectCode" />,
                 <NumberField source="workQty" label="table.field.waitPakinItem.workQty" />,               
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/InventoryQueryConditionParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/InventoryQueryConditionParam.java
index 0ae6a43..e833bde 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/InventoryQueryConditionParam.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/InventoryQueryConditionParam.java
@@ -61,6 +61,12 @@
     private String matGroup;
 
     /**
+     * 搴撳尯
+     */
+    @ApiModelProperty(value = "搴撳尯")
+    private String wareHouseAreaId;
+
+    /**
      * 浠嶮ap鏋勯�營nventoryQueryConditionParam瀵硅薄
      * 鐢ㄤ簬鎺ユ敹鍏朵粬鏂规硶杩斿洖鐨凪ap鍙傛暟骞惰嚜鍔ㄨ浆鎹�
      * 
@@ -93,6 +99,9 @@
         if (map.containsKey("matGroup")) {
             param.setMatGroup((String) map.get("matGroup"));
         }
+        if (map.containsKey("wareHouseAreaId")) {
+            param.setMatGroup((String) map.get("wareHouseAreaId"));
+        }
         return param;
     }
 
@@ -124,6 +133,9 @@
         if (matGroup != null) {
             map.put("matGroup", matGroup);
         }
+        if (wareHouseAreaId != null) {
+            map.put("wareHouseAreaId", wareHouseAreaId);
+        }
         return map;
     }
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/InBoundController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/InBoundController.java
index 188e7f2..9977501 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/InBoundController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/InBoundController.java
@@ -2,19 +2,21 @@
 
 import com.vincent.rsf.framework.common.Cools;
 import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.server.api.controller.erp.params.InventoryQueryConditionParam;
 import com.vincent.rsf.server.api.entity.params.PdaGeneralParam;
 import com.vincent.rsf.server.api.service.InBoundService;
+import com.vincent.rsf.server.api.service.ReceiveMsgService;
+import com.vincent.rsf.server.common.annotation.OperationLog;
 import com.vincent.rsf.server.system.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.Map;
+import javax.annotation.Resource;
 
 @Api(tags = "PDA鍏ュ簱鎿嶄綔鎺ュ彛")
 @RequestMapping("/pda")
@@ -23,6 +25,8 @@
 
     @Autowired
     private InBoundService inBoundService;
+    @Resource
+    private ReceiveMsgService receiveMsgService;
 
     @PostMapping("/in/emptyContainer/warehousing")
     @ApiOperation("绌哄鍣ㄥ叆搴�")
@@ -48,4 +52,22 @@
         return inBoundService.checkNonOrder(param, getLoginUserId());
     }
 
+    /**
+     * 搴撳瓨鏌ヨ鏄庣粏
+     *
+     * @param condition 鏌ヨ鏉′欢
+     * @return 搴撳瓨鏄庣粏鍒楄〃
+     */
+    @PostMapping("/inventory/details")
+    @ApiOperation(value = "搴撳瓨鏌ヨ鏄庣粏", hidden = true)
+    @OperationLog("搴撳瓨鏌ヨ鏄庣粏")
+    public R queryInventoryDetails(@RequestBody InventoryQueryConditionParam condition) {
+        // 鍙傛暟楠岃瘉
+        if (condition == null) {
+            return R.error("鏌ヨ鏉′欢涓嶈兘涓虹┖");
+        }
+
+        return receiveMsgService.erpQueryInventoryDetails(condition);
+    }
+
 }
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 4c9dae6..af614d7 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
@@ -1124,6 +1124,32 @@
                 }
             }
 
+            // 浠撳簱缂栫爜杩囨护
+            if (StringUtils.isNotBlank(condition.getWareHouseAreaId())) {
+                String wareHouseAreaId = condition.getWareHouseAreaId();
+                LambdaQueryWrapper<WarehouseAreas> whWrapper = new LambdaQueryWrapper<>();
+                whWrapper.eq(WarehouseAreas::getCode, wareHouseAreaId);
+                // 璋冪敤WarehouseService鏌ヨ浠撳簱淇℃伅锛堝鐢⊿ervice灞傛柟娉曪級
+                List<WarehouseAreas> warehouses = warehouseAreasService.list(whWrapper);
+                if (!warehouses.isEmpty()) {
+                    Long targetWarehouseId = warehouses.get(0).getId();
+                    // 杩囨护搴撲綅锛屽彧淇濈暀鐩爣浠撳簱鐨勫簱浣�
+                    locMap = locMap.entrySet().stream()
+                            .filter(entry -> Objects.equals(entry.getValue().getAreaId(), targetWarehouseId))
+                            .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
+
+                    // 杩囨护locItems锛屽彧淇濈暀鐩爣浠撳簱鐨�
+                    Set<Long> validLocIds = locMap.keySet();
+                    locItems = locItems.stream()
+                            .filter(item -> item.getLocId() != null && validLocIds.contains(item.getLocId()))
+                            .collect(Collectors.toList());
+
+                    List<Long> warehouseAreaIds = Collections.singletonList(targetWarehouseId);
+                } else {
+                    return R.ok().add(new ArrayList<>());
+                }
+            }
+
             // 璋冪敤WarehouseService鏌ヨ浠撳簱淇℃伅锛堝鐢⊿ervice灞傛柟娉曪級
             Map<Long, Warehouse> warehouseMap = new HashMap<>();
             if (!warehouseIds.isEmpty()) {

--
Gitblit v1.9.1