From c66946e33fcdbcd66852ed3a50967fa6f532489f Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 11 六月 2025 08:41:06 +0800
Subject: [PATCH] 添加批修量修改库口功能
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java | 14 +++++++
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/OutStockService.java | 2 +
rsf-admin/src/page/orders/outStock/OutStockPublic.jsx | 75 ++++++++++++++++++++++++++++++++++---
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java | 11 +++++
rsf-admin/src/i18n/zh.js | 1
rsf-admin/src/page/orders/outStock/OutOrderList.jsx | 2
rsf-admin/src/i18n/en.js | 2
7 files changed, 98 insertions(+), 9 deletions(-)
diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index 63c252c..d33ba92 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -1168,7 +1168,7 @@
recover: "recover",
createWave: "Create Wave",
order: 'Orders',
-
+ modiftySite: 'Modify SiteNo',
},
request: {
error: {
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index bb18c4d..503f03b 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -1171,6 +1171,7 @@
publicWorking: '涓嬪彂鎵ц',
createWave: "鐢熸垚娉㈡",
recover: "缁х画鏀惰揣",
+ modiftySite: '淇敼搴撳彛',
},
request: {
error: {
diff --git a/rsf-admin/src/page/orders/outStock/OutOrderList.jsx b/rsf-admin/src/page/orders/outStock/OutOrderList.jsx
index 18ccdf1..aed1c48 100644
--- a/rsf-admin/src/page/orders/outStock/OutOrderList.jsx
+++ b/rsf-admin/src/page/orders/outStock/OutOrderList.jsx
@@ -298,6 +298,6 @@
}
return (
- record.exceStatus == 10 ? <ConfirmButton label={"toolbar.publicWorking"} startIcon={<AddTaskIcon />} onConfirm={taskEvent} size={"small"} /> : <></>
+ record.workQty < record.anfme ? <ConfirmButton label={"toolbar.publicWorking"} startIcon={<AddTaskIcon />} onConfirm={taskEvent} size={"small"} /> : <></>
)
}
diff --git a/rsf-admin/src/page/orders/outStock/OutStockPublic.jsx b/rsf-admin/src/page/orders/outStock/OutStockPublic.jsx
index b3570fe..5ba82cb 100644
--- a/rsf-admin/src/page/orders/outStock/OutStockPublic.jsx
+++ b/rsf-admin/src/page/orders/outStock/OutStockPublic.jsx
@@ -1,4 +1,4 @@
-import { Box, Card, Grid, LinearProgress, Select, MenuItem, ListItemText, Tooltip, IconButton } from "@mui/material";
+import { Box, Card, Grid, LinearProgress, Select, MenuItem, ListItemText } from "@mui/material";
import React, { useState, useRef, useEffect, useMemo } from "react";
import {
List,
@@ -46,6 +46,7 @@
import CloseSharpIcon from '@mui/icons-material/CloseSharp';
import ConfirmButton from '../../components/ConfirmButton';
import { Delete, Edit, Add } from '@mui/icons-material';
+import OutStockSiteDialog from "./OutStockSiteDialog";
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
'& .css-1vooibu-MuiSvgIcon-root': {
@@ -70,9 +71,31 @@
const [formData, setFormData] = useState({
orderId: record?.id
});
+ const [dialog, setDialog] = useState(false);
+ const [selectedValue, setSelectedValue] = useState({});
+
+ const handleClickOpen = () => {
+ setDialog(true);
+ };
+
+ const handleClose = (value) => {
+ setDialog(false);
+ setSelectedValue(value);
+ console.log(rows);
+ console.log(value);
+ const newRows = rows.map(item => {
+ return {
+ ...item,
+ siteNo: value?.site
+ }
+ })
+ setRows(newRows);
+ };
+
useEffect(() => {
getWaveRule()
}, [formData, open])
+
const getWaveRule = async () => {
if (formData.waveId == null && formData.waveId == undefined) {
@@ -157,21 +180,36 @@
<Grid item xl={6.3} gap={2}>
<Card>
<Box sx={{ height: 500, width: '100%' }}>
- <PreviewTable rows={rows} gridRef={gridRef} setRows={setRows} record={record}/>
+ <PreviewTable
+ rows={rows}
+ gridRef={gridRef}
+ setRows={setRows}
+ record={record}
+ selectedIds={selectedIds}
+ setDialog={setDialog}
+ setSelectedIds={setSelectedIds}
+ />
</Box>
<Box sx={{ textAlign: 'center' }}>
<CloseButton setOpen={setOpen} />
- <SubmitButton selectedIds={selectedIds} setSelectedIds={setSelectedIds} gridRef={gridRef} record={record}/>
+ <SubmitButton selectedIds={selectedIds} setSelectedIds={setSelectedIds} gridRef={gridRef} record={record} />
</Box>
</Card>
</Grid>
+ </Grid>
+ <Grid>
+ <OutStockSiteDialog
+ selectedValue={selectedValue}
+ open={dialog}
+ onClose={handleClose}
+ />
</Grid>
</Box>
</>
);
}
-const PreviewTable = ({ rows, gridRef, setRows, record }) => {
+const PreviewTable = ({ rows, gridRef, setRows, record, selectedIds, setSelectedIds, setDialog }) => {
gridRef.current = useGridApiRef();
const columns = [
@@ -214,8 +252,8 @@
* @param {*} params
*/
const handleDelete = (params, rows, setRows) => {
- const outRows = rows.filter(row => {
- return row.id !== params.id
+ const outRows = rows.filter(row => {
+ return row.id !== params.id
})
setRows(outRows)
}
@@ -233,6 +271,28 @@
</Box>
);
});
+
+ const CustomToolBar = () => {
+ const selectSiteNo = () => {
+ setDialog(true)
+ }
+
+ return (
+ selectedIds.length > 0 ? <Box sx={{
+ p: 1,
+ display: 'flex',
+ justifyContent: 'flex-end',
+ borderTop: '1px solid rgba(224, 224, 224, 1)'
+ }}>
+ <Button
+ onClick={selectSiteNo}
+ variant="outlined"
+ label="toolbar.modiftySite"
+ size="medium"
+ sx={{ mr: 1 }} />
+ </Box> : <></>
+ );
+ }
const OutStockSite = (params) => {
const { id, field, siteNo, row: { staNos } } = params;
@@ -288,6 +348,7 @@
<DataGrid
rows={rows}
columns={columns}
+ slots={{ toolbar: CustomToolBar }}
apiRef={gridRef}
initialState={{
pagination: {
@@ -305,6 +366,8 @@
)
}
+
+
//鎻愪氦鎸夐挳
const SubmitButton = ({ selectedIds, setSelectedIds, gridRef, record }) => {
const notify = useNotify();
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java
index a4fc8e0..6d8f45f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java
@@ -271,5 +271,14 @@
return outStockService.genOutStockTask(taskParams, getLoginUserId(), Long.parseLong(params.get("outId").toString()));
}
-
+ /**
+ * 鑾峰彇鍑哄簱绔欑偣
+ * @return
+ */
+ @GetMapping("/outStock/tasks/sites")
+ @ApiOperation("鑾峰彇鍑哄簱搴撳彛")
+ @PreAuthorize("hasAuthority('manager:outStock:list')")
+ public R getSiteNos() {
+ return outStockService.getSiteNos();
+ }
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/OutStockService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/OutStockService.java
index 01bd225..d2964c1 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/OutStockService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/OutStockService.java
@@ -24,4 +24,6 @@
R getOrderOutTaskItem(OrderOutTaskParam param);
R genOutStockTask(List<OutStockToTaskParams> params, Long loginUserId, Long outId);
+
+ R getSiteNos();
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
index 81d96c0..7d5e71e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -510,6 +510,20 @@
return R.ok();
}
+ /**
+ * 鑾峰彇鍑哄簱绔欑偣
+ * @return
+ */
+ @Override
+ public R getSiteNos() {
+ List<Integer> list = Arrays.asList(TaskType.TASK_TYPE_MERGE_OUT.type,
+ TaskType.TASK_TYPE_OUT.type,
+ TaskType.TASK_TYPE_MERGE_OUT.type,
+ TaskType.TASK_TYPE_PICK_AGAIN_OUT.type);
+ List<DeviceSite> sites = deviceSiteService.list(new LambdaQueryWrapper<DeviceSite>().in(DeviceSite::getType, list).groupBy(DeviceSite::getSite));
+ return R.ok(sites);
+ }
+
private List<LocItem> getEfficiencyFirstItemList(AsnOrderItem asnOrderItem) {
LambdaQueryWrapper<LocItem> locItemQueryWrapper = new LambdaQueryWrapper<>();
--
Gitblit v1.9.1