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}>&nbsp;</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