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