| | |
| | | shipperId: "shipperId", |
| | | groupId: "groupId", |
| | | rglarId: "RegularId", |
| | | erpCode: "erpCode", |
| | | platCode: "platCode", |
| | | spec: "spec", |
| | | model: "model", |
| | | weight: "weight", |
| | |
| | | }, |
| | | purchase: { |
| | | code: "code", |
| | | erpId: "erpId", |
| | | platId: "PlatId", |
| | | type: "type", |
| | | wkType: "wkType", |
| | | source: "source", |
| | |
| | | qty: "qty", |
| | | workQty: "workQty", |
| | | channel: "channel", |
| | | erpCode: "erpCode", |
| | | platCode: "platCode", |
| | | project: "project", |
| | | startTime: "startTime", |
| | | endTime: "endTime", |
| | |
| | | shipperId: "货主标识", |
| | | groupId: "分组标识", |
| | | rglarId: "批次规则标识", |
| | | erpCode: "ERP编码", |
| | | platCode: "ERP编码", |
| | | spec: "规格", |
| | | model: "型号", |
| | | weight: "重量", |
| | |
| | | }, |
| | | purchase: { |
| | | code: "编码", |
| | | erpId: "erp标识", |
| | | platId: "平台标识", |
| | | type: "单据类型", |
| | | wkType: "业务类型", |
| | | source: "来源", |
| | |
| | | qty: "已完成数量", |
| | | workQty: "执行中数量", |
| | | channel: "收货通道", |
| | | erpCode: "Erp编码", |
| | | platCode: "Erp编码", |
| | | project: "项目名称", |
| | | startTime: "开始时间", |
| | | endTime: "结束时间", |
| | |
| | | ]} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={6} display="flex" gap={1}> |
| | | <TextInput |
| | | label="table.field.asnOrder.name" |
| | | source="name" |
| | | parse={v => v} |
| | | /> |
| | | </Grid> |
| | | |
| | | <Grid item xs={6} display="flex" gap={1}> |
| | | <StatusSelectInput /> |
| | |
| | | validate={required()} |
| | | /> |
| | | </Stack> |
| | | <Stack direction='row' gap={2}> |
| | | <TextInput |
| | | label="table.field.asnOrder.name" |
| | | source="name" |
| | | parse={v => v} |
| | | /> |
| | | </Stack> |
| | | |
| | | |
| | | </Grid> |
| | | <Grid item xs={12} md={4}> |
| | |
| | | { id: 1, name: ' 已释放' }, |
| | | ]} |
| | | />, |
| | | <TextInput source="name" label="table.field.asnOrder.name" />, |
| | | |
| | | <TextInput label="common.field.memo" source="memo" />, |
| | | <SelectInput |
| | |
| | | <Card sx={{ width: { xs: 300, sm: 500, md: 600, lg: 800 }, margin: 'auto' }}> |
| | | <CardContent> |
| | | <Grid container spacing={2}> |
| | | <Grid item xs={12} sx={{ display: 'flex', justifyContent: 'space-between' }}> |
| | | <Typography variant="h6" gutterBottom align="left" sx={{ |
| | | maxWidth: { xs: '100px', sm: '180px', md: '260px', lg: '360px' }, |
| | | whiteSpace: 'nowrap', |
| | | overflow: 'hidden', |
| | | textOverflow: 'ellipsis', |
| | | }}> |
| | | {Common.camelToPascalWithSpaces(translate('table.field.asnOrder.name'))}: {record.name} |
| | | </Typography> |
| | | {/* inherit, primary, secondary, textPrimary, textSecondary, error */} |
| | | <Typography variant="h6" gutterBottom align="right" > |
| | | ID: {record.id} |
| | | </Typography> |
| | | </Grid> |
| | | </Grid> |
| | | <Grid container spacing={2}> |
| | | <Grid item xs={12} container alignContent="flex-end"> |
| | | <Typography variant="caption" color="textSecondary" sx={{ wordWrap: 'break-word', wordBreak: 'break-all' }}> |
| | | {Common.camelToPascalWithSpaces(translate('common.field.memo'))}:{record.memo} |
| | |
| | | property={record.rleStatus$} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={6}> |
| | | <PanelTypography |
| | | title="table.field.asnOrder.name" |
| | | property={record.name} |
| | | /> |
| | | </Grid> |
| | | |
| | | </Grid> |
| | | </CardContent> |
| | | </Card > |
| | |
| | | </Grid> |
| | | <Grid item xs={6} display="flex" gap={1}> |
| | | <TextInput |
| | | label="table.field.matnr.erpCode" |
| | | source="erpCode" |
| | | label="table.field.matnr.platCode" |
| | | source="platCode" |
| | | validate={[required()]} |
| | | parse={v => v} |
| | | /> |
| | |
| | | </Grid> |
| | | <Grid item xs={6} display="flex" gap={1}> |
| | | <TextInput |
| | | label="table.field.matnr.erpCode" |
| | | source="erpCode" |
| | | label="table.field.matnr.platCode" |
| | | source="platCode" |
| | | parse={v => v} |
| | | /> |
| | | </Grid> |
| | |
| | | <ReferenceInput source="rglarId" label="table.field.matnr.rglarId" reference="rglarId"> |
| | | <AutocompleteInput label="table.field.matnr.rglarId" optionText="code" filterToQuery={(val) => ({ code: val })} /> |
| | | </ReferenceInput>, |
| | | <TextInput source="erpCode" label="table.field.matnr.erpCode" />, |
| | | <TextInput source="platCode" label="table.field.matnr.platCode" />, |
| | | <TextInput source="spec" label="table.field.matnr.spec" />, |
| | | <TextInput source="model" label="table.field.matnr.model" />, |
| | | <NumberInput source="weight" label="table.field.matnr.weight" />, |
| | |
| | | rowClick={(id, resource, record) => false} |
| | | expand={() => <MatnrPanel />} |
| | | expandSingle={true} |
| | | omit={['id','shipperId','erpCode','spec','model','weight','color','size','describle' |
| | | omit={['id','shipperId','platCode','spec','model','weight','color','size','describle' |
| | | ,'nromNum','unit','purchaseUnit','stockUnit','stockLeval','isLabelMange','safeQty' |
| | | ,'minQty','maxQty','stagn','valid','validWarn','flagCheck','updateTime', 'updateBy' |
| | | , 'createTime', 'createBy', 'memo']} |
| | |
| | | <ReferenceField source="rglarId" label="table.field.matnr.rglarId" reference="batchRegular" link={false} sortable={false}> |
| | | <TextField source="code" /> |
| | | </ReferenceField> |
| | | <TextField source="erpCode" label="table.field.matnr.erpCode" /> |
| | | <TextField source="platCode" label="table.field.matnr.platCode" /> |
| | | <TextField source="spec" label="table.field.matnr.spec" /> |
| | | <TextField source="model" label="table.field.matnr.model" /> |
| | | <NumberField source="weight" label="table.field.matnr.weight" /> |
| | |
| | | </Grid> |
| | | <Grid item xs={3}> |
| | | <PanelTypography |
| | | title="table.field.matnr.erpCode" |
| | | property={record.erpCode} |
| | | title="table.field.matnr.platCode" |
| | | property={record.platCode} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={3}> |
| | |
| | | </Grid> |
| | | <Grid item xs={6} display="flex" gap={1}> |
| | | <TextInput |
| | | label="table.field.purchase.from" |
| | | source="from" |
| | | label="table.field.purchase.source" |
| | | source="source" |
| | | parse={v => v} |
| | | validate={required()} |
| | | /> |
| | |
| | | </Grid> |
| | | <Grid item xs={6} display="flex" gap={1}> |
| | | <TextInput |
| | | label="table.field.purchase.erpCode" |
| | | source="erpCode" |
| | | label="table.field.purchase.platCode" |
| | | source="platCode" |
| | | parse={v => v} |
| | | /> |
| | | </Grid> |
| | |
| | | </Stack> |
| | | <Stack direction='row' gap={2}> |
| | | <TextInput |
| | | label="table.field.purchase.from" |
| | | source="from" |
| | | label="table.field.purchase.source" |
| | | source="source" |
| | | parse={v => v} |
| | | validate={required()} |
| | | /> |
| | |
| | | </Stack> |
| | | <Stack direction='row' gap={2}> |
| | | <TextInput |
| | | label="table.field.purchase.erpCode" |
| | | source="erpCode" |
| | | label="table.field.purchase.platCode" |
| | | source="platCode" |
| | | parse={v => v} |
| | | /> |
| | | </Stack> |
| | |
| | | <SearchInput source="condition" alwaysOn />, |
| | | <DateInput label='common.time.after' source="timeStart" alwaysOn />, |
| | | <DateInput label='common.time.before' source="timeEnd" alwaysOn />, |
| | | |
| | | <TextInput source="code" label="table.field.purchase.code" />, |
| | | <TextInput source="type" label="table.field.purchase.type" />, |
| | | <TextInput source="from" label="table.field.purchase.from" />, |
| | | <TextInput source="source" label="table.field.purchase.source" />, |
| | | <DateInput source="preArr" label="table.field.purchase.preArr" />, |
| | | <NumberInput source="anfme" label="table.field.purchase.anfme" />, |
| | | <NumberInput source="qty" label="table.field.purchase.qty" />, |
| | | <NumberInput source="workQty" label="table.field.purchase.workQty" />, |
| | | <TextInput source="channel" label="table.field.purchase.channel" />, |
| | | <TextInput source="erpCode" label="table.field.purchase.erpCode" />, |
| | | <TextInput source="platCode" label="table.field.purchase.platCode" />, |
| | | <DateInput source="startTime" label="table.field.purchase.startTime" />, |
| | | <DateInput source="endTime" label="table.field.purchase.endTime" />, |
| | | <TextInput source="project" label="table.field.purchase.project" />, |
| | | |
| | | <TextInput label="common.field.memo" source="memo" />, |
| | | <SelectInput |
| | | label="common.field.status" |
| | |
| | | <NumberField source="id" /> |
| | | <TextField source="code" label="table.field.purchase.code" /> |
| | | <TextField source="type" label="table.field.purchase.type" /> |
| | | <TextField source="from" label="table.field.purchase.from" /> |
| | | <TextField source="source" label="table.field.purchase.source" /> |
| | | <DateField source="preArr" label="table.field.purchase.preArr" showTime /> |
| | | <NumberField source="anfme" label="table.field.purchase.anfme" /> |
| | | <NumberField source="qty" label="table.field.purchase.qty" /> |
| | | <NumberField source="workQty" label="table.field.purchase.workQty" /> |
| | | <TextField source="channel" label="table.field.purchase.channel" /> |
| | | <TextField source="erpCode" label="table.field.purchase.erpCode" /> |
| | | <TextField source="platCode" label="table.field.purchase.platCode" /> |
| | | <DateField source="startTime" label="table.field.purchase.startTime" showTime /> |
| | | <DateField source="endTime" label="table.field.purchase.endTime" showTime /> |
| | | <TextField source="project" label="table.field.purchase.project" /> |
| | |
| | | </Grid> |
| | | <Grid item xs={6}> |
| | | <PanelTypography |
| | | title="table.field.purchase.from" |
| | | property={record.from} |
| | | title="table.field.purchase.source" |
| | | property={record.source} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={6}> |
| | |
| | | </Grid> |
| | | <Grid item xs={6}> |
| | | <PanelTypography |
| | | title="table.field.purchase.erpCode" |
| | | property={record.erpCode} |
| | | title="table.field.purchase.platCode" |
| | | property={record.platCode} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={6}> |
| | |
| | | </Grid> |
| | | <Grid item xs={6} display="flex" gap={1}> |
| | | <TextInput |
| | | label="table.field.purchaseItem.erpId" |
| | | source="erpId" |
| | | label="table.field.purchaseItem.platItemId" |
| | | source="platItemId" |
| | | parse={v => v} |
| | | /> |
| | | </Grid> |
| | |
| | | </Grid> |
| | | <Grid item xs={6} display="flex" gap={1}> |
| | | <NumberInput |
| | | label="table.field.purchaseItem.nomQty" |
| | | source="nomQty" |
| | | label="table.field.purchaseItem.nromQty" |
| | | source="nromQty" |
| | | validate={required()} |
| | | /> |
| | | </Grid> |
| | |
| | | </Grid> |
| | | <Grid item xs={6} display="flex" gap={1}> |
| | | <TextInput |
| | | label="table.field.purchaseItem.pulrName" |
| | | source="pulrName" |
| | | label="table.field.purchaseItem.splrName" |
| | | source="splrName" |
| | | parse={v => v} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={6} display="flex" gap={1}> |
| | | <TextInput |
| | | label="table.field.purchaseItem.pulrCode" |
| | | source="pulrCode" |
| | | label="table.field.purchaseItem.splrCode" |
| | | source="splrCode" |
| | | parse={v => v} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={6} display="flex" gap={1}> |
| | | <TextInput |
| | | label="table.field.purchaseItem.pulrBatch" |
| | | source="pulrBatch" |
| | | label="table.field.purchaseItem.splrBatch" |
| | | source="splrBatch" |
| | | parse={v => v} |
| | | /> |
| | | </Grid> |
| | |
| | | </Stack> |
| | | <Stack direction='row' gap={2}> |
| | | <TextInput |
| | | label="table.field.purchaseItem.erpId" |
| | | source="erpId" |
| | | label="table.field.purchaseItem.platItemId" |
| | | source="platItemId" |
| | | parse={v => v} |
| | | /> |
| | | </Stack> |
| | |
| | | </Stack> |
| | | <Stack direction='row' gap={2}> |
| | | <NumberInput |
| | | label="table.field.purchaseItem.nomQty" |
| | | source="nomQty" |
| | | label="table.field.purchaseItem.nromQty" |
| | | source="nromQty" |
| | | validate={required()} |
| | | /> |
| | | </Stack> |
| | |
| | | </Stack> |
| | | <Stack direction='row' gap={2}> |
| | | <TextInput |
| | | label="table.field.purchaseItem.pulrName" |
| | | source="pulrName" |
| | | label="table.field.purchaseItem.splrName" |
| | | source="splrName" |
| | | parse={v => v} |
| | | /> |
| | | </Stack> |
| | | <Stack direction='row' gap={2}> |
| | | <TextInput |
| | | label="table.field.purchaseItem.pulrCode" |
| | | source="pulrCode" |
| | | label="table.field.purchaseItem.splrCode" |
| | | source="splrCode" |
| | | parse={v => v} |
| | | /> |
| | | </Stack> |
| | | <Stack direction='row' gap={2}> |
| | | <TextInput |
| | | label="table.field.purchaseItem.pulrBatch" |
| | | source="pulrBatch" |
| | | label="table.field.purchaseItem.splrBatch" |
| | | source="splrBatch" |
| | | parse={v => v} |
| | | /> |
| | | </Stack> |
| | |
| | | <DateInput label='common.time.before' source="timeEnd" alwaysOn />, |
| | | |
| | | <NumberInput source="purchaseId" label="table.field.purchaseItem.purchaseId" />, |
| | | <TextInput source="erpId" label="table.field.purchaseItem.erpId" />, |
| | | <TextInput source="platItemId" label="table.field.purchaseItem.platItemId" />, |
| | | <TextInput source="matnrCode" label="table.field.purchaseItem.matnrCode" />, |
| | | <TextInput source="matnrName" label="table.field.purchaseItem.matnrName" />, |
| | | <TextInput source="unit" label="table.field.purchaseItem.unit" />, |
| | | <NumberInput source="anfme" label="table.field.purchaseItem.anfme" />, |
| | | <NumberInput source="qty" label="table.field.purchaseItem.qty" />, |
| | | <NumberInput source="nomQty" label="table.field.purchaseItem.nomQty" />, |
| | | <NumberInput source="nromQty" label="table.field.purchaseItem.nromQty" />, |
| | | <NumberInput source="asnQty" label="table.field.purchaseItem.asnQty" />, |
| | | <NumberInput source="printQty" label="table.field.purchaseItem.printQty" />, |
| | | <TextInput source="pulrName" label="table.field.purchaseItem.pulrName" />, |
| | | <TextInput source="pulrCode" label="table.field.purchaseItem.pulrCode" />, |
| | | <TextInput source="pulrBatch" label="table.field.purchaseItem.pulrBatch" />, |
| | | <TextInput source="splrName" label="table.field.purchaseItem.splrName" />, |
| | | <TextInput source="splrCode" label="table.field.purchaseItem.splrCode" />, |
| | | <TextInput source="splrBatch" label="table.field.purchaseItem.splrBatch" />, |
| | | |
| | | <TextInput label="common.field.memo" source="memo" />, |
| | | <SelectInput |
| | |
| | | > |
| | | <NumberField source="id" /> |
| | | <NumberField source="purchaseId" label="table.field.purchaseItem.purchaseId" /> |
| | | <TextField source="erpId" label="table.field.purchaseItem.erpId" /> |
| | | <TextField source="platItemId" label="table.field.purchaseItem.platItemId" /> |
| | | <TextField source="matnrCode" label="table.field.purchaseItem.matnrCode" /> |
| | | <TextField source="matnrName" label="table.field.purchaseItem.matnrName" /> |
| | | <TextField source="unit" label="table.field.purchaseItem.unit" /> |
| | | <NumberField source="anfme" label="table.field.purchaseItem.anfme" /> |
| | | <NumberField source="qty" label="table.field.purchaseItem.qty" /> |
| | | <NumberField source="nomQty" label="table.field.purchaseItem.nomQty" /> |
| | | <NumberField source="nromQty" label="table.field.purchaseItem.nromQty" /> |
| | | <NumberField source="asnQty" label="table.field.purchaseItem.asnQty" /> |
| | | <NumberField source="printQty" label="table.field.purchaseItem.printQty" /> |
| | | <TextField source="pulrName" label="table.field.purchaseItem.pulrName" /> |
| | | <TextField source="pulrCode" label="table.field.purchaseItem.pulrCode" /> |
| | | <TextField source="pulrBatch" label="table.field.purchaseItem.pulrBatch" /> |
| | | <TextField source="splrName" label="table.field.purchaseItem.splrName" /> |
| | | <TextField source="splrCode" label="table.field.purchaseItem.splrCode" /> |
| | | <TextField source="splrBatch" label="table.field.purchaseItem.splrBatch" /> |
| | | |
| | | <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}> |
| | | <TextField source="nickname" /> |
| | |
| | | </Grid> |
| | | <Grid item xs={6}> |
| | | <PanelTypography |
| | | title="table.field.purchaseItem.erpId" |
| | | property={record.erpId} |
| | | title="table.field.purchaseItem.platItemId" |
| | | property={record.platItemId} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={6}> |
| | |
| | | </Grid> |
| | | <Grid item xs={6}> |
| | | <PanelTypography |
| | | title="table.field.purchaseItem.nomQty" |
| | | property={record.nomQty} |
| | | title="table.field.purchaseItem.nromQty" |
| | | property={record.nromQty} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={6}> |
| | |
| | | </Grid> |
| | | <Grid item xs={6}> |
| | | <PanelTypography |
| | | title="table.field.purchaseItem.pulrName" |
| | | property={record.pulrName} |
| | | title="table.field.purchaseItem.splrName" |
| | | property={record.splrName} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={6}> |
| | | <PanelTypography |
| | | title="table.field.purchaseItem.pulrCode" |
| | | property={record.pulrCode} |
| | | title="table.field.purchaseItem.splrCode" |
| | | property={record.splrCode} |
| | | /> |
| | | </Grid> |
| | | <Grid item xs={6}> |
| | | <PanelTypography |
| | | title="table.field.purchaseItem.pulrBatch" |
| | | property={record.pulrBatch} |
| | | title="table.field.purchaseItem.splrBatch" |
| | | property={record.splrBatch} |
| | | /> |
| | | </Grid> |
| | | |
| | |
| | | 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 SerialRuleCreate = (props) => { |
| | | const { open, setOpen } = props; |
| | |
| | | Grid, |
| | | Box, |
| | | } from "@mui/material"; |
| | | import DialogCloseButton from "../components/DialogCloseButton"; |
| | | import DialogCloseButton from "../../components/DialogCloseButton"; |
| | | import SerialRuleItem from "../serialRuleItem/index"; |
| | | |
| | | const SerialRuleDetail = (props) => { |
| | |
| | | import SerialRuleCreate from "./SerialRuleCreate"; |
| | | import SerialRuleDetail from "./SerialRuleDetail"; |
| | | import SerialRulePanel from "./SerialRulePanel"; |
| | | 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 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, |
| | |
| | | import { styled } from "@mui/material/styles"; |
| | | import SerialRuleItemCreate from "./SerialRuleItemCreate"; |
| | | import SerialRuleItemPanel from "./SerialRuleItemPanel"; |
| | | 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 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 CustomerTopToolBar from "../components/EditTopToolBar"; |
| | | import CustomerTopToolBar from "../../components/EditTopToolBar"; |
| | | |
| | | const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ |
| | | "& .css-1vooibu-MuiSvgIcon-root": { |
| | |
| | | return mobileService.otherReceipt(params); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('manager:warehouseAreas:list')") |
| | | @ApiOperation("获取收货区") |
| | | @GetMapping("/areas/receipt") |
| | | public R getReceiptAreas() { |
| | | return mobileService.getReceiptAreas(); |
| | | } |
| | | |
| | | |
| | | @PreAuthorize("hasAuthority('manager:asnOrder:list')") |
| | | @GetMapping("/orders/asn") |
| | |
| | | R otherReceipt(OtherReceiptParams params); |
| | | |
| | | List<AsnOrder> getAllAsnOrders(); |
| | | |
| | | R getReceiptAreas(); |
| | | } |
| | |
| | | ErpInspectParams params = new ErpInspectParams(); |
| | | List<ErpInspectItem> inspectItems = new ArrayList<>(); |
| | | //赋值erp主单编码,编号 |
| | | params.setPoId(purchase.getErpId()) |
| | | .setPoCode(purchase.getErpCode()); |
| | | params.setPoId(purchase.getPlatId()) |
| | | .setPoCode(purchase.getPlatCode()); |
| | | List<PoItemsDto> dtos = listMap.get(key); |
| | | if (dtos.isEmpty()) { |
| | | throw new CoolException("单据信息错误!!"); |
| | |
| | | import com.vincent.rsf.server.api.entity.enums.OrderWorkType; |
| | | import com.vincent.rsf.server.api.service.MobileService; |
| | | import com.vincent.rsf.server.common.config.ConfigProperties; |
| | | import com.vincent.rsf.server.common.enums.WarehouseAreaType; |
| | | import com.vincent.rsf.server.common.security.JwtSubject; |
| | | import com.vincent.rsf.server.common.utils.JwtUtil; |
| | | import com.vincent.rsf.server.manager.entity.*; |
| | | import com.vincent.rsf.server.manager.mapper.*; |
| | | import com.vincent.rsf.server.manager.service.WarehouseAreasItemService; |
| | | import com.vincent.rsf.server.manager.service.WarehouseAreasService; |
| | | import com.vincent.rsf.server.system.constant.CodeRes; |
| | | import com.vincent.rsf.server.system.controller.param.LoginParam; |
| | | import com.vincent.rsf.server.system.controller.result.LoginResult; |
| | |
| | | import com.vincent.rsf.server.system.mapper.TenantMapper; |
| | | import com.vincent.rsf.server.system.mapper.UserMapper; |
| | | import com.vincent.rsf.server.system.service.UserLoginService; |
| | | import com.vincent.rsf.server.system.utils.SerialRuleUtils; |
| | | import org.apache.tika.utils.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | |
| | | private UserLoginService userLoginService; |
| | | @Autowired |
| | | private WarehouseAreasItemService warehouseAreasItemService; |
| | | @Autowired |
| | | private WarehouseAreasService warehouseAreasService; |
| | | @Resource |
| | | private AsnOrderItemMapper asnOrderItemMapper; |
| | | @Resource |
| | |
| | | .setAreaName(areasItem.getAreaName()) |
| | | .setAreaId(areasItem.getAreaId()) |
| | | .setStockUnit(dto.getStockUnit()) |
| | | //TODO 编码规则生成批次 (物料号+日期) |
| | | .setBatch(null) |
| | | .setBatch(SerialRuleUtils.generateRuleCode("sys_receipt_batch", dto)) |
| | | .setAnfme(dto.getReceiptQty()) |
| | | .setSplrBtch(dto.getSplrBatch()) |
| | | .setMatnrCode(matnr.getCode()) |
| | | .setMatnrId(matnr.getId()) |
| | | .setMatnrName(matnr.getName()) |
| | | //TODO 入库单位换算 |
| | | //库存单位为最小单位 |
| | | .setUnit(dto.getStockUnit()) |
| | | .setStockUnit(dto.getStockUnit()) |
| | | .setWeight(matnr.getWeight()) |
| | | .setShipperId(matnr.getShipperId()); |
| | | //TODO 供应商标识未设置 |
| | | //TODO 供应商标识未设置,标识由PO单供应商编码转换 |
| | | |
| | | allOrders.add(item); |
| | | }); |
| | |
| | | } |
| | | |
| | | /** |
| | | * @author Ryan |
| | | * @description 获取收货区 |
| | | * @param |
| | | * @return |
| | | * @time 2025/3/11 10:12 |
| | | */ |
| | | @Override |
| | | public R getReceiptAreas() { |
| | | return R.ok(warehouseAreasService.list(new LambdaQueryWrapper<WarehouseAreas>().eq(WarehouseAreas::getType, WarehouseAreaType.WAREHOUSE_AREA_RECEIPT.type))); |
| | | } |
| | | |
| | | /** |
| | | * 获取ReceiptDetlsDto |
| | | */ |
| | | private R getAsnOrderItem(AsnOrderItem asnOrderItem) { |
New file |
| | |
| | | package com.vincent.rsf.server.common.enums; |
| | | |
| | | /** |
| | | * @author Ryan |
| | | * @version 1.0 |
| | | * @title WarehouseAreaType |
| | | * @description |
| | | * @create 2025/3/11 10:26 |
| | | */ |
| | | public enum WarehouseAreaType { |
| | | //订单类型 |
| | | WAREHOUSE_AREA_RECEIPT("receipt", "收货区"), |
| | | WAREHOUSE_AREA_COLLECTION("collection", "集货区"), |
| | | WAREHOUSE_AREA_DELIVERY("delivery", "发货区"), |
| | | ; |
| | | |
| | | WarehouseAreaType(String type, String desc) { |
| | | this.type = type; |
| | | this.desc = desc; |
| | | } |
| | | |
| | | public String type; |
| | | public String desc; |
| | | } |
| | |
| | | import com.vincent.rsf.server.manager.service.AsnOrderService; |
| | | import com.vincent.rsf.server.system.controller.BaseController; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | @PreAuthorize("hasAuthority('manager:asnOrder:save')") |
| | | @OperationLog("Create ASN单据") |
| | | @PostMapping("/asnOrder/save") |
| | | @ApiOperation("保存") |
| | | public R save(@RequestBody AsnOrder asnOrder) { |
| | | asnOrder.setCreateBy(getLoginUserId()); |
| | | asnOrder.setCreateTime(new Date()); |
| | |
| | | @PreAuthorize("hasAuthority('manager:asnOrder:update')") |
| | | @OperationLog("Update ASN单据") |
| | | @PostMapping("/asnOrder/update") |
| | | @ApiOperation("更新") |
| | | public R update(@RequestBody AsnOrder asnOrder) { |
| | | asnOrder.setUpdateBy(getLoginUserId()); |
| | | asnOrder.setUpdateTime(new Date()); |
| | |
| | | |
| | | @PreAuthorize("hasAuthority('manager:asnOrder:list')") |
| | | @PostMapping("/asnOrder/query") |
| | | @ApiOperation("查询") |
| | | public R query(@RequestParam(required = false) String condition) { |
| | | List<KeyValVo> vos = new ArrayList<>(); |
| | | LambdaQueryWrapper<AsnOrder> wrapper = new LambdaQueryWrapper<>(); |
| | |
| | | |
| | | @PreAuthorize("hasAuthority('manager:asnOrder:list')") |
| | | @PostMapping("/asnOrder/export") |
| | | @ApiOperation("导出") |
| | | public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { |
| | | ExcelUtil.build(ExcelUtil.create(asnOrderService.list(), AsnOrder.class), response); |
| | | } |
| | |
| | | * @return |
| | | */ |
| | | @PostMapping("/asnOrder/inspect") |
| | | @ApiOperation("质检上报") |
| | | @PreAuthorize("hasAuthority('manager:asnOrder:list')") |
| | | public R notifyInspect(@RequestBody List<AsnOrder> orders) { |
| | | if (orders.isEmpty()) { |
| | |
| | | List<KeyValVo> vos = new ArrayList<>(); |
| | | LambdaQueryWrapper<WarehouseAreas> wrapper = new LambdaQueryWrapper<>(); |
| | | if (!Cools.isEmpty(condition)) { |
| | | wrapper.like(WarehouseAreas::getUuid, condition); |
| | | wrapper.like(WarehouseAreas::getType, condition); |
| | | } |
| | | warehouseAreasService.page(new Page<>(1, 30), wrapper).getRecords().forEach( |
| | | item -> vos.add(new KeyValVo(item.getId(), item.getUuid())) |
| | | item -> vos.add(new KeyValVo(item.getId(), item.getType())) |
| | | ); |
| | | return R.ok().add(vos); |
| | | } |
| | |
| | | * ERP编码 |
| | | */ |
| | | @ApiModelProperty(value= "ERP编码") |
| | | private String erpCode; |
| | | private String platCode; |
| | | |
| | | /** |
| | | * 规格 |
| | |
| | | |
| | | public Matnr() {} |
| | | |
| | | public Matnr(String name,String code,Long shipperId,Long groupId,Long rglarId,String erpCode,String spec,String model,Double weight,String color,String size,String describle,Integer nromNum,String unit,String purUnit,String stockUnit,Short stockLevel,Short flagLabelMange,Double safeQty,Double minQty,Double maxQty,Integer stagn,Integer valid,Integer validWarn,Short flagCheck,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) { |
| | | public Matnr(String name,String code,Long shipperId,Long groupId,Long rglarId,String platCode,String spec,String model,Double weight,String color,String size,String describle,Integer nromNum,String unit,String purUnit,String stockUnit,Short stockLevel,Short flagLabelMange,Double safeQty,Double minQty,Double maxQty,Integer stagn,Integer valid,Integer validWarn,Short flagCheck,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) { |
| | | this.name = name; |
| | | this.code = code; |
| | | this.shipperId = shipperId; |
| | | this.groupId = groupId; |
| | | this.rglarId = rglarId; |
| | | this.erpCode = erpCode; |
| | | this.platCode = platCode; |
| | | this.spec = spec; |
| | | this.model = model; |
| | | this.weight = weight; |
| | |
| | | |
| | | |
| | | @ApiModelProperty(value = "erp主单标识") |
| | | private String erpId; |
| | | private String platId; |
| | | |
| | | /** |
| | | * 单据来源 |
| | |
| | | * erp单号 |
| | | */ |
| | | @ApiModelProperty(value= "erp单号") |
| | | private String erpCode; |
| | | private String platCode; |
| | | |
| | | /** |
| | | * 计划收货时间 |
| | |
| | | |
| | | public Purchase() {} |
| | | |
| | | public Purchase(String code,String type,String source,String erpId ,Date preArr,Double anfme,Double qty,Double workQty,String channel,String erpCode,Date startTime,Date endTime,String project,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) { |
| | | public Purchase(String code,String type,String source,String platId ,Date preArr,Double anfme,Double qty,Double workQty,String channel,String platCode,Date startTime,Date endTime,String project,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) { |
| | | this.code = code; |
| | | this.type = type; |
| | | this.source = source; |
| | | this.erpId = erpId; |
| | | this.platId = platId; |
| | | this.preArr = preArr; |
| | | this.anfme = anfme; |
| | | this.qty = qty; |
| | | this.workQty = workQty; |
| | | this.channel = channel; |
| | | this.erpCode = erpCode; |
| | | this.platCode = platCode; |
| | | this.startTime = startTime; |
| | | this.endTime = endTime; |
| | | this.project = project; |
| | |
| | | } |
| | | |
| | | public String getShipperId$(){ |
| | | ShipperService service = SpringUtils.getBean(ShipperService.class); |
| | | Shipper shipper = service.getById(this.shipperId); |
| | | CompanysService service = SpringUtils.getBean(CompanysService.class); |
| | | Companys shipper = service.getById(this.shipperId); |
| | | if (!Cools.isEmpty(shipper)){ |
| | | return String.valueOf(shipper.getName()); |
| | | } |
| | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | |
| | | import com.vincent.rsf.server.manager.service.CompanysService; |
| | | import com.vincent.rsf.server.manager.service.ShipperService; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | import java.text.SimpleDateFormat; |
| | |
| | | * 编号 |
| | | */ |
| | | @ApiModelProperty(value= "编号") |
| | | private String uuid; |
| | | private String type; |
| | | |
| | | /** |
| | | * 名称 |
| | |
| | | public WarehouseAreas() {} |
| | | |
| | | public WarehouseAreas(String uuid,String name,String code,Long shipperId,Short supplierId,Short flagMinus,Short flagLabelMange,Short flagMix,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) { |
| | | this.uuid = uuid; |
| | | this.type = uuid; |
| | | this.name = name; |
| | | this.code = code; |
| | | this.shipperId = shipperId; |
| | |
| | | // ); |
| | | |
| | | public String getShipperId$(){ |
| | | ShipperService service = SpringUtils.getBean(ShipperService.class); |
| | | Shipper shipper = service.getById(this.shipperId); |
| | | CompanysService service = SpringUtils.getBean(CompanysService.class); |
| | | Companys shipper = service.getById(this.shipperId); |
| | | if (!Cools.isEmpty(shipper)){ |
| | | return String.valueOf(shipper.getName()); |
| | | } |
| | |
| | | shipperId: "shipperId", |
| | | groupId: "groupId", |
| | | batchRegularId: "batchRegularId", |
| | | erpCode: "erpCode", |
| | | platCode: "platCode", |
| | | spec: "spec", |
| | | model: "model", |
| | | weight: "weight", |
| | |
| | | qty: "qty", |
| | | workQty: "workQty", |
| | | channel: "channel", |
| | | erpCode: "erpCode", |
| | | platCode: "platCode", |
| | | project: "project", |
| | | startTime: "startTime", |
| | | endTime: "endTime", |
| | |
| | | # global-config:
|
| | | # field-strategy: 0
|
| | | configuration:
|
| | | log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
| | | # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
| | | map-underscore-to-camel-case: true
|
| | | cache-enabled: true
|
| | | global-config:
|