skyouc
2025-04-18 c7a83f2733acc4228fadb0b230b6f564703843f8
库位绑定物料
收货单导入功能优化
继续收货bug修复
6个文件已修改
106 ■■■■■ 已修改文件
rsf-admin/src/page/basicInfo/loc/BindModal.jsx 85 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/basicInfo/loc/LocList.jsx 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
                            <Grid item xs={4}>
                                <ReferenceArrayInput source="matnrId" reference="matnr" filter={{ groupId: formData.groupId }}>
                            <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"
                                        // validate={required()}
                                        value={formData.matnrId}
                                        onChange={(e) => handleChange(e.target.value, 'matnrId')}
                                    />
                                </ReferenceArrayInput>
                            </ReferenceArrayInput> */}
                            </Grid>
                        </Grid>
                    </Box>
                </DialogContent>
                <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}>
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);
rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx
@@ -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();
    }, []);
@@ -214,16 +211,6 @@
                </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);
            }
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>
          )}
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>
        )}
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);
            }