From 02f6db3f1842f5a830e6ed00aebe6ccd917e76c4 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 06 十一月 2025 12:55:05 +0800
Subject: [PATCH] 即时库存功能优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java |   39 ++++++++++++++++++++++++++++++---------
 1 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java
index 1fc48ed..a4c74da 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java
@@ -15,6 +15,7 @@
 import com.vincent.rsf.server.manager.service.WarehouseStockService;
 import com.vincent.rsf.server.system.controller.BaseController;
 import io.swagger.annotations.Api;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -34,8 +35,7 @@
     @Autowired
     private WarehouseStockService warehouseStockService;
 
-
-    @PreAuthorize("hasAuthority('manager:locItem:list')")
+//    @PreAuthorize("hasAuthority('manager:locItem:list')")
     @PostMapping("/page")
     public R page(@RequestBody Map<String, Object> param) {
         if (Objects.isNull(param)) {
@@ -44,7 +44,7 @@
         BaseParam baseParam = buildParam(param, BaseParam.class);
         PageParam<ViewStockManage, BaseParam> pageParam = new PageParam<>(baseParam, ViewStockManage.class);
         WarehouseStockParam stockParam = JSONObject.parseObject(JSONObject.toJSONString(param), WarehouseStockParam.class);
-        String type = stockParam.getAggType();
+        String type = Objects.isNull(stockParam.getAggType()) ? ViewStockType.VIEW_STOCK_TYPE_MATNR.val : stockParam.getAggType();
         ViewStockManage stock = stockParam.getStock();
         QueryWrapper<ViewStockManage> wrapper = new QueryWrapper<>();
 
@@ -59,14 +59,22 @@
         } else {
             wrapper.groupBy("matnr_id");
         }
+        wrapper.eq(!Objects.isNull(param.get("matnrCode")), "matnr_code", param.get("matnrCode"));
+
+        FieldsUtils.setFieldsFilters(wrapper, pageParam, ViewStockManage.class);
+
+
         IPage<ViewStockManage> pageResult = warehouseStockService.pageByStock(pageParam, wrapper);
+
+
         List<ViewStockManage> records = pageResult.getRecords();
-        for (ViewStockManage record : records) {
+
+        records.forEach(record -> {
             if (!Objects.isNull(record.getFieldsIndex())) {
                 Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex());
                 record.setExtendFields(fields);
             }
-        }
+        });
         pageResult.setRecords(records);
 
         return R.ok(pageResult);
@@ -82,7 +90,7 @@
         BaseParam baseParam = buildParam(param, BaseParam.class);
         PageParam<StockItem, BaseParam> pageParam = new PageParam<>(baseParam, StockItem.class);
         WarehouseStockParam stockParam = JSONObject.parseObject(JSONObject.toJSONString(param), WarehouseStockParam.class);
-        String type = stockParam.getAggType();
+        String type = Objects.isNull(stockParam.getAggType()) ? ViewStockType.VIEW_STOCK_TYPE_MATNR.val : stockParam.getAggType();
         ViewStockManage stock = stockParam.getStock();
         QueryWrapper<StockItem> wrapper = new QueryWrapper<>();
 
@@ -120,7 +128,7 @@
         BaseParam baseParam = buildParam(param, BaseParam.class);
         PageParam<ViewStockManage, BaseParam> pageParam = new PageParam<>(baseParam, ViewStockManage.class);
         WarehouseStockParam stockParam = JSONObject.parseObject(JSONObject.toJSONString(param), WarehouseStockParam.class);
-        String type = stockParam.getAggType();
+        String type = Objects.isNull(stockParam.getAggType()) ? ViewStockType.VIEW_STOCK_TYPE_MATNR.val : stockParam.getAggType();
         if (Objects.isNull(type)) {
             return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
@@ -134,12 +142,25 @@
        } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_WAREHOUSE.val)) {
             wrapper.eq(ViewStockManage::getWarehouse, stock.getWarehouse());
        } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_FIELDSINDEX.val)) {
-            wrapper.eq(ViewStockManage::getFieldsIndex, stock.getFieldsIndex());
+            if (StringUtils.isBlank(stock.getFieldsIndex())) {
+                wrapper.isNull(ViewStockManage::getFieldsIndex);
+            } else {
+                wrapper.eq(ViewStockManage::getFieldsIndex, stock.getFieldsIndex());
+            }
         } else {
             wrapper.eq(ViewStockManage::getMatnrCode, stock.getMatnrCode());
        }
+        PageParam<ViewStockManage, BaseParam> result = warehouseStockService.page(pageParam, wrapper);
+        List<ViewStockManage> records = result.getRecords();
+        records.forEach(record -> {
+            if (!Objects.isNull(record.getFieldsIndex())) {
+                Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex());
+                record.setExtendFields(fields);
+            }
+        });
+        result.setRecords(records);
 
-        return R.ok(warehouseStockService.page(pageParam, wrapper));
+        return R.ok(result);
     }
 
 }

--
Gitblit v1.9.1