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