自动化立体仓库 - WMS系统
lty
2025-01-03 94c1bea63d0557a1f806e13df95074d652d26ad8
src/main/java/com/zy/common/web/WcsController.java
@@ -67,13 +67,13 @@
    public synchronized Re getLocNo(@RequestBody SearchLocParam param) {
        log.info("收到WCS入库接口请求====>>入参:{}", param);
        if (Cools.isEmpty(param.getCargoHeight())) {
            return Re.error("入出库类型不能为空");
            return Re.error("高低库类型不能为空");
        }
        if (Cools.isEmpty(param.getFromPort())) {
            return Re.error("源站编号不能为空");
        }
        List<WaitPakin> waitPakins = null;
        if (param.getFromPort().equals("100")) {
        if (param.getFromPort().equals("101")) {
            //有空板出库时禁止入库
            int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type",110).eq("sta_no",100).notIn("wrk_sts",7));
@@ -81,11 +81,11 @@
                return Re.error("有空板出库到100站时时禁止入库");
            }
            if (Cools.isEmpty(param.getBarCode())) {
            if (Cools.isEmpty(param.getBarCode()) && param.getIoType() != 10) {
                return Re.error("条码不能为空");
            }
            waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarCode()));
            if (Cools.isEmpty(waitPakins)) {
            if (Cools.isEmpty(waitPakins) && param.getIoType() != 10) {
                WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarCode());
                if (wrkMast != null && wrkMast.getIoType() == 103) {
                    return Re.parse(CodeRes.PICK_600);
@@ -99,7 +99,7 @@
            }
        }else {
            //有满板出库时禁止空板入库
            int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no",200).andNew().eq("io_type",101).or().eq("io_type",110));
            int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no",100).andNew().eq("io_type",101).or().eq("io_type",110));
            if(wrkCount > 0){
                return Re.error("有满板出库时禁止空板入库");
            }
@@ -119,12 +119,12 @@
        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
        StartupDto dto = null;
        switch (param.getFromPort()) {
            case "100"://满托盘入库
        switch (param.getIoType()) {
            case 1://满托盘入库
                assert waitPakins != null;
                dto = startupFullPutStore(Integer.valueOf(param.getFromPort()), param.getBarCode(), locTypeDto, waitPakins);
                break;
            case "200"://空托盘入库
            case 10://空托盘入库
                dto = emptyPlateIn(Integer.valueOf(param.getFromPort()), locTypeDto, param.getBarCode());
                break;
            default:
@@ -195,6 +195,9 @@
        List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
        List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
        StartupDto dto = commonService.getLocNo(1, devpNo, matnrs.get(0), batchs.get(0), null, locTypeDto);
        if(dto == null){
            throw new CoolException("没有检索到空库位");
        }
        int workNo = dto.getWorkNo();
        Date now = new Date();
        // 生成工作档