From cb2339b2f1530132659c8c320cfdd91ee7f68c61 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 31 七月 2025 12:47:28 +0800
Subject: [PATCH] 调拔单功能优化 库位编辑更新不生效问题修复

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java   |    1 
 rsf-admin/src/page/orders/asnOrder/AsnWareModal.jsx                                             |   32 +++++++++-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java  |    1 
 rsf-admin/src/page/orders/transfer/ManualCreate.jsx                                             |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocItem.java                     |    2 
 rsf-admin/src/page/orders/transfer/CreateBySelectMats.jsx                                       |   71 +++++++++++++----------
 rsf-admin/src/config/setting.js                                                                 |    2 
 rsf-admin/src/page/orders/delivery/DeliveryEdit.jsx                                             |   37 +++++++++---
 9 files changed, 99 insertions(+), 51 deletions(-)

diff --git a/rsf-admin/src/config/setting.js b/rsf-admin/src/config/setting.js
index 5c0a609..41127a8 100644
--- a/rsf-admin/src/config/setting.js
+++ b/rsf-admin/src/config/setting.js
@@ -27,6 +27,8 @@
 
 export const DEFAULT_PAGE_SIZE = 25;
 
+export const DEFAULT_START_PAGE = 1;
+
 export const DEFAULT_ITEM_PAGE_SIZE = 10;
 
 export const PAGE_DRAWER_WIDTH = 400;
diff --git a/rsf-admin/src/page/orders/asnOrder/AsnWareModal.jsx b/rsf-admin/src/page/orders/asnOrder/AsnWareModal.jsx
index 7667817..cc7f9f6 100644
--- a/rsf-admin/src/page/orders/asnOrder/AsnWareModal.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/AsnWareModal.jsx
@@ -12,6 +12,7 @@
     Paper,
     styled
 } from '@mui/material';
+import { EDIT_MODE, DEFAULT_START_PAGE, DEFAULT_PAGE_SIZE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting';
 import DialogCloseButton from "../../components/DialogCloseButton";
 import { useTranslate, useNotify, useRefresh } from 'react-admin';
 import request from '@/utils/request';
@@ -28,7 +29,9 @@
             setOpen(false);
         }
     };
-
+    const [page, setPage] = useState({ page: DEFAULT_START_PAGE, pageSize: DEFAULT_PAGE_SIZE });
+    const [rowCount, setRowCount] = useState(0);
+    const [isLoading, setIsLoading] = useState(false);
     const [formData, setFormData] = useState({});
     const [tableData, setTableData] = useState([]);
     const [dyFields, setDyFields] = useState([]);
@@ -73,22 +76,26 @@
     };
 
     const getData = async () => {
+        setIsLoading(true)
         const res = await request.post(`/matnr/page`, {
             ...formData,
-            current: 1,
-            pageSize: 100,
+            current: page?.page,
+            pageSize: page?.pageSize,
             orderBy: "create_time desc"
         });
         if (res?.data?.code === 200) {
             setTableData(res.data.data.records);
+            console.log(res.data);
+            setRowCount(res.data?.data.total)
         } else {
             notify(res.data.msg);
         }
+        setIsLoading(false)
     };
 
     useEffect(() => {
         getData();
-    }, [open]);
+    }, [open, page]);
 
     const handleSearch = () => {
         getData()
@@ -156,6 +163,10 @@
                     <AsnWareModalTable
                         tableData={tableData}
                         setTableData={setTableData}
+                        page={page}
+                        rowCount={rowCount}
+                        setPage={setPage}
+                        isLoading={isLoading}
                         dyFields={dyFields}
                         setDyFields={setDyFields}
                         selectedRows={selectedRows}
@@ -175,7 +186,7 @@
 };
 
 export default AsnWareModal;
-const AsnWareModalTable = ({ tableData, setTableData, selectedRows, setSelectedRows, dyFields, setDyFields }) => {
+const AsnWareModalTable = ({ tableData, isLoading, page, setPage, rowCount, setTableData, selectedRows, setSelectedRows, dyFields, setDyFields }) => {
     const translate = useTranslate();
     const notify = useNotify();
     const [columns, setColumns] = useState([
@@ -236,6 +247,17 @@
                 disableColumnMenu={true}
                 disableColumnSorting
                 disableMultipleColumnsSorting
+                rowCount={rowCount}
+                paginationMode="server"
+                paginationModel={page}
+                onPaginationModelChange={setPage}
+                loading={isLoading}
+                slotProps={{
+                    loadingOverlay: {
+                        variant: 'linear-progress',
+                        noRowsVariant: 'linear-progress',
+                    },
+                }}
             />
         </div>
     );
diff --git a/rsf-admin/src/page/orders/delivery/DeliveryEdit.jsx b/rsf-admin/src/page/orders/delivery/DeliveryEdit.jsx
index 6113334..aeabe72 100644
--- a/rsf-admin/src/page/orders/delivery/DeliveryEdit.jsx
+++ b/rsf-admin/src/page/orders/delivery/DeliveryEdit.jsx
@@ -57,8 +57,22 @@
                 <SimpleForm
                     shouldUnregister
                     warnWhenUnsavedChanges
-                    toolbar={<FormToolbar />}
+                    toolbar={false}
                     mode="onTouched"
+                    sx={{
+                        "& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled": {
+                            bgcolor: 'white',
+                            WebkitTextFillColor: "rgba(0, 0, 0)"
+                        },
+
+                        "& .MuiInputBase-input.MuiFilledInput-input.Mui-disabled": {
+                            bgcolor: 'white',
+                            WebkitTextFillColor: "rgba(0, 0, 0)"
+                        },
+                        "& .MuiFilledInput-root.MuiInputBase-sizeSmall": {
+                            bgcolor: 'white',
+                        }
+                    }}
                     defaultValues={{}}
                 >
                     <Grid container width={{ xs: '100%', xl: '100%' }} rowSpacing={3} columnSpacing={3}>
@@ -71,7 +85,8 @@
                                     label="table.field.delivery.code"
                                     source="code"
                                     parse={v => v}
-                                    autoFocus
+                                    readOnly
+
                                 />
                                 <AutocompleteInput
                                     choices={dicts}
@@ -89,12 +104,15 @@
                                     source="wkType"
                                     optionValue="value"
                                     parse={v => v}
+                                    readOnly
                                 />
                                 <TextInput
                                     label="table.field.delivery.source"
                                     source="source"
                                     parse={v => v}
                                     validate={required()}
+                                    readOnly
+
                                 />
                             </Stack>
                             <Stack direction='row' gap={2}>
@@ -102,45 +120,44 @@
                                     label="table.field.delivery.anfme"
                                     source="anfme"
                                     validate={required()}
+                                    readOnly
                                 />
                                 <NumberInput
                                     label="table.field.delivery.qty"
                                     source="qty"
+                                    readOnly
                                 />
                                 <NumberInput
                                     label="table.field.delivery.workQty"
                                     source="workQty"
+                                    readOnly
                                 />
                                 <TextInput
                                     label="table.field.delivery.platId"
                                     source="platId"
                                     parse={v => v}
+                                    readOnly
                                 />
                                 <TextInput
                                     label="table.field.delivery.platCode"
                                     source="platCode"
                                     parse={v => v}
+                                    readOnly
                                 />
                             </Stack>
                             <Stack direction='row' gap={2}>
                                 <DateInput
                                     label="table.field.delivery.startTime"
                                     source="startTime"
+                                    readOnly
                                 />
                                 <DateInput
                                     label="table.field.delivery.endTime"
                                     source="endTime"
+                                    readOnly
                                 />
                             </Stack>
                         </Grid>
-                        {/* <Grid item xs={8} md={2}>
-                            <Typography variant="h6" gutterBottom>
-                                {translate('common.edit.title.common')}
-                            </Typography>
-                            <StatusSelectInput />
-                            <Box mt="2em" />
-                            <MemoInput />
-                        </Grid> */}
                     </Grid>
                 </SimpleForm>
             </Edit >
diff --git a/rsf-admin/src/page/orders/transfer/CreateBySelectMats.jsx b/rsf-admin/src/page/orders/transfer/CreateBySelectMats.jsx
index 69c2be1..c00ad64 100644
--- a/rsf-admin/src/page/orders/transfer/CreateBySelectMats.jsx
+++ b/rsf-admin/src/page/orders/transfer/CreateBySelectMats.jsx
@@ -23,8 +23,8 @@
     DeleteButton,
 } from 'react-admin';
 import { Stack, Grid, Box, Typography, Dialog, DialogTitle, DialogContent, TextField, Button, DialogActions } from '@mui/material';
+import { EDIT_MODE, DEFAULT_START_PAGE, DEFAULT_PAGE_SIZE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting';
 import DialogCloseButton from "../../components/DialogCloseButton.jsx";
-import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting';
 import StatusSelectInput from "../../components/StatusSelectInput";
 import CustomerTopToolBar from "../../components/EditTopToolBar";
 import TreeSelectInput from "@/page/components/TreeSelectInput";
@@ -38,8 +38,9 @@
 
 const CreateBySelectMats = (props) => {
     const { open, setOpen, data, setData } = props;
-    const [page, setPage] = useState(0);
+    const [page, setPage] = useState({ page: DEFAULT_START_PAGE, pageSize: DEFAULT_PAGE_SIZE });
     const [rowCount, setRowCount] = useState(0);
+    const [isLoading, setIsLoading] = useState(false);
     const [formData, setFormData] = useState({});
     const [tableData, setTableData] = useState([]);
     const [dyFields, setDyFields] = useState([]);
@@ -54,7 +55,6 @@
             setOpen(false);
         }
     };
-
 
     const handleChange = (e) => {
         const { name, value } = e.target;
@@ -91,26 +91,27 @@
             }
         }));
         setData([...data, ...value]);
-
-        console.log(data);
         setOpen(false);
         reset();
     };
 
     const getData = async () => {
+        setIsLoading(true)
         const res = await request.post(`/transfer/locs/items`, {
             ...formData,
-            current: page,
-            pageSize: pageSize,
+            current: page?.page,
+            pageSize: page?.pageSize,
             orderBy: "create_time desc"
         });
         if (res?.data?.code === 200) {
             const { data } = res.data;
             setTableData(data?.records);
             setRowCount(data?.total);
+
         } else {
             notify(res.data.msg);
         }
+        setIsLoading(false)
     };
 
     useEffect(() => {
@@ -176,6 +177,7 @@
                         rowCount={rowCount}
                         pageSize={pageSize}
                         setPage={setPage}
+                        isLoading={isLoading}
                         setPageSize={setPageSize}
                         dyFields={dyFields}
                         setDyFields={setDyFields}
@@ -198,7 +200,7 @@
 export default CreateBySelectMats;
 
 
-const SelectMatsTableView = ({ tableData, page, pageSize, setPage, setPageSize, rowCount, setTableData, selectedRows, setSelectedRows, dyFields, setDyFields }) => {
+const SelectMatsTableView = ({ tableData, page, isLoading, pageSize, setPage, setPageSize, rowCount, setTableData, selectedRows, setSelectedRows, dyFields, setDyFields }) => {
     const translate = useTranslate();
     const notify = useNotify();
     const [extendColumns, setExtendColumns] = useState([]);
@@ -215,14 +217,29 @@
         { field: 'wareArea', headerName: translate('table.field.locItem.wareArea'), width: 100, sortable: false },
     ])
 
+    const getData = async () => {
+        const res = await request.post(`/matnr/page`, {
+            // const res = await request.post(`/transfer/locs/items`, {
+            ...formData,
+            current: page,
+            pageSize: pageSize,
+            orderBy: "create_time desc"
+        });
+        if (res?.data?.code === 200) {
+            const { data } = res.data;
+            console.log('====-->');
+            console.log(data);
+            setTableData(data?.records);
+            setRowCount(data?.total);
+
+        } else {
+            notify(res.data.msg);
+        }
+    };
+
     const handleSelectionChange = (ids) => {
         setSelectedRows(ids)
     };
-
-    useEffect(() => {
-        console.log('------->');
-        console.log(page);
-    }, [page])
 
     useEffect(() => {
         if (extendColumns == undefined || extendColumns.length < 1) {
@@ -255,31 +272,21 @@
 
     return (
         <div style={{ height: 400, width: '100%' }}>
+
             <DataGrid
-                size="small"
                 rows={tableData}
-                page={page}
-                pageSize={pageSize}
-                columns={columns}
-                pagination
-                checkboxSelection
                 rowCount={rowCount}
-                onRowSelectionModelChange={handleSelectionChange}
-                onPageChange={(newPage) => setPage(newPage)}
-                onPageSizeChange={(newPageSize) => setPageSize(newPageSize)}
-                selectionModel={selectedRows}
+                columns={columns}
                 paginationMode="server"
-                disableColumnMenu={true}
-                initialState={{
-                    pagination: {
-                        paginationModel: {
-                            pageSize: 25,
-                        },
+                paginationModel={page}
+                onPaginationModelChange={setPage}
+                loading={isLoading}
+                slotProps={{
+                    loadingOverlay: {
+                        variant: 'linear-progress',
+                        noRowsVariant: 'linear-progress',
                     },
                 }}
-                pageSizeOptions={[15, 25, 50, 100]}
-                disableColumnSorting
-                disableMultipleColumnsSorting
             />
         </div>
     );
diff --git a/rsf-admin/src/page/orders/transfer/ManualCreate.jsx b/rsf-admin/src/page/orders/transfer/ManualCreate.jsx
index 3e6e6fa..b30ef5b 100644
--- a/rsf-admin/src/page/orders/transfer/ManualCreate.jsx
+++ b/rsf-admin/src/page/orders/transfer/ManualCreate.jsx
@@ -38,12 +38,12 @@
 import ConfirmationNumberIcon from '@mui/icons-material/ConfirmationNumber';
 import DialogCloseButton from "../../components/DialogCloseButton.jsx";
 import WarehouseSelect from "../../components/WarehouseSelect.jsx";
+import { useFormContext, useWatch } from "react-hook-form";
 import { DataGrid, useGridApiRef } from '@mui/x-data-grid';
 import ConfirmButton from "../../components/ConfirmButton";
 import CreateBySelectMats from "./CreateBySelectMats.jsx";
 import { Add, Edit, Delete } from '@mui/icons-material';
 import DictSelect from "../../components/DictSelect";
-import { useFormContext, useWatch } from "react-hook-form";
 import { minHeight, padding } from "@mui/system";
 import SaveIcon from '@mui/icons-material/Save';
 import request from '@/utils/request';
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocItem.java
index 4f26a50..5191964 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocItem.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocItem.java
@@ -241,7 +241,7 @@
 
     @ApiModelProperty("鍑虹珯鍙�")
     @TableField(exist = false)
-    private String siteNo;
+    private String site;
 
 
     /**
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java
index 6b434a1..e5a5103 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java
@@ -251,7 +251,7 @@
                 throw new CoolException("搴撳彛涓嶄负绌猴紒锛�");
             }
             locItems.forEach(locItem -> {
-                locItem.setSiteNo(deviceSite.getSite());
+                locItem.setSite(deviceSite.getSite());
             });
         }
         return R.ok().add(locItems);
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java
index 0720676..2fb5570 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java
@@ -348,6 +348,7 @@
     @Override
     public IPage<LocItem> getLocsItems(OrgLocParams params, Long loginUserId) {
         List<Loc> locs = locService.list(new LambdaQueryWrapper<Loc>()
+                .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_F.type)
                 .eq(!Objects.isNull(params.getOrgAreaId()), Loc::getAreaId, params.getOrgAreaId()));
 
         Page<LocItem> page = new Page<>(params.getCurrent(), params.getPageSize());
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
index e3a5f10..926ed70 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
@@ -142,7 +142,6 @@
                 }
             }
             items.add(pakinItem);
-
         }
 
         Double sum1 = items.stream().mapToDouble(WaitPakinItem::getAnfme).sum();

--
Gitblit v1.9.1