From e411a471a08717964937be2e6ac0eadaa84961ca Mon Sep 17 00:00:00 2001
From: DESKTOP-LMJ82IJ\Eno <creaycat@gmail.com>
Date: 星期日, 13 四月 2025 18:39:36 +0800
Subject: [PATCH] #修改 1. 组拖界面优化
---
rsf-admin/src/page/waitPakinItem/WaitPakinItemList.jsx | 25 +--
rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java | 2
rsf-admin/src/page/system/dicts/dictType/DictDataList.jsx | 6
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/MobileController.java | 3
rsf-admin/src/page/waitPakin/WaitPakinEdit.jsx | 160 +++++++++----------
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java | 13 +
rsf-admin/src/page/qlyInspect/QlyInspectList.jsx | 12 -
rsf-admin/src/page/qlyIsptItem/QlyIsptItemList.jsx | 1
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java | 17 -
/dev/null | 18 --
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaitPakinService.java | 2
rsf-admin/src/page/waitPakin/WaitPakinList.jsx | 25 --
rsf-admin/src/i18n/zh.js | 2
rsf-admin/src/i18n/en.js | 2
rsf-admin/src/page/ResourceContent.js | 12 -
rsf-admin/src/page/qlyInspect/QlyInspectEdit.jsx | 149 +++++++++---------
16 files changed, 192 insertions(+), 257 deletions(-)
diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index a9d204c..6028053 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -631,6 +631,7 @@
ansId: "ansId",
asnCode: "asnCode",
barcode: "barcode",
+ flagDefect: "Defective",
anfme: "anfme",
ioStatus: "ioStatus",
},
@@ -821,6 +822,7 @@
creatcode: "creatcode",
print: "print",
enable: 'enable',
+ detail: "Detail",
unenable: 'unenable',
locInit: 'loc init',
siteInit: 'site init',
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index dc16f18..9bdf742 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -641,6 +641,7 @@
ansId: "鏀惰揣閫氱煡鍗曞彿",
asnCode: "鏀惰揣閫氱煡鍗曠紪鐮�",
barcode: "瀹瑰櫒鐮�",
+ flagDefect: "涓嶈壇鍝�",
anfme: "鏁伴噺",
ioStatus: "鐘舵��",
},
@@ -832,6 +833,7 @@
inspection: "鎶ユ",
creatcode: "鐢熸垚鏉$爜",
print: "鎵撳嵃",
+ detail: "鏌ョ湅璇︽儏",
enable: '鍚敤',
unenable: '绂佺敤',
locInit: '搴撲綅鍒濆鍖�',
diff --git a/rsf-admin/src/page/ResourceContent.js b/rsf-admin/src/page/ResourceContent.js
index ab19384..f5c5497 100644
--- a/rsf-admin/src/page/ResourceContent.js
+++ b/rsf-admin/src/page/ResourceContent.js
@@ -23,18 +23,14 @@
import qlyInspect from './qlyInspect';
import qlyIsptItem from './qlyIsptItem';
import dictType from './system/dicts/dictType';
-// import dictData from './system/dicts/dictData';
import companys from './basicInfo/companys';
import locType from './basicInfo/locType';
import locArea from './basicInfo//locArea';
import locAreaMatRela from './basicInfo/locAreaMatRela';
import locAreaMat from './basicInfo/locAreaMat';
-// import serialRuleItem from './system/serialRuleItem';
import serialRule from './system/serialRule';
import whMat from './basicInfo/whMat';
import asnOrder from './orders/asnOrder';
-// import asnOrderItem from './orders/asnOrderItem';
-// import purchaseItem from './purchaseItem';
import purchase from './purchase';
import fields from './fields';
import fieldsItem from './fieldsItem';
@@ -43,7 +39,7 @@
import waitPakin from './waitPakin';
import waitPakinItem from './waitPakinItem';
import waitPakinLog from './waitPakinLog';
-import asnOrderLog from './asnOrderLog';
+import asnOrderLog from './orders/asnOrderLog';
import task from './task';
import taskLog from './taskLog';
@@ -89,12 +85,8 @@
return qlyIsptItem;
case 'dictType':
return dictType;
- // case 'dictData':
- // return dictData;
case 'companys':
return companys;
- // case 'serialRuleItem':
- // return serialRuleItem;
case 'serialRule':
return serialRule;
case 'whMat':
@@ -105,8 +97,6 @@
return asnOrderItem;
case 'asnOrderLog':
return asnOrderLog;
- // case 'purchaseItem':
- // return purchaseItem;
case 'purchase':
return purchase;
case 'fields':
diff --git a/rsf-admin/src/page/asnOrderLog/AsnOrderItemLogList.jsx b/rsf-admin/src/page/asnOrderLog/AsnOrderItemLogList.jsx
deleted file mode 100644
index 643d4ca..0000000
--- a/rsf-admin/src/page/asnOrderLog/AsnOrderItemLogList.jsx
+++ /dev/null
@@ -1,177 +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,
- useGetRecordId,
-} from 'react-admin';
-import { Box, Typography, Card, Stack } from '@mui/material';
-import { styled } from '@mui/material/styles';
-import EmptyData from "../components/EmptyData";
-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 />,
-
- <NumberInput source="asnId" label="table.field.asnOrderItemLog.asnId" />,
- <TextInput source="asnCode" label="table.field.asnOrderItemLog.asnCode" />,
- <TextInput source="platItemId" label="table.field.asnOrderItemLog.platItemId" />,
- <NumberInput source="poDetlId" label="table.field.asnOrderItemLog.poDetlId" />,
- <TextInput source="poCode" label="table.field.asnOrderItemLog.poCode" />,
- <TextInput source="fieldsIndex" label="table.field.asnOrderItemLog.fieldsIndex" />,
- <TextInput source="matnrId" label="table.field.asnOrderItemLog.matnrId" />,
- <TextInput source="matnrCode" label="table.field.asnOrderItemLog.matnrCode" />,
- <TextInput source="maktx" label="table.field.asnOrderItemLog.maktx" />,
- <NumberInput source="anfme" label="table.field.asnOrderItemLog.anfme" />,
- <TextInput source="stockUnit" label="table.field.asnOrderItemLog.stockUnit" />,
- <NumberInput source="purQty" label="table.field.asnOrderItemLog.purQty" />,
- <TextInput source="purUnit" label="table.field.asnOrderItemLog.purUnit" />,
- <NumberInput source="qty" label="table.field.asnOrderItemLog.qty" />,
- <TextInput source="splrCode" label="table.field.asnOrderItemLog.splrCode" />,
- <TextInput source="splrBatch" label="table.field.asnOrderItemLog.splrBatch" />,
- <TextInput source="splrName" label="table.field.asnOrderItemLog.splrName" />,
- <TextInput source="qrcode" label="table.field.asnOrderItemLog.qrcode" />,
- <TextInput source="trackCode" label="table.field.asnOrderItemLog.trackCode" />,
- <TextInput source="barcode" label="table.field.asnOrderItemLog.barcode" />,
- <TextInput source="packName" label="table.field.asnOrderItemLog.packName" />,
- <SelectInput source="ntyStatus" label="table.field.asnOrderItemLog.ntyStatus"
- choices={[
- { id: 0, name: ' 鏈笂鎶�' },
- { id: 1, name: ' 宸蹭笂鎶�' },
- ]}
- />,
-
- <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 AsnOrderItemLogList = () => {
- const translate = useTranslate();
- const [createDialog, setCreateDialog] = useState(false);
- const [drawerVal, setDrawerVal] = useState(false);
- const recodeId = useGetRecordId();
-
- return (
- <Box display="flex">
- <List
- resource="asnOrderItemLog"
- sx={{
- flexGrow: 1,
- transition: (theme) =>
- theme.transitions.create(['all'], {
- duration: theme.transitions.duration.enteringScreen,
- }),
- marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
- }}
- title={"menu.asnOrderItemLog"}
- empty={false}
- filters={filters}
- filter={{ logId: recodeId }}
- sort={{ field: "create_time", order: "desc" }}
- actions={(
- <TopToolbar>
- <FilterButton />
- <SelectColumnsButton preferenceKey='asnOrderItemLog' />
- <MyExportButton />
- </TopToolbar>
- )}
- perPage={DEFAULT_PAGE_SIZE}
- >
- <StyledDatagrid
- preferenceKey='asnOrderItemLog'
- bulkActionButtons={false}
- rowClick={(id, resource, record) => false}
- omit={['id', 'asnId', 'poDetlId', 'poCode', 'qrcode', 'packName', 'createTime', 'memo', 'fieldsIndex', 'matnrId', 'splrCode', 'status', 'createBy$']}
- >
- <NumberField source="id" />
- <NumberField source="asnId" label="table.field.asnOrderItemLog.asnId" />
- <TextField source="asnCode" label="table.field.asnOrderItemLog.asnCode" />
- <TextField source="platItemId" label="table.field.asnOrderItemLog.platItemId" />
- <NumberField source="poDetlId" label="table.field.asnOrderItemLog.poDetlId" />
- <TextField source="poCode" label="table.field.asnOrderItemLog.poCode" />
- <TextField source="fieldsIndex" label="table.field.asnOrderItemLog.fieldsIndex" />
- <TextField source="matnrId" label="table.field.asnOrderItemLog.matnrId" />
- <TextField source="matnrCode" label="table.field.asnOrderItemLog.matnrCode" />
- <TextField source="maktx" label="table.field.asnOrderItemLog.maktx" />
- <NumberField source="anfme" label="table.field.asnOrderItemLog.anfme" />
- <NumberField source="purQty" label="table.field.asnOrderItemLog.purQty" />
- <TextField source="purUnit" label="table.field.asnOrderItemLog.purUnit" />
- <NumberField source="qty" label="table.field.asnOrderItemLog.qty" />
- <TextField source="splrCode" label="table.field.asnOrderItemLog.splrCode" />
- <TextField source="splrBatch" label="table.field.asnOrderItemLog.splrBatch" />
- <TextField source="splrName" label="table.field.asnOrderItemLog.splrName" />
- <TextField source="qrcode" label="table.field.asnOrderItemLog.qrcode" />
- <TextField source="trackCode" label="table.field.asnOrderItemLog.trackCode" />
- <TextField source="packName" label="table.field.asnOrderItemLog.packName" />
- <TextField source="ntyStatus$" label="table.field.asnOrderItemLog.ntyStatus" sortable={false} />
- <TextField source="updateBy$" label="common.field.updateBy" />
- <TextField source="createBy$" label="common.field.createBy" />
- <DateField source="createTime" label="common.field.createTime" showTime />
- <TextField source="memo" label="common.field.memo" sortable={false} />
- </StyledDatagrid>
- </List>
- <PageDrawer
- title='AsnOrderItemLog Detail'
- drawerVal={drawerVal}
- setDrawerVal={setDrawerVal}
- >
- </PageDrawer>
- </Box>
- )
-}
-
-export default AsnOrderItemLogList;
diff --git a/rsf-admin/src/page/asnOrderLog/AsnOrderLogCreate.jsx b/rsf-admin/src/page/asnOrderLog/AsnOrderLogCreate.jsx
deleted file mode 100644
index cedf651..0000000
--- a/rsf-admin/src/page/asnOrderLog/AsnOrderLogCreate.jsx
+++ /dev/null
@@ -1,195 +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 AsnOrderLogCreate = (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}>
- <TextInput
- label="table.field.asnOrderLog.code"
- source="code"
- parse={v => v}
- autoFocus
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.asnOrderLog.poCode"
- source="poCode"
- parse={v => v}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.asnOrderLog.poId"
- source="poId"
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.asnOrderLog.type"
- source="type"
- parse={v => v}
- validate={required()}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.asnOrderLog.wkType"
- source="wkType"
- parse={v => v}
- validate={required()}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.asnOrderLog.anfme"
- source="anfme"
- validate={required()}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.asnOrderLog.qty"
- source="qty"
- validate={required()}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.asnOrderLog.logisNo"
- source="logisNo"
- parse={v => v}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <DateInput
- label="table.field.asnOrderLog.arrTime"
- source="arrTime"
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <SelectInput
- label="table.field.asnOrderLog.rleStatus"
- source="rleStatus"
- choices={[
- { id: 0, name: ' 姝e父' },
- { id: 1, name: ' 宸查噴鏀�' },
- ]}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <SelectInput
- label="table.field.asnOrderLog.ntyStatus"
- source="ntyStatus"
- choices={[
- { id: 0, name: ' 鏈笂鎶�' },
- { id: 1, name: ' 宸蹭笂鎶�' },
- { id: 2, name: ' 閮ㄥ垎涓婃姤' },
- ]}
- />
- </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 AsnOrderLogCreate;
diff --git a/rsf-admin/src/page/asnOrderLog/AsnOrderLogEdit.jsx b/rsf-admin/src/page/asnOrderLog/AsnOrderLogEdit.jsx
deleted file mode 100644
index 4e61d1b..0000000
--- a/rsf-admin/src/page/asnOrderLog/AsnOrderLogEdit.jsx
+++ /dev/null
@@ -1,144 +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, Card } from '@mui/material';
-import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting';
-import EditBaseAside from "../components/EditBaseAside";
-import CustomerTopToolBar from "../components/EditTopToolBar";
-import AsnOrderItemLogList from "./AsnOrderItemLogList"
-const FormToolbar = () => {
- return (
- <Toolbar sx={{ justifyContent: 'end' }}>
- <SaveButton />
- </Toolbar>
- )
-}
-
-const AsnOrderLogEdit = () => {
- 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={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>
- </SimpleForm>
- </Edit >
- <Grid item xs={24} md={16} sx={{ marginTop: '1em' }}>
- <Typography variant="h6" gutterBottom >
- {translate('common.edit.title.common')}
- </Typography>
- </Grid>
- <AsnOrderItemLogList />
- </>
- )
-}
-
-export default AsnOrderLogEdit;
diff --git a/rsf-admin/src/page/asnOrderLog/AsnOrderLogList.jsx b/rsf-admin/src/page/asnOrderLog/AsnOrderLogList.jsx
deleted file mode 100644
index ceb24f6..0000000
--- a/rsf-admin/src/page/asnOrderLog/AsnOrderLogList.jsx
+++ /dev/null
@@ -1,170 +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 AsnOrderLogCreate from "./AsnOrderLogCreate";
-import AsnOrderLogPanel from "./AsnOrderLogPanel";
-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 />,
- <TextInput source="code" label="table.field.asnOrderLog.code" />,
- <TextInput source="poCode" label="table.field.asnOrderLog.poCode" />,
- <NumberInput source="poId" label="table.field.asnOrderLog.poId" />,
- <TextInput source="type" label="table.field.asnOrderLog.type" />,
- <TextInput source="wkType" label="table.field.asnOrderLog.wkType" />,
- <NumberInput source="anfme" label="table.field.asnOrderLog.anfme" />,
- <NumberInput source="qty" label="table.field.asnOrderLog.qty" />,
- <TextInput source="logisNo" label="table.field.asnOrderLog.logisNo" />,
- <DateInput source="arrTime" label="table.field.asnOrderLog.arrTime" />,
- <SelectInput source="rleStatus" label="table.field.asnOrderLog.rleStatus"
- choices={[
- { id: 0, name: ' 姝e父' },
- { id: 1, name: ' 宸查噴鏀�' },
- ]}
- />,
- <SelectInput source="ntyStatus" label="table.field.asnOrderLog.ntyStatus"
- choices={[
- { id: 0, name: ' 鏈笂鎶�' },
- { id: 1, name: ' 宸蹭笂鎶�' },
- { id: 2, name: ' 閮ㄥ垎涓婃姤' },
- ]}
- />,
-
- <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 AsnOrderLogList = () => {
- 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.asnOrderLog"}
- empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
- filters={filters}
- sort={{ field: "create_time", order: "desc" }}
- actions={(
- <TopToolbar>
- <FilterButton />
- {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */}
- <SelectColumnsButton preferenceKey='asnOrderLog' />
- <MyExportButton />
- </TopToolbar>
- )}
- perPage={DEFAULT_PAGE_SIZE}
- >
- <StyledDatagrid
- preferenceKey='asnOrderLog'
- bulkActionButtons={false}
- rowClick={'edit'}
- expand={false}
- expandSingle={true}
- omit={['id', 'createTime', 'createBy', 'memo', 'rleStatus']}
- >
- <NumberField source="id" />
- <TextField source="code" label="table.field.asnOrderLog.code" />
- <TextField source="poCode" label="table.field.asnOrderLog.poCode" />
- <NumberField source="poId" label="table.field.asnOrderLog.poId" />
- <TextField source="type$" label="table.field.asnOrderLog.type" />
- <TextField source="wkType$" label="table.field.asnOrderLog.wkType" />
- <NumberField source="anfme" label="table.field.asnOrderLog.anfme" />
- <NumberField source="qty" label="table.field.asnOrderLog.qty" />
- <TextField source="logisNo" label="table.field.asnOrderLog.logisNo" />
- <DateField source="arrTime" label="table.field.asnOrderLog.arrTime" showTime />
- <TextField source="rleStatus$" label="table.field.asnOrderLog.rleStatus" sortable={false} />
- <TextField source="ntyStatus$" label="table.field.asnOrderLog.ntyStatus" sortable={false} />
- <TextField source="updateBy$" label="common.field.updateBy" />
- <DateField source="updateTime" label="common.field.updateTime" showTime />
- <TextField source="createBy$" label="common.field.createBy"/>
- <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>
- <AsnOrderLogCreate
- open={createDialog}
- setOpen={setCreateDialog}
- />
- <PageDrawer
- title='AsnOrderLog Detail'
- drawerVal={drawerVal}
- setDrawerVal={setDrawerVal}
- >
- </PageDrawer>
- </Box>
- )
-}
-
-export default AsnOrderLogList;
diff --git a/rsf-admin/src/page/asnOrderLog/AsnOrderLogPanel.jsx b/rsf-admin/src/page/asnOrderLog/AsnOrderLogPanel.jsx
deleted file mode 100644
index 1058e9d..0000000
--- a/rsf-admin/src/page/asnOrderLog/AsnOrderLogPanel.jsx
+++ /dev/null
@@ -1,143 +0,0 @@
-import React, { useState, useRef, useEffect, useMemo } from "react";
-import { Box, Card, CardContent, Grid, Typography, Button, TextField, Tooltip, Paper, TableContainer, Table, TableBody, TableCell, TableHead, TableRow } from '@mui/material';
-import {
- useTranslate,
- useRecordContext,
- useNotify,
- useRefresh,
- useListContext,
-} from 'react-admin';
-import PanelTypography from "../components/PanelTypography";
-import * as Common from '@/utils/common'
-import { styled } from "@mui/material/styles";
-import request from '@/utils/request';
-import debounce from 'lodash/debounce';
-import { DataGrid } from '@mui/x-data-grid';
-
-const AsnOrderLogPanel = () => {
- const record = useRecordContext();
- if (!record) return null;
- const translate = useTranslate();
- const notify = useNotify();
- const [rows, setRows] = useState([]);
- const [maktx, setMaktx] = useState('');
- const asnId = record.asnId;
-
- useEffect(() => {
- debouncedHttp({ maktx });
- }, [asnId, maktx]);
-
-
- const http = async (parmas) => {
- const res = await request.post('/asnOrderItemLog/page', { ...parmas, asnId });
- if (res?.data?.code === 200) {
- setRows(res.data.data.records)
- } else {
- notify(res.data.msg);
- }
- }
-
- const debouncedHttp = useMemo(() => debounce(http, 300), []);
-
- const columns = [
- {
- field: 'asnId',
- headerName: translate('table.field.asnOrderItemLog.asnId')
- },
- {
- field: 'asnCode',
- headerName: translate('table.field.asnOrderItemLog.asnCode')
- },
- {
- field: 'poDetlId',
- headerName: translate('table.field.asnOrderItemLog.poDetlId')
- },
- {
- field: 'poCode',
- headerName: translate('table.field.asnOrderItemLog.poDetlCode')
- },
- {
- field: 'matnrId',
- headerName: translate('table.field.asnOrderItemLog.matnrId')
- },
- {
- field: 'matnrCode',
- headerName: translate('table.field.asnOrderItemLog.matnrCode')
- },
- {
- field: 'maktx',
- headerName: translate('table.field.asnOrderItemLog.maktx')
- },
- {
- field: 'anfme',
- headerName: translate('table.field.asnOrderItemLog.purQty')
- },
- {
- field: 'purUnit',
- headerName: translate('table.field.asnOrderItemLog.purUnit')
- },
- {
- field: 'qty',
- headerName: translate('table.field.asnOrderItemLog.qty')
- },
- {
- field: 'splrBatch',
- headerName: translate('table.field.asnOrderItem.splrBatch')
- },
- {
- field: 'splrCode',
- headerName: translate('table.field.asnOrderItemLog.splrCode')
- },
- {
- field: 'splrName',
- headerName: translate('table.field.asnOrderItemLog.splrName')
- },
- {
- field: 'trackCode',
- headerName: translate('table.field.asnOrderItemLog.barcode')
- },
- {
- field: 'prodTime',
- headerName: translate('table.field.asnOrderItem.prodTime')
- },
- {
- field: 'packName',
- headerName: translate('table.field.asnOrderItemLog.packName')
- },
- {
- field: 'ntyStatus$',
- headerName: translate('table.field.asnOrderItemLog.ntyStatus')
- }]
-
- const maktxChange = (value) => {
- setMaktx(value)
- }
-
- return (
- <Box sx={{
- position: 'relative',
- padding: '5px 10px'
- }}>
-
- <div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: '4px', alignItems: 'center' }}>
- <TextField value={maktx} onChange={(e) => maktxChange(e.target.value)} label="鎼滅储鐗╂枡" variant="outlined" sx={{ width: '300px' }} size="small" />
-
- <div style={{ display: 'flex', gap: '10px' }}>
- </div>
- </div>
-
-
- <DataGrid
- size="small"
- rows={rows}
- columns={columns}
- disableRowSelectionOnClick
- disableColumnMenu={true}
- disableColumnSorting
- disableMultipleColumnsSorting
- />
- </Box >
- );
-};
-
-export default AsnOrderLogPanel;
diff --git a/rsf-admin/src/page/asnOrderLog/index.jsx b/rsf-admin/src/page/asnOrderLog/index.jsx
deleted file mode 100644
index e292c57..0000000
--- a/rsf-admin/src/page/asnOrderLog/index.jsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import React, { useState, useRef, useEffect, useMemo } from "react";
-import {
- ListGuesser,
- EditGuesser,
- ShowGuesser,
-} from "react-admin";
-
-import AsnOrderLogList from "./AsnOrderLogList";
-import AsnOrderLogEdit from "./AsnOrderLogEdit";
-
-export default {
- list: AsnOrderLogList,
- edit: AsnOrderLogEdit,
- show: ShowGuesser,
- recordRepresentation: (record) => {
- return `${record.id}`
- }
-};
diff --git a/rsf-admin/src/page/qlyInspect/QlyInspectEdit.jsx b/rsf-admin/src/page/qlyInspect/QlyInspectEdit.jsx
index 895ebc6..d44da31 100644
--- a/rsf-admin/src/page/qlyInspect/QlyInspectEdit.jsx
+++ b/rsf-admin/src/page/qlyInspect/QlyInspectEdit.jsx
@@ -28,12 +28,13 @@
import CustomerTopToolBar from "../components/EditTopToolBar";
import MemoInput from "../components/MemoInput";
import StatusSelectInput from "../components/StatusSelectInput";
+import QlyIsptItemList from "./QlyIsptItemList";
const FormToolbar = () => {
const { getValues } = useFormContext();
return (
- <Toolbar sx={{ justifyContent: 'space-between' }}>
+ <Toolbar sx={{ justifyContent: 'end' }}>
<SaveButton />
<DeleteButton mutationMode="optimistic" />
</Toolbar>
@@ -42,86 +43,82 @@
const QlyInspectEdit = () => {
const translate = useTranslate();
+ const business = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_business_type')) || [];
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}>
- <NumberInput
- label="table.field.qlyInspect.asnItemId"
- source="asnItemId"
- autoFocus
- />
- </Stack>
- <Stack direction='row' gap={2}>
- <TextInput
- label="table.field.qlyInspect.code"
- source="code"
- parse={v => v}
- validate={required()}
- />
- </Stack>
- <Stack direction='row' gap={2}>
- <TextInput
- label="table.field.qlyInspect.wkType"
- source="wkType"
- parse={v => v}
- />
- </Stack>
- <Stack direction='row' gap={2}>
- <NumberInput
- label="table.field.qlyInspect.safeQty"
- source="safeQty"
- />
- </Stack>
- <Stack direction='row' gap={2}>
- <NumberInput
- label="table.field.qlyInspect.dlyQty"
- source="dlyQty"
- />
- </Stack>
- <Stack direction='row' gap={2}>
- <NumberInput
- label="table.field.qlyInspect.rcptQty"
- source="rcptQty"
- />
- </Stack>
- <Stack direction='row' gap={2}>
- <NumberInput
- label="table.field.qlyInspect.isptQty"
- source="isptQty"
- />
- </Stack>
+ <SimpleForm
+ shouldUnregister
+ warnWhenUnsavedChanges
+ toolbar={<FormToolbar />}
+ mode="onTouched"
+ defaultValues={{}}
+ >
+ <Grid container width={{ xs: '100%', xl: '100%' }}>
+ <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.qlyInspect.asnCode"
+ source="asnCode"
+ readOnly
+ />
+ <TextInput
+ label="table.field.qlyInspect.code"
+ source="code"
+ parse={v => v}
+ readOnly
+ validate={required()}
+ />
+ <AutocompleteInput
+ choices={business}
+ optionText="label"
+ label="table.field.asnOrder.wkType"
+ source="wkType"
+ readOnly
+ optionValue="value"
+ parse={v => v}
+ />
+ </Stack>
+ <Stack direction='row' gap={2}>
+ <NumberInput
+ label="table.field.qlyInspect.safeQty"
+ source="safeQty"
+ readOnly
+ />
+ <NumberInput
+ label="table.field.qlyInspect.dlyQty"
+ source="dlyQty"
+ readOnly
+ />
+ <NumberInput
+ label="table.field.qlyInspect.rcptQty"
+ source="rcptQty"
+ readOnly
+
+ />
+ <NumberInput
+ label="table.field.qlyInspect.isptQty"
+ source="isptQty"
+ readOnly
+
+ />
+ </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 >
+ <QlyIsptItemList />
+ </>
)
}
diff --git a/rsf-admin/src/page/qlyInspect/QlyInspectList.jsx b/rsf-admin/src/page/qlyInspect/QlyInspectList.jsx
index 5a0bbc3..76c6410 100644
--- a/rsf-admin/src/page/qlyInspect/QlyInspectList.jsx
+++ b/rsf-admin/src/page/qlyInspect/QlyInspectList.jsx
@@ -128,8 +128,7 @@
<StyledDatagrid
preferenceKey='qlyInspect'
bulkActionButtons={<BulkDeleteButton mutationMode={OPERATE_MODE} />}
- rowClick={(id, resource, record) => false}
- expand={() => <QlyInspectPanel />}
+ rowClick='edit'
expandSingle={true}
omit={['id', 'createTime', 'createBy', 'memo', 'asnId', 'statusBool']}
>
@@ -143,14 +142,9 @@
<NumberField source="dlyQty" label="table.field.qlyInspect.dlyQty" />
<NumberField source="rcptQty" label="table.field.qlyInspect.rcptQty" />
<NumberField source="isptQty" label="table.field.qlyInspect.isptQty" />
-
- <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
- <TextField source="nickname" />
- </ReferenceField>
+ <TextField source="updateBy$" label="common.field.updateBy" />
<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>
+ <TextField source="createBy$" label="common.field.createBy" />
<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} />
diff --git a/rsf-admin/src/page/qlyIsptItem/QlyIsptItemList.jsx b/rsf-admin/src/page/qlyIsptItem/QlyIsptItemList.jsx
index ff12b3d..fa17cff 100644
--- a/rsf-admin/src/page/qlyIsptItem/QlyIsptItemList.jsx
+++ b/rsf-admin/src/page/qlyIsptItem/QlyIsptItemList.jsx
@@ -88,7 +88,6 @@
const QlyIsptItemList = () => {
const translate = useTranslate();
-
const [createDialog, setCreateDialog] = useState(false);
const [drawerVal, setDrawerVal] = useState(false);
diff --git a/rsf-admin/src/page/system/dicts/dictType/DictDataList.jsx b/rsf-admin/src/page/system/dicts/dictType/DictDataList.jsx
index 9f5bad2..f41049c 100644
--- a/rsf-admin/src/page/system/dicts/dictType/DictDataList.jsx
+++ b/rsf-admin/src/page/system/dicts/dictType/DictDataList.jsx
@@ -43,7 +43,7 @@
import MyCreateButton from "../../../components/MyCreateButton";
import MyExportButton from '../../../components/MyExportButton';
import PageDrawer from "../../../components/PageDrawer";
-import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
+import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, DEFAULT_ITEM_PAGE_SIZE } from '@/config/setting';
import DictDataEdit from "./DictDataEdit";
import { use } from "react";
@@ -117,7 +117,7 @@
<MyExportButton />
</TopToolbar>
)}
- perPage={DEFAULT_PAGE_SIZE}
+ perPage={DEFAULT_ITEM_PAGE_SIZE}
>
<StyledDatagrid
bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
@@ -140,7 +140,7 @@
<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">
- <Button onClick={() => { setEditDialog(true) }}>缂栬緫</Button>
+ <Button onClick={() => { setEditDialog(true) }} label="ra.action.edit"></Button>
<DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode='pessimistic' redirect={"/dictType/" + dictId} />
</WrapperField>
</StyledDatagrid>
diff --git a/rsf-admin/src/page/waitPakin/WaitPakinEdit.jsx b/rsf-admin/src/page/waitPakin/WaitPakinEdit.jsx
index 93a66e4..91fcd56 100644
--- a/rsf-admin/src/page/waitPakin/WaitPakinEdit.jsx
+++ b/rsf-admin/src/page/waitPakin/WaitPakinEdit.jsx
@@ -2,38 +2,29 @@
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";
+import WaitPakinItem from "../waitPakinItem";
+import WaitPakinItemList from "../waitPakinItem/WaitPakinItemList";
const FormToolbar = () => {
const { getValues } = useFormContext();
return (
- <Toolbar sx={{ justifyContent: 'space-between' }}>
+ <Toolbar sx={{ justifyContent: 'end' }}>
<SaveButton />
<DeleteButton mutationMode="optimistic" />
</Toolbar>
@@ -44,82 +35,79 @@
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.waitPakin.code"
- source="code"
- parse={v => v}
- autoFocus
- />
- </Stack>
- <Stack direction='row' gap={2}>
- <NumberInput
- label="table.field.waitPakin.ansId"
- source="ansId"
- />
- </Stack>
- <Stack direction='row' gap={2}>
- <TextInput
- label="table.field.waitPakin.asnCode"
- source="asnCode"
- parse={v => v}
- />
- </Stack>
- <Stack direction='row' gap={2}>
- <TextInput
- label="table.field.waitPakin.barcode"
- source="barcode"
- parse={v => v}
- />
- </Stack>
- <Stack direction='row' gap={2}>
- <NumberInput
- label="table.field.waitPakin.anfme"
- source="anfme"
- />
- </Stack>
- <Stack direction='row' gap={2}>
- <SelectInput
- label="table.field.waitPakin.ioStatus"
- source="ioStatus"
- choices={[
- { id: 0, name: '寰呭叆搴�' },
- { id: 1, name: ' 鍏ュ簱涓�' },
- ]}
- />
- </Stack>
-
+ <SimpleForm
+ shouldUnregister
+ warnWhenUnsavedChanges
+ toolbar={<FormToolbar />}
+ mode="onTouched"
+ defaultValues={{}}
+ >
+ <Grid container width={{ xs: '100%', xl: '100%' }}>
+ <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.waitPakin.code"
+ source="code"
+ readOnly
+ parse={v => v}
+ autoFocus
+ />
+ <NumberInput
+ label="table.field.waitPakin.ansId"
+ readOnly
+ source="ansId"
+ />
+ <TextInput
+ label="table.field.waitPakin.asnCode"
+ readOnly
+ source="asnCode"
+ parse={v => v}
+ />
+ <SelectInput
+ label="table.field.waitPakin.flagDefect"
+ readOnly
+ source="flagDefect"
+ parse={v => v}
+ />
+ </Stack>
+ <Stack direction='row' gap={2}>
+ <TextInput
+ label="table.field.waitPakin.barcode"
+ readOnly
+ source="barcode"
+ parse={v => v}
+ />
+ <NumberInput
+ label="table.field.waitPakin.anfme"
+ readOnly
+ source="anfme"
+ />
+ <SelectInput
+ label="table.field.waitPakin.ioStatus"
+ readOnly
+ source="ioStatus"
+ choices={[
+ { id: 0, name: '寰呭叆搴�' },
+ { id: 1, name: ' 鍏ュ簱涓�' },
+ ]}
+ />
+ </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 >
+ <WaitPakinItemList />
+ </>
)
}
diff --git a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx
index 11405c2..39739cc 100644
--- a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx
+++ b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx
@@ -39,12 +39,9 @@
import WaitPakinCreate from "./WaitPakinCreate";
import WaitPakinPanel from "./WaitPakinPanel";
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';
import AddIcon from '@mui/icons-material/Add';
import request from '@/utils/request';
@@ -64,7 +61,6 @@
const filters = [
<SearchInput source="condition" alwaysOn />,
-
<TextInput source="code" label="table.field.waitPakin.code" />,
<NumberInput source="ansId" label="table.field.waitPakin.ansId" />,
<TextInput source="asnCode" label="table.field.waitPakin.asnCode" />,
@@ -76,7 +72,6 @@
{ id: 1, name: ' 鍏ュ簱涓�' },
]}
/>,
-
<TextInput label="common.field.memo" source="memo" />,
<SelectInput
label="common.field.status"
@@ -91,7 +86,6 @@
const WaitPakinList = () => {
const translate = useTranslate();
-
const [createDialog, setCreateDialog] = useState(false);
const [drawerVal, setDrawerVal] = useState(false);
@@ -113,7 +107,6 @@
actions={(
<TopToolbar>
<FilterButton />
- {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */}
<SelectColumnsButton preferenceKey='waitPakin' />
<MyExportButton />
</TopToolbar>
@@ -123,8 +116,8 @@
<StyledDatagrid
preferenceKey='waitPakin'
bulkActionButtons={<> <CreateTaskButton /> <BulkDeleteButton mutationMode={OPERATE_MODE} /></>}
- rowClick={(id, resource, record) => false}
- expand={() => <WaitPakinPanel />}
+ rowClick='edit'
+ expand={false}
expandSingle={true}
omit={['id', 'createTime', 'createBy', 'memo']}
>
@@ -135,20 +128,14 @@
<TextField source="barcode" label="table.field.waitPakin.barcode" />
<NumberField source="anfme" label="table.field.waitPakin.anfme" />
<TextField source="ioStatus$" label="table.field.waitPakin.ioStatus" sortable={false} />
-
- <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>
+ <TextField source="updateBy$" label="common.field.updateBy" />
+ <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} />
<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} />
+ <EditButton label="toolbar.detail" sx={{ padding: '1px', fontSize: '.75rem' }} />
+ {/* <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */}
</WrapperField>
</StyledDatagrid>
</List>
diff --git a/rsf-admin/src/page/waitPakinItem/WaitPakinItemList.jsx b/rsf-admin/src/page/waitPakinItem/WaitPakinItemList.jsx
index 6cbc531..9d8f88f 100644
--- a/rsf-admin/src/page/waitPakinItem/WaitPakinItemList.jsx
+++ b/rsf-admin/src/page/waitPakinItem/WaitPakinItemList.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';
@@ -41,7 +42,7 @@
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 { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, DEFAULT_ITEM_PAGE_SIZE } from '@/config/setting';
import * as Common from '@/utils/common';
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
@@ -60,7 +61,6 @@
const filters = [
<SearchInput source="condition" alwaysOn />,
-
<NumberInput source="pakinId" label="table.field.waitPakinItem.pakinId" />,
<TextInput source="maktx" label="table.field.waitPakinItem.maktx" />,
<NumberInput source="matnrId" label="table.field.waitPakinItem.matnrId" />,
@@ -71,7 +71,6 @@
<TextInput source="fieldsIndex" label="table.field.waitPakinItem.fieldsIndex" />,
<NumberInput source="qty" label="table.field.waitPakinItem.qty" />,
<TextInput source="batch" label="table.field.waitPakinItem.batch" />,
-
<TextInput label="common.field.memo" source="memo" />,
<SelectInput
label="common.field.status"
@@ -86,13 +85,15 @@
const WaitPakinItemList = () => {
const translate = useTranslate();
-
const [createDialog, setCreateDialog] = useState(false);
const [drawerVal, setDrawerVal] = useState(false);
+ const pakinId = useGetRecordId();
return (
<Box display="flex">
<List
+ resource="waitPakinItem"
+ filter={{pakinId: pakinId}}
sx={{
flexGrow: 1,
transition: (theme) =>
@@ -113,7 +114,7 @@
<MyExportButton />
</TopToolbar>
)}
- perPage={DEFAULT_PAGE_SIZE}
+ perPage={DEFAULT_ITEM_PAGE_SIZE}
>
<StyledDatagrid
preferenceKey='waitPakinItem'
@@ -132,21 +133,13 @@
<TextField source="fieldsIndex" label="table.field.waitPakinItem.fieldsIndex" />
<NumberField source="qty" label="table.field.waitPakinItem.qty" />
<TextField source="batch" label="table.field.waitPakinItem.batch" />
-
- <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
- <TextField source="nickname" />
- </ReferenceField>
+ <TextField source="updateBy$" label="common.field.updateBy" />
<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>
+ <TextField source="createBy$" label="common.field.createBy" />
+ <TextField source="flagDefect" label="common.field.createBy" />
<DateField source="createTime" label="common.field.createTime" showTime />
<BooleanField source="statusBool" label="common.field.status" sortable={false} />
<TextField source="memo" label="common.field.memo" sortable={false} />
- <WrapperField cellClassName="opt" label="common.field.opt">
- {/* <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} /> */}
- <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
- </WrapperField>
</StyledDatagrid>
</List>
<WaitPakinItemCreate
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 ddeb48c..c0d588d 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
@@ -145,6 +145,7 @@
@ApiOperation("缁勬嫋")
@PostMapping("/waitPakin/merge")
public R pikinOrder(@RequestBody WaitPakinParam waitPakin) {
+ Long userId = getLoginUserId();
if (Objects.isNull(waitPakin)) {
return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
@@ -154,7 +155,7 @@
if (Objects.isNull(waitPakin.getItems()) || waitPakin.getItems().isEmpty()) {
return R.error("璺熻釜鐮佷笉鑳戒负绌猴紒锛�");
}
- return R.ok(mobileService.mergeItems(waitPakin));
+ return R.ok(mobileService.mergeItems(waitPakin, userId));
}
@PreAuthorize("hasAuthority('manager:waitPakin:update')")
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 ab4daa7..932f558 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
@@ -38,7 +38,7 @@
R getDeltByCode(String code);
- WaitPakin mergeItems(WaitPakinParam waitPakin);
+ WaitPakin mergeItems(WaitPakinParam waitPakin, Long userId);
WaitPakin unBind(WaitPakinParam param);
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 c8cd598..5dd5d83 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
@@ -16,7 +16,6 @@
import com.vincent.rsf.server.common.security.JwtSubject;
import com.vincent.rsf.server.common.utils.CommonUtil;
import com.vincent.rsf.server.common.utils.FieldsUtils;
-import com.vincent.rsf.server.common.utils.JSONUtil;
import com.vincent.rsf.server.common.utils.JwtUtil;
import com.vincent.rsf.server.manager.controller.params.IsptItemsParams;
import com.vincent.rsf.server.manager.controller.params.WaitPakinParam;
@@ -32,13 +31,10 @@
import com.vincent.rsf.server.system.entity.*;
import com.vincent.rsf.server.system.mapper.FieldsMapper;
import com.vincent.rsf.server.system.mapper.TenantMapper;
-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;
@@ -48,7 +44,6 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
-import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -370,7 +365,8 @@
*/
@Override
public R getReceiptAreas() {
- return R.ok(warehouseAreasService.list(new LambdaQueryWrapper<WarehouseAreas>().eq(WarehouseAreas::getType, WarehouseAreaType.WAREHOUSE_AREA_RECEIPT.type)));
+ List<WarehouseAreas> areas = warehouseAreasService.list(new LambdaQueryWrapper<WarehouseAreas>().eq(WarehouseAreas::getType, WarehouseAreaType.WAREHOUSE_AREA_RECEIPT.type));
+ return R.ok(areas);
}
/**
@@ -403,15 +399,16 @@
}
/**
+ * @param
+ * @param userId
+ * @return
* @author Ryan
* @description PDA缁勬嫋
- * @param
- * @return
* @time 2025/3/29 14:26
*/
@Override
- public WaitPakin mergeItems(WaitPakinParam waitPakin) {
- return waitPakinService.mergeItems(waitPakin);
+ public WaitPakin mergeItems(WaitPakinParam waitPakin, Long userId) {
+ return waitPakinService.mergeItems(waitPakin, userId);
}
/**
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaitPakinService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaitPakinService.java
index 32752f4..f6a22fb 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaitPakinService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaitPakinService.java
@@ -6,7 +6,7 @@
public interface WaitPakinService extends IService<WaitPakin> {
- WaitPakin mergeItems(WaitPakinParam waitPakin);
+ WaitPakin mergeItems(WaitPakinParam waitPakin, Long userId);
WaitPakin unBind(WaitPakinParam param);
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
index 07e3d46..4ab88da 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.manager.controller.params.PakinItem;
import com.vincent.rsf.server.manager.controller.params.WaitPakinParam;
@@ -16,7 +15,6 @@
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -41,15 +39,16 @@
private LocService locService;
/**
+ * @param
+ * @param userId
+ * @return
* @author Ryan
* @description 缁勬嫋
- * @param
- * @return
* @time 2025/3/29 14:42
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public WaitPakin mergeItems(WaitPakinParam waitPakin) {
+ public WaitPakin mergeItems(WaitPakinParam waitPakin, Long userId) {
if (waitPakin.getItems().isEmpty()) {
throw new CoolException("鍙傛暟閿欒锛氱墿鏂欒窡韪爜涓虹┖锛�");
}
@@ -125,6 +124,8 @@
.setFieldsIndex(item.getFieldsIndex())
.setMatnrId(item.getMatnrId())
.setMaktx(item.getMaktx())
+ .setUpdateBy(userId)
+ .setCreateBy(userId)
.setMatnrCode(item.getMatnrCode());
for (PakinItem waitPakinItem : waitPakin.getItems()) {
if (waitPakinItem.getTrackCode().equals(item.getTrackCode())) {
@@ -159,6 +160,8 @@
.setFieldsIndex(item.getFieldsIndex())
.setMatnrId(item.getMatnrId())
.setMaktx(item.getMaktx())
+ .setUpdateBy(userId)
+ .setCreateBy(userId)
.setMatnrCode(item.getMatnrCode());
for (PakinItem waitPakinItem : waitPakin.getItems()) {
if (waitPakinItem.getTrackCode().equals(item.getTrackCode())) {
--
Gitblit v1.9.1