From 9fe1ec3afe8696c628d076d1f76686c4efc3012e Mon Sep 17 00:00:00 2001
From: zc <zyzc>
Date: 星期二, 21 十月 2025 10:49:55 +0800
Subject: [PATCH] 容器初始化功能优化
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 109 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 72b4b86..aa8edf6 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
@@ -1,16 +1,21 @@
package com.vincent.rsf.server.manager.controller;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.common.utils.FieldsUtils;
-import com.vincent.rsf.server.manager.entity.LocItem;
-import com.vincent.rsf.server.manager.entity.WaitPakinItem;
+import com.vincent.rsf.server.manager.controller.params.WarehouseStockParam;
+import com.vincent.rsf.server.manager.entity.StockItem;
+import com.vincent.rsf.server.manager.entity.ViewStockManage;
+import com.vincent.rsf.server.manager.enums.ViewStockType;
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;
@@ -30,23 +35,118 @@
@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)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
BaseParam baseParam = buildParam(param, BaseParam.class);
- PageParam<LocItem, BaseParam> pageParam = new PageParam<>(baseParam, LocItem.class);
- QueryWrapper<LocItem> queryWrapper = pageParam.buildWrapper(true);
- IPage<LocItem> pageResult = warehouseStockService.pageByStock(pageParam, queryWrapper);
- List<LocItem> records = pageResult.getRecords();
- for (LocItem record : records) {
+ PageParam<ViewStockManage, BaseParam> pageParam = new PageParam<>(baseParam, ViewStockManage.class);
+ WarehouseStockParam stockParam = JSONObject.parseObject(JSONObject.toJSONString(param), WarehouseStockParam.class);
+ String type = Objects.isNull(stockParam.getAggType()) ? ViewStockType.VIEW_STOCK_TYPE_MATNR.val : stockParam.getAggType();
+ ViewStockManage stock = stockParam.getStock();
+ QueryWrapper<ViewStockManage> wrapper = new QueryWrapper<>();
+
+ if (type.equals(ViewStockType.VIEW_STOCK_TYPE_SUPPLIER.val)) {
+ wrapper.groupBy("splr_id");
+ } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_BATCH.val)) {
+ wrapper.groupBy("batch");
+ } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_WAREHOUSE.val)) {
+ wrapper.groupBy("warehouse");
+ } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_FIELDSINDEX.val)) {
+ wrapper.groupBy("fields_index");
+ } else {
+ wrapper.groupBy("matnr_id");
+ }
+
+ FieldsUtils.setFieldsFilters(wrapper, pageParam, ViewStockManage.class);
+
+ IPage<ViewStockManage> pageResult = warehouseStockService.pageByStock(pageParam, wrapper);
+ List<ViewStockManage> records = pageResult.getRecords();
+ for (ViewStockManage record : records) {
if (!Objects.isNull(record.getFieldsIndex())) {
Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex());
record.setExtendFields(fields);
}
}
pageResult.setRecords(records);
+
return R.ok(pageResult);
}
+
+ @PreAuthorize("hasAuthority('manager:locItem:list')")
+ @PostMapping("/histories/page")
+ public R histories(@RequestBody Map<String, Object> param) {
+ if (Objects.isNull(param)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ 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 = Objects.isNull(stockParam.getAggType()) ? ViewStockType.VIEW_STOCK_TYPE_MATNR.val : stockParam.getAggType();
+ ViewStockManage stock = stockParam.getStock();
+ QueryWrapper<StockItem> wrapper = new QueryWrapper<>();
+
+ if (type.equals(ViewStockType.VIEW_STOCK_TYPE_SUPPLIER.val)) {
+ wrapper.eq("splr_id", stock.getSplrId());
+ } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_BATCH.val)) {
+ wrapper.eq("batch", stock.getBatch());
+ } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_WAREHOUSE.val)) {
+ wrapper.eq("warehouse", stock.getWarehouse());
+ } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_FIELDSINDEX.val)) {
+ wrapper.eq("fields_index", stock.getFieldsIndex());
+ } else {
+ wrapper.eq("matnr_id", stock.getMatnrId());
+ }
+ IPage<StockItem> pageResult = warehouseStockService.pageByHistories(pageParam, wrapper);
+
+ List<StockItem> records = pageResult.getRecords();
+ for (StockItem record : records) {
+ if (!Objects.isNull(record.getFieldsIndex())) {
+ Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex());
+ record.setExtendFields(fields);
+ }
+ }
+ pageResult.setRecords(records);
+
+ return R.ok(pageResult);
+ }
+
+ @PreAuthorize("hasAuthority('manager:locItem:list')")
+ @PostMapping("/info")
+ public R stockInfo(@RequestBody Map<String, Object> param) {
+ if (Objects.isNull(param)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ 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 = Objects.isNull(stockParam.getAggType()) ? ViewStockType.VIEW_STOCK_TYPE_MATNR.val : stockParam.getAggType();
+ if (Objects.isNull(type)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ ViewStockManage stock = stockParam.getStock();
+ LambdaQueryWrapper<ViewStockManage> wrapper = new LambdaQueryWrapper<ViewStockManage>();
+
+ if (type.equals(ViewStockType.VIEW_STOCK_TYPE_SUPPLIER.val)) {
+ wrapper.eq(ViewStockManage::getSplrId, stock.getSplrId());
+ } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_BATCH.val)) {
+ wrapper.eq(ViewStockManage::getBatch, stock.getBatch());
+ } 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)) {
+ if (StringUtils.isBlank(stock.getFieldsIndex())) {
+ wrapper.isNull(ViewStockManage::getFieldsIndex);
+ } else {
+ wrapper.eq(ViewStockManage::getFieldsIndex, stock.getFieldsIndex());
+ }
+ } else {
+ wrapper.eq(ViewStockManage::getMatnrCode, stock.getMatnrCode());
+ }
+
+ return R.ok(warehouseStockService.page(pageParam, wrapper));
+ }
+
}
--
Gitblit v1.9.1