From 4d9b73a4e5acf3f3b97ebbdb69154c704bb3077d Mon Sep 17 00:00:00 2001 From: verou <857149855@qq.com> Date: 星期四, 10 四月 2025 09:03:11 +0800 Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java | 3 rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java | 4 rsf-admin/src/page/asnOrderLog/AsnOrderLogList.jsx | 39 ---- rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java | 17 + rsf-admin/src/page/taskLog/TaskItemLogList.jsx | 10 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 95 ++++++++--- rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/UserServiceImpl.java | 5 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItemLog.java | 3 /dev/null | 18 -- rsf-admin/src/page/task/TaskEdit.jsx | 14 - rsf-server/src/main/java/com/vincent/rsf/server/system/service/UserService.java | 1 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItemLog.java | 2 rsf-admin/src/page/asnOrderLog/AsnOrderLogEdit.jsx | 222 ++++++++++++--------------- rsf-admin/src/page/ResourceContent.js | 12 14 files changed, 218 insertions(+), 227 deletions(-) diff --git a/rsf-admin/src/page/ResourceContent.js b/rsf-admin/src/page/ResourceContent.js index 3b244fe..ed01cd9 100644 --- a/rsf-admin/src/page/ResourceContent.js +++ b/rsf-admin/src/page/ResourceContent.js @@ -45,11 +45,11 @@ import waitPakinLog from './waitPakinLog'; import waitPakinItemLog from './waitPakinItemLog'; import asnOrderLog from './asnOrderLog'; -import asnOrderItemLog from './asnOrderItemLog'; +// import asnOrderItemLog from './asnOrderItemLog'; import task from './task'; // import taskItem from './taskItem'; import taskLog from './taskLog'; -import taskItemLog from './taskItemLog'; +// import taskItemLog from './taskItemLog'; const ResourceContent = (node) => { @@ -110,8 +110,8 @@ return asnOrderItem; case 'asnOrderLog': return asnOrderLog; - case 'asnOrderItemLog': - return asnOrderItemLog; + // case 'asnOrderItemLog': + // return asnOrderItemLog; case 'purchaseItem': return purchaseItem; case 'purchase': @@ -144,8 +144,8 @@ // return taskItem; case 'taskLog': return taskLog; - case 'taskItemLog': - return taskItemLog; + // case 'taskItemLog': + // return taskItemLog; default: return { diff --git a/rsf-admin/src/page/asnOrderLog/AsnOrderLogEdit.jsx b/rsf-admin/src/page/asnOrderLog/AsnOrderLogEdit.jsx index 2e044bd..a1c2e7c 100644 --- a/rsf-admin/src/page/asnOrderLog/AsnOrderLogEdit.jsx +++ b/rsf-admin/src/page/asnOrderLog/AsnOrderLogEdit.jsx @@ -21,21 +21,20 @@ DeleteButton, } from 'react-admin'; import { useWatch, useFormContext } from "react-hook-form"; -import { Stack, Grid, Box, Typography } from '@mui/material'; +import { Stack, Grid, Box, Typography, Card } 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"; - +import AsnOrderItemLogList from "./AsnOrderItemLogList" const FormToolbar = () => { const { getValues } = useFormContext(); return ( - <Toolbar sx={{ justifyContent: 'space-between' }}> + <Toolbar sx={{ justifyContent: 'end' }}> <SaveButton /> - <DeleteButton mutationMode="optimistic" /> </Toolbar> ) } @@ -44,125 +43,106 @@ const translate = useTranslate(); return ( - <Edit - redirect="list" - mutationMode={EDIT_MODE} - actions={<CustomerTopToolBar />} - aside={<EditBaseAside />} - > - <SimpleForm - shouldUnregister - warnWhenUnsavedChanges - toolbar={<FormToolbar />} - mode="onTouched" - defaultValues={{}} - // validate={(values) => { }} + <> + <Edit + redirect="list" + mutationMode={EDIT_MODE} + actions={<CustomerTopToolBar />} + aside={<EditBaseAside />} > - <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}> - <TextInput - label="table.field.asnOrderLog.code" - source="code" - parse={v => v} - autoFocus - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.asnOrderLog.poCode" - source="poCode" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.asnOrderLog.poId" - source="poId" - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.asnOrderLog.type" - source="type" - parse={v => v} - validate={required()} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.asnOrderLog.wkType" - source="wkType" - parse={v => v} - validate={required()} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.asnOrderLog.anfme" - source="anfme" - validate={required()} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.asnOrderLog.qty" - source="qty" - validate={required()} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.asnOrderLog.logisNo" - source="logisNo" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <DateInput - label="table.field.asnOrderLog.arrTime" - source="arrTime" - /> - </Stack> - <Stack direction='row' gap={2}> - <SelectInput - label="table.field.asnOrderLog.rleStatus" - source="rleStatus" - choices={[ - { id: 0, name: ' 姝e父' }, - { id: 1, name: ' 宸查噴鏀�' }, - ]} - validate={required()} - /> - </Stack> - <Stack direction='row' gap={2}> - <SelectInput - label="table.field.asnOrderLog.ntyStatus" - source="ntyStatus" - choices={[ - { id: 0, name: ' 鏈笂鎶�' }, - { id: 1, name: ' 宸蹭笂鎶�' }, - { id: 2, name: ' 閮ㄥ垎涓婃姤' }, - ]} - validate={required()} - /> - </Stack> - + <SimpleForm + shouldUnregister + warnWhenUnsavedChanges + toolbar={<FormToolbar />} + mode="onTouched" + defaultValues={{}} + // validate={(values) => { }} + > + <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}> + <Grid item xs={24} md={12}> + <Typography variant="h6" gutterBottom> + {translate('common.edit.title.main')} + </Typography> + <Stack direction='row' gap={2}> + <TextInput + label="table.field.asnOrderLog.code" + source="code" + parse={v => v} + readOnly + /> + <TextInput + label="table.field.asnOrderLog.poCode" + source="poCode" + readOnly + parse={v => v} + /> + <NumberInput + label="table.field.asnOrderLog.poId" + readOnly + source="poId" + /> + <TextInput + label="table.field.asnOrderLog.type" + source="type" + readOnly + parse={v => v} + validate={required()} + /> + <TextInput + label="table.field.asnOrderLog.wkType" + source="wkType" + readOnly + parse={v => v} + validate={required()} + /> + </Stack> + <Stack direction='row' gap={2}> + <NumberInput + label="table.field.asnOrderLog.anfme" + source="anfme" + readOnly + validate={required()} + /> + <NumberInput + label="table.field.asnOrderLog.qty" + source="qty" + readOnly + validate={required()} + /> + <TextInput + label="table.field.asnOrderLog.logisNo" + source="logisNo" + readOnly + parse={v => v} + /> + <DateInput + label="table.field.asnOrderLog.arrTime" + readOnly + source="arrTime" + /> + <SelectInput + label="table.field.asnOrderLog.ntyStatus" + source="ntyStatus" + readOnly + choices={[ + { id: 0, name: ' 鏈笂鎶�' }, + { id: 1, name: ' 宸蹭笂鎶�' }, + { id: 2, name: ' 閮ㄥ垎涓婃姤' }, + ]} + validate={required()} + /> + </Stack> + </Grid> </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 > + </SimpleForm> + </Edit > + <Grid item xs={24} md={16} sx={{ marginTop: '1em' }}> + <Typography variant="h6" gutterBottom > + {translate('common.edit.title.common')} + </Typography> + </Grid> + <AsnOrderItemLogList /> + </> ) } diff --git a/rsf-admin/src/page/asnOrderLog/AsnOrderLogList.jsx b/rsf-admin/src/page/asnOrderLog/AsnOrderLogList.jsx index 78ae947..29c4a09 100644 --- a/rsf-admin/src/page/asnOrderLog/AsnOrderLogList.jsx +++ b/rsf-admin/src/page/asnOrderLog/AsnOrderLogList.jsx @@ -31,8 +31,6 @@ ReferenceArrayInput, AutocompleteInput, DeleteButton, - useRefresh, - Button, } from 'react-admin'; import { Box, Typography, Card, Stack } from '@mui/material'; import { styled } from '@mui/material/styles'; @@ -45,7 +43,6 @@ import MyField from "../components/MyField"; import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; import * as Common from '@/utils/common'; -import ReplayIcon from '@mui/icons-material/Replay'; const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ '& .css-1vooibu-MuiSvgIcon-root': { @@ -57,7 +54,7 @@ '& .column-name': { }, '& .opt': { - width: 300 + width: 200 }, })); @@ -101,7 +98,6 @@ const AsnOrderLogList = () => { const translate = useTranslate(); - const [createDialog, setCreateDialog] = useState(false); const [drawerVal, setDrawerVal] = useState(false); @@ -123,7 +119,7 @@ actions={( <TopToolbar> <FilterButton /> - <MyCreateButton onClick={() => { setCreateDialog(true) }} /> + {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */} <SelectColumnsButton preferenceKey='asnOrderLog' /> <MyExportButton /> </TopToolbar> @@ -133,8 +129,8 @@ <StyledDatagrid preferenceKey='asnOrderLog' bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} - rowClick={(id, resource, record) => false} - expand={() => <AsnOrderLogPanel />} + rowClick={'edit'} + expand={false} expandSingle={true} omit={['id', 'createTime', 'createBy', 'memo']} > @@ -161,11 +157,6 @@ <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} /> - <RecoverButton /> - </WrapperField> </StyledDatagrid> </List> <AsnOrderLogCreate @@ -183,25 +174,3 @@ } export default AsnOrderLogList; - -const RecoverButton = () => { - const record = useRecordContext(); - const notify = useNotify(); - const refresh = useRefresh(); - const requestRecover = async () => { - const { data: { code, data, msg } } = await request.post(`/asnOrder/recover/${record.id}`); - - if (code === 200) { - notify(msg); - refresh() - } else { - notify(msg); - } - } - - return ( - (<Button onClick={requestRecover} label={"toolbar.recover"} color="success"> - <ReplayIcon /> - </Button>) - ) -} diff --git a/rsf-admin/src/page/task/TaskEdit.jsx b/rsf-admin/src/page/task/TaskEdit.jsx index bca87b3..166b846 100644 --- a/rsf-admin/src/page/task/TaskEdit.jsx +++ b/rsf-admin/src/page/task/TaskEdit.jsx @@ -107,14 +107,12 @@ </Grid> </SimpleForm> </Edit > - <Card sx={{ marginTop: '1em', }}> - <Grid item xs={24} md={16} sx={{ margin: '1em' }}> - <Typography variant="h6" gutterBottom > - {translate('common.edit.title.common')} - </Typography> - <TaskItemList /> - </Grid> - </Card> + <Grid item xs={24} md={16} sx={{ margin: '1em', height: 'auto' }}> + <Typography variant="h6" gutterBottom > + {translate('common.edit.title.common')} + </Typography> + </Grid> + <TaskItemList /> </> ) } diff --git a/rsf-admin/src/page/taskItemLog/TaskItemLogCreate.jsx b/rsf-admin/src/page/taskItemLog/TaskItemLogCreate.jsx deleted file mode 100644 index 29f89f7..0000000 --- a/rsf-admin/src/page/taskItemLog/TaskItemLogCreate.jsx +++ /dev/null @@ -1,216 +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 TaskItemLogCreate = (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.taskItemLog.taskItemId" - source="taskItemId" - autoFocus - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.taskItemLog.taskId" - source="taskId" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.taskItemLog.orderId" - source="orderId" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.taskItemLog.orderType" - source="orderType" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.taskItemLog.orderItemId" - source="orderItemId" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.taskItemLog.source" - source="source" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.taskItemLog.matnrId" - source="matnrId" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.taskItemLog.maktx" - source="maktx" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.taskItemLog.matnrCode" - source="matnrCode" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.taskItemLog.trackCode" - source="trackCode" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.taskItemLog.unit" - source="unit" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.taskItemLog.anfme" - source="anfme" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.taskItemLog.batch" - source="batch" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.taskItemLog.spec" - source="spec" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.taskItemLog.model" - source="model" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.taskItemLog.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 TaskItemLogCreate; diff --git a/rsf-admin/src/page/taskItemLog/TaskItemLogEdit.jsx b/rsf-admin/src/page/taskItemLog/TaskItemLogEdit.jsx deleted file mode 100644 index 229ce32..0000000 --- a/rsf-admin/src/page/taskItemLog/TaskItemLogEdit.jsx +++ /dev/null @@ -1,188 +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 TaskItemLogEdit = () => { - 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.taskItemLog.taskItemId" - source="taskItemId" - autoFocus - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.taskItemLog.taskId" - source="taskId" - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.taskItemLog.orderId" - source="orderId" - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.taskItemLog.orderType" - source="orderType" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.taskItemLog.orderItemId" - source="orderItemId" - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.taskItemLog.source" - source="source" - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.taskItemLog.matnrId" - source="matnrId" - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.taskItemLog.maktx" - source="maktx" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.taskItemLog.matnrCode" - source="matnrCode" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.taskItemLog.trackCode" - source="trackCode" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.taskItemLog.unit" - source="unit" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.taskItemLog.anfme" - source="anfme" - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.taskItemLog.batch" - source="batch" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.taskItemLog.spec" - source="spec" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.taskItemLog.model" - source="model" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.taskItemLog.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 TaskItemLogEdit; diff --git a/rsf-admin/src/page/taskItemLog/TaskItemLogList.jsx b/rsf-admin/src/page/taskItemLog/TaskItemLogList.jsx deleted file mode 100644 index 58c7f4f..0000000 --- a/rsf-admin/src/page/taskItemLog/TaskItemLogList.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 TaskItemLogCreate from "./TaskItemLogCreate"; -import TaskItemLogPanel from "./TaskItemLogPanel"; -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="taskItemId" label="table.field.taskItemLog.taskItemId" />, - <NumberInput source="taskId" label="table.field.taskItemLog.taskId" />, - <NumberInput source="orderId" label="table.field.taskItemLog.orderId" />, - <TextInput source="orderType" label="table.field.taskItemLog.orderType" />, - <NumberInput source="orderItemId" label="table.field.taskItemLog.orderItemId" />, - <NumberInput source="source" label="table.field.taskItemLog.source" />, - <NumberInput source="matnrId" label="table.field.taskItemLog.matnrId" />, - <TextInput source="maktx" label="table.field.taskItemLog.maktx" />, - <TextInput source="matnrCode" label="table.field.taskItemLog.matnrCode" />, - <TextInput source="trackCode" label="table.field.taskItemLog.trackCode" />, - <TextInput source="unit" label="table.field.taskItemLog.unit" />, - <NumberInput source="anfme" label="table.field.taskItemLog.anfme" />, - <TextInput source="batch" label="table.field.taskItemLog.batch" />, - <TextInput source="spec" label="table.field.taskItemLog.spec" />, - <TextInput source="model" label="table.field.taskItemLog.model" />, - <TextInput source="fieldsIndex" label="table.field.taskItemLog.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 TaskItemLogList = () => { - 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.taskItemLog"} - filters={filters} - empty={false} - sort={{ field: "create_time", order: "desc" }} - actions={( - <TopToolbar> - <FilterButton /> - <SelectColumnsButton preferenceKey='taskItemLog' /> - <MyExportButton /> - </TopToolbar> - )} - perPage={DEFAULT_PAGE_SIZE} - > - <StyledDatagrid - preferenceKey='taskItemLog' - bulkActionButtons={false} - rowClick={(id, resource, record) => false} - expandSingle={true} - omit={['id', 'createTime', 'createBy', 'memo', 'taskId', 'orderId', 'orderItemId', 'matnrId']} - > - <NumberField source="id" /> - <NumberField source="taskItemId" label="table.field.taskItemLog.taskItemId" /> - <NumberField source="taskId" label="table.field.taskItemLog.taskId" /> - <NumberField source="orderId" label="table.field.taskItemLog.orderId" /> - <TextField source="orderType" label="table.field.taskItemLog.orderType" /> - <NumberField source="orderItemId" label="table.field.taskItemLog.orderItemId" /> - <NumberField source="source" label="table.field.taskItemLog.source" /> - <NumberField source="matnrId" label="table.field.taskItemLog.matnrId" /> - <TextField source="maktx" label="table.field.taskItemLog.maktx" /> - <TextField source="matnrCode" label="table.field.taskItemLog.matnrCode" /> - <TextField source="trackCode" label="table.field.taskItemLog.trackCode" /> - <TextField source="unit" label="table.field.taskItemLog.unit" /> - <NumberField source="anfme" label="table.field.taskItemLog.anfme" /> - <TextField source="batch" label="table.field.taskItemLog.batch" /> - <TextField source="spec" label="table.field.taskItemLog.spec" /> - <TextField source="model" label="table.field.taskItemLog.model" /> - <TextField source="fieldsIndex" label="table.field.taskItemLog.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} /> - </StyledDatagrid> - </List> - <PageDrawer - title='TaskItemLog Detail' - drawerVal={drawerVal} - setDrawerVal={setDrawerVal} - > - </PageDrawer> - </Box> - ) -} - -export default TaskItemLogList; diff --git a/rsf-admin/src/page/taskItemLog/TaskItemLogPanel.jsx b/rsf-admin/src/page/taskItemLog/TaskItemLogPanel.jsx deleted file mode 100644 index 6f863f8..0000000 --- a/rsf-admin/src/page/taskItemLog/TaskItemLogPanel.jsx +++ /dev/null @@ -1,147 +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 TaskItemLogPanel = () => { - 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.taskItemLog.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.taskItemLog.taskItemId" - property={record.taskItemId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.taskItemLog.taskId" - property={record.taskId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.taskItemLog.orderId" - property={record.orderId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.taskItemLog.orderType" - property={record.orderType} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.taskItemLog.orderItemId" - property={record.orderItemId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.taskItemLog.source" - property={record.source} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.taskItemLog.matnrId" - property={record.matnrId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.taskItemLog.maktx" - property={record.maktx} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.taskItemLog.matnrCode" - property={record.matnrCode} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.taskItemLog.trackCode" - property={record.trackCode} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.taskItemLog.unit" - property={record.unit} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.taskItemLog.anfme" - property={record.anfme} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.taskItemLog.batch" - property={record.batch} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.taskItemLog.spec" - property={record.spec} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.taskItemLog.model" - property={record.model} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.taskItemLog.fieldsIndex" - property={record.fieldsIndex} - /> - </Grid> - - </Grid> - </CardContent> - </Card > - </> - ); -}; - -export default TaskItemLogPanel; diff --git a/rsf-admin/src/page/taskItemLog/index.jsx b/rsf-admin/src/page/taskItemLog/index.jsx deleted file mode 100644 index 0208e30..0000000 --- a/rsf-admin/src/page/taskItemLog/index.jsx +++ /dev/null @@ -1,18 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { - ListGuesser, - EditGuesser, - ShowGuesser, -} from "react-admin"; - -import TaskItemLogList from "./TaskItemLogList"; -import TaskItemLogEdit from "./TaskItemLogEdit"; - -export default { - list: TaskItemLogList, - edit: TaskItemLogEdit, - show: ShowGuesser, - recordRepresentation: (record) => { - return `${record.id}` - } -}; diff --git a/rsf-admin/src/page/taskLog/TaskItemLogList.jsx b/rsf-admin/src/page/taskLog/TaskItemLogList.jsx index 72abff1..acf1ae7 100644 --- a/rsf-admin/src/page/taskLog/TaskItemLogList.jsx +++ b/rsf-admin/src/page/taskLog/TaskItemLogList.jsx @@ -31,6 +31,7 @@ ReferenceArrayInput, AutocompleteInput, DeleteButton, + useGetRecordId, } from 'react-admin'; import { Box, Typography, Card, Stack } from '@mui/material'; import { styled } from '@mui/material/styles'; @@ -88,13 +89,15 @@ const TaskItemLogList = () => { const translate = useTranslate(); - const [createDialog, setCreateDialog] = useState(false); const [drawerVal, setDrawerVal] = useState(false); + const recodeId = useGetRecordId(); + return ( <Box display="flex"> <List + resource="taskItemLog" sx={{ flexGrow: 1, transition: (theme) => @@ -106,6 +109,7 @@ title={"menu.taskItemLog"} filters={filters} empty={false} + filter={{logId: Number(recodeId) }} sort={{ field: "create_time", order: "desc" }} actions={( <TopToolbar> @@ -138,8 +142,8 @@ <TextField source="batch" label="table.field.taskItemLog.batch" /> <TextField source="spec" label="table.field.taskItemLog.spec" /> <TextField source="model" label="table.field.taskItemLog.model" /> - <TextField source="updateBy$" label="common.field.updateBy"/> - <TextField source="createBy$" label="common.field.createBy"/> + <TextField source="updateBy$" label="common.field.updateBy" /> + <TextField source="createBy$" label="common.field.createBy" /> <DateField source="updateTime" label="common.field.updateTime" showTime /> <DateField source="createTime" label="common.field.createTime" showTime /> <BooleanField source="statusBool" label="common.field.status" sortable={false} /> diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java index 72da8c5..aaffe4f 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java @@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import java.util.List; import java.util.Map; import java.util.Objects; @@ -130,6 +131,16 @@ return mobileService.getDeltByCode(code); } + @PreAuthorize("hasAuthority('manager:asnOrderItem:list')") + @ApiOperation("鑾峰彇鎷栫洏鏄庣粏") + @PostMapping("/asnOrderItem/container") + public R getItemByContainer(@RequestBody Map<String, Object> params) { + if (Objects.isNull(params)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + return mobileService.getItemByContainer(params); + } + @PreAuthorize("hasAuthority('manager:waitPakin:update')") @ApiOperation("缁勬嫋") @PostMapping("/waitPakin/merge") @@ -193,11 +204,11 @@ } - @ApiOperation("蹇甫璐ㄦ") + @ApiOperation("蹇�熻川妫�") @PreAuthorize("hasAuthority('manager:qlyInspect:update')") @PostMapping("/inspect/check/update") - public R checkUpdate(@RequestBody QlyIsptItem params) { - if (Objects.isNull(params)) { + public R checkUpdate(@RequestBody List<QlyIsptItem> params) { + if (Objects.isNull(params) || params.isEmpty()) { return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); } return mobileService.checkUpdate(params); diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java index a1c2e6f..b63ead2 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java @@ -48,7 +48,7 @@ R checkObjs(CheckObjParams params); - R checkUpdate(QlyIsptItem params); + R checkUpdate(List<QlyIsptItem> params); R operateToStock(OpStockParams params); @@ -59,4 +59,6 @@ R taskGetLocs(String code) throws Exception; R completeOrder(Long id, Long loginUserId); + + R getItemByContainer(Map<String, Object> params); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java index ae44e15..3d93a98 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java @@ -22,6 +22,7 @@ import com.vincent.rsf.server.manager.controller.params.WaitPakinParam; import com.vincent.rsf.server.manager.entity.*; import com.vincent.rsf.server.manager.enums.AsnExceStatus; +import com.vincent.rsf.server.manager.enums.PakinIOStatus; import com.vincent.rsf.server.manager.mapper.*; import com.vincent.rsf.server.manager.service.*; import com.vincent.rsf.server.system.constant.CodeRes; @@ -34,8 +35,10 @@ import com.vincent.rsf.server.system.mapper.UserMapper; import com.vincent.rsf.server.system.service.FieldsItemService; import com.vincent.rsf.server.system.service.UserLoginService; +import com.vincent.rsf.server.system.service.UserService; import com.vincent.rsf.server.system.utils.ExtendFieldsUtils; import com.vincent.rsf.server.system.utils.SerialRuleUtils; +import net.sf.jsqlparser.statement.select.Wait; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -66,7 +69,7 @@ @Autowired private TenantMapper tenantService; @Autowired - private UserMapper userService; + private UserService userService; @Autowired private UserLoginService userLoginService; @Autowired @@ -147,7 +150,7 @@ if (user.getStatus() != 1) { return R.parse(CodeRes.USER_10002); } - if (!user.getPassword().equals(param.getPassword())) { + if (!userService.comparePassword(user.getPassword(), param.getPassword())) { return R.parse(CodeRes.USER_10003); } @@ -494,36 +497,36 @@ if (Objects.isNull(params.getIsptCode())) { throw new CoolException("璐ㄦ鍗曚笉鑳戒负绌�"); } - if (Objects.isNull(params.getMatnrCode())) { - throw new CoolException("鐗╂枡缂栫爜涓嶈兘涓虹┖锛�"); - } QlyInspect inspect = qlyInspectMapper.selectOne(new LambdaQueryWrapper<QlyInspect>().eq(QlyInspect::getCode, params.getIsptCode())); if (Objects.isNull(inspect)) { throw new CoolException("璐ㄦ鍗曟嵁涓嶅瓨鍦紒!"); } - QlyIsptItem isptItem = qlyIsptItemService.getOne(new LambdaQueryWrapper<QlyIsptItem>() - .eq(QlyIsptItem::getMatnrCode, params.getMatnrCode()) + List<QlyIsptItem> isptItems = qlyIsptItemService.list(new LambdaQueryWrapper<QlyIsptItem>() + .eq(StringUtils.isNotBlank(params.getMatnrCode()), QlyIsptItem::getMatnrCode, StringUtils.isNotBlank(params.getMatnrCode()) ? params.getMatnrCode() : null) .eq(QlyIsptItem::getIspectId, inspect.getId())); - if (Objects.isNull(isptItem)) { + if (Objects.isNull(isptItems)) { throw new CoolException("璐ㄦ鍗曟槑缁嗕笉瀛樺湪锛侊紒"); } - - CheckObjDto objDto = new CheckObjDto(); - objDto.setIsptCode(inspect.getCode()) - .setAsnCode(inspect.getAsnCode()) - .setId(isptItem.getId()) - .setMatnrCode(isptItem.getMatnrCode()) - .setMaktx(isptItem.getMaktx()) - .setDisQty(isptItem.getDisQty()) - .setDlyQty(isptItem.getDlyQty()) - .setRcptQty(isptItem.getRcptQty()) - .setIsptResult(isptItem.getIsptResult()) - .setSplrBatch(isptItem.getSplrBatch()) - .setSplrName(isptItem.getSplrName()) - .setPicPath(isptItem.getPicPath()) - .setMemo(isptItem.getMemo()) - .setSafeQty(isptItem.getSafeQty()); - return R.ok(objDto); + List<CheckObjDto> dtos = new ArrayList<>(); + isptItems.forEach(isptItem -> { + CheckObjDto objDto = new CheckObjDto(); + objDto.setIsptCode(inspect.getCode()) + .setAsnCode(inspect.getAsnCode()) + .setId(isptItem.getId()) + .setMatnrCode(isptItem.getMatnrCode()) + .setMaktx(isptItem.getMaktx()) + .setDisQty(isptItem.getDisQty()) + .setDlyQty(isptItem.getDlyQty()) + .setRcptQty(isptItem.getRcptQty()) + .setIsptResult(isptItem.getIsptResult()) + .setSplrBatch(isptItem.getSplrBatch()) + .setSplrName(isptItem.getSplrName()) + .setPicPath(isptItem.getPicPath()) + .setMemo(isptItem.getMemo()) + .setSafeQty(isptItem.getSafeQty()); + dtos.add(objDto); + }); + return R.ok(dtos); } /** @@ -532,14 +535,12 @@ * @return */ @Override - public R checkUpdate(QlyIsptItem params) { - if (Objects.isNull(params.getId())) { + public R checkUpdate(List<QlyIsptItem> params) { + if (Objects.isNull(params) || params.isEmpty()) { throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); } IsptItemsParams itemsParams = new IsptItemsParams(); - List<QlyIsptItem> items = new ArrayList<>(); - items.add(params); - itemsParams.setIsptItem(items).setType("0"); + itemsParams.setIsptItem(params).setType("0"); if (qlyIsptItemService.batchUpdate(itemsParams)) { return R.ok(); } else { @@ -729,6 +730,40 @@ } /** + * @author Ryan + * @description 閫氳繃瀹瑰櫒鑾峰彇缁勬嫋鐗╂枡 + * @param + * @return + * @time 2025/4/9 16:57 + */ + @Override + public R getItemByContainer(Map<String, Object> params) { + List<Short> asList = Arrays.asList(Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val), Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val)); + WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>() + .eq(WaitPakin::getBarcode, params.get("barcode").toString()) + .in(WaitPakin::getIoStatus, asList)); + if (Objects.isNull(waitPakin)) { + return R.ok(new ArrayList<>()); + } + List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>() + .eq(WaitPakinItem::getPakinId, waitPakin.getId())); + if (pakinItems.isEmpty()) { + return R.ok(new ArrayList<>()); + } + List<String> list = pakinItems.stream().map(WaitPakinItem::getTrackCode).collect(Collectors.toList()); + LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new QueryWrapper<WarehouseAreasItem>() + .select("SUM(anfme) as anfme, track_code, asn_code, id, splr_batch, ispt_result, plat_item_id, batch, qty, work_qty, matnr_code, matnr_id, maktx") + .lambda() + .in(WarehouseAreasItem::getTrackCode, list) + .groupBy(WarehouseAreasItem::getSplrBatch, + WarehouseAreasItem::getAsnId, + WarehouseAreasItem::getAreaId, + WarehouseAreasItem::getTrackCode, + WarehouseAreasItem::getMatnrId); + return R.ok(warehouseAreasItemService.list(queryWrapper)); + } + + /** * 鑾峰彇ReceiptDetlsDtos */ private R getAsnOrderItem(List<AsnOrderItem> items) { diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItemLog.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItemLog.java index 6522439..767d42d 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItemLog.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItemLog.java @@ -37,6 +37,8 @@ @TableId(value = "id", type = IdType.AUTO) private Long id; + @ApiModelProperty("涓诲崟ID") + private Long logId; @ApiModelProperty("Item ID") private Long asnItemId; diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItemLog.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItemLog.java index 498f156..18dc247 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItemLog.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItemLog.java @@ -37,6 +37,9 @@ @TableId(value = "id", type = IdType.AUTO) private Long id; + @ApiModelProperty("涓诲崟ID") + private Long logId; + /** * 涓诲崟ID */ diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java index e826e7f..e4330bc 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java @@ -106,8 +106,7 @@ public List<AsnOrder> getUnInspect(Map<String, Object> params) { List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>() .eq(AsnOrder::getStatus, 1) - .eq(!Objects.isNull(params.get("asnCode")), AsnOrder::getCode, !Objects.isNull(params.get("asnCode")) ? params.get("asnCode").toString() : "") - .eq(AsnOrder::getNtyStatus, 0)); + .eq(!Objects.isNull(params.get("asnCode")) && StringUtils.isNotBlank(params.get("asnCode").toString()), AsnOrder::getCode, StringUtils.isNotBlank(params.get("asnCode").toString()) ? params.get("asnCode").toString() : null)); return asnOrders; } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/UserService.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/UserService.java index 1687006..9981a93 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/UserService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/UserService.java @@ -21,4 +21,5 @@ String encodePassword(String password); + User selectByUsernameWithoutTenant(String username, Long tenantId); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/UserServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/UserServiceImpl.java index a08797c..dea12b4 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/UserServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/UserServiceImpl.java @@ -65,4 +65,9 @@ return password == null ? null : bCryptPasswordEncoder.encode(password); } + @Override + public User selectByUsernameWithoutTenant(String username, Long tenantId) { + return baseMapper.selectByUsernameWithoutTenant(username,tenantId); + } + } -- Gitblit v1.9.1