From 9681ec4b36c4402070482ddfd4ae0ea2de409d8d Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 16 四月 2025 09:58:53 +0800 Subject: [PATCH] #新增 1. 综合订单界面优化 2. 添加库位详细界面 --- rsf-admin/src/page/orders/stock/OrderItemEdit.jsx | 40 +- rsf-admin/src/page/orders/stock/OrderList.jsx | 33 rsf-admin/src/page/stockItem/StockItemCreate.jsx | 60 +- rsf-admin/src/page/orders/stock/OrderPanel.jsx | 14 rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java | 4 rsf-admin/src/page/orders/stock/index.jsx | 0 rsf-admin/src/page/stockItem/StockItemEdit.jsx | 62 +- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java | 30 - rsf-admin/src/page/basicInfo/loc/LocItemList.jsx | 47 +- rsf-admin/src/page/orders/stock/OrderItemCreate.jsx | 40 +- rsf-admin/src/i18n/zh.js | 26 + rsf-admin/src/i18n/en.js | 20 + rsf-admin/src/page/ResourceContent.js | 6 rsf-admin/src/page/stockItem/StockItemList.jsx | 120 +++-- rsf-admin/src/page/orders/stock/OrderEdit.jsx | 27 rsf-admin/src/page/stockItem/StockItemPanel.jsx | 116 +++-- rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx | 5 rsf-admin/src/page/orders/stock/OrderItemList.jsx | 106 ++-- rsf-admin/src/page/basicInfo/loc/LocList.jsx | 9 rsf-admin/src/page/stockItem/index.jsx | 8 rsf-admin/src/page/basicInfo/loc/LocItemEdit.jsx | 0 rsf-server/src/main/java/stockItem.sql | 41 ++ rsf-admin/src/page/basicInfo/loc/LocEdit.jsx | 252 ++++++------- rsf-admin/src/page/orders/stock/OrderCreate.jsx | 12 rsf-admin/src/page/basicInfo/loc/LocItemCreate.jsx | 6 25 files changed, 563 insertions(+), 521 deletions(-) diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js index 1be1035..120c1aa 100644 --- a/rsf-admin/src/i18n/en.js +++ b/rsf-admin/src/i18n/en.js @@ -162,7 +162,7 @@ taskLog: 'TaskLog', orderItem: 'OrderItem', order: 'Order', - + locItem: 'LocItem', }, table: { field: { @@ -775,6 +775,24 @@ prodTime: "prodTime", packName: "packName", }, + locItem: { + locId: "locId", + orderId: "orderId", + type: "type", + orderItemId: "orderItemId", + wkType: "wkType", + matnrId: "matnrId", + maktx: "maktx", + matnrCode: "matnrCode", + trackCode: "trackCode", + unit: "unit", + anfme: "anfme", + batch: "batch", + splrBatch: "splrBatch", + spec: "spec", + model: "model", + fieldsIndex: "fieldsIndex", + }, } }, page: { diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js index 4b09dba..c2430d1 100644 --- a/rsf-admin/src/i18n/zh.js +++ b/rsf-admin/src/i18n/zh.js @@ -162,7 +162,9 @@ taskItem: '浠诲姟妗f槑缁�', taskLog: '浠诲姟鍘嗗彶妗�', taskItemLog: '浠诲姟鏄庣粏鍘嗗彶妗�', - order: '缁煎悎鍗曟嵁绠$悊', + stock: '缁煎悎鍗曟嵁绠$悊', + stockItem: '鍗曟嵁鏄庣粏', + locItem: 'LocItem', }, table: { @@ -754,7 +756,7 @@ spec: "瑙勬牸", model: "鍨嬪彿", }, - order: { + stock: { code: "缂栫爜", sourceCode: "婧愬崟鎹�", sourceId: "婧愬崟鎹甀D", @@ -762,7 +764,7 @@ wkType: "涓氬姟绫诲瀷", anfme: "鏁伴噺", }, - orderItem: { + stockItem: { orderId: "涓诲崟ID", orderCode: "鍗曟嵁缂栫爜", sourceItemId: "婧愭槑缁咺D", @@ -784,6 +786,24 @@ prodTime: "鐢熶骇鏃ユ湡", packName: "鍖呰鍚嶇О", }, + locItem: { + locId: "搴撲綅ID", + orderId: "璁㈠崟ID", + type: "鍗曟嵁绫诲瀷", + orderItemId: "鍗曟嵁鏄庣粏ID", + wkType: "涓氬姟绫诲瀷", + matnrId: "鐗╂枡ID", + maktx: "鐗╂枡鍚嶇О", + matnrCode: "鐗╂枡缂栫爜", + trackCode: "璺熻釜鐮�", + unit: "鍗曚綅", + anfme: "鏁伴噺", + batch: "鎵规", + splrBatch: "渚涘簲鍟嗘壒娆�", + spec: "瑙勬牸", + model: "鍨嬪彿", + fieldsIndex: "鍔ㄦ�佺储寮�", + }, } }, page: { diff --git a/rsf-admin/src/page/ResourceContent.js b/rsf-admin/src/page/ResourceContent.js index acd7bfb..2d9e7be 100644 --- a/rsf-admin/src/page/ResourceContent.js +++ b/rsf-admin/src/page/ResourceContent.js @@ -40,7 +40,7 @@ import asnOrderLog from './histories/asnOrderLog'; import task from './task'; import taskLog from './histories/taskLog'; -import order from './orders/order'; +import stock from './orders/stock'; const ResourceContent = (node) => { switch (node.component) { @@ -116,8 +116,8 @@ return task; case 'taskLog': return taskLog; - case 'order': - return order; + case 'stock': + return stock; default: return { list: ListGuesser, diff --git a/rsf-admin/src/page/basicInfo/loc/LocEdit.jsx b/rsf-admin/src/page/basicInfo/loc/LocEdit.jsx index 5b1182e..1e467c5 100644 --- a/rsf-admin/src/page/basicInfo/loc/LocEdit.jsx +++ b/rsf-admin/src/page/basicInfo/loc/LocEdit.jsx @@ -32,6 +32,7 @@ import StatusSelectInput from "../../components/StatusSelectInput"; import request from '@/utils/request'; import DictionarySelect from "../../components/DictionarySelect"; +import LocItemList from "./LocItemList"; const FormToolbar = () => { const { getValues } = useFormContext(); @@ -54,149 +55,126 @@ } return ( - <Edit - redirect="list" - mutationMode={EDIT_MODE} - actions={<CustomerTopToolBar />} - aside={<EditBaseAside />} - title={"menu.loc"} - > - <SimpleForm - shouldUnregister - warnWhenUnsavedChanges - toolbar={<FormToolbar />} - mode="onTouched" - defaultValues={{}} - // validate={(values) => { }} + <> + <Edit + redirect="list" + mutationMode={EDIT_MODE} + actions={<CustomerTopToolBar />} + aside={<EditBaseAside />} + title={"menu.loc"} > - <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}> - <Grid item xs={12} md={10}> - <Typography variant="h6" gutterBottom> - {translate('common.edit.title.main')} - </Typography> - <Grid container rowSpacing={2} columnSpacing={2}> - <Grid item xs={6} display="flex" gap={1}> - <ReferenceInput - source="warehouseId" - reference="warehouse" - > - <AutocompleteInput - label="table.field.loc.warehouseId" - optionText="name" - validate={[required()]} - onChange={warehouseChange} - filterToQuery={(val) => ({ name: val })} + <SimpleForm + shouldUnregister + warnWhenUnsavedChanges + toolbar={<FormToolbar />} + mode="onTouched" + defaultValues={{}} + // validate={(values) => { }} + > + <Grid container width={{ xs: '100%', xl: '90%' }} rowSpacing={3} columnSpacing={3}> + <Grid item xs={12} md={10}> + <Typography variant="h6" gutterBottom> + {translate('common.edit.title.main')} + </Typography> + <Grid container rowSpacing={2} columnSpacing={2}> + <Grid item display="flex" gap={2}> + <ReferenceInput + source="warehouseId" + reference="warehouse" + > + <AutocompleteInput + label="table.field.loc.warehouseId" + optionText="name" + validate={[required()]} + onChange={warehouseChange} + filterToQuery={(val) => ({ name: val })} + /> + </ReferenceInput> + <ReferenceInput + source="areaId" + reference="warehouseAreas" + filter={{ warehouseId }} + > + <AutocompleteInput + label="table.field.loc.areaId" + optionText="name" + validate={[required()]} + filterToQuery={(val) => ({ name: val })} + /> + </ReferenceInput> + <TextInput + label="table.field.loc.code" + source="code" + parse={v => v} + validate={required()} /> - </ReferenceInput> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <ReferenceInput - source="areaId" - reference="warehouseAreas" - filter={{ warehouseId }} - > - <AutocompleteInput - label="table.field.loc.areaId" - optionText="name" - validate={[required()]} - filterToQuery={(val) => ({ name: val })} + <NumberInput + label="table.field.loc.length" + source="length" + validate={required()} /> - </ReferenceInput> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.loc.code" - source="code" - parse={v => v} - validate={required()} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - {/* <AutocompleteInput - choices={dicts} - source="type" - optionText="label" - label="table.field.loc.type" - optionValue="value" - parse={v => v} - validate={[required()]} - /> */} - <ReferenceArrayInput source="typeIds" reference="locType" > - <SelectArrayInput label="table.field.loc.type" validate={[required()]} /> - </ReferenceArrayInput> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.loc.unit" - source="unit" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.loc.length" - source="length" - validate={required()} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.loc.width" - source="width" - validate={required()} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.loc.height" - source="height" - validate={required()} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.loc.row" - source="row" - validate={required()} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.loc.col" - source="col" - validate={required()} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.loc.lev" - source="lev" - validate={required()} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <DictionarySelect - label={translate("table.field.loc.useStatus")} - name="useStatus" - validate={[required()]} - size="small" - dictTypeCode="sys_loc_use_stas" - /> - </Grid> + <NumberInput + label="table.field.loc.width" + source="width" + validate={required()} + /> + + <NumberInput + label="table.field.loc.height" + source="height" + validate={required()} + /> + </Grid> + <Grid item display="flex" gap={1}> + <ReferenceArrayInput source="typeIds" reference="locType" > + <SelectArrayInput label="table.field.loc.type" validate={[required()]} /> + </ReferenceArrayInput> + <TextInput + label="table.field.loc.unit" + source="unit" + parse={v => v} + /> + <DictionarySelect + label={translate("table.field.loc.useStatus")} + name="useStatus" + validate={[required()]} + size="small" + dictTypeCode="sys_loc_use_stas" + /> + <NumberInput + label="table.field.loc.row" + source="row" + validate={required()} + /> + + <NumberInput + label="table.field.loc.col" + source="col" + validate={required()} + /> + + <NumberInput + label="table.field.loc.lev" + source="lev" + validate={required()} + /> + </Grid> + </Grid> + </Grid> + <Grid item xs={12} md={2}> + <Typography variant="h6" gutterBottom> + {translate('common.edit.title.common')} + </Typography> + <StatusSelectInput /> + <Box mt="2em" /> + <MemoInput /> </Grid> </Grid> - <Grid item xs={12} md={2}> - <Typography variant="h6" gutterBottom> - {translate('common.edit.title.common')} - </Typography> - <StatusSelectInput /> - <Box mt="2em" /> - <MemoInput /> - </Grid> - </Grid> - </SimpleForm> - </Edit > + </SimpleForm> + </Edit > + <LocItemList /> + </> ) } diff --git a/rsf-admin/src/page/locItem/LocItemCreate.jsx b/rsf-admin/src/page/basicInfo/loc/LocItemCreate.jsx similarity index 97% rename from rsf-admin/src/page/locItem/LocItemCreate.jsx rename to rsf-admin/src/page/basicInfo/loc/LocItemCreate.jsx index d1a51fa..b7b724a 100644 --- a/rsf-admin/src/page/locItem/LocItemCreate.jsx +++ b/rsf-admin/src/page/basicInfo/loc/LocItemCreate.jsx @@ -27,9 +27,9 @@ Grid, Box, } from '@mui/material'; -import DialogCloseButton from "../components/DialogCloseButton"; -import StatusSelectInput from "../components/StatusSelectInput"; -import MemoInput from "../components/MemoInput"; +import DialogCloseButton from "../../components/DialogCloseButton"; +import StatusSelectInput from "../../components/StatusSelectInput"; +import MemoInput from "../../components/MemoInput"; const LocItemCreate = (props) => { const { open, setOpen } = props; diff --git a/rsf-admin/src/page/locItem/LocItemEdit.jsx b/rsf-admin/src/page/basicInfo/loc/LocItemEdit.jsx similarity index 100% rename from rsf-admin/src/page/locItem/LocItemEdit.jsx rename to rsf-admin/src/page/basicInfo/loc/LocItemEdit.jsx diff --git a/rsf-admin/src/page/locItem/LocItemList.jsx b/rsf-admin/src/page/basicInfo/loc/LocItemList.jsx similarity index 80% rename from rsf-admin/src/page/locItem/LocItemList.jsx rename to rsf-admin/src/page/basicInfo/loc/LocItemList.jsx index 551d35f..2f86c7b 100644 --- a/rsf-admin/src/page/locItem/LocItemList.jsx +++ b/rsf-admin/src/page/basicInfo/loc/LocItemList.jsx @@ -31,18 +31,16 @@ ReferenceArrayInput, AutocompleteInput, DeleteButton, + useGetRecordId, } from 'react-admin'; import { Box, Typography, Card, Stack } from '@mui/material'; import { styled } from '@mui/material/styles'; import LocItemCreate from "./LocItemCreate"; -import LocItemPanel from "./LocItemPanel"; -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 EmptyData from "../../components/EmptyData"; +import MyCreateButton from "../../components/MyCreateButton"; +import MyExportButton from '../../components/MyExportButton'; +import PageDrawer from "../../components/PageDrawer"; +import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_ITEM_PAGE_SIZE } from '@/config/setting'; const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ '& .css-1vooibu-MuiSvgIcon-root': { @@ -60,14 +58,13 @@ const filters = [ <SearchInput source="condition" alwaysOn />, - <DateInput label='common.time.after' source="timeStart" alwaysOn />, - <DateInput label='common.time.before' source="timeEnd" alwaysOn />, - + <DateInput label='common.time.after' source="timeStart" />, + <DateInput label='common.time.before' source="timeEnd" />, <NumberInput source="locId" label="table.field.locItem.locId" />, <NumberInput source="orderId" label="table.field.locItem.orderId" />, - <TextInput source="type" label="table.field.locItem.type" />, + <TextInput source="type$" label="table.field.locItem.type" />, <NumberInput source="orderItemId" label="table.field.locItem.orderItemId" />, - <NumberInput source="wkType" label="table.field.locItem.wkType" />, + <NumberInput source="wkType$" label="table.field.locItem.wkType" />, <NumberInput source="matnrId" label="table.field.locItem.matnrId" />, <TextInput source="maktx" label="table.field.locItem.maktx" />, <TextInput source="matnrCode" label="table.field.locItem.matnrCode" />, @@ -79,7 +76,6 @@ <TextInput source="spec" label="table.field.locItem.spec" />, <TextInput source="model" label="table.field.locItem.model" />, <TextInput source="fieldsIndex" label="table.field.locItem.fieldsIndex" />, - <TextInput label="common.field.memo" source="memo" />, <SelectInput label="common.field.status" @@ -94,13 +90,15 @@ const LocItemList = () => { const translate = useTranslate(); - const [createDialog, setCreateDialog] = useState(false); const [drawerVal, setDrawerVal] = useState(false); + const locId = useGetRecordId(); return ( <Box display="flex"> <List + resource="locItem" + filter={{locId: locId}} sx={{ flexGrow: 1, transition: (theme) => @@ -110,26 +108,26 @@ marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, }} title={"menu.locItem"} - empty={<EmptyData onClick={() => { setCreateDialog(true) }} />} + empty={false} filters={filters} sort={{ field: "create_time", order: "desc" }} actions={( <TopToolbar> <FilterButton /> - <MyCreateButton onClick={() => { setCreateDialog(true) }} /> + {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */} <SelectColumnsButton preferenceKey='locItem' /> <MyExportButton /> </TopToolbar> )} - perPage={DEFAULT_PAGE_SIZE} + perPage={DEFAULT_ITEM_PAGE_SIZE} > <StyledDatagrid preferenceKey='locItem' bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} rowClick={(id, resource, record) => false} - expand={() => <LocItemPanel />} + expand={false} expandSingle={true} - omit={['id', 'createTime', 'createBy', 'memo']} + omit={['id', 'locId', 'orderId', 'orderItemId', 'matnrId', 'createTime', 'createBy', 'memo']} > <NumberField source="id" /> <NumberField source="locId" label="table.field.locItem.locId" /> @@ -148,14 +146,9 @@ <TextField source="spec" label="table.field.locItem.spec" /> <TextField source="model" label="table.field.locItem.model" /> <TextField source="fieldsIndex" label="table.field.locItem.fieldsIndex" /> - - <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/basicInfo/loc/LocList.jsx b/rsf-admin/src/page/basicInfo/loc/LocList.jsx index 8811f4d..1d2618a 100644 --- a/rsf-admin/src/page/basicInfo/loc/LocList.jsx +++ b/rsf-admin/src/page/basicInfo/loc/LocList.jsx @@ -238,17 +238,12 @@ <NumberField source="flagLabelMange" label="table.field.loc.flagLabelMange" /> <TextField source="locAttrs" label="table.field.loc.locAttrs" /> */} <TextField source="useStatus$" label="table.field.loc.useStatus" /> - <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 align="left" /> - <ReferenceField source="createBy" label="common.field.createBy" align="left" 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 align="left" /> <BooleanField source="statusBool" label="common.field.status" sortable={false} align="left" /> <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} /> */} diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx index 57aa210..882cdf9 100644 --- a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx +++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx @@ -148,10 +148,7 @@ sx={{ width: '100%' }} preferenceKey='asnOrder' bulkActionButtons={<> <InspectionsButton /><BulkDeleteButton mutationMode={OPERATE_MODE} /></>} - rowClick='toggleSelection' - onToggleItem={(id, resource, record)=>{ - redirect(location.pathname + '/' + id) - }} + rowClick='edit' expandSingle={true} omit={['id', 'createTime', 'createBy', 'memo', 'poId', 'rleStatus$']} > diff --git a/rsf-admin/src/page/orders/order/OrderCreate.jsx b/rsf-admin/src/page/orders/stock/OrderCreate.jsx similarity index 93% rename from rsf-admin/src/page/orders/order/OrderCreate.jsx rename to rsf-admin/src/page/orders/stock/OrderCreate.jsx index c7112d4..7ea5454 100644 --- a/rsf-admin/src/page/orders/order/OrderCreate.jsx +++ b/rsf-admin/src/page/orders/stock/OrderCreate.jsx @@ -86,7 +86,7 @@ <Grid container rowSpacing={2} columnSpacing={2}> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.order.code" + label="table.field.stock.code" source="code" parse={v => v} autoFocus @@ -94,20 +94,20 @@ </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.order.sourceCode" + label="table.field.stock.sourceCode" source="sourceCode" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <NumberInput - label="table.field.order.sourceId" + label="table.field.stock.sourceId" source="sourceId" /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.order.type" + label="table.field.stock.type" source="type" parse={v => v} validate={required()} @@ -115,7 +115,7 @@ </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.order.wkType" + label="table.field.stock.wkType" source="wkType" parse={v => v} validate={required()} @@ -123,7 +123,7 @@ </Grid> <Grid item xs={6} display="flex" gap={1}> <NumberInput - label="table.field.order.anfme" + label="table.field.stock.anfme" source="anfme" validate={required()} /> diff --git a/rsf-admin/src/page/orders/order/OrderEdit.jsx b/rsf-admin/src/page/orders/stock/OrderEdit.jsx similarity index 80% rename from rsf-admin/src/page/orders/order/OrderEdit.jsx rename to rsf-admin/src/page/orders/stock/OrderEdit.jsx index 609e6f7..e857082 100644 --- a/rsf-admin/src/page/orders/order/OrderEdit.jsx +++ b/rsf-admin/src/page/orders/stock/OrderEdit.jsx @@ -55,57 +55,50 @@ mode="onTouched" defaultValues={{}} > - <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}> - <Grid item xs={12} md={8}> + <Grid container width={{ xs: '100%', xl: '90%' }} rowSpacing={3} columnSpacing={3}> + <Grid item xs={16} md={10}> <Typography variant="h6" gutterBottom> {translate('common.edit.title.main')} </Typography> <Stack direction='row' gap={2}> <TextInput - label="table.field.order.code" + label="table.field.stock.code" source="code" parse={v => v} autoFocus /> - </Stack> - <Stack direction='row' gap={2}> + <TextInput - label="table.field.order.sourceCode" + label="table.field.stock.sourceCode" source="sourceCode" parse={v => v} /> - </Stack> - <Stack direction='row' gap={2}> <NumberInput - label="table.field.order.sourceId" + label="table.field.stock.sourceId" source="sourceId" /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.order.type" + label="table.field.stock.type" source="type" parse={v => v} validate={required()} /> - </Stack> - <Stack direction='row' gap={2}> <TextInput - label="table.field.order.wkType" + label="table.field.stock.wkType" source="wkType" parse={v => v} validate={required()} /> - </Stack> - <Stack direction='row' gap={2}> <NumberInput - label="table.field.order.anfme" + label="table.field.stock.anfme" source="anfme" validate={required()} /> </Stack> </Grid> - <Grid item xs={12} md={4}> + <Grid item xs={8} md={2}> <Typography variant="h6" gutterBottom> {translate('common.edit.title.common')} </Typography> diff --git a/rsf-admin/src/page/orders/order/OrderItemCreate.jsx b/rsf-admin/src/page/orders/stock/OrderItemCreate.jsx similarity index 88% rename from rsf-admin/src/page/orders/order/OrderItemCreate.jsx rename to rsf-admin/src/page/orders/stock/OrderItemCreate.jsx index 50f3b84..ca4e50a 100644 --- a/rsf-admin/src/page/orders/order/OrderItemCreate.jsx +++ b/rsf-admin/src/page/orders/stock/OrderItemCreate.jsx @@ -86,139 +86,139 @@ <Grid container rowSpacing={2} columnSpacing={2}> <Grid item xs={6} display="flex" gap={1}> <NumberInput - label="table.field.orderItem.orderId" + label="table.field.stockItem.orderId" source="orderId" autoFocus /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.orderCode" + label="table.field.stockItem.orderCode" source="orderCode" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.sourceItemId" + label="table.field.stockItem.sourceItemId" source="sourceItemId" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.matnrId" + label="table.field.stockItem.matnrId" source="matnrId" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.matnrCode" + label="table.field.stockItem.matnrCode" source="matnrCode" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.maktx" + label="table.field.stockItem.maktx" source="maktx" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <NumberInput - label="table.field.orderItem.anfme" + label="table.field.stockItem.anfme" source="anfme" validate={required()} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.stockUnit" + label="table.field.stockItem.stockUnit" source="stockUnit" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <NumberInput - label="table.field.orderItem.workQty" + label="table.field.stockItem.workQty" source="workQty" validate={required()} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <NumberInput - label="table.field.orderItem.purQty" + label="table.field.stockItem.purQty" source="purQty" validate={required()} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.purUnit" + label="table.field.stockItem.purUnit" source="purUnit" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <NumberInput - label="table.field.orderItem.qty" + label="table.field.stockItem.qty" source="qty" /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.splrCode" + label="table.field.stockItem.splrCode" source="splrCode" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.batch" + label="table.field.stockItem.batch" source="batch" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.splrBatch" + label="table.field.stockItem.splrBatch" source="splrBatch" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.splrName" + label="table.field.stockItem.splrName" source="splrName" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.trackCode" + label="table.field.stockItem.trackCode" source="trackCode" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.barcode" + label="table.field.stockItem.barcode" source="barcode" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.prodTime" + label="table.field.stockItem.prodTime" source="prodTime" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.packName" + label="table.field.stockItem.packName" source="packName" parse={v => v} /> diff --git a/rsf-admin/src/page/orders/order/OrderItemEdit.jsx b/rsf-admin/src/page/orders/stock/OrderItemEdit.jsx similarity index 85% rename from rsf-admin/src/page/orders/order/OrderItemEdit.jsx rename to rsf-admin/src/page/orders/stock/OrderItemEdit.jsx index 351d602..89d5b92 100644 --- a/rsf-admin/src/page/orders/order/OrderItemEdit.jsx +++ b/rsf-admin/src/page/orders/stock/OrderItemEdit.jsx @@ -65,139 +65,139 @@ </Typography> <Stack direction='row' gap={2}> <NumberInput - label="table.field.orderItem.orderId" + label="table.field.stockItem.orderId" source="orderId" autoFocus /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.orderCode" + label="table.field.stockItem.orderCode" source="orderCode" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.sourceItemId" + label="table.field.stockItem.sourceItemId" source="sourceItemId" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.matnrId" + label="table.field.stockItem.matnrId" source="matnrId" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.matnrCode" + label="table.field.stockItem.matnrCode" source="matnrCode" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.maktx" + label="table.field.stockItem.maktx" source="maktx" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <NumberInput - label="table.field.orderItem.anfme" + label="table.field.stockItem.anfme" source="anfme" validate={required()} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.stockUnit" + label="table.field.stockItem.stockUnit" source="stockUnit" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <NumberInput - label="table.field.orderItem.workQty" + label="table.field.stockItem.workQty" source="workQty" validate={required()} /> </Stack> <Stack direction='row' gap={2}> <NumberInput - label="table.field.orderItem.purQty" + label="table.field.stockItem.purQty" source="purQty" validate={required()} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.purUnit" + label="table.field.stockItem.purUnit" source="purUnit" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <NumberInput - label="table.field.orderItem.qty" + label="table.field.stockItem.qty" source="qty" /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.splrCode" + label="table.field.stockItem.splrCode" source="splrCode" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.batch" + label="table.field.stockItem.batch" source="batch" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.splrBatch" + label="table.field.stockItem.splrBatch" source="splrBatch" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.splrName" + label="table.field.stockItem.splrName" source="splrName" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.trackCode" + label="table.field.stockItem.trackCode" source="trackCode" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.barcode" + label="table.field.stockItem.barcode" source="barcode" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.prodTime" + label="table.field.stockItem.prodTime" source="prodTime" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.packName" + label="table.field.stockItem.packName" source="packName" parse={v => v} /> diff --git a/rsf-admin/src/page/orders/order/OrderItemList.jsx b/rsf-admin/src/page/orders/stock/OrderItemList.jsx similarity index 70% rename from rsf-admin/src/page/orders/order/OrderItemList.jsx rename to rsf-admin/src/page/orders/stock/OrderItemList.jsx index 6a301f7..7b0f1fe 100644 --- a/rsf-admin/src/page/orders/order/OrderItemList.jsx +++ b/rsf-admin/src/page/orders/stock/OrderItemList.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'; @@ -59,28 +60,28 @@ const filters = [ <SearchInput source="condition" alwaysOn />, - <DateInput label='common.time.after' source="timeStart" alwaysOn />, - <DateInput label='common.time.before' source="timeEnd" alwaysOn />, - <NumberInput source="orderId" label="table.field.orderItem.orderId" />, - <TextInput source="orderCode" label="table.field.orderItem.orderCode" />, - <TextInput source="sourceItemId" label="table.field.orderItem.sourceItemId" />, - <TextInput source="matnrId" label="table.field.orderItem.matnrId" />, - <TextInput source="matnrCode" label="table.field.orderItem.matnrCode" />, - <TextInput source="maktx" label="table.field.orderItem.maktx" />, - <NumberInput source="anfme" label="table.field.orderItem.anfme" />, - <TextInput source="stockUnit" label="table.field.orderItem.stockUnit" />, - <NumberInput source="workQty" label="table.field.orderItem.workQty" />, - <NumberInput source="purQty" label="table.field.orderItem.purQty" />, - <TextInput source="purUnit" label="table.field.orderItem.purUnit" />, - <NumberInput source="qty" label="table.field.orderItem.qty" />, - <TextInput source="splrCode" label="table.field.orderItem.splrCode" />, - <TextInput source="batch" label="table.field.orderItem.batch" />, - <TextInput source="splrBatch" label="table.field.orderItem.splrBatch" />, - <TextInput source="splrName" label="table.field.orderItem.splrName" />, - <TextInput source="trackCode" label="table.field.orderItem.trackCode" />, - <TextInput source="barcode" label="table.field.orderItem.barcode" />, - <TextInput source="prodTime" label="table.field.orderItem.prodTime" />, - <TextInput source="packName" label="table.field.orderItem.packName" />, + <DateInput label='common.time.after' source="timeStart" />, + <DateInput label='common.time.before' source="timeEnd" />, + <NumberInput source="orderId" label="table.field.stockItem.orderId" />, + <TextInput source="orderCode" label="table.field.stockItem.orderCode" />, + <TextInput source="sourceItemId" label="table.field.stockItem.sourceItemId" />, + <TextInput source="matnrId" label="table.field.stockItem.matnrId" />, + <TextInput source="matnrCode" label="table.field.stockItem.matnrCode" />, + <TextInput source="maktx" label="table.field.stockItem.maktx" />, + <NumberInput source="anfme" label="table.field.stockItem.anfme" />, + <TextInput source="stockUnit" label="table.field.stockItem.stockUnit" />, + <NumberInput source="workQty" label="table.field.stockItem.workQty" />, + <NumberInput source="purQty" label="table.field.stockItem.purQty" />, + <TextInput source="purUnit" label="table.field.stockItem.purUnit" />, + <NumberInput source="qty" label="table.field.stockItem.qty" />, + <TextInput source="splrCode" label="table.field.stockItem.splrCode" />, + <TextInput source="batch" label="table.field.stockItem.batch" />, + <TextInput source="splrBatch" label="table.field.stockItem.splrBatch" />, + <TextInput source="splrName" label="table.field.stockItem.splrName" />, + <TextInput source="trackCode" label="table.field.stockItem.trackCode" />, + <TextInput source="barcode" label="table.field.stockItem.barcode" />, + <TextInput source="prodTime" label="table.field.stockItem.prodTime" />, + <TextInput source="packName" label="table.field.stockItem.packName" />, <TextInput label="common.field.memo" source="memo" />, <SelectInput label="common.field.status" @@ -95,13 +96,14 @@ const OrderItemList = () => { const translate = useTranslate(); - const [createDialog, setCreateDialog] = useState(false); const [drawerVal, setDrawerVal] = useState(false); + const stockId = useGetRecordId(); return ( <Box display="flex"> <List + resource="stockItem" sx={{ flexGrow: 1, transition: (theme) => @@ -110,22 +112,22 @@ }), marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, }} - title={"menu.orderItem"} - empty={<EmptyData onClick={() => { setCreateDialog(true) }} />} + title={"menu.stockItem"} + empty={false} filters={filters} + filter={{ stockId: stockId }} sort={{ field: "create_time", order: "desc" }} actions={( <TopToolbar> <FilterButton /> - <MyCreateButton onClick={() => { setCreateDialog(true) }} /> - <SelectColumnsButton preferenceKey='orderItem' /> + <SelectColumnsButton preferenceKey='stockItem' /> <MyExportButton /> </TopToolbar> )} perPage={DEFAULT_PAGE_SIZE} > <StyledDatagrid - preferenceKey='orderItem' + preferenceKey='stockItem' bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} rowClick={(id, resource, record) => false} expand={false} @@ -133,29 +135,29 @@ omit={['id', 'createTime', 'createBy', 'memo']} > <NumberField source="id" /> - <NumberField source="orderId" label="table.field.orderItem.orderId" /> - <TextField source="orderCode" label="table.field.orderItem.orderCode" /> - <TextField source="sourceItemId" label="table.field.orderItem.sourceItemId" /> - <TextField source="matnrId" label="table.field.orderItem.matnrId" /> - <TextField source="matnrCode" label="table.field.orderItem.matnrCode" /> - <TextField source="maktx" label="table.field.orderItem.maktx" /> - <NumberField source="anfme" label="table.field.orderItem.anfme" /> - <TextField source="stockUnit" label="table.field.orderItem.stockUnit" /> - <NumberField source="workQty" label="table.field.orderItem.workQty" /> - <NumberField source="purQty" label="table.field.orderItem.purQty" /> - <TextField source="purUnit" label="table.field.orderItem.purUnit" /> - <NumberField source="qty" label="table.field.orderItem.qty" /> - <TextField source="splrCode" label="table.field.orderItem.splrCode" /> - <TextField source="batch" label="table.field.orderItem.batch" /> - <TextField source="splrBatch" label="table.field.orderItem.splrBatch" /> - <TextField source="splrName" label="table.field.orderItem.splrName" /> - <TextField source="trackCode" label="table.field.orderItem.trackCode" /> - <TextField source="barcode" label="table.field.orderItem.barcode" /> - <TextField source="prodTime" label="table.field.orderItem.prodTime" /> - <TextField source="packName" label="table.field.orderItem.packName" /> + <NumberField source="orderId" label="table.field.stockItem.orderId" /> + <TextField source="orderCode" label="table.field.stockItem.orderCode" /> + <TextField source="sourceItemId" label="table.field.stockItem.sourceItemId" /> + <TextField source="matnrId" label="table.field.stockItem.matnrId" /> + <TextField source="matnrCode" label="table.field.stockItem.matnrCode" /> + <TextField source="maktx" label="table.field.stockItem.maktx" /> + <NumberField source="anfme" label="table.field.stockItem.anfme" /> + <TextField source="stockUnit" label="table.field.stockItem.stockUnit" /> + <NumberField source="workQty" label="table.field.stockItem.workQty" /> + <NumberField source="purQty" label="table.field.stockItem.purQty" /> + <TextField source="purUnit" label="table.field.stockItem.purUnit" /> + <NumberField source="qty" label="table.field.stockItem.qty" /> + <TextField source="splrCode" label="table.field.stockItem.splrCode" /> + <TextField source="batch" label="table.field.stockItem.batch" /> + <TextField source="splrBatch" label="table.field.stockItem.splrBatch" /> + <TextField source="splrName" label="table.field.stockItem.splrName" /> + <TextField source="trackCode" label="table.field.stockItem.trackCode" /> + <TextField source="barcode" label="table.field.stockItem.barcode" /> + <TextField source="prodTime" label="table.field.stockItem.prodTime" /> + <TextField source="packName" label="table.field.stockItem.packName" /> <TextField source="updateBy$" label="common.field.updateBy" /> <DateField source="updateTime" label="common.field.updateTime" showTime /> - <TextField source="createBy$" label="common.field.createBy" /> + <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} /> @@ -165,12 +167,8 @@ </WrapperField> </StyledDatagrid> </List> - <OrderItemCreate - open={createDialog} - setOpen={setCreateDialog} - /> <PageDrawer - title='OrderItem Detail' + title='stockItem Detail' drawerVal={drawerVal} setDrawerVal={setDrawerVal} > diff --git a/rsf-admin/src/page/orders/order/OrderList.jsx b/rsf-admin/src/page/orders/stock/OrderList.jsx similarity index 87% rename from rsf-admin/src/page/orders/order/OrderList.jsx rename to rsf-admin/src/page/orders/stock/OrderList.jsx index c04146a..95bff50 100644 --- a/rsf-admin/src/page/orders/order/OrderList.jsx +++ b/rsf-admin/src/page/orders/stock/OrderList.jsx @@ -63,12 +63,12 @@ <DateInput label='common.time.after' source="timeStart" alwaysOn />, <DateInput label='common.time.before' source="timeEnd" alwaysOn />, - <TextInput source="code" label="table.field.order.code" />, - <TextInput source="sourceCode" label="table.field.order.sourceCode" />, - <NumberInput source="sourceId" label="table.field.order.sourceId" />, - <TextInput source="type" label="table.field.order.type" />, - <TextInput source="wkType" label="table.field.order.wkType" />, - <NumberInput source="anfme" label="table.field.order.anfme" />, + <TextInput source="code" label="table.field.stock.code" />, + <TextInput source="sourceCode" label="table.field.stock.sourceCode" />, + <NumberInput source="sourceId" label="table.field.stock.sourceId" />, + <TextInput source="type" label="table.field.stock.type" />, + <TextInput source="wkType" label="table.field.stock.wkType" />, + <NumberInput source="anfme" label="table.field.stock.anfme" />, <TextInput label="common.field.memo" source="memo" />, <SelectInput @@ -84,7 +84,6 @@ const OrderList = () => { const translate = useTranslate(); - const [createDialog, setCreateDialog] = useState(false); const [drawerVal, setDrawerVal] = useState(false); @@ -99,35 +98,33 @@ }), marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, }} - title={"menu.order"} + title={"menu.stock"} empty={<EmptyData onClick={() => { setCreateDialog(true) }} />} filters={filters} sort={{ field: "create_time", order: "desc" }} actions={( <TopToolbar> <FilterButton /> - <MyCreateButton onClick={() => { setCreateDialog(true) }} /> - <SelectColumnsButton preferenceKey='order' /> + <SelectColumnsButton preferenceKey='stock' /> <MyExportButton /> </TopToolbar> )} perPage={DEFAULT_PAGE_SIZE} > <StyledDatagrid - preferenceKey='order' + preferenceKey='stock' bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} rowClick={(id, resource, record) => false} - expand={() => <OrderPanel />} expandSingle={true} omit={['id', 'createTime', 'createBy', 'memo']} > <NumberField source="id" /> - <TextField source="code" label="table.field.order.code" /> - <TextField source="sourceCode" label="table.field.order.sourceCode" /> - <NumberField source="sourceId" label="table.field.order.sourceId" /> - <TextField source="type" label="table.field.order.type" /> - <TextField source="wkType" label="table.field.order.wkType" /> - <NumberField source="anfme" label="table.field.order.anfme" /> + <TextField source="code" label="table.field.stock.code" /> + <TextField source="sourceCode" label="table.field.stock.sourceCode" /> + <NumberField source="sourceId" label="table.field.stock.sourceId" /> + <TextField source="type" label="table.field.stock.type" /> + <TextField source="wkType" label="table.field.stock.wkType" /> + <NumberField source="anfme" label="table.field.stock.anfme" /> <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}> <TextField source="nickname" /> diff --git a/rsf-admin/src/page/orders/order/OrderPanel.jsx b/rsf-admin/src/page/orders/stock/OrderPanel.jsx similarity index 88% rename from rsf-admin/src/page/orders/order/OrderPanel.jsx rename to rsf-admin/src/page/orders/stock/OrderPanel.jsx index e33ead2..ffd6aac 100644 --- a/rsf-admin/src/page/orders/order/OrderPanel.jsx +++ b/rsf-admin/src/page/orders/stock/OrderPanel.jsx @@ -23,7 +23,7 @@ overflow: 'hidden', textOverflow: 'ellipsis', }}> - {Common.camelToPascalWithSpaces(translate('table.field.order.id'))}: {record.id} + {Common.camelToPascalWithSpaces(translate('table.field.stock.id'))}: {record.id} </Typography> {/* inherit, primary, secondary, textPrimary, textSecondary, error */} <Typography variant="h6" gutterBottom align="right" > @@ -42,37 +42,37 @@ <Grid container spacing={2}> <Grid item xs={6}> <PanelTypography - title="table.field.order.code" + title="table.field.stock.code" property={record.code} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.order.sourceCode" + title="table.field.stock.sourceCode" property={record.sourceCode} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.order.sourceId" + title="table.field.stock.sourceId" property={record.sourceId} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.order.type" + title="table.field.stock.type" property={record.type} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.order.wkType" + title="table.field.stock.wkType" property={record.wkType} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.order.anfme" + title="table.field.stock.anfme" property={record.anfme} /> </Grid> diff --git a/rsf-admin/src/page/orders/order/index.jsx b/rsf-admin/src/page/orders/stock/index.jsx similarity index 100% rename from rsf-admin/src/page/orders/order/index.jsx rename to rsf-admin/src/page/orders/stock/index.jsx diff --git a/rsf-admin/src/page/orders/order/OrderItemCreate.jsx b/rsf-admin/src/page/stockItem/StockItemCreate.jsx similarity index 83% copy from rsf-admin/src/page/orders/order/OrderItemCreate.jsx copy to rsf-admin/src/page/stockItem/StockItemCreate.jsx index 50f3b84..925f54a 100644 --- a/rsf-admin/src/page/orders/order/OrderItemCreate.jsx +++ b/rsf-admin/src/page/stockItem/StockItemCreate.jsx @@ -27,11 +27,11 @@ Grid, Box, } from '@mui/material'; -import DialogCloseButton from "../../components/DialogCloseButton"; -import StatusSelectInput from "../../components/StatusSelectInput"; -import MemoInput from "../../components/MemoInput"; +import DialogCloseButton from "../components/DialogCloseButton"; +import StatusSelectInput from "../components/StatusSelectInput"; +import MemoInput from "../components/MemoInput"; -const OrderItemCreate = (props) => { +const StockItemCreate = (props) => { const { open, setOpen } = props; const translate = useTranslate(); @@ -86,139 +86,137 @@ <Grid container rowSpacing={2} columnSpacing={2}> <Grid item xs={6} display="flex" gap={1}> <NumberInput - label="table.field.orderItem.orderId" - source="orderId" + label="table.field.stockItem.stockId" + source="stockId" autoFocus /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.orderCode" - source="orderCode" + label="table.field.stockItem.stockCode" + source="stockCode" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.orderItem.sourceItemId" + <NumberInput + label="table.field.stockItem.sourceItemId" source="sourceItemId" - parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.orderItem.matnrId" + <NumberInput + label="table.field.stockItem.matnrId" source="matnrId" - parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.matnrCode" + label="table.field.stockItem.matnrCode" source="matnrCode" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.maktx" + label="table.field.stockItem.maktx" source="maktx" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <NumberInput - label="table.field.orderItem.anfme" + label="table.field.stockItem.anfme" source="anfme" validate={required()} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.stockUnit" + label="table.field.stockItem.stockUnit" source="stockUnit" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <NumberInput - label="table.field.orderItem.workQty" + label="table.field.stockItem.workQty" source="workQty" validate={required()} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <NumberInput - label="table.field.orderItem.purQty" + label="table.field.stockItem.purQty" source="purQty" validate={required()} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.purUnit" + label="table.field.stockItem.purUnit" source="purUnit" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <NumberInput - label="table.field.orderItem.qty" + label="table.field.stockItem.qty" source="qty" /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.splrCode" + label="table.field.stockItem.splrCode" source="splrCode" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.batch" + label="table.field.stockItem.batch" source="batch" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.splrBatch" + label="table.field.stockItem.splrBatch" source="splrBatch" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.splrName" + label="table.field.stockItem.splrName" source="splrName" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.trackCode" + label="table.field.stockItem.trackCode" source="trackCode" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.barcode" + label="table.field.stockItem.barcode" source="barcode" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.prodTime" + label="table.field.stockItem.prodTime" source="prodTime" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.orderItem.packName" + label="table.field.stockItem.packName" source="packName" parse={v => v} /> @@ -246,4 +244,4 @@ ) } -export default OrderItemCreate; +export default StockItemCreate; diff --git a/rsf-admin/src/page/orders/order/OrderItemEdit.jsx b/rsf-admin/src/page/stockItem/StockItemEdit.jsx similarity index 78% copy from rsf-admin/src/page/orders/order/OrderItemEdit.jsx copy to rsf-admin/src/page/stockItem/StockItemEdit.jsx index 351d602..c87afcc 100644 --- a/rsf-admin/src/page/orders/order/OrderItemEdit.jsx +++ b/rsf-admin/src/page/stockItem/StockItemEdit.jsx @@ -24,10 +24,10 @@ 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 EditBaseAside from "../components/EditBaseAside"; +import CustomerTopToolBar from "../components/EditTopToolBar"; +import MemoInput from "../components/MemoInput"; +import StatusSelectInput from "../components/StatusSelectInput"; const FormToolbar = () => { const { getValues } = useFormContext(); @@ -40,7 +40,7 @@ ) } -const OrderItemEdit = () => { +const StockItemEdit = () => { const translate = useTranslate(); return ( @@ -65,139 +65,137 @@ </Typography> <Stack direction='row' gap={2}> <NumberInput - label="table.field.orderItem.orderId" - source="orderId" + label="table.field.stockItem.stockId" + source="stockId" autoFocus /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.orderCode" - source="orderCode" + label="table.field.stockItem.stockCode" + source="stockCode" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> - <TextInput - label="table.field.orderItem.sourceItemId" + <NumberInput + label="table.field.stockItem.sourceItemId" source="sourceItemId" - parse={v => v} /> </Stack> <Stack direction='row' gap={2}> - <TextInput - label="table.field.orderItem.matnrId" + <NumberInput + label="table.field.stockItem.matnrId" source="matnrId" - parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.matnrCode" + label="table.field.stockItem.matnrCode" source="matnrCode" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.maktx" + label="table.field.stockItem.maktx" source="maktx" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <NumberInput - label="table.field.orderItem.anfme" + label="table.field.stockItem.anfme" source="anfme" validate={required()} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.stockUnit" + label="table.field.stockItem.stockUnit" source="stockUnit" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <NumberInput - label="table.field.orderItem.workQty" + label="table.field.stockItem.workQty" source="workQty" validate={required()} /> </Stack> <Stack direction='row' gap={2}> <NumberInput - label="table.field.orderItem.purQty" + label="table.field.stockItem.purQty" source="purQty" validate={required()} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.purUnit" + label="table.field.stockItem.purUnit" source="purUnit" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <NumberInput - label="table.field.orderItem.qty" + label="table.field.stockItem.qty" source="qty" /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.splrCode" + label="table.field.stockItem.splrCode" source="splrCode" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.batch" + label="table.field.stockItem.batch" source="batch" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.splrBatch" + label="table.field.stockItem.splrBatch" source="splrBatch" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.splrName" + label="table.field.stockItem.splrName" source="splrName" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.trackCode" + label="table.field.stockItem.trackCode" source="trackCode" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.barcode" + label="table.field.stockItem.barcode" source="barcode" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.prodTime" + label="table.field.stockItem.prodTime" source="prodTime" parse={v => v} /> </Stack> <Stack direction='row' gap={2}> <TextInput - label="table.field.orderItem.packName" + label="table.field.stockItem.packName" source="packName" parse={v => v} /> @@ -218,4 +216,4 @@ ) } -export default OrderItemEdit; +export default StockItemEdit; diff --git a/rsf-admin/src/page/orders/order/OrderItemList.jsx b/rsf-admin/src/page/stockItem/StockItemList.jsx similarity index 62% copy from rsf-admin/src/page/orders/order/OrderItemList.jsx copy to rsf-admin/src/page/stockItem/StockItemList.jsx index 6a301f7..293fa09 100644 --- a/rsf-admin/src/page/orders/order/OrderItemList.jsx +++ b/rsf-admin/src/page/stockItem/StockItemList.jsx @@ -34,12 +34,13 @@ } from 'react-admin'; import { Box, Typography, Card, Stack } from '@mui/material'; import { styled } from '@mui/material/styles'; -import OrderItemCreate from "./OrderItemCreate"; -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 StockItemCreate from "./StockItemCreate"; +import StockItemPanel from "./StockItemPanel"; +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'; @@ -61,26 +62,28 @@ <SearchInput source="condition" alwaysOn />, <DateInput label='common.time.after' source="timeStart" alwaysOn />, <DateInput label='common.time.before' source="timeEnd" alwaysOn />, - <NumberInput source="orderId" label="table.field.orderItem.orderId" />, - <TextInput source="orderCode" label="table.field.orderItem.orderCode" />, - <TextInput source="sourceItemId" label="table.field.orderItem.sourceItemId" />, - <TextInput source="matnrId" label="table.field.orderItem.matnrId" />, - <TextInput source="matnrCode" label="table.field.orderItem.matnrCode" />, - <TextInput source="maktx" label="table.field.orderItem.maktx" />, - <NumberInput source="anfme" label="table.field.orderItem.anfme" />, - <TextInput source="stockUnit" label="table.field.orderItem.stockUnit" />, - <NumberInput source="workQty" label="table.field.orderItem.workQty" />, - <NumberInput source="purQty" label="table.field.orderItem.purQty" />, - <TextInput source="purUnit" label="table.field.orderItem.purUnit" />, - <NumberInput source="qty" label="table.field.orderItem.qty" />, - <TextInput source="splrCode" label="table.field.orderItem.splrCode" />, - <TextInput source="batch" label="table.field.orderItem.batch" />, - <TextInput source="splrBatch" label="table.field.orderItem.splrBatch" />, - <TextInput source="splrName" label="table.field.orderItem.splrName" />, - <TextInput source="trackCode" label="table.field.orderItem.trackCode" />, - <TextInput source="barcode" label="table.field.orderItem.barcode" />, - <TextInput source="prodTime" label="table.field.orderItem.prodTime" />, - <TextInput source="packName" label="table.field.orderItem.packName" />, + + <NumberInput source="stockId" label="table.field.stockItem.stockId" />, + <TextInput source="stockCode" label="table.field.stockItem.stockCode" />, + <NumberInput source="sourceItemId" label="table.field.stockItem.sourceItemId" />, + <NumberInput source="matnrId" label="table.field.stockItem.matnrId" />, + <TextInput source="matnrCode" label="table.field.stockItem.matnrCode" />, + <TextInput source="maktx" label="table.field.stockItem.maktx" />, + <NumberInput source="anfme" label="table.field.stockItem.anfme" />, + <TextInput source="stockUnit" label="table.field.stockItem.stockUnit" />, + <NumberInput source="workQty" label="table.field.stockItem.workQty" />, + <NumberInput source="purQty" label="table.field.stockItem.purQty" />, + <TextInput source="purUnit" label="table.field.stockItem.purUnit" />, + <NumberInput source="qty" label="table.field.stockItem.qty" />, + <TextInput source="splrCode" label="table.field.stockItem.splrCode" />, + <TextInput source="batch" label="table.field.stockItem.batch" />, + <TextInput source="splrBatch" label="table.field.stockItem.splrBatch" />, + <TextInput source="splrName" label="table.field.stockItem.splrName" />, + <TextInput source="trackCode" label="table.field.stockItem.trackCode" />, + <TextInput source="barcode" label="table.field.stockItem.barcode" />, + <TextInput source="prodTime" label="table.field.stockItem.prodTime" />, + <TextInput source="packName" label="table.field.stockItem.packName" />, + <TextInput label="common.field.memo" source="memo" />, <SelectInput label="common.field.status" @@ -93,7 +96,7 @@ />, ] -const OrderItemList = () => { +const StockItemList = () => { const translate = useTranslate(); const [createDialog, setCreateDialog] = useState(false); @@ -110,7 +113,7 @@ }), marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, }} - title={"menu.orderItem"} + title={"menu.stockItem"} empty={<EmptyData onClick={() => { setCreateDialog(true) }} />} filters={filters} sort={{ field: "create_time", order: "desc" }} @@ -118,44 +121,49 @@ <TopToolbar> <FilterButton /> <MyCreateButton onClick={() => { setCreateDialog(true) }} /> - <SelectColumnsButton preferenceKey='orderItem' /> + <SelectColumnsButton preferenceKey='stockItem' /> <MyExportButton /> </TopToolbar> )} perPage={DEFAULT_PAGE_SIZE} > <StyledDatagrid - preferenceKey='orderItem' + preferenceKey='stockItem' bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} rowClick={(id, resource, record) => false} - expand={false} + expand={() => <StockItemPanel />} expandSingle={true} omit={['id', 'createTime', 'createBy', 'memo']} > <NumberField source="id" /> - <NumberField source="orderId" label="table.field.orderItem.orderId" /> - <TextField source="orderCode" label="table.field.orderItem.orderCode" /> - <TextField source="sourceItemId" label="table.field.orderItem.sourceItemId" /> - <TextField source="matnrId" label="table.field.orderItem.matnrId" /> - <TextField source="matnrCode" label="table.field.orderItem.matnrCode" /> - <TextField source="maktx" label="table.field.orderItem.maktx" /> - <NumberField source="anfme" label="table.field.orderItem.anfme" /> - <TextField source="stockUnit" label="table.field.orderItem.stockUnit" /> - <NumberField source="workQty" label="table.field.orderItem.workQty" /> - <NumberField source="purQty" label="table.field.orderItem.purQty" /> - <TextField source="purUnit" label="table.field.orderItem.purUnit" /> - <NumberField source="qty" label="table.field.orderItem.qty" /> - <TextField source="splrCode" label="table.field.orderItem.splrCode" /> - <TextField source="batch" label="table.field.orderItem.batch" /> - <TextField source="splrBatch" label="table.field.orderItem.splrBatch" /> - <TextField source="splrName" label="table.field.orderItem.splrName" /> - <TextField source="trackCode" label="table.field.orderItem.trackCode" /> - <TextField source="barcode" label="table.field.orderItem.barcode" /> - <TextField source="prodTime" label="table.field.orderItem.prodTime" /> - <TextField source="packName" label="table.field.orderItem.packName" /> - <TextField source="updateBy$" label="common.field.updateBy" /> + <NumberField source="stockId" label="table.field.stockItem.stockId" /> + <TextField source="stockCode" label="table.field.stockItem.stockCode" /> + <NumberField source="sourceItemId" label="table.field.stockItem.sourceItemId" /> + <NumberField source="matnrId" label="table.field.stockItem.matnrId" /> + <TextField source="matnrCode" label="table.field.stockItem.matnrCode" /> + <TextField source="maktx" label="table.field.stockItem.maktx" /> + <NumberField source="anfme" label="table.field.stockItem.anfme" /> + <TextField source="stockUnit" label="table.field.stockItem.stockUnit" /> + <NumberField source="workQty" label="table.field.stockItem.workQty" /> + <NumberField source="purQty" label="table.field.stockItem.purQty" /> + <TextField source="purUnit" label="table.field.stockItem.purUnit" /> + <NumberField source="qty" label="table.field.stockItem.qty" /> + <TextField source="splrCode" label="table.field.stockItem.splrCode" /> + <TextField source="batch" label="table.field.stockItem.batch" /> + <TextField source="splrBatch" label="table.field.stockItem.splrBatch" /> + <TextField source="splrName" label="table.field.stockItem.splrName" /> + <TextField source="trackCode" label="table.field.stockItem.trackCode" /> + <TextField source="barcode" label="table.field.stockItem.barcode" /> + <TextField source="prodTime" label="table.field.stockItem.prodTime" /> + <TextField source="packName" label="table.field.stockItem.packName" /> + + <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 /> - <TextField source="createBy$" label="common.field.createBy" /> + <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} /> @@ -165,12 +173,12 @@ </WrapperField> </StyledDatagrid> </List> - <OrderItemCreate + <StockItemCreate open={createDialog} setOpen={setCreateDialog} /> <PageDrawer - title='OrderItem Detail' + title='StockItem Detail' drawerVal={drawerVal} setDrawerVal={setDrawerVal} > @@ -179,4 +187,4 @@ ) } -export default OrderItemList; +export default StockItemList; diff --git a/rsf-admin/src/page/locItem/LocItemPanel.jsx b/rsf-admin/src/page/stockItem/StockItemPanel.jsx similarity index 63% rename from rsf-admin/src/page/locItem/LocItemPanel.jsx rename to rsf-admin/src/page/stockItem/StockItemPanel.jsx index 71d21d8..6f0fda6 100644 --- a/rsf-admin/src/page/locItem/LocItemPanel.jsx +++ b/rsf-admin/src/page/stockItem/StockItemPanel.jsx @@ -7,7 +7,7 @@ import PanelTypography from "../components/PanelTypography"; import * as Common from '@/utils/common' -const LocItemPanel = () => { +const StockItemPanel = () => { const record = useRecordContext(); if (!record) return null; const translate = useTranslate(); @@ -23,7 +23,7 @@ overflow: 'hidden', textOverflow: 'ellipsis', }}> - {Common.camelToPascalWithSpaces(translate('table.field.locItem.id'))}: {record.id} + {Common.camelToPascalWithSpaces(translate('table.field.stockItem.id'))}: {record.id} </Typography> {/* inherit, primary, secondary, textPrimary, textSecondary, error */} <Typography variant="h6" gutterBottom align="right" > @@ -42,98 +42,122 @@ <Grid container spacing={2}> <Grid item xs={6}> <PanelTypography - title="table.field.locItem.locId" - property={record.locId} + title="table.field.stockItem.stockId" + property={record.stockId} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.locItem.orderId" - property={record.orderId} + title="table.field.stockItem.stockCode" + property={record.stockCode} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.locItem.type" - property={record.type} + title="table.field.stockItem.sourceItemId" + property={record.sourceItemId} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.locItem.orderItemId" - property={record.orderItemId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.locItem.wkType" - property={record.wkType} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.locItem.matnrId" + title="table.field.stockItem.matnrId" property={record.matnrId} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.locItem.maktx" - property={record.maktx} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.locItem.matnrCode" + title="table.field.stockItem.matnrCode" property={record.matnrCode} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.locItem.trackCode" - property={record.trackCode} + title="table.field.stockItem.maktx" + property={record.maktx} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.locItem.unit" - property={record.unit} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.locItem.anfme" + title="table.field.stockItem.anfme" property={record.anfme} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.locItem.batch" + title="table.field.stockItem.stockUnit" + property={record.stockUnit} + /> + </Grid> + <Grid item xs={6}> + <PanelTypography + title="table.field.stockItem.workQty" + property={record.workQty} + /> + </Grid> + <Grid item xs={6}> + <PanelTypography + title="table.field.stockItem.purQty" + property={record.purQty} + /> + </Grid> + <Grid item xs={6}> + <PanelTypography + title="table.field.stockItem.purUnit" + property={record.purUnit} + /> + </Grid> + <Grid item xs={6}> + <PanelTypography + title="table.field.stockItem.qty" + property={record.qty} + /> + </Grid> + <Grid item xs={6}> + <PanelTypography + title="table.field.stockItem.splrCode" + property={record.splrCode} + /> + </Grid> + <Grid item xs={6}> + <PanelTypography + title="table.field.stockItem.batch" property={record.batch} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.locItem.splrBatch" + title="table.field.stockItem.splrBatch" property={record.splrBatch} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.locItem.spec" - property={record.spec} + title="table.field.stockItem.splrName" + property={record.splrName} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.locItem.model" - property={record.model} + title="table.field.stockItem.trackCode" + property={record.trackCode} /> </Grid> <Grid item xs={6}> <PanelTypography - title="table.field.locItem.fieldsIndex" - property={record.fieldsIndex} + title="table.field.stockItem.barcode" + property={record.barcode} + /> + </Grid> + <Grid item xs={6}> + <PanelTypography + title="table.field.stockItem.prodTime" + property={record.prodTime} + /> + </Grid> + <Grid item xs={6}> + <PanelTypography + title="table.field.stockItem.packName" + property={record.packName} /> </Grid> @@ -144,4 +168,4 @@ ); }; -export default LocItemPanel; +export default StockItemPanel; diff --git a/rsf-admin/src/page/locItem/index.jsx b/rsf-admin/src/page/stockItem/index.jsx similarity index 66% rename from rsf-admin/src/page/locItem/index.jsx rename to rsf-admin/src/page/stockItem/index.jsx index a02f044..2449954 100644 --- a/rsf-admin/src/page/locItem/index.jsx +++ b/rsf-admin/src/page/stockItem/index.jsx @@ -5,12 +5,12 @@ ShowGuesser, } from "react-admin"; -import LocItemList from "./LocItemList"; -import LocItemEdit from "./LocItemEdit"; +import StockItemList from "./StockItemList"; +import StockItemEdit from "./StockItemEdit"; export default { - list: LocItemList, - edit: LocItemEdit, + list: StockItemList, + edit: StockItemEdit, show: ShowGuesser, recordRepresentation: (record) => { return `${record.id}` diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java index 83e71ea..3663686 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java @@ -22,8 +22,8 @@ // generator.username="sa"; // generator.password="Zoneyung@zy56$"; - generator.table="man_loc_item"; - generator.tableDesc="搴撲綅鏄庣粏"; + generator.table="man_stock_item"; + generator.tableDesc="缁煎悎鍗曟嵁鏄庣粏"; generator.packagePath="com.vincent.rsf.server.manager"; generator.build(); diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java index 78e4034..5657acc 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java @@ -247,7 +247,13 @@ if (StringUtils.isBlank(ruleCode)) { throw new CoolException("褰撳墠涓氬姟锛�" + SerialRuleCode.SYS_STOCK_CODE + "锛岀紪鐮佽鍒欎笉瀛樺湪锛侊紒"); } - stock.setSourceId(order.getId()).setSourceCode(order.getCode()); + double sum = items.stream().mapToDouble(TaskItem::getAnfme).sum(); + stock.setSourceId(order.getId()) + .setCode(ruleCode) + .setSourceCode(order.getCode()) + .setAnfme(sum) + .setWkType(Short.parseShort(order.getWkType())) + .setType(order.getType()); if (!stockService.save(stock)) { throw new CoolException("搴撳瓨淇濆瓨澶辫触锛侊紒"); } @@ -272,26 +278,4 @@ throw new CoolException("搴撳瓨淇敼鏋跺け璐ワ紒锛�"); } } - -// public void generateOrders() { -// Map<Long, List<TaskItem>> listMap = taskItems.stream().collect(Collectors.groupingBy(TaskItem::getOrderId)); -// listMap.keySet().forEach(key -> { -// double sum = listMap.get(key).stream().mapToDouble(TaskItem::getAnfme).sum(); -// listMap.get(key).forEach(taskItem -> { -// Order order = new Order(); -// String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_MANAGE_ORDER_CODE, taskItem); -// if (Objects.isNull(ruleCode) || StringUtils.isBlank(ruleCode)) { -// throw new CoolException("缂栫爜瑙勫垯閿欒锛�" + "璇锋煡鐪嬬紪鐮侊細" + "銆孲YS_MANAGE_ORDER_CODE銆�" + "鏄惁璁剧疆"); -// } -// order.setCode(ruleCode).setAnfme(sum).setSourceId(taskItem.getOrderId()); -// }); -// }); -// -// if (!orderItemService.saveBatch(orderItems)) { -// throw new CoolException("鍗曟嵁鏄庣粏淇濆瓨澶辫触锛侊紒"); -// } -// } - - - } diff --git a/rsf-server/src/main/java/stockItem.sql b/rsf-server/src/main/java/stockItem.sql new file mode 100644 index 0000000..306ee63 --- /dev/null +++ b/rsf-server/src/main/java/stockItem.sql @@ -0,0 +1,41 @@ +-- save stockItem record +-- mysql +insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `tenant_id`, `status`) values ( 'menu.stockItem', '0', '/manager/stockItem', 'stockItem', '0' , '0', '1' , '1'); + +insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Query 缁煎悎鍗曟嵁鏄庣粏', '', '1', 'manager:stockItem:list', '0', '1', '1'); +insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Create 缁煎悎鍗曟嵁鏄庣粏', '', '1', 'manager:stockItem:save', '1', '1', '1'); +insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Update 缁煎悎鍗曟嵁鏄庣粏', '', '1', 'manager:stockItem:update', '2', '1', '1'); +insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Delete 缁煎悎鍗曟嵁鏄庣粏', '', '1', 'manager:stockItem:remove', '3', '1', '1'); + +-- locale menu name +stockItem: 'StockItem', + +-- locale field +stockItem: { + stockId: "stockId", + stockCode: "stockCode", + sourceItemId: "sourceItemId", + matnrId: "matnrId", + matnrCode: "matnrCode", + maktx: "maktx", + anfme: "anfme", + stockUnit: "stockUnit", + workQty: "workQty", + purQty: "purQty", + purUnit: "purUnit", + qty: "qty", + splrCode: "splrCode", + batch: "batch", + splrBatch: "splrBatch", + splrName: "splrName", + trackCode: "trackCode", + barcode: "barcode", + prodTime: "prodTime", + packName: "packName", +}, + +-- ResourceContent +import stockItem from './stockItem'; + +case 'stockItem': + return stockItem; -- Gitblit v1.9.1