From c7a83f2733acc4228fadb0b230b6f564703843f8 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期五, 18 四月 2025 16:19:54 +0800 Subject: [PATCH] 库位绑定物料 收货单导入功能优化 继续收货bug修复 --- rsf-admin/src/page/basicInfo/loc/BindModal.jsx | 97 ++++++++++++++++++++++---------- rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx | 1 rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx | 3 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java | 1 rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx | 17 ----- rsf-admin/src/page/basicInfo/loc/LocList.jsx | 3 - 6 files changed, 72 insertions(+), 50 deletions(-) diff --git a/rsf-admin/src/page/basicInfo/loc/BindModal.jsx b/rsf-admin/src/page/basicInfo/loc/BindModal.jsx index e0f7338..6213698 100644 --- a/rsf-admin/src/page/basicInfo/loc/BindModal.jsx +++ b/rsf-admin/src/page/basicInfo/loc/BindModal.jsx @@ -10,15 +10,22 @@ SelectInput, ReferenceInput, ReferenceArrayInput, + DatagridConfigurable, AutocompleteInput, Toolbar, required, useDataProvider, + TextField, + NumberField, + ReferenceField, + BooleanField, useNotify, + useSelectAll, Form, useCreateController, useListContext, useRefresh, + List, SelectArrayInput } from 'react-admin'; import { @@ -27,7 +34,6 @@ DialogContent, DialogTitle, Grid, - TextField, Box, Button, Paper, @@ -52,11 +58,23 @@ import { DataGrid } from '@mui/x-data-grid'; import StatusSelectInput from "../../components/StatusSelectInput"; import TreeSelectInput from "@/page/components/TreeSelectInput"; +import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_ITEM_PAGE_SIZE } from '@/config/setting'; + + +const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ + '& .css-1vooibu-MuiSvgIcon-root': { + height: '.9em' + }, + '& .RaDatagrid-row': { + cursor: 'auto' + }, + '& .column-name': { + }, +})); + const MatnrModal = ({ open, setOpen }) => { const refresh = useRefresh(); const translate = useTranslate(); - - const notify = useNotify(); const [formData, setFormData] = useState({ @@ -65,8 +83,7 @@ matnrId: null, }); - const { selectedIds, onUnselectItems } = useListContext(); - + const { selectedIds, onUnselectItems, onSelectAll } = useListContext(); const handleClose = (event, reason) => { if (reason !== "backdropClick") { setOpen(false); @@ -93,7 +110,7 @@ ...prevData, [name]: value })); - refresh() + refresh(); }; const removeEmptyKeys = (obj) => { @@ -113,31 +130,26 @@ groupId: formData.groupId, matnrId: formData.matnrId, } - const res = await request.post(`/locAreaMatRela/matnr/bind`, parmas); if (res?.data?.code === 200) { handleClose() - } else { notify(res.data.msg); } - - } const [groupId, setGroupId] = useState(); - const warehouseChange = (e) => { setGroupId(e.target.value) } return ( - <Dialog open={open} maxWidth="md" fullWidth> + <Dialog open={open} maxWidth="xl" fullWidth> <Form onSubmit={handleSubmit}> <DialogCloseButton onClose={handleClose} /> <DialogTitle>{translate('toolbar.bindmatnr')}</DialogTitle> <DialogContent sx={{ mt: 2 }}> - <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> + <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, height: 700 }}> <Grid container spacing={2}> <Grid item xs={4}> <ReferenceInput @@ -153,9 +165,7 @@ filterToQuery={(val) => ({ code: val })} /> </ReferenceInput> - </Grid> - <Grid item xs={4}> <TreeSelectInput label="table.field.locAreaMatRela.groupId" @@ -165,22 +175,49 @@ onChange={(e) => handleChange(e.target.value, 'groupId')} /> </Grid> - - - <Grid item xs={4}> - <ReferenceArrayInput source="matnrId" reference="matnr" filter={{ groupId: formData.groupId }}> - <SelectArrayInput - label="table.field.locAreaMatRela.matnrId" - // validate={required()} - value={formData.matnrId} - onChange={(e) => handleChange(e.target.value, 'matnrId')} - /> - </ReferenceArrayInput> - - </Grid> - </Grid> - + <Grid item xs={4}> + <List + resource="matnr" + filter={{ groupId: formData.groupId }} + empty={false} + actions={<></>} + > + <StyledDatagrid + preferenceKey='matnr' + bulkActionButtons={<></>} + onSelectAll={{limit: 1000}} + rowClick={(id, resource, record) => { }} + omit={['id', 'createTime', 'createBy', 'memo', 'poDetlId', 'matnrId', 'asnId']} + > + <NumberField key="id" source="id" />, + <TextField key="name" source="name" label="table.field.matnr.name" />, + <TextField key="code" source="code" label="table.field.matnr.code" />, + <ReferenceField key="groupId" source="groupId" label="table.field.matnr.groupId" reference="matnrGroup" link={false} sortable={false}> + <TextField source="name" /> + </ReferenceField>, + <TextField key="spec" source="spec" label="table.field.matnr.spec" />, + <TextField key="model" source="model" label="table.field.matnr.model" />, + <NumberField key="nromNum" source="nromNum" label="table.field.matnr.nromNum" />, + <TextField key="stockLeval$" source="stockLeval$" label="table.field.matnr.stockLevel" sortable={false} />, + <TextField key="flagLabelMange$" source="flagLabelMange$" label="table.field.matnr.isLabelMange" sortable={false} />, + <NumberField key="safeQty" source="safeQty" label="table.field.matnr.safeQty" />, + <NumberField key="minQty" source="minQty" label="table.field.matnr.minQty" />, + <NumberField key="maxQty" source="maxQty" label="table.field.matnr.maxQty" />, + <NumberField key="validWarn" source="validWarn" label="table.field.matnr.validWarn" />, + <BooleanField key="flagCheck" source="flagCheck" label="table.field.matnr.flagCheck" sortable={false} />, + <BooleanField key="statusBool" source="statusBool" label="common.field.status" sortable={false} />, + <TextField key="memo" source="memo" label="common.field.memo" sortable={false} />, + </StyledDatagrid> + </List> + {/* <ReferenceArrayInput source="matnrId" reference="matnr" filter={{ groupId: formData.groupId }}> + <SelectArrayInput + label="table.field.locAreaMatRela.matnrId" + value={formData.matnrId} + onChange={(e) => handleChange(e.target.value, 'matnrId')} + /> + </ReferenceArrayInput> */} + </Grid> </Box> </DialogContent> <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}> diff --git a/rsf-admin/src/page/basicInfo/loc/LocList.jsx b/rsf-admin/src/page/basicInfo/loc/LocList.jsx index a319484..3484d69 100644 --- a/rsf-admin/src/page/basicInfo/loc/LocList.jsx +++ b/rsf-admin/src/page/basicInfo/loc/LocList.jsx @@ -47,9 +47,7 @@ import BatchModal from './BatchModal'; import SubzoneModal from './SubzoneModal'; import PageDrawer from "../../components/PageDrawer"; -import MyField from "../../components/MyField"; import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; -import * as Common from '@/utils/common'; import DashboardIcon from '@mui/icons-material/Dashboard'; import EditIcon from '@mui/icons-material/Edit'; import request from '@/utils/request'; @@ -142,7 +140,6 @@ const translate = useTranslate(); const notify = useNotify(); const refresh = useRefresh(); - const [createDialog, setCreateDialog] = useState(false); const [drawerVal, setDrawerVal] = useState(false); const [initDialog, setInitDialog] = useState(false); diff --git a/rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx b/rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx index f1aae39..4e433ce 100644 --- a/rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx +++ b/rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx @@ -67,7 +67,7 @@ '& .RaDatagrid-row': { cursor: 'auto' }, - '& .RaList-content': { + '& .RaList-content': { width: '200px' }, '& .RaList-main': { @@ -139,7 +139,6 @@ <NumberInput source="valid" label="table.field.matnr.valid" />, <NumberInput source="validWarn" label="table.field.matnr.validWarn" />, <NumberInput source="flagCheck" label="table.field.matnr.flagCheck" />, - <TextInput label="common.field.memo" source="memo" />, <SelectInput label="common.field.status" @@ -156,10 +155,8 @@ const translate = useTranslate(); const notify = useNotify(); const { isLoading } = useListContext(); - const [columns, setColumns] = useState([]); const refresh = useRefresh(); - useEffect(() => { getDynamicFields(); }, []); @@ -213,17 +210,7 @@ <PrintButton /> </WrapperField> setColumns([...arr, ...fields, opt]); - - //filters娣诲姞杩囨护瀛楁 - 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} />) - }) + } else { notify(msg); } diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx index 4593642..134db3b 100644 --- a/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx +++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx @@ -124,7 +124,6 @@ <FilterButton /> <MyCreateButton onClick={() => { setCreateDialog(true) }} /> <SelectColumnsButton preferenceKey='asnOrderItem' /> - <ImportButton value={'asnOrderItem'} parmas={{ asnId: asnId }} /> {/* <MyExportButton /> */} </TopToolbar> )} diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx index a9c7a64..aca166f 100644 --- a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx +++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx @@ -55,7 +55,7 @@ import request from '@/utils/request'; import DictionarySelect from "../../components/DictionarySelect"; import ExitToAppIcon from '@mui/icons-material/ExitToApp'; - +import ImportButton from "../../components/ImportButton"; const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ '& .css-1vooibu-MuiSvgIcon-root': { @@ -137,6 +137,7 @@ <FilterButton /> <MyCreateButton onClick={() => { setCreateDialog(true); setmodalType(0) }} /> <SelectColumnsButton preferenceKey='asnOrder' /> + <ImportButton value={'asnOrderItem'} /> <MyExportButton /> </TopToolbar> )} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java index e2f1ef7..3836921 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java @@ -70,6 +70,7 @@ BeanUtils.copyProperties(itemLog, item); item.setId(itemLog.getAsnItemId()) .setAsnId(order.getId()) + .setMatnrId(Long.parseLong(itemLog.getMatnrId())) .setDeleted(0); orderItems.add(item); } -- Gitblit v1.9.1