|  |  |  | 
|---|
|  |  |  | row: "排", | 
|---|
|  |  |  | col: "列", | 
|---|
|  |  |  | lev: "层", | 
|---|
|  |  |  | channel: "通道", | 
|---|
|  |  |  | channel: "巷道", | 
|---|
|  |  |  | maxParts: "最大零件数", | 
|---|
|  |  |  | maxPack: "最大包装数", | 
|---|
|  |  |  | flagLabelMange: "标签管理", | 
|---|
|  |  |  | 
|---|
|  |  |  | const InitModal = ({ open, setOpen }) => { | 
|---|
|  |  |  | const refresh = useRefresh(); | 
|---|
|  |  |  | const translate = useTranslate(); | 
|---|
|  |  |  | const {filterValues} = useListContext(); // 获取列表上下文 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { filterValues } = useListContext(); // 获取列表上下文 | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const notify = useNotify(); | 
|---|
|  |  |  | const [disabled, setDisabled] = useState(false) | 
|---|
|  |  |  | 
|---|
|  |  |  | filterToQuery={(val) => ({ name: val })} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </ReferenceInput> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </Grid> | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <Grid item xs={4}> | 
|---|
|  |  |  | <ReferenceArrayInput source="typeIds" reference="locType" > | 
|---|
|  |  |  | <SelectArrayInput label="table.field.loc.type" validate={[required()]} onChange={(e) => handleChange(e.target.value, 'typeIds')} /> | 
|---|
|  |  |  | 
|---|
|  |  |  | <SelectArrayInput label="table.field.loc.type" onChange={(e) => handleChange(e.target.value, 'typeIds')} validate={[required()]} /> | 
|---|
|  |  |  | </ReferenceArrayInput> */} | 
|---|
|  |  |  | </Grid> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <Grid item xs={4}> | 
|---|
|  |  |  | <TextInput | 
|---|
|  |  |  | label={translate("table.field.loc.startBay")} | 
|---|
|  |  |  | name="startBay" | 
|---|
|  |  |  | value={formData.startBay} | 
|---|
|  |  |  | onChange={(e) => handleChange(+e.target.value, 'startBay')} | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | type="number" | 
|---|
|  |  |  | validate={[required()]} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </Grid> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <Grid item xs={4}> | 
|---|
|  |  |  | <TextInput | 
|---|
|  |  |  | label={translate("table.field.loc.startLev")} | 
|---|
|  |  |  | name="startLev" | 
|---|
|  |  |  | value={formData.startLev} | 
|---|
|  |  |  | onChange={(e) => handleChange(+e.target.value, 'startLev')} | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | type="number" | 
|---|
|  |  |  | validate={[required()]} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </Grid> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <Grid item xs={4}> | 
|---|
|  |  |  | <TextInput | 
|---|
|  |  |  | label={translate("table.field.loc.startRow")} | 
|---|
|  |  |  | 
|---|
|  |  |  | validate={[required()]} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </Grid> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <Grid item xs={4}> | 
|---|
|  |  |  | <TextInput | 
|---|
|  |  |  | label={translate("table.field.loc.endBay")} | 
|---|
|  |  |  | name="endBay" | 
|---|
|  |  |  | value={formData.endBay} | 
|---|
|  |  |  | onChange={(e) => handleChange(+e.target.value, 'endBay')} | 
|---|
|  |  |  | label={translate("table.field.loc.startBay")} | 
|---|
|  |  |  | name="startBay" | 
|---|
|  |  |  | value={formData.startBay} | 
|---|
|  |  |  | onChange={(e) => handleChange(+e.target.value, 'startBay')} | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | type="number" | 
|---|
|  |  |  | validate={[required()]} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </Grid> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <Grid item xs={4}> | 
|---|
|  |  |  | <TextInput | 
|---|
|  |  |  | label={translate("table.field.loc.endLev")} | 
|---|
|  |  |  | name="endLev" | 
|---|
|  |  |  | value={formData.endLev} | 
|---|
|  |  |  | onChange={(e) => handleChange(+e.target.value, 'endLev')} | 
|---|
|  |  |  | label={translate("table.field.loc.startLev")} | 
|---|
|  |  |  | name="startLev" | 
|---|
|  |  |  | value={formData.startLev} | 
|---|
|  |  |  | onChange={(e) => handleChange(+e.target.value, 'startLev')} | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | type="number" | 
|---|
|  |  |  | validate={[required()]} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </Grid> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <Grid item xs={4}> | 
|---|
|  |  |  | <TextInput | 
|---|
|  |  |  | label={translate("table.field.loc.endRow")} | 
|---|
|  |  |  | 
|---|
|  |  |  | validate={[required()]} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </Grid> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <Grid item xs={4}> | 
|---|
|  |  |  | <TextInput | 
|---|
|  |  |  | label={translate("table.field.loc.endBay")} | 
|---|
|  |  |  | name="endBay" | 
|---|
|  |  |  | value={formData.endBay} | 
|---|
|  |  |  | onChange={(e) => handleChange(+e.target.value, 'endBay')} | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | type="number" | 
|---|
|  |  |  | validate={[required()]} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </Grid> | 
|---|
|  |  |  | <Grid item xs={4}> | 
|---|
|  |  |  | <TextInput | 
|---|
|  |  |  | label={translate("table.field.loc.endLev")} | 
|---|
|  |  |  | name="endLev" | 
|---|
|  |  |  | value={formData.endLev} | 
|---|
|  |  |  | onChange={(e) => handleChange(+e.target.value, 'endLev')} | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | type="number" | 
|---|
|  |  |  | validate={[required()]} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </Grid> | 
|---|
|  |  |  | <Grid item xs={4}> | 
|---|
|  |  |  | <TextInput | 
|---|
|  |  |  | label={"table.field.loc.channel"} | 
|---|
|  |  |  | name="channel" | 
|---|
|  |  |  | value={formData.channel} | 
|---|
|  |  |  | onChange={(e) => handleChange(+e.target.value, 'channel')} | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | type="number" | 
|---|
|  |  |  | validate={[required()]} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </Grid> | 
|---|
|  |  |  | </Grid> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </Box> | 
|---|
|  |  |  | </DialogContent> | 
|---|
|  |  |  | <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}> | 
|---|
|  |  |  | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | export default InitModal; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const filters = [ | 
|---|
|  |  |  | <SearchInput source="condition" alwaysOn />, | 
|---|
|  |  |  | <DateInput label='common.time.after' source="timeStart"  />, | 
|---|
|  |  |  | <DateInput label='common.time.before' source="timeEnd"  />, | 
|---|
|  |  |  | <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" />, | 
|---|
|  |  |  | 
|---|
|  |  |  | <Box display="flex"> | 
|---|
|  |  |  | <List | 
|---|
|  |  |  | resource="locItem" | 
|---|
|  |  |  | filter={{locId: locId}} | 
|---|
|  |  |  | filter={{ locId: locId }} | 
|---|
|  |  |  | sx={{ | 
|---|
|  |  |  | flexGrow: 1, | 
|---|
|  |  |  | transition: (theme) => | 
|---|
|  |  |  | 
|---|
|  |  |  | <FilterButton /> | 
|---|
|  |  |  | {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */} | 
|---|
|  |  |  | <SelectColumnsButton preferenceKey='locItem' /> | 
|---|
|  |  |  | <MyExportButton /> | 
|---|
|  |  |  | {/* <MyExportButton /> */} | 
|---|
|  |  |  | </TopToolbar> | 
|---|
|  |  |  | )} | 
|---|
|  |  |  | perPage={DEFAULT_ITEM_PAGE_SIZE} | 
|---|
|  |  |  | 
|---|
|  |  |  | rowClick={(id, resource, record) => false} | 
|---|
|  |  |  | expand={false} | 
|---|
|  |  |  | expandSingle={true} | 
|---|
|  |  |  | omit={['id', 'locId', 'orderId', 'orderItemId', 'matnrId', 'createTime', 'createBy', 'memo']} | 
|---|
|  |  |  | omit={['id', 'locId', 'orderId', 'orderItemId', 'matnrId', 'statusBool','trackCode', 'createTime', 'fieldsIndex','splrBatch', 'createBy', 'spec', 'model', 'memo']} | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <NumberField source="id" /> | 
|---|
|  |  |  | <NumberField source="locId" label="table.field.locItem.locId" /> | 
|---|
|  |  |  | <NumberField source="orderId" label="table.field.locItem.orderId" /> | 
|---|
|  |  |  | <TextField source="type" label="table.field.locItem.type" /> | 
|---|
|  |  |  | <TextField source="type$" label="table.field.locItem.type" /> | 
|---|
|  |  |  | <NumberField source="orderItemId" label="table.field.locItem.orderItemId" /> | 
|---|
|  |  |  | <NumberField source="wkType" label="table.field.locItem.wkType" /> | 
|---|
|  |  |  | <NumberField source="wkType$" label="table.field.locItem.wkType" /> | 
|---|
|  |  |  | <NumberField source="matnrId" label="table.field.locItem.matnrId" /> | 
|---|
|  |  |  | <TextField source="maktx" label="table.field.locItem.maktx" /> | 
|---|
|  |  |  | <TextField source="matnrCode" label="table.field.locItem.matnrCode" /> | 
|---|
|  |  |  | <TextField source="trackCode" label="table.field.locItem.trackCode" /> | 
|---|
|  |  |  | <TextField source="unit" label="table.field.locItem.unit" /> | 
|---|
|  |  |  | <NumberField source="anfme" label="table.field.locItem.anfme" /> | 
|---|
|  |  |  | <TextField source="maktx" label="table.field.locItem.maktx" /> | 
|---|
|  |  |  | <TextField source="batch" label="table.field.locItem.batch" /> | 
|---|
|  |  |  | <TextField source="trackCode" label="table.field.locItem.trackCode" /> | 
|---|
|  |  |  | <NumberField source="anfme" label="table.field.locItem.anfme" /> | 
|---|
|  |  |  | <TextField source="unit" label="table.field.locItem.unit" /> | 
|---|
|  |  |  | <TextField source="splrBatch" label="table.field.locItem.splrBatch" /> | 
|---|
|  |  |  | <TextField source="spec" label="table.field.locItem.spec" /> | 
|---|
|  |  |  | <TextField source="model" label="table.field.locItem.model" /> | 
|---|
|  |  |  | 
|---|
|  |  |  | <NumberField source="row" label="table.field.loc.row" /> | 
|---|
|  |  |  | <NumberField source="col" label="table.field.loc.col" /> | 
|---|
|  |  |  | <NumberField source="lev" label="table.field.loc.lev" /> | 
|---|
|  |  |  | <NumberField source="channel" label="table.field.loc.channel" /> | 
|---|
|  |  |  | {/* <NumberField source="channel" label="table.field.loc.channel" /> | 
|---|
|  |  |  | <NumberField source="maxParts" label="table.field.loc.maxParts" /> | 
|---|
|  |  |  | <NumberField source="maxPack" label="table.field.loc.maxPack" /> | 
|---|
|  |  |  | 
|---|
|  |  |  | <TextField source="spec" label="table.field.asnOrderItem.spec" />, | 
|---|
|  |  |  | <TextField source="model" label="table.field.asnOrderItem.model" />, | 
|---|
|  |  |  | <NumberField source="anfme" label="table.field.asnOrderItem.anfme" />, | 
|---|
|  |  |  | <NumberField source="qty" label="table.field.asnOrderItem.qty" />, | 
|---|
|  |  |  | <TextField source="stockUnit" label="table.field.asnOrderItem.stockUnit" />, | 
|---|
|  |  |  | <NumberField source="purQty" label="table.field.asnOrderItem.purQty" />, | 
|---|
|  |  |  | <TextField source="purUnit" label="table.field.asnOrderItem.purUnit" />, | 
|---|
|  |  |  | <NumberField source="qty" label="table.field.asnOrderItem.qty" />, | 
|---|
|  |  |  | <TextField source="splrCode" label="table.field.asnOrderItem.splrCode" />, | 
|---|
|  |  |  | <TextField source="splrName" label="table.field.asnOrderItem.splrName" />, | 
|---|
|  |  |  | <TextField source="isptResult$" label="table.field.asnOrderItem.isptResult" />, | 
|---|
|  |  |  | 
|---|
|  |  |  | preferenceKey='asnOrderItem' | 
|---|
|  |  |  | bulkActionButtons={false} | 
|---|
|  |  |  | rowClick={(id, resource, record) => false} | 
|---|
|  |  |  | omit={['id', 'asnId', 'poDetlId', 'poDetlCode', 'matnrId', 'purQty', 'purUnit', 'qrcode', 'trackCode', 'splrCode', 'platWorkCode', 'projectCode']} | 
|---|
|  |  |  | omit={['id', 'asnId', 'asnCode', 'poDetlId', 'poDetlCode', 'matnrId', 'spec', 'model', 'purQty', 'purUnit', 'qrcode', 'trackCode', 'splrCode', 'platWorkCode', 'projectCode']} | 
|---|
|  |  |  | > | 
|---|
|  |  |  | {columns.map((column) => column)} | 
|---|
|  |  |  | </StyledDatagrid>} | 
|---|
|  |  |  | 
|---|
|  |  |  | <Stack direction='row' spacing={2} minWidth={200}> | 
|---|
|  |  |  | <SubmitButton | 
|---|
|  |  |  | orgLoc={orgLoc} | 
|---|
|  |  |  | tarLoc={tarLoc} | 
|---|
|  |  |  | tarLoc={tarLoc} | 
|---|
|  |  |  | tabelData={tabelData} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </Stack> | 
|---|
|  |  |  | </Box> | 
|---|
|  |  |  | 
|---|
|  |  |  | const notify = useNotify(); | 
|---|
|  |  |  | const redirect = useRedirect(); | 
|---|
|  |  |  | const refresh = useRefresh(); | 
|---|
|  |  |  | const { orgLoc, tarLoc } = props; | 
|---|
|  |  |  | const { orgLoc, tarLoc, tabelData } = props; | 
|---|
|  |  |  | const move = () => { | 
|---|
|  |  |  | console.log(orgLoc, tarLoc); | 
|---|
|  |  |  | if (orgLoc === "" || orgLoc === undefined || orgLoc === null) { | 
|---|
|  |  |  | 
|---|
|  |  |  | if (Objects.isNull(param.getEndLev())) { | 
|---|
|  |  |  | return R.error("终止层不能为空!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (Objects.isNull(param.getChannel())) { | 
|---|
|  |  |  | return R.error("巷道不能为空!!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return locService.initLocs(param, getLoginUserId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @NotBlank(message = "库位类型") | 
|---|
|  |  |  | private List<Long> typeIds; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ApiModelProperty("巷道") | 
|---|
|  |  |  | @NotBlank(message = "巷道") | 
|---|
|  |  |  | private Integer channel; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Loc> list = new ArrayList<>(); | 
|---|
|  |  |  | Integer chanl = 1; //默认第一巷道 | 
|---|
|  |  |  | for (int r = param.getStartRow(); r <= param.getEndRow(); r++) { | 
|---|
|  |  |  | if (r % param.getChannel() == 0) { | 
|---|
|  |  |  | chanl ++; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (int b = param.getStartBay(); b <= param.getEndBay(); b++) { | 
|---|
|  |  |  | for (int l = param.getStartLev(); l <= param.getEndLev(); l++) { | 
|---|
|  |  |  | // 获取库位号 | 
|---|
|  |  |  | 
|---|
|  |  |  | .setRow(r) | 
|---|
|  |  |  | .setCol(b) | 
|---|
|  |  |  | .setLev(l) | 
|---|
|  |  |  | .setChannel(chanl) | 
|---|
|  |  |  | .setType(join) | 
|---|
|  |  |  | .setAreaId(param.getAreaId()) | 
|---|
|  |  |  | .setUpdateBy(loginUserId) | 
|---|