From 01bdd3d234335a61c849fc53d28eabff29949f33 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期五, 08 八月 2025 10:40:05 +0800 Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop --- rsf-admin/src/page/stockManage/locRevise/ReviseLogList.jsx | 4 - /dev/null | 18 ------ rsf-admin/src/page/stockManage/locRevise/LocsReviseDetl.jsx | 98 ++++++++++++++------------------ rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryServiceImpl.java | 5 + rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx | 6 +- rsf-admin/src/page/stockManage/locRevise/LocReviseEdit.jsx | 22 ++++++- rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java | 19 ++--- 7 files changed, 77 insertions(+), 95 deletions(-) diff --git a/rsf-admin/src/page/reviseLog/ReviseLogCreate.jsx b/rsf-admin/src/page/reviseLog/ReviseLogCreate.jsx deleted file mode 100644 index a57bcd5..0000000 --- a/rsf-admin/src/page/reviseLog/ReviseLogCreate.jsx +++ /dev/null @@ -1,180 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { - CreateBase, - useTranslate, - TextInput, - NumberInput, - BooleanInput, - DateInput, - SaveButton, - SelectInput, - ReferenceInput, - ReferenceArrayInput, - AutocompleteInput, - Toolbar, - required, - useDataProvider, - useNotify, - Form, - useCreateController, -} from 'react-admin'; -import { - Dialog, - DialogActions, - DialogContent, - DialogTitle, - Stack, - Grid, - Box, -} from '@mui/material'; -import DialogCloseButton from "../components/DialogCloseButton"; -import StatusSelectInput from "../components/StatusSelectInput"; -import MemoInput from "../components/MemoInput"; - -const ReviseLogCreate = (props) => { - const { open, setOpen } = props; - - const translate = useTranslate(); - const notify = useNotify(); - - const handleClose = (event, reason) => { - if (reason !== "backdropClick") { - setOpen(false); - } - }; - - const handleSuccess = async (data) => { - setOpen(false); - notify('common.response.success'); - }; - - const handleError = async (error) => { - notify(error.message || 'common.response.fail', { type: 'error', messageArgs: { _: error.message } }); - }; - - return ( - <> - <CreateBase - record={{}} - transform={(data) => { - return data; - }} - mutationOptions={{ onSuccess: handleSuccess, onError: handleError }} - > - <Dialog - open={open} - onClose={handleClose} - aria-labelledby="form-dialog-title" - fullWidth - disableRestoreFocus - maxWidth="md" // 'xs' | 'sm' | 'md' | 'lg' | 'xl' - > - <Form> - <DialogTitle id="form-dialog-title" sx={{ - position: 'sticky', - top: 0, - backgroundColor: 'background.paper', - zIndex: 1000 - }} - > - {translate('create.title')} - <Box sx={{ position: 'absolute', top: 8, right: 8, zIndex: 1001 }}> - <DialogCloseButton onClose={handleClose} /> - </Box> - </DialogTitle> - <DialogContent sx={{ mt: 2 }}> - <Grid container rowSpacing={2} columnSpacing={2}> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLog.reviseId" - source="reviseId" - autoFocus - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLog.reviseCode" - source="reviseCode" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLog.warehouseId" - source="warehouseId" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLog.areaId" - source="areaId" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLog.type" - source="type" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLog.barcode" - source="barcode" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLog.useStatus" - source="useStatus" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLog.channel" - source="channel" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLog.row" - source="row" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLog.col" - source="col" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLog.lev" - source="lev" - /> - </Grid> - - <Grid item xs={6} display="flex" gap={1}> - <StatusSelectInput /> - </Grid> - <Grid item xs={12} display="flex" gap={1}> - <Stack direction="column" spacing={1} width={'100%'}> - <MemoInput /> - </Stack> - </Grid> - </Grid> - </DialogContent> - <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}> - <Toolbar sx={{ width: '100%', justifyContent: 'space-between' }} > - <SaveButton /> - </Toolbar> - </DialogActions> - </Form> - </Dialog> - </CreateBase> - </> - ) -} - -export default ReviseLogCreate; diff --git a/rsf-admin/src/page/reviseLog/ReviseLogEdit.jsx b/rsf-admin/src/page/reviseLog/ReviseLogEdit.jsx deleted file mode 100644 index da79ab8..0000000 --- a/rsf-admin/src/page/reviseLog/ReviseLogEdit.jsx +++ /dev/null @@ -1,152 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { - Edit, - SimpleForm, - FormDataConsumer, - useTranslate, - TextInput, - NumberInput, - BooleanInput, - DateInput, - SelectInput, - ReferenceInput, - ReferenceArrayInput, - AutocompleteInput, - SaveButton, - Toolbar, - Labeled, - NumberField, - required, - useRecordContext, - DeleteButton, -} from 'react-admin'; -import { useWatch, useFormContext } from "react-hook-form"; -import { Stack, Grid, Box, Typography } from '@mui/material'; -import * as Common from '@/utils/common'; -import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; -import EditBaseAside from "../components/EditBaseAside"; -import CustomerTopToolBar from "../components/EditTopToolBar"; -import MemoInput from "../components/MemoInput"; -import StatusSelectInput from "../components/StatusSelectInput"; - -const FormToolbar = () => { - const { getValues } = useFormContext(); - - return ( - <Toolbar sx={{ justifyContent: 'space-between' }}> - <SaveButton /> - <DeleteButton mutationMode="optimistic" /> - </Toolbar> - ) -} - -const ReviseLogEdit = () => { - const translate = useTranslate(); - - return ( - <Edit - redirect="list" - mutationMode={EDIT_MODE} - actions={<CustomerTopToolBar />} - aside={<EditBaseAside />} - > - <SimpleForm - shouldUnregister - warnWhenUnsavedChanges - toolbar={<FormToolbar />} - mode="onTouched" - defaultValues={{}} - // validate={(values) => { }} - > - <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}> - <Grid item xs={12} md={8}> - <Typography variant="h6" gutterBottom> - {translate('common.edit.title.main')} - </Typography> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.reviseId" - source="reviseId" - autoFocus - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLog.reviseCode" - source="reviseCode" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.warehouseId" - source="warehouseId" - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.areaId" - source="areaId" - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.type" - source="type" - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLog.barcode" - source="barcode" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLog.useStatus" - source="useStatus" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.channel" - source="channel" - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.row" - source="row" - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.col" - source="col" - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.lev" - source="lev" - /> - </Stack> - - </Grid> - <Grid item xs={12} md={4}> - <Typography variant="h6" gutterBottom> - {translate('common.edit.title.common')} - </Typography> - <StatusSelectInput /> - <Box mt="2em" /> - <MemoInput /> - </Grid> - </Grid> - </SimpleForm> - </Edit > - ) -} - -export default ReviseLogEdit; diff --git a/rsf-admin/src/page/reviseLog/ReviseLogList.jsx b/rsf-admin/src/page/reviseLog/ReviseLogList.jsx deleted file mode 100644 index 0aa55a4..0000000 --- a/rsf-admin/src/page/reviseLog/ReviseLogList.jsx +++ /dev/null @@ -1,172 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; -import { useNavigate } from 'react-router-dom'; -import { - List, - DatagridConfigurable, - SearchInput, - TopToolbar, - SelectColumnsButton, - EditButton, - FilterButton, - CreateButton, - ExportButton, - BulkDeleteButton, - WrapperField, - useRecordContext, - useTranslate, - useNotify, - useListContext, - FunctionField, - TextField, - NumberField, - DateField, - BooleanField, - ReferenceField, - TextInput, - DateTimeInput, - DateInput, - SelectInput, - NumberInput, - ReferenceInput, - ReferenceArrayInput, - AutocompleteInput, - DeleteButton, -} from 'react-admin'; -import { Box, Typography, Card, Stack } from '@mui/material'; -import { styled } from '@mui/material/styles'; -import ReviseLogCreate from "./ReviseLogCreate"; -import ReviseLogPanel from "./ReviseLogPanel"; -import EmptyData from "../components/EmptyData"; -import MyCreateButton from "../components/MyCreateButton"; -import MyExportButton from '../components/MyExportButton'; -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'; - -const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ - '& .css-1vooibu-MuiSvgIcon-root': { - height: '.9em' - }, - '& .RaDatagrid-row': { - cursor: 'auto' - }, - '& .column-name': { - }, - '& .opt': { - width: 200 - }, -})); - -const filters = [ - <SearchInput source="condition" alwaysOn />, - <DateInput label='common.time.after' source="timeStart" alwaysOn />, - <DateInput label='common.time.before' source="timeEnd" alwaysOn />, - - <NumberInput source="reviseId" label="table.field.reviseLog.reviseId" />, - <TextInput source="reviseCode" label="table.field.reviseLog.reviseCode" />, - <NumberInput source="warehouseId" label="table.field.reviseLog.warehouseId" />, - <NumberInput source="areaId" label="table.field.reviseLog.areaId" />, - <NumberInput source="type" label="table.field.reviseLog.type" />, - <TextInput source="barcode" label="table.field.reviseLog.barcode" />, - <TextInput source="useStatus" label="table.field.reviseLog.useStatus" />, - <NumberInput source="channel" label="table.field.reviseLog.channel" />, - <NumberInput source="row" label="table.field.reviseLog.row" />, - <NumberInput source="col" label="table.field.reviseLog.col" />, - <NumberInput source="lev" label="table.field.reviseLog.lev" />, - - <TextInput label="common.field.memo" source="memo" />, - <SelectInput - label="common.field.status" - source="status" - choices={[ - { id: '1', name: 'common.enums.statusTrue' }, - { id: '0', name: 'common.enums.statusFalse' }, - ]} - resettable - />, -] - -const ReviseLogList = () => { - const translate = useTranslate(); - - const [createDialog, setCreateDialog] = useState(false); - const [drawerVal, setDrawerVal] = useState(false); - - return ( - <Box display="flex"> - <List - sx={{ - flexGrow: 1, - transition: (theme) => - theme.transitions.create(['all'], { - duration: theme.transitions.duration.enteringScreen, - }), - marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, - }} - title={"menu.reviseLog"} - empty={<EmptyData onClick={() => { setCreateDialog(true) }} />} - filters={filters} - sort={{ field: "create_time", order: "desc" }} - actions={( - <TopToolbar> - <FilterButton /> - <MyCreateButton onClick={() => { setCreateDialog(true) }} /> - <SelectColumnsButton preferenceKey='reviseLog' /> - <MyExportButton /> - </TopToolbar> - )} - perPage={DEFAULT_PAGE_SIZE} - > - <StyledDatagrid - preferenceKey='reviseLog' - bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} - rowClick={(id, resource, record) => false} - expand={() => <ReviseLogPanel />} - expandSingle={true} - omit={['id', 'createTime', 'createBy', 'memo']} - > - <NumberField source="id" /> - <NumberField source="reviseId" label="table.field.reviseLog.reviseId" /> - <TextField source="reviseCode" label="table.field.reviseLog.reviseCode" /> - <NumberField source="warehouseId" label="table.field.reviseLog.warehouseId" /> - <NumberField source="areaId" label="table.field.reviseLog.areaId" /> - <NumberField source="type" label="table.field.reviseLog.type" /> - <TextField source="barcode" label="table.field.reviseLog.barcode" /> - <TextField source="useStatus" label="table.field.reviseLog.useStatus" /> - <NumberField source="channel" label="table.field.reviseLog.channel" /> - <NumberField source="row" label="table.field.reviseLog.row" /> - <NumberField source="col" label="table.field.reviseLog.col" /> - <NumberField source="lev" label="table.field.reviseLog.lev" /> - - <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}> - <TextField source="nickname" /> - </ReferenceField> - <DateField source="updateTime" label="common.field.updateTime" showTime /> - <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}> - <TextField source="nickname" /> - </ReferenceField> - <DateField source="createTime" label="common.field.createTime" showTime /> - <BooleanField source="statusBool" label="common.field.status" sortable={false} /> - <TextField source="memo" label="common.field.memo" sortable={false} /> - <WrapperField cellClassName="opt" label="common.field.opt"> - <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} /> - <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> - </WrapperField> - </StyledDatagrid> - </List> - <ReviseLogCreate - open={createDialog} - setOpen={setCreateDialog} - /> - <PageDrawer - title='ReviseLog Detail' - drawerVal={drawerVal} - setDrawerVal={setDrawerVal} - > - </PageDrawer> - </Box> - ) -} - -export default ReviseLogList; diff --git a/rsf-admin/src/page/reviseLog/ReviseLogPanel.jsx b/rsf-admin/src/page/reviseLog/ReviseLogPanel.jsx deleted file mode 100644 index 2f44c42..0000000 --- a/rsf-admin/src/page/reviseLog/ReviseLogPanel.jsx +++ /dev/null @@ -1,117 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { Box, Card, CardContent, Grid, Typography, Tooltip } from '@mui/material'; -import { - useTranslate, - useRecordContext, -} from 'react-admin'; -import PanelTypography from "../components/PanelTypography"; -import * as Common from '@/utils/common' - -const ReviseLogPanel = () => { - const record = useRecordContext(); - if (!record) return null; - const translate = useTranslate(); - return ( - <> - <Card sx={{ width: { xs: 300, sm: 500, md: 600, lg: 800 }, margin: 'auto' }}> - <CardContent> - <Grid container spacing={2}> - <Grid item xs={12} sx={{ display: 'flex', justifyContent: 'space-between' }}> - <Typography variant="h6" gutterBottom align="left" sx={{ - maxWidth: { xs: '100px', sm: '180px', md: '260px', lg: '360px' }, - whiteSpace: 'nowrap', - overflow: 'hidden', - textOverflow: 'ellipsis', - }}> - {Common.camelToPascalWithSpaces(translate('table.field.reviseLog.id'))}: {record.id} - </Typography> - {/* inherit, primary, secondary, textPrimary, textSecondary, error */} - <Typography variant="h6" gutterBottom align="right" > - ID: {record.id} - </Typography> - </Grid> - </Grid> - <Grid container spacing={2}> - <Grid item xs={12} container alignContent="flex-end"> - <Typography variant="caption" color="textSecondary" sx={{ wordWrap: 'break-word', wordBreak: 'break-all' }}> - {Common.camelToPascalWithSpaces(translate('common.field.memo'))}:{record.memo} - </Typography> - </Grid> - </Grid> - <Box height={20}> </Box> - <Grid container spacing={2}> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.reviseId" - property={record.reviseId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.reviseCode" - property={record.reviseCode} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.warehouseId" - property={record.warehouseId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.areaId" - property={record.areaId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.type" - property={record.type} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.barcode" - property={record.barcode} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.useStatus" - property={record.useStatus} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.channel" - property={record.channel} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.row" - property={record.row} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.col" - property={record.col} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.lev" - property={record.lev} - /> - </Grid> - - </Grid> - </CardContent> - </Card > - </> - ); -}; - -export default ReviseLogPanel; diff --git a/rsf-admin/src/page/reviseLog/index.jsx b/rsf-admin/src/page/reviseLog/index.jsx deleted file mode 100644 index fdfbaf8..0000000 --- a/rsf-admin/src/page/reviseLog/index.jsx +++ /dev/null @@ -1,18 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { - ListGuesser, - EditGuesser, - ShowGuesser, -} from "react-admin"; - -import ReviseLogList from "./ReviseLogList"; -import ReviseLogEdit from "./ReviseLogEdit"; - -export default { - list: ReviseLogList, - edit: ReviseLogEdit, - show: ShowGuesser, - recordRepresentation: (record) => { - return `${record.id}` - } -}; diff --git a/rsf-admin/src/page/reviseLogItem/ReviseLogItemCreate.jsx b/rsf-admin/src/page/reviseLogItem/ReviseLogItemCreate.jsx deleted file mode 100644 index 7a446f5..0000000 --- a/rsf-admin/src/page/reviseLogItem/ReviseLogItemCreate.jsx +++ /dev/null @@ -1,197 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { - CreateBase, - useTranslate, - TextInput, - NumberInput, - BooleanInput, - DateInput, - SaveButton, - SelectInput, - ReferenceInput, - ReferenceArrayInput, - AutocompleteInput, - Toolbar, - required, - useDataProvider, - useNotify, - Form, - useCreateController, -} from 'react-admin'; -import { - Dialog, - DialogActions, - DialogContent, - DialogTitle, - Stack, - Grid, - Box, -} from '@mui/material'; -import DialogCloseButton from "../components/DialogCloseButton"; -import StatusSelectInput from "../components/StatusSelectInput"; -import MemoInput from "../components/MemoInput"; - -const ReviseLogItemCreate = (props) => { - const { open, setOpen } = props; - - const translate = useTranslate(); - const notify = useNotify(); - - const handleClose = (event, reason) => { - if (reason !== "backdropClick") { - setOpen(false); - } - }; - - const handleSuccess = async (data) => { - setOpen(false); - notify('common.response.success'); - }; - - const handleError = async (error) => { - notify(error.message || 'common.response.fail', { type: 'error', messageArgs: { _: error.message } }); - }; - - return ( - <> - <CreateBase - record={{}} - transform={(data) => { - return data; - }} - mutationOptions={{ onSuccess: handleSuccess, onError: handleError }} - > - <Dialog - open={open} - onClose={handleClose} - aria-labelledby="form-dialog-title" - fullWidth - disableRestoreFocus - maxWidth="md" // 'xs' | 'sm' | 'md' | 'lg' | 'xl' - > - <Form> - <DialogTitle id="form-dialog-title" sx={{ - position: 'sticky', - top: 0, - backgroundColor: 'background.paper', - zIndex: 1000 - }} - > - {translate('create.title')} - <Box sx={{ position: 'absolute', top: 8, right: 8, zIndex: 1001 }}> - <DialogCloseButton onClose={handleClose} /> - </Box> - </DialogTitle> - <DialogContent sx={{ mt: 2 }}> - <Grid container rowSpacing={2} columnSpacing={2}> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLogItem.reviseLogId" - source="reviseLogId" - autoFocus - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLogItem.locId" - source="locId" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.locCode" - source="locCode" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLogItem.matnrId" - source="matnrId" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.maktx" - source="maktx" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.matnrCode" - source="matnrCode" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.unit" - source="unit" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLogItem.anfme" - source="anfme" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLogItem.reviseQty" - source="reviseQty" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.batch" - source="batch" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.spec" - source="spec" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.model" - source="model" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.fieldsIndex" - source="fieldsIndex" - parse={v => v} - /> - </Grid> - - <Grid item xs={6} display="flex" gap={1}> - <StatusSelectInput /> - </Grid> - <Grid item xs={12} display="flex" gap={1}> - <Stack direction="column" spacing={1} width={'100%'}> - <MemoInput /> - </Stack> - </Grid> - </Grid> - </DialogContent> - <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}> - <Toolbar sx={{ width: '100%', justifyContent: 'space-between' }} > - <SaveButton /> - </Toolbar> - </DialogActions> - </Form> - </Dialog> - </CreateBase> - </> - ) -} - -export default ReviseLogItemCreate; diff --git a/rsf-admin/src/page/reviseLogItem/ReviseLogItemEdit.jsx b/rsf-admin/src/page/reviseLogItem/ReviseLogItemEdit.jsx deleted file mode 100644 index 9fdcba3..0000000 --- a/rsf-admin/src/page/reviseLogItem/ReviseLogItemEdit.jsx +++ /dev/null @@ -1,169 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { - Edit, - SimpleForm, - FormDataConsumer, - useTranslate, - TextInput, - NumberInput, - BooleanInput, - DateInput, - SelectInput, - ReferenceInput, - ReferenceArrayInput, - AutocompleteInput, - SaveButton, - Toolbar, - Labeled, - NumberField, - required, - useRecordContext, - DeleteButton, -} from 'react-admin'; -import { useWatch, useFormContext } from "react-hook-form"; -import { Stack, Grid, Box, Typography } from '@mui/material'; -import * as Common from '@/utils/common'; -import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; -import EditBaseAside from "../components/EditBaseAside"; -import CustomerTopToolBar from "../components/EditTopToolBar"; -import MemoInput from "../components/MemoInput"; -import StatusSelectInput from "../components/StatusSelectInput"; - -const FormToolbar = () => { - const { getValues } = useFormContext(); - - return ( - <Toolbar sx={{ justifyContent: 'space-between' }}> - <SaveButton /> - <DeleteButton mutationMode="optimistic" /> - </Toolbar> - ) -} - -const ReviseLogItemEdit = () => { - const translate = useTranslate(); - - return ( - <Edit - redirect="list" - mutationMode={EDIT_MODE} - actions={<CustomerTopToolBar />} - aside={<EditBaseAside />} - > - <SimpleForm - shouldUnregister - warnWhenUnsavedChanges - toolbar={<FormToolbar />} - mode="onTouched" - defaultValues={{}} - // validate={(values) => { }} - > - <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}> - <Grid item xs={12} md={8}> - <Typography variant="h6" gutterBottom> - {translate('common.edit.title.main')} - </Typography> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLogItem.reviseLogId" - source="reviseLogId" - autoFocus - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLogItem.locId" - source="locId" - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.locCode" - source="locCode" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLogItem.matnrId" - source="matnrId" - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.maktx" - source="maktx" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.matnrCode" - source="matnrCode" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.unit" - source="unit" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLogItem.anfme" - source="anfme" - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLogItem.reviseQty" - source="reviseQty" - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.batch" - source="batch" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.spec" - source="spec" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.model" - source="model" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.fieldsIndex" - source="fieldsIndex" - parse={v => v} - /> - </Stack> - - </Grid> - <Grid item xs={12} md={4}> - <Typography variant="h6" gutterBottom> - {translate('common.edit.title.common')} - </Typography> - <StatusSelectInput /> - <Box mt="2em" /> - <MemoInput /> - </Grid> - </Grid> - </SimpleForm> - </Edit > - ) -} - -export default ReviseLogItemEdit; diff --git a/rsf-admin/src/page/reviseLogItem/ReviseLogItemList.jsx b/rsf-admin/src/page/reviseLogItem/ReviseLogItemList.jsx deleted file mode 100644 index 1870352..0000000 --- a/rsf-admin/src/page/reviseLogItem/ReviseLogItemList.jsx +++ /dev/null @@ -1,176 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; -import { useNavigate } from 'react-router-dom'; -import { - List, - DatagridConfigurable, - SearchInput, - TopToolbar, - SelectColumnsButton, - EditButton, - FilterButton, - CreateButton, - ExportButton, - BulkDeleteButton, - WrapperField, - useRecordContext, - useTranslate, - useNotify, - useListContext, - FunctionField, - TextField, - NumberField, - DateField, - BooleanField, - ReferenceField, - TextInput, - DateTimeInput, - DateInput, - SelectInput, - NumberInput, - ReferenceInput, - ReferenceArrayInput, - AutocompleteInput, - DeleteButton, -} from 'react-admin'; -import { Box, Typography, Card, Stack } from '@mui/material'; -import { styled } from '@mui/material/styles'; -import ReviseLogItemCreate from "./ReviseLogItemCreate"; -import ReviseLogItemPanel from "./ReviseLogItemPanel"; -import EmptyData from "../components/EmptyData"; -import MyCreateButton from "../components/MyCreateButton"; -import MyExportButton from '../components/MyExportButton'; -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'; - -const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ - '& .css-1vooibu-MuiSvgIcon-root': { - height: '.9em' - }, - '& .RaDatagrid-row': { - cursor: 'auto' - }, - '& .column-name': { - }, - '& .opt': { - width: 200 - }, -})); - -const filters = [ - <SearchInput source="condition" alwaysOn />, - <DateInput label='common.time.after' source="timeStart" alwaysOn />, - <DateInput label='common.time.before' source="timeEnd" alwaysOn />, - - <NumberInput source="reviseLogId" label="table.field.reviseLogItem.reviseLogId" />, - <NumberInput source="locId" label="table.field.reviseLogItem.locId" />, - <TextInput source="locCode" label="table.field.reviseLogItem.locCode" />, - <NumberInput source="matnrId" label="table.field.reviseLogItem.matnrId" />, - <TextInput source="maktx" label="table.field.reviseLogItem.maktx" />, - <TextInput source="matnrCode" label="table.field.reviseLogItem.matnrCode" />, - <TextInput source="unit" label="table.field.reviseLogItem.unit" />, - <NumberInput source="anfme" label="table.field.reviseLogItem.anfme" />, - <NumberInput source="reviseQty" label="table.field.reviseLogItem.reviseQty" />, - <TextInput source="batch" label="table.field.reviseLogItem.batch" />, - <TextInput source="spec" label="table.field.reviseLogItem.spec" />, - <TextInput source="model" label="table.field.reviseLogItem.model" />, - <TextInput source="fieldsIndex" label="table.field.reviseLogItem.fieldsIndex" />, - - <TextInput label="common.field.memo" source="memo" />, - <SelectInput - label="common.field.status" - source="status" - choices={[ - { id: '1', name: 'common.enums.statusTrue' }, - { id: '0', name: 'common.enums.statusFalse' }, - ]} - resettable - />, -] - -const ReviseLogItemList = () => { - const translate = useTranslate(); - - const [createDialog, setCreateDialog] = useState(false); - const [drawerVal, setDrawerVal] = useState(false); - - return ( - <Box display="flex"> - <List - sx={{ - flexGrow: 1, - transition: (theme) => - theme.transitions.create(['all'], { - duration: theme.transitions.duration.enteringScreen, - }), - marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, - }} - title={"menu.reviseLogItem"} - empty={<EmptyData onClick={() => { setCreateDialog(true) }} />} - filters={filters} - sort={{ field: "create_time", order: "desc" }} - actions={( - <TopToolbar> - <FilterButton /> - <MyCreateButton onClick={() => { setCreateDialog(true) }} /> - <SelectColumnsButton preferenceKey='reviseLogItem' /> - <MyExportButton /> - </TopToolbar> - )} - perPage={DEFAULT_PAGE_SIZE} - > - <StyledDatagrid - preferenceKey='reviseLogItem' - bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} - rowClick={(id, resource, record) => false} - expand={() => <ReviseLogItemPanel />} - expandSingle={true} - omit={['id', 'createTime', 'createBy', 'memo']} - > - <NumberField source="id" /> - <NumberField source="reviseLogId" label="table.field.reviseLogItem.reviseLogId" /> - <NumberField source="locId" label="table.field.reviseLogItem.locId" /> - <TextField source="locCode" label="table.field.reviseLogItem.locCode" /> - <NumberField source="matnrId" label="table.field.reviseLogItem.matnrId" /> - <TextField source="maktx" label="table.field.reviseLogItem.maktx" /> - <TextField source="matnrCode" label="table.field.reviseLogItem.matnrCode" /> - <TextField source="unit" label="table.field.reviseLogItem.unit" /> - <NumberField source="anfme" label="table.field.reviseLogItem.anfme" /> - <NumberField source="reviseQty" label="table.field.reviseLogItem.reviseQty" /> - <TextField source="batch" label="table.field.reviseLogItem.batch" /> - <TextField source="spec" label="table.field.reviseLogItem.spec" /> - <TextField source="model" label="table.field.reviseLogItem.model" /> - <TextField source="fieldsIndex" label="table.field.reviseLogItem.fieldsIndex" /> - - <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}> - <TextField source="nickname" /> - </ReferenceField> - <DateField source="updateTime" label="common.field.updateTime" showTime /> - <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}> - <TextField source="nickname" /> - </ReferenceField> - <DateField source="createTime" label="common.field.createTime" showTime /> - <BooleanField source="statusBool" label="common.field.status" sortable={false} /> - <TextField source="memo" label="common.field.memo" sortable={false} /> - <WrapperField cellClassName="opt" label="common.field.opt"> - <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} /> - <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> - </WrapperField> - </StyledDatagrid> - </List> - <ReviseLogItemCreate - open={createDialog} - setOpen={setCreateDialog} - /> - <PageDrawer - title='ReviseLogItem Detail' - drawerVal={drawerVal} - setDrawerVal={setDrawerVal} - > - </PageDrawer> - </Box> - ) -} - -export default ReviseLogItemList; diff --git a/rsf-admin/src/page/reviseLogItem/ReviseLogItemPanel.jsx b/rsf-admin/src/page/reviseLogItem/ReviseLogItemPanel.jsx deleted file mode 100644 index e290636..0000000 --- a/rsf-admin/src/page/reviseLogItem/ReviseLogItemPanel.jsx +++ /dev/null @@ -1,129 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { Box, Card, CardContent, Grid, Typography, Tooltip } from '@mui/material'; -import { - useTranslate, - useRecordContext, -} from 'react-admin'; -import PanelTypography from "../components/PanelTypography"; -import * as Common from '@/utils/common' - -const ReviseLogItemPanel = () => { - const record = useRecordContext(); - if (!record) return null; - const translate = useTranslate(); - return ( - <> - <Card sx={{ width: { xs: 300, sm: 500, md: 600, lg: 800 }, margin: 'auto' }}> - <CardContent> - <Grid container spacing={2}> - <Grid item xs={12} sx={{ display: 'flex', justifyContent: 'space-between' }}> - <Typography variant="h6" gutterBottom align="left" sx={{ - maxWidth: { xs: '100px', sm: '180px', md: '260px', lg: '360px' }, - whiteSpace: 'nowrap', - overflow: 'hidden', - textOverflow: 'ellipsis', - }}> - {Common.camelToPascalWithSpaces(translate('table.field.reviseLogItem.id'))}: {record.id} - </Typography> - {/* inherit, primary, secondary, textPrimary, textSecondary, error */} - <Typography variant="h6" gutterBottom align="right" > - ID: {record.id} - </Typography> - </Grid> - </Grid> - <Grid container spacing={2}> - <Grid item xs={12} container alignContent="flex-end"> - <Typography variant="caption" color="textSecondary" sx={{ wordWrap: 'break-word', wordBreak: 'break-all' }}> - {Common.camelToPascalWithSpaces(translate('common.field.memo'))}:{record.memo} - </Typography> - </Grid> - </Grid> - <Box height={20}> </Box> - <Grid container spacing={2}> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.reviseLogId" - property={record.reviseLogId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.locId" - property={record.locId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.locCode" - property={record.locCode} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.matnrId" - property={record.matnrId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.maktx" - property={record.maktx} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.matnrCode" - property={record.matnrCode} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.unit" - property={record.unit} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.anfme" - property={record.anfme} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.reviseQty" - property={record.reviseQty} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.batch" - property={record.batch} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.spec" - property={record.spec} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.model" - property={record.model} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.fieldsIndex" - property={record.fieldsIndex} - /> - </Grid> - - </Grid> - </CardContent> - </Card > - </> - ); -}; - -export default ReviseLogItemPanel; diff --git a/rsf-admin/src/page/reviseLogItem/index.jsx b/rsf-admin/src/page/reviseLogItem/index.jsx deleted file mode 100644 index 817f52f..0000000 --- a/rsf-admin/src/page/reviseLogItem/index.jsx +++ /dev/null @@ -1,18 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { - ListGuesser, - EditGuesser, - ShowGuesser, -} from "react-admin"; - -import ReviseLogItemList from "./ReviseLogItemList"; -import ReviseLogItemEdit from "./ReviseLogItemEdit"; - -export default { - list: ReviseLogItemList, - edit: ReviseLogItemEdit, - show: ShowGuesser, - recordRepresentation: (record) => { - return `${record.id}` - } -}; diff --git a/rsf-admin/src/page/stockManage/locRevise/LocReviseEdit.jsx b/rsf-admin/src/page/stockManage/locRevise/LocReviseEdit.jsx index 71ba80d..48ca819 100644 --- a/rsf-admin/src/page/stockManage/locRevise/LocReviseEdit.jsx +++ b/rsf-admin/src/page/stockManage/locRevise/LocReviseEdit.jsx @@ -55,8 +55,19 @@ <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)" + } + }} defaultValues={{}} // sx={{ // "& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled": { @@ -87,19 +98,22 @@ label="table.field.locRevise.type" source="type" choices={[ - { id: 0, name: ' 搴撳瓨璋冩暣' }, + { id: 1, name: ' 搴撳瓨璋冩暣' }, { id: 2, name: ' 鐩樼偣璋冩暣' }, ]} + readOnly /> <NumberInput label="table.field.locRevise.anfme" source="anfme" + readOnly /> </Stack> <Stack direction='row' gap={2}> <NumberInput label="table.field.locRevise.reviseQty" source="reviseQty" + readOnly /> <SelectInput label="table.field.locRevise.exceStatus" @@ -109,11 +123,13 @@ { id: 1, name: '鎵ц涓�' }, { id: 2, name: '鎵ц瀹屾垚' }, ]} + readOnly /> <TextInput label="table.field.locRevise.areaName" - source="orgAreaName" + source="areaName" parse={v => v} + readOnly /> </Stack> </Grid> diff --git a/rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx b/rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx index a679f64..0fc637c 100644 --- a/rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx +++ b/rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx @@ -124,7 +124,7 @@ rowClick={(id, resource, record) => false} expand={false} expandSingle={true} - omit={['id', 'createTime', 'createBy', 'orgAreaId', 'memo']} + omit={['id', 'createTime', 'createBy', 'areaId', 'memo']} > <NumberField source="id" /> <TextField source="code" label="table.field.locRevise.code" /> @@ -132,8 +132,8 @@ <NumberField source="anfme" label="table.field.locRevise.anfme" /> <NumberField source="reviseQty" label="table.field.locRevise.reviseQty" /> <TextField source="exceStatus$" label="table.field.locRevise.exceStatus" sortable={false} /> - <NumberField source="orgAreaId" label="table.field.locRevise.areaId" /> - <TextField source="orgAreaName" label="table.field.locRevise.areaName" /> + <NumberField source="areaId" label="table.field.locRevise.areaId" /> + <TextField source="areaName" label="table.field.locRevise.areaName" /> <TextField source="updateBy$" label="common.field.updateBy" /> <DateField source="updateTime" label="common.field.updateTime" showTime /> <DateField source="createBy$" label="common.field.createBy" /> diff --git a/rsf-admin/src/page/stockManage/locRevise/LocsReviseDetl.jsx b/rsf-admin/src/page/stockManage/locRevise/LocsReviseDetl.jsx index 04602df..ee0a8fa 100644 --- a/rsf-admin/src/page/stockManage/locRevise/LocsReviseDetl.jsx +++ b/rsf-admin/src/page/stockManage/locRevise/LocsReviseDetl.jsx @@ -19,6 +19,7 @@ import { useTranslate, useNotify, useRefresh, DatagridConfigurable, useGetOne } from 'react-admin'; import DialogCloseButton from "../../components/DialogCloseButton"; import { Add, Edit, Delete, Save } from '@mui/icons-material'; +import QueryStatsIcon from '@mui/icons-material/QueryStats'; import { DataGrid, useGridApiRef } from '@mui/x-data-grid'; import SelectMatnrInfo from "./SelectMatnrInfo"; import SaveIcon from '@mui/icons-material/Save'; @@ -44,28 +45,19 @@ } }; - const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_stock_revise_type')) || []; const [page, setPage] = useState({ page: DEFAULT_START_PAGE, pageSize: DEFAULT_PAGE_SIZE }); - const [formData, setFormData] = useState({ locCode: record?.locCode }); const [selectedRows, setSelectedRows] = useState([]); const [isLoading, setIsLoading] = useState(false); const [tableData, setTableData] = useState([]); const [openMatnr, setOpenMatnr] = useState(); const [dyFields, setDyFields] = useState([]); const [rowCount, setRowCount] = useState(0); + const [formData, setFormData] = useState({ matnrCode: null }); const translate = useTranslate(); const refresh = useRefresh(); const notify = useNotify(); const tableRef = useRef() - - const handleChange = (e) => { - const { name, value } = e.target; - setFormData(() => ({ - ...formData, - [name]: value - })); - }; const handleSubmit = () => { const rows = tableRef.current.getSelectedRows(); @@ -80,6 +72,7 @@ batch: el.batch, anfme: el.anfme, reviseQty: el.reviseQty, + filedsIndex: el.filedsIndex, spec: el.spec, model: el.model, unit: el.unit, @@ -94,7 +87,6 @@ reviseLogId: record?.id, items: values, } - console.log(values); const res = await request.post(`/reviseLogItem/items/save`, parmas); if (res?.data?.code === 200) { @@ -105,12 +97,11 @@ } } - const getData = async () => { + const getData = async (matnr) => { setIsLoading(true) - console.log(formData); - - const res = await request.post(`/locItem/page`, { + const res = await request.post(`/reviseLogItem/page`, { locCode: record?.locCode, + matnrCode: matnr, current: page?.page, pageSize: page?.pageSize, orderBy: "create_time desc" @@ -125,12 +116,24 @@ }; useEffect(() => { - getData(); + if (record != null || record != undefined) { + getData() + } }, [open, page]); const handleSearch = () => { - // getData() + getData(formData.matnrCode) + }; + + const handleAdd = () => { setOpenMatnr(true) + }; + + const handleChange = (e) => { + const { name, value } = e.target; + setFormData(() => ({ + [name]: value + })); }; return ( @@ -155,43 +158,27 @@ </Box> </DialogTitle> <DialogContent sx={{ mt: 2 }}> - {/* <Box> - <List - sx={{ - flexGrow: 1, - marginRight: 1, - transition: (theme) => - theme.transitions.create(['all'], { - duration: theme.transitions.duration.enteringScreen, - }), - }} - resource="loc" - title={"menu.loc"} - empty={false} - filter={{ useStatus: 'F' }} - filters={filters} - sort={{ field: "'row'" }} - actions={false} - perPage={DEFAULT_PAGE_SIZE} - aside={false} - > - <StyledDatagrid - preferenceKey='loc' - align="left" - bulkActionButtons={false} - rowClick={() => false} - omit={['id', 'areaId', 'type', 'barcode']} - > - <NumberField source="id" /> - <TextField source="code" label="table.field.locItem.locCode" /> - </StyledDatagrid> - </List> - </Box> */} <Box> - <Box component="form" onSubmit={handleSubmit} sx={{ display: 'flex', flexDirection: 'column', gap: 3, justifyContent: 'flex-end' }}> - <Grid item md={12} sx={{ justifyContent: 'flex-end', display: 'flex' }}> - <Button variant="text" onClick={handleSearch}>{translate("page.whMat.title.add")}</Button> + <Box sx={{ display: 'flex', justifyContent: 'space-between' }}> + <Grid container spacing={2}> + <Grid item md={3}> + <TextField + label={translate('table.field.matnr.code')} + name="matnrCode" + value={formData.matnrCode} + onChange={handleChange} + size="small" + /> + </Grid> + <Grid item md={3} sx={{ display: "flex", margin: 1 }}> + <Button variant="contained" onClick={handleSearch} startIcon={<QueryStatsIcon />}>{translate("toolbar.query")}</Button> + </Grid> </Grid> + <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, justifyContent: 'flex-end' }}> + <Grid item md={8} sx={{ justifyContent: 'flex-end', display: 'flex' }}> + <Button variant="text" onClick={handleAdd}>{translate("page.whMat.title.add")}</Button> + </Grid> + </Box> </Box> <Box sx={{ mt: 2, height: 600, width: '100%' }}> <SelectReviseMatnr @@ -226,9 +213,9 @@ export default LocsReviseDetl; const SelectReviseMatnr = ({ tableData, setTableData, page, isLoading, setPage, rowCount, selectedRows, setSelectedRows, tableRef, setDyFields, dyFields }) => { + const [dynamicFields, setDynamicFields] = useState([]); const translate = useTranslate(); const notify = useNotify(); - const [dynamicFields, setDynamicFields] = useState([]); const [columns, setColumns] = useState([ { field: 'matnrCode', @@ -259,7 +246,7 @@ }, { field: 'reviseQty', - headerName: translate('table.field.locItem.outQty') + "*", + headerName: translate('table.field.locItem.reviseQty') + "*", minWidth: 100, type: 'number', flex: 1, @@ -303,7 +290,8 @@ } const handleDelete = (rows) => { - const tableRows = tableData.filter(item => item.matnrCode != rows.matnrCode); + let selectRow = tableRef.current.getSortedRows(); + const tableRows = selectRow.filter(item => item.id != rows.id); setTableData(tableRows); } diff --git a/rsf-admin/src/page/stockManage/locRevise/ReviseLogList.jsx b/rsf-admin/src/page/stockManage/locRevise/ReviseLogList.jsx index e5408cf..7d8ca87 100644 --- a/rsf-admin/src/page/stockManage/locRevise/ReviseLogList.jsx +++ b/rsf-admin/src/page/stockManage/locRevise/ReviseLogList.jsx @@ -123,7 +123,7 @@ rowClick={(id, resource, record) => false} expand={<ReviseLogItemList />} expandSingle={true} - omit={['id', 'reviseId', 'createTime', 'createBy', 'memo']} + omit={['id', 'reviseId', 'warehouseId', 'areaId', 'createTime', 'createBy', 'memo']} > <NumberField source="id" /> <NumberField source="reviseId" label="table.field.reviseLog.reviseId" /> @@ -168,8 +168,6 @@ const EditLocRevise = ({ setDrawerVal, setItem }) => { const record = useRecordContext(); - console.log("=======>"); - console.log(record); const editRevise = () => { setDrawerVal(true) setItem(record) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java index 971f036..c6bec07 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java @@ -388,23 +388,20 @@ InTaskMsgDto inTaskMsgDto = new InTaskMsgDto(); - int sRow = deviceBind.getStartRow(); - int eRow = deviceBind.getEndRow(); int deviceQty = deviceBind.getDeviceQty(); // ===============>>>> 寮�濮嬫墽琛� curRow = deviceBind.getCurrentRow(); - //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿 - for (int i = times; i <= deviceQty * 2; i++) { - int[] locNecessaryParameters = LocUtils.LocNecessaryParameters(deviceBind, curRow, deviceQty); - curRow = locNecessaryParameters[1]; - channel = locNecessaryParameters[2]; - rowCount = locNecessaryParameters[0]; - nearRow = locNecessaryParameters[3]; - break; - } + //鑾峰彇鎺� + int[] locNecessaryParameters = LocUtils.LocNecessaryParameters(deviceBind, curRow, deviceQty); + curRow = locNecessaryParameters[1]; + channel = locNecessaryParameters[2]; + rowCount = locNecessaryParameters[0]; + nearRow = locNecessaryParameters[3]; + + if (nearRow == 0) { throw new CoolException("鏃犲彲鐢ㄥ爢鍨涙満"); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryServiceImpl.java index 13530da..702845a 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeliveryServiceImpl.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.common.exception.BusinessException; +import com.vincent.rsf.server.manager.entity.DeliveryItem; import com.vincent.rsf.server.manager.enums.AsnExceStatus; import com.vincent.rsf.server.manager.mapper.DeliveryMapper; import com.vincent.rsf.server.manager.entity.Delivery; @@ -28,11 +29,11 @@ throw new BusinessException("鏁版嵁閿欒锛氬崟鎹俊鎭笉瀛樺湪锛侊紒"); } deliveries.forEach(delivery -> { - if (delivery.getExceStatus().equals(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val)){ + if (delivery.getExceStatus().equals(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val)){ if (!this.removeById(delivery.getId())) { throw new CoolException("涓诲崟鍒犻櫎澶辫触锛侊紒"); } - if (!deliveryItemService.removeById(delivery.getId())) { + if (!deliveryItemService.remove(new LambdaQueryWrapper<DeliveryItem>().eq(DeliveryItem::getDeliveryId,delivery.getId()))) { throw new CoolException("鍗曟嵁鏄庣粏鍒犻櫎澶辫触锛�1"); } } else { -- Gitblit v1.9.1