| | |
| | | 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) |