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