#
luxiaotao1123
2024-09-23 d4ae421c04e90172b808cbebb86f297412ea8345
#
4个文件已修改
1个文件已添加
339 ■■■■■ 已修改文件
zy-acs-flow/src/page/bus/BusCreate.jsx 269 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/common/domain/TaskIdByLongDto.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/LocStsController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/param/BusCreateParam.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/bus/BusCreate.jsx
@@ -33,12 +33,47 @@
import DialogCloseButton from "../components/DialogCloseButton";
import StatusSelectInput from "../components/StatusSelectInput";
import MemoInput from "../components/MemoInput";
import request from '@/utils/request';
const BusCreate = (props) => {
    const { open, setOpen } = props;
    const translate = useTranslate();
    const notify = useNotify();
    const [locStsIdByStock, setLocStsIdByStock] = useState(null);
    const [locStsIdByIdle, setLocStsIdByIdle] = useState(null);
    useEffect(() => {
        const queryLocStsByStock = async () => {
            request.post('/locSts/list', {
                uuid: 'STOCK'
            }, {
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                }
            }).then(res => {
                setLocStsIdByStock(res.data.data[0]?.id);
            })
        }
        const queryLocStsByIdle = async () => {
            request.post('/locSts/list', {
                uuid: 'IDLE'
            }, {
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                }
            }).then(res => {
                setLocStsIdByIdle(res.data.data[0]?.id);
            })
        }
        if (open) {
            console.log(1);
            queryLocStsByStock();
            queryLocStsByIdle();
        }
    }, [open])
    const handleClose = (event, reason) => {
        if (reason !== "backdropClick") {
@@ -57,124 +92,128 @@
    return (
        <>
            <CreateBase
                record={{}}
                transform={(data) => {
                    return data;
                }}
                mutationOptions={{ onSuccess: handleSuccess, onError: handleError }}
            >
                <Dialog
                    open={open}
                    onClose={handleClose}
                    aria-labelledby="form-dialog-title"
                    fullWidth
                    disableRestoreFocus
                    maxWidth="md"   // 'xs' | 'sm' | 'md' | 'lg' | 'xl'
            {(locStsIdByStock && locStsIdByIdle) && (
                <CreateBase
                    record={{}}
                    transform={(data) => {
                        return data;
                    }}
                    mutationOptions={{ onSuccess: handleSuccess, onError: handleError }}
                >
                    <Form>
                        <DialogTitle id="form-dialog-title" sx={{
                            position: 'sticky',
                            top: 0,
                            backgroundColor: 'background.paper',
                            zIndex: 1000
                        }}
                        >
                            {translate('create.title')}
                            <Box sx={{ position: 'absolute', top: 8, right: 8, zIndex: 1001 }}>
                                <DialogCloseButton onClose={handleClose} />
                            </Box>
                        </DialogTitle>
                        <DialogContent>
                            <Grid container rowSpacing={2} columnSpacing={2}>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <TextInput
                                        label="table.field.bus.busNo"
                                        source="busNo"
                                        parse={v => v}
                                        validate={required()}
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <DateTimeInput
                                        label="table.field.bus.startTime"
                                        source="startTime"
                                    />
                                </Grid>
                    <Dialog
                        open={open}
                        onClose={handleClose}
                        aria-labelledby="form-dialog-title"
                        fullWidth
                        disableRestoreFocus
                        maxWidth="md"   // 'xs' | 'sm' | 'md' | 'lg' | 'xl'
                    >
                        <Form>
                            <DialogTitle id="form-dialog-title" sx={{
                                position: 'sticky',
                                top: 0,
                                backgroundColor: 'background.paper',
                                zIndex: 1000
                            }}
                            >
                                {translate('create.title')}
                                <Box sx={{ position: 'absolute', top: 8, right: 8, zIndex: 1001 }}>
                                    <DialogCloseButton onClose={handleClose} />
                                </Box>
                            </DialogTitle>
                            <DialogContent>
                                <Grid container rowSpacing={2} columnSpacing={2}>
                                    <Grid item xs={6} display="flex" gap={1}>
                                        <TextInput
                                            label="table.field.bus.busNo"
                                            source="busNo"
                                            parse={v => v}
                                            validate={required()}
                                        />
                                    </Grid>
                                    <Grid item xs={6} display="flex" gap={1}>
                                        <DateTimeInput
                                            label="table.field.bus.startTime"
                                            source="startTime"
                                        />
                                    </Grid>
                                <Grid item xs={12} display="flex" gap={1}>
                                    <ArrayInput
                                        source="taskList"
                                        validate={[required()]}
                                    >
                                        <SimpleFormIterator fullWidth getItemLabel={index => `#${index + 1}`}>
                                            <Box mt={1} />
                                            <Stack direction="row" spacing={2}>
                                                <TextInput source="seqNum" />
                                                <NumberInput source="priority" defaultValue={1} />
                                            </Stack>
                                            <Stack direction="row" spacing={2}>
                                                <ReferenceInput
                                                    source="oriSta"
                                                    reference="sta"
                                                >
                                                    <AutocompleteInput
                                                        label="table.field.task.oriSta"
                                                        optionText="staNo"
                                                        filterToQuery={(val) => ({ staNo: val })}
                                                    />
                                                </ReferenceInput>
                                                <ReferenceInput
                                                    source="oriLoc"
                                                    reference="loc"
                                                >
                                                    <AutocompleteInput
                                                        label="table.field.task.oriLoc"
                                                        optionText="locNo"
                                                        filterToQuery={(val) => ({ locNo: val })}
                                                    />
                                                </ReferenceInput>
                                            </Stack>
                                            <Stack direction="row" spacing={2}>
                                                <ReferenceInput
                                                    source="destSta"
                                                    reference="sta"
                                                >
                                                    <AutocompleteInput
                                                        label="table.field.task.destSta"
                                                        optionText="staNo"
                                                        filterToQuery={(val) => ({ staNo: val })}
                                                    />
                                                </ReferenceInput>
                                                <ReferenceInput
                                                    source="destLoc"
                                                    reference="loc"
                                                >
                                                    <AutocompleteInput
                                                        label="table.field.task.destLoc"
                                                        optionText="locNo"
                                                        filterToQuery={(val) => ({ locNo: val })}
                                                    />
                                                </ReferenceInput>
                                            </Stack>
                                        </SimpleFormIterator>
                                    </ArrayInput>
                                    <Grid item xs={12} display="flex" gap={1}>
                                        <ArrayInput
                                            source="taskList"
                                            validate={[required()]}
                                        >
                                            <SimpleFormIterator fullWidth getItemLabel={index => `#${index + 1}`}>
                                                <Box mt={1} />
                                                <Stack direction="row" spacing={2}>
                                                    <ReferenceInput
                                                        source="oriSta"
                                                        reference="sta"
                                                    >
                                                        <AutocompleteInput
                                                            label="table.field.task.oriSta"
                                                            optionText="staNo"
                                                            filterToQuery={(val) => ({ staNo: val })}
                                                        />
                                                    </ReferenceInput>
                                                    <ReferenceInput
                                                        source="oriLoc"
                                                        reference="loc"
                                                        filter={{ locSts: locStsIdByStock }}
                                                    >
                                                        <AutocompleteInput
                                                            label="table.field.task.oriLoc"
                                                            optionText="locNo"
                                                            filterToQuery={(val) => ({ locNo: val })}
                                                        />
                                                    </ReferenceInput>
                                                </Stack>
                                                <Stack direction="row" spacing={2}>
                                                    <ReferenceInput
                                                        source="destSta"
                                                        reference="sta"
                                                    >
                                                        <AutocompleteInput
                                                            label="table.field.task.destSta"
                                                            optionText="staNo"
                                                            filterToQuery={(val) => ({ staNo: val })}
                                                        />
                                                    </ReferenceInput>
                                                    <ReferenceInput
                                                        source="destLoc"
                                                        reference="loc"
                                                        filter={{ locSts: locStsIdByIdle }}
                                                    >
                                                        <AutocompleteInput
                                                            label="table.field.task.destLoc"
                                                            optionText="locNo"
                                                            filterToQuery={(val) => ({ locNo: val })}
                                                        />
                                                    </ReferenceInput>
                                                </Stack>
                                                <Stack direction="row" spacing={2} sx={{ maxWidth: '50%' }}>
                                                    {/* <TextInput source="seqNum" /> */}
                                                    <NumberInput source="priority" defaultValue={1} />
                                                </Stack>
                                            </SimpleFormIterator>
                                        </ArrayInput>
                                    </Grid>
                                    <Grid item xs={12} display="flex" gap={1}>
                                        <Stack direction="column" spacing={1} width={'100%'}>
                                            <MemoInput />
                                        </Stack>
                                    </Grid>
                                </Grid>
                                <Grid item xs={12} display="flex" gap={1}>
                                    <Stack direction="column" spacing={1} width={'100%'}>
                                        <MemoInput />
                                    </Stack>
                                </Grid>
                            </Grid>
                        </DialogContent>
                        <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}>
                            <Toolbar sx={{ width: '100%', justifyContent: 'space-between' }}  >
                                <SaveButton />
                            </Toolbar>
                        </DialogActions>
                    </Form>
                </Dialog>
            </CreateBase>
                            </DialogContent>
                            <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}>
                                <Toolbar sx={{ width: '100%', justifyContent: 'space-between' }}  >
                                    <SaveButton />
                                </Toolbar>
                            </DialogActions>
                        </Form>
                    </Dialog>
                </CreateBase>
            )}
        </>
    )
}
zy-acs-manager/src/main/java/com/zy/acs/manager/common/domain/TaskIdByLongDto.java
New file
@@ -0,0 +1,23 @@
package com.zy.acs.manager.common.domain;
import lombok.Data;
/**
 * Created by vincent on 2023/6/12
 */
@Data
public class TaskIdByLongDto {
    private String seqNum;
    private Long oriLoc;
    private Long oriSta;
    private Long destLoc;
    private Long destSta;
    private Integer priority = 1;
}
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/BusController.java
@@ -5,14 +5,15 @@
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.R;
import com.zy.acs.manager.common.annotation.OperationLog;
import com.zy.acs.manager.common.domain.BaseParam;
import com.zy.acs.manager.common.domain.KeyValVo;
import com.zy.acs.manager.common.domain.PageParam;
import com.zy.acs.manager.common.domain.*;
import com.zy.acs.manager.common.utils.ExcelUtil;
import com.zy.acs.manager.core.service.MainService;
import com.zy.acs.manager.manager.controller.param.BusCreateParam;
import com.zy.acs.manager.manager.controller.param.OpenBusSubmitParam;
import com.zy.acs.manager.manager.entity.Bus;
import com.zy.acs.manager.manager.service.BusService;
import com.zy.acs.manager.manager.service.LocService;
import com.zy.acs.manager.manager.service.StaService;
import com.zy.acs.manager.system.controller.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -29,6 +30,10 @@
    private BusService busService;
    @Autowired
    private MainService mainService;
    @Autowired
    private StaService staService;
    @Autowired
    private LocService locService;
    @PreAuthorize("hasAuthority('manager:bus:list')")
    @PostMapping("/bus/page")
@@ -60,7 +65,27 @@
    @OperationLog("Create Bus")
    @PostMapping("/bus/save")
    public R save(@RequestBody BusCreateParam param) {
        Bus bus = mainService.generateBusAndTask();
        OpenBusSubmitParam submitParam = new OpenBusSubmitParam();
        submitParam.setBatch(param.getBatch());
        for (TaskIdByLongDto dto : param.getTaskList()) {
            TaskDto taskDto = new TaskDto();
            taskDto.setSeqNum(dto.getSeqNum());
            taskDto.setPriority(dto.getPriority());
            if (!Cools.isEmpty(dto.getOriSta())) {
                taskDto.setOriSta(staService.getById(dto.getOriSta()).getStaNo());
            }
            if (!Cools.isEmpty(dto.getOriLoc())) {
                taskDto.setOriSta(locService.getById(dto.getOriLoc()).getLocNo());
            }
            if (!Cools.isEmpty(dto.getDestSta())) {
                taskDto.setOriSta(staService.getById(dto.getDestSta()).getStaNo());
            }
            if (!Cools.isEmpty(dto.getDestLoc())) {
                taskDto.setOriSta(locService.getById(dto.getDestLoc()).getLocNo());
            }
            submitParam.getTaskList().add(taskDto);
        }
        Bus bus = mainService.generateBusAndTask(submitParam, param.getMemo());
        return R.ok("Save Success").add(bus);
    }
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/LocStsController.java
@@ -36,8 +36,12 @@
    @PreAuthorize("hasAuthority('manager:locSts:list')")
    @PostMapping("/locSts/list")
    public R list(@RequestBody Map<String, Object> map) {
        return R.ok().add(locStsService.list());
    public R list(@RequestParam(required = false) String uuid) {
        LambdaQueryWrapper<LocSts> wrapper = new LambdaQueryWrapper<>();
        if (!Cools.isEmpty(uuid)) {
            wrapper.eq(LocSts::getUuid, uuid);
        }
        return R.ok().add(locStsService.list(wrapper));
    }
    @PreAuthorize("hasAuthority('manager:locSts:list')")
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/param/BusCreateParam.java
@@ -1,6 +1,6 @@
package com.zy.acs.manager.manager.controller.param;
import com.zy.acs.manager.common.domain.TaskDto;
import com.zy.acs.manager.common.domain.TaskIdByLongDto;
import lombok.Data;
import java.util.ArrayList;
@@ -14,6 +14,8 @@
    private String batch;
    private List<TaskDto> taskList = new ArrayList<>();
    private List<TaskIdByLongDto> taskList = new ArrayList<>();
    private String memo;
}