From 79edfec1f6e6789d3f6cc57db3cb0cfdffd64c32 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期二, 24 二月 2026 15:50:32 +0800
Subject: [PATCH] 库位拣料出库数量调整
---
rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx | 163 ++++++++++++++++++++++++------------------------------
1 files changed, 73 insertions(+), 90 deletions(-)
diff --git a/rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx b/rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx
index 9c9b9be..cbf48e8 100644
--- a/rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx
+++ b/rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx
@@ -43,18 +43,18 @@
Select,
MenuItem
} from '@mui/material';
+import { useForm, Controller, useWatch, FormProvider, useFormContext } from "react-hook-form";
import DialogCloseButton from "../../components/DialogCloseButton";
import StatusSelectInput from "../../components/StatusSelectInput";
-import ConfirmButton from "../../components/ConfirmButton";
-import MatnrInfoModal from "./MatnrInfoModal";
-import { useForm, Controller, useWatch, FormProvider, useFormContext } from "react-hook-form";
-import SaveIcon from '@mui/icons-material/Save';
-import request from '@/utils/request';
-import { Add, Edit, Delete } from '@mui/icons-material';
-import _, { set } from 'lodash';
-import { DataGrid, useGridApiRef } from '@mui/x-data-grid';
import DictionarySelect from "../../components/DictionarySelect";
+import { DataGrid, useGridApiRef } from '@mui/x-data-grid';
+import ConfirmButton from "../../components/ConfirmButton";
+import { Add, Edit, Delete } from '@mui/icons-material';
import DictSelect from "../../components/DictSelect";
+import SaveIcon from '@mui/icons-material/Save';
+import MatnrInfoModal from "./MatnrInfoModal";
+import request from '@/utils/request';
+import { formatQuantity, hasMoreThan6Decimals } from '@/utils/common';
import "./asnOrder.css";
const SelectMatnrModal = (props) => {
@@ -64,7 +64,6 @@
const notify = useNotify();
const refresh = useRefresh();
const [disabled, setDisabled] = useState(false)
-
const [createDialog, setCreateDialog] = useState(false);
const tableRef = useRef();
@@ -101,7 +100,6 @@
...prevData,
[name]: value
}));
- console.log(formData);
};
const resetData = () => {
@@ -125,41 +123,40 @@
}
const handleSubmit = async () => {
- setFinally()
- setDisabled(true)
-
- if (asnId === 0) {
- const parmas = {
- "orders": formData,
- "items": tabelData,
- }
-
- const res = await request.post(`/outStock/items/save`, parmas);
- if (res?.data?.code === 200) {
- setOpen(false);
- refresh();
- billReload?.current()
- resetData()
- } else {
- notify(res.data.msg);
- }
- } else {
- const parmas = {
- "orders": formData,
- "items": tabelData,
- }
- const res = await request.post(`/outStock/items/update`, parmas);
- if (res?.data?.code === 200) {
- setOpen(false);
- refresh();
- billReload?.current()
- resetData()
- } else {
- notify(res.data.msg);
- }
+ setFinally();
+ if (tabelData.some((item) => hasMoreThan6Decimals(item.anfme))) {
+ notify('鏈�澶�6浣嶅皬鏁�', { type: 'error' });
+ return;
}
- setDisabled(false)
-
+ setDisabled(true);
+ try {
+ if (asnId === 0) {
+ const parmas = { "orders": formData, "items": tabelData };
+ const res = await request.post(`/outStock/items/save`, parmas);
+ if (res?.data?.code === 200) {
+ setOpen(false);
+ refresh();
+ resetData();
+ } else {
+ notify(res?.data?.msg || '淇濆瓨澶辫触', { type: 'error' });
+ }
+ } else {
+ const parmas = { "orders": formData, "items": tabelData };
+ const res = await request.post(`/outStock/items/update`, parmas);
+ if (res?.data?.code === 200) {
+ setOpen(false);
+ refresh();
+ resetData();
+ } else {
+ notify(res?.data?.msg || '淇濆瓨澶辫触', { type: 'error' });
+ }
+ }
+ } catch (error) {
+ const msg = error?.response?.data?.msg || error?.message || '淇濆瓨澶辫触锛岃閲嶈瘯';
+ notify(msg, { type: 'error' });
+ } finally {
+ setDisabled(false);
+ }
};
@@ -183,7 +180,7 @@
}
const requestGetBody = async () => {
- const res = await request.post(`/outStockItem/page`, { asnId });
+ const res = await request.post(`/outStockItem/page`, { orderId: asnId });
if (res?.data?.code === 200) {
setTableData(res.data.data.records)
} else {
@@ -193,9 +190,12 @@
const [selectedRows, setSelectedRows] = useState([]);
+ const getRowId = (row) => (row.id != null ? row.id : row._rowKey) ?? row.matnrId;
+
const handleDeleteItem = () => {
- const newTableData = _.filter(tabelData, (item) => !selectedRows.includes(item.matnrId));
+ const newTableData = tabelData.filter((item) => !selectedRows.includes(getRowId(item)));
setTableData(newTableData);
+ setSelectedRows([]);
}
return (
@@ -238,6 +238,7 @@
label={translate("table.field.outStock.wkType")}
value={formData.wkType}
variant="filled"
+ group='2'
onChange={(e) => handleChange(e.target.value, 'wkType')}
dictTypeCode="sys_business_type"
required
@@ -283,7 +284,7 @@
</Stack>
</Box>
<Box sx={{ mt: 2 }}>
- <AsnOrderModalTable tabelData={tabelData} setTableData={setTableData} asnId={asnId} selectedRows={selectedRows} setSelectedRows={setSelectedRows} tableRef={tableRef}></AsnOrderModalTable>
+ <AsnOrderModalTable tabelData={tabelData} setTableData={setTableData} asnId={asnId} selectedRows={selectedRows} setSelectedRows={setSelectedRows} tableRef={tableRef} getRowId={getRowId}></AsnOrderModalTable>
</Box>
</DialogContent>
<DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}>
@@ -320,7 +321,6 @@
} = await request.post("companys/page", parmas);
if (code === 200) {
setFormData(data.records)
- console.log(data.records)
} else {
notify(msg);
}
@@ -374,7 +374,6 @@
} = await request.post("companys/page", parmas);
if (code === 200) {
setFormData(data.records)
- console.log(data.records)
} else {
notify(msg);
}
@@ -417,7 +416,7 @@
-const AsnOrderModalTable = ({ tabelData, setTableData, asnId, selectedRows, setSelectedRows, tableRef }) => {
+const AsnOrderModalTable = ({ tabelData, setTableData, asnId, selectedRows, setSelectedRows, tableRef, getRowId: getRowIdProp }) => {
const translate = useTranslate();
const notify = useNotify();
@@ -441,7 +440,7 @@
minWidth: 100,
flex: 1,
editable: true,
- valueFormatter: (val) => val < 0 ? 0 : val,
+ valueFormatter: (val) => formatQuantity(val != null && val >= 0 ? val : 0),
headerClassName: "custom",
},
{
@@ -466,48 +465,26 @@
),
headerClassName: "custom",
},
- // {
- // field: 'packName',
- // headerName: translate('table.field.asnOrderItem.packName'),
- // minWidth: 100,
- // flex: 1,
- // editable: true,
- // },
- // {
- // field: 'poDetlId',
- // headerName: translate('table.field.asnOrderItem.poDetlId'),
- // minWidth: 100,
- // flex: 1,
- // },
{
- field: 'poCode',
- headerName: translate('table.field.outStockItem.poDetlCode') + "*",
+ field: 'splrBatch',
+ headerName: translate('table.field.outStockItem.splrBatch'),
minWidth: 100,
flex: 1,
editable: true,
- headerClassName: "custom",
},
-
+ {
+ field: 'poCode',
+ headerName: translate('table.field.outStockItem.poDetlCode'),
+ minWidth: 100,
+ flex: 1,
+ editable: true,
+ },
{
field: 'stockUnit',
headerName: translate('table.field.outStockItem.stockUnit'),
minWidth: 100,
flex: 1,
- editable: false,
- },
- // {
- // field: 'purQty',
- // headerName: translate('table.field.asnOrderItem.purQty'),
- // minWidth: 100,
- // flex: 1,
- // editable: true,
- // },
- {
- field: 'purUnit',
- headerName: translate('table.field.outStockItem.purUnit'),
- minWidth: 100,
- flex: 1,
- editable: false,
+ editable: true,
},
])
@@ -547,7 +524,10 @@
headerName: el.fieldsAlise,
minWidth: 100,
flex: 1,
- editable: false
+ editable: el.unique,
+ valueGetter: (value, row) => {
+ return row.extendFields?.[el.fields] || '';
+ },
}))
setColumns([...columns, ...cols, action])
} else {
@@ -556,17 +536,20 @@
}
+ const getRowId = getRowIdProp || ((row) => (row.id != null ? row.id : row._rowKey) ?? row.matnrId);
+
const handleDelete = (row) => {
- const newData = _.filter(cdata.current, (item) => item.matnrId !== row.matnrId);
+ const rowId = getRowId(row);
+ const newData = cdata.current.filter((item) => getRowId(item) !== rowId);
setTableData(newData);
};
const processRowUpdate = (newRow, oldRow) => {
const rows = tabelData.map((r) =>
- r.matnrId === newRow.matnrId ? { ...newRow } : r
- )
- setTableData(rows)
+ getRowId(r) === getRowId(oldRow) ? { ...newRow } : r
+ );
+ setTableData(rows);
return newRow;
};
@@ -583,7 +566,7 @@
rows={tabelData}
columns={columns}
disableRowSelectionOnClick
- getRowId={(row) => row.matnrId ? row.matnrId : row.id}
+ getRowId={(row) => getRowId(row)}
disableColumnFilter
disableColumnSelector
disableColumnSorting
@@ -596,7 +579,7 @@
},
},
}}
- pageSizeOptions={[10, 25, 50, 100]}
+ pageSizeOptions={[15, 25, 50, 100]}
editMode="row"
checkboxSelection
onRowSelectionModelChange={handleSelectionChange}
--
Gitblit v1.9.1