From 9d6170903806cb351975c9d68005837aec6a8578 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 19 五月 2025 10:42:17 +0800
Subject: [PATCH] 即时库存功能优化
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java | 10 +++-
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ViewStockManage.java | 18 ++++++++
rsf-admin/src/page/statistics/stockManage/WarehouseAside.jsx | 3 -
rsf-admin/src/page/statistics/stockManage/WarehouseStockInfo.jsx | 2
rsf-admin/src/i18n/en.js | 1
rsf-admin/src/page/statistics/stockManage/WarehouseStockList.jsx | 39 +++++++++++++++----
rsf-server/src/main/resources/mapper/manager/WarehouseStockMapper.xml | 1
7 files changed, 59 insertions(+), 15 deletions(-)
diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index f0e233f..b80aa4b 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -952,6 +952,7 @@
unit: 'Unit',
anfme: 'Stock Qty',
matnrCode: "Matnr Code",
+ warehouse: 'Warehouse',
workQty: 'Work Qty',
qty: 'Non Stock Qty',
splrId: 'supplier',
diff --git a/rsf-admin/src/page/statistics/stockManage/WarehouseAside.jsx b/rsf-admin/src/page/statistics/stockManage/WarehouseAside.jsx
index 4ee352c..0cec498 100644
--- a/rsf-admin/src/page/statistics/stockManage/WarehouseAside.jsx
+++ b/rsf-admin/src/page/statistics/stockManage/WarehouseAside.jsx
@@ -15,9 +15,8 @@
const WarehouseAside = () => {
- const [isSelect, setIsSelect] = useState(false);
const isSelected = (value, filters) => {
- const aggType = filters.aggType || [];
+ const aggType = filters.aggType || ["matnr"];
return aggType.includes(value.aggType);
};
diff --git a/rsf-admin/src/page/statistics/stockManage/WarehouseStockInfo.jsx b/rsf-admin/src/page/statistics/stockManage/WarehouseStockInfo.jsx
index d540252..703b950 100644
--- a/rsf-admin/src/page/statistics/stockManage/WarehouseStockInfo.jsx
+++ b/rsf-admin/src/page/statistics/stockManage/WarehouseStockInfo.jsx
@@ -235,7 +235,7 @@
const [columns, setColumns] = useState([
{
- field: 'warehouse',
+ field: 'warehouse$',
headerName: translate('table.field.warehouseStock.warehouse'),
width: 130,
editable: false,
diff --git a/rsf-admin/src/page/statistics/stockManage/WarehouseStockList.jsx b/rsf-admin/src/page/statistics/stockManage/WarehouseStockList.jsx
index fa57252..3a463e3 100644
--- a/rsf-admin/src/page/statistics/stockManage/WarehouseStockList.jsx
+++ b/rsf-admin/src/page/statistics/stockManage/WarehouseStockList.jsx
@@ -60,13 +60,11 @@
}));
+
const WarehouseStockList = () => {
const translate = useTranslate();
const [createDialog, setCreateDialog] = useState(false);
- const [select, setSelect] = useState({});
- const [drawerVal, setDrawerVal] = useState(false);
-
- const filters = [
+ const [filters, setFilters] = useState([
<SearchInput source="condition" alwaysOn />,
<NumberInput source="locId" label="table.field.locItem.locId" />,
<TextInput source="locCode" label="table.field.locItem.locCode" />,
@@ -85,8 +83,9 @@
<TextInput source="spec" label="table.field.locItem.spec" />,
<TextInput source="model" label="table.field.locItem.model" />,
<TextInput source="fieldsIndex" label="table.field.locItem.fieldsIndex" />,
- <TextInput label="common.field.memo" source="memo" />,
- ]
+ <TextInput label="common.field.memo" source="memo" />,]);
+ const [select, setSelect] = useState({});
+ const [drawerVal, setDrawerVal] = useState(false);
return (
<>
@@ -103,6 +102,7 @@
resource="warehouse/stock"
title={"common.button.detail"}
empty={false}
+ // filter={{aggType: "matnr"}}
filters={filters}
sort={{ field: "create_time", order: "desc" }}
actions={(
@@ -119,6 +119,7 @@
setDrawerVal={setDrawerVal}
setCreateDialog={setCreateDialog}
setSelect={setSelect}
+ filters={filters}
/>
</List>
<WarehouseStockInfo
@@ -138,9 +139,19 @@
export default WarehouseStockList;
+const PaginatedRowNumber = () => {
+ const record = useRecordContext();
+ const { page, perPage } = useListContext();
+ const index = record.__tmp_index !== undefined ? record.__tmp_index : 0;
+ // const index = record.__tmp_index; // react-admin 鍐呴儴浣跨敤鐨勪复鏃剁储寮�
+ return <span>{(page - 1) * perPage + index + 1}</span>;
+};
+
+
const DynamicFields = (props) => {
- const { setDrawerVal, setCreateDialog, setSelect } = props
+ const index = 1;
+ const { setDrawerVal, setCreateDialog, setSelect, filters } = props
const translate = useTranslate();
const notify = useNotify();
const [columns, setColumns] = useState([]);
@@ -166,6 +177,7 @@
<NumberField source="workQty" label="table.field.warehouseStock.qty" />,
<TextField source="spec" label="table.field.warehouseStock.spec" />,
<TextField source="model" label="table.field.warehouseStock.model" />,
+ <TextField source="warehouse$" label="table.field.warehouseStock.warehouse" />,
<TextField source="batch" label="table.field.warehouseStock.batch" />,
<TextField source="unit" label="table.field.warehouseStock.unit" />,
<TextField source="fieldsIndex" label="table.field.warehouseStock.fieldsIndex" />,
@@ -180,6 +192,18 @@
</WrapperField>
]
setColumns([...arr, ...fields, ...lastArr]);
+
+ data.map(el => {
+ var i = 0;
+ filters.map((item) => {
+ if (item.key === el.fields) {
+ i = 1;
+ }
+ })
+ i === 0 && filters.push(<TextInput key={el.fields} source={el.fields} label={el.fieldsAlise} />)
+ })
+ // setFilters([...filters, ...inputFields])
+
} else {
notify(msg);
}
@@ -216,7 +240,6 @@
const HistoriesButton = ({ setDrawerVal, setSelect }) => {
const record = useRecordContext();
const { filterValues } = useListContext();
-
const historyClick = (event) => {
event.stopPropagation();
setDrawerVal(true)
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..58724db 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
@@ -11,6 +11,7 @@
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.entity.WarehouseAreasItem;
import com.vincent.rsf.server.manager.enums.ViewStockType;
import com.vincent.rsf.server.manager.service.WarehouseStockService;
import com.vincent.rsf.server.system.controller.BaseController;
@@ -44,7 +45,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,6 +60,9 @@
} 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) {
@@ -82,7 +86,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 +124,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("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ViewStockManage.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ViewStockManage.java
index 572b579..6133efe 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ViewStockManage.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/ViewStockManage.java
@@ -1,6 +1,10 @@
package com.vincent.rsf.server.manager.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.vincent.rsf.framework.common.Cools;
+import com.vincent.rsf.framework.common.SpringUtils;
+import com.vincent.rsf.server.manager.service.MatnrService;
+import com.vincent.rsf.server.manager.service.WarehouseService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
@@ -28,7 +32,6 @@
private String locCode;
@ApiModelProperty("浠撳簱")
- @TableField(exist = false)
private String warehouse;
@ApiModelProperty("鍗曟嵁绫诲瀷")
@@ -92,4 +95,17 @@
@TableField(exist = false)
private Map<String, String> extendFields;
+
+ public String getWarehouse$(){
+ WarehouseService service = SpringUtils.getBean(WarehouseService.class);
+ Warehouse warehouse = service.getById(this.warehouse);
+ if (!Cools.isEmpty(warehouse)){
+ return String.valueOf(warehouse.getName());
+ }
+ return null;
+ }
+
+
}
+
+
diff --git a/rsf-server/src/main/resources/mapper/manager/WarehouseStockMapper.xml b/rsf-server/src/main/resources/mapper/manager/WarehouseStockMapper.xml
index e0ccacc..1f3ada5 100644
--- a/rsf-server/src/main/resources/mapper/manager/WarehouseStockMapper.xml
+++ b/rsf-server/src/main/resources/mapper/manager/WarehouseStockMapper.xml
@@ -5,6 +5,7 @@
SELECT id,
loc_id,
loc_code,
+ warehouse,
type,
order_item_id,
wk_type,
--
Gitblit v1.9.1