自动化立体仓库 - WMS系统
lty
2025-01-03 94c1bea63d0557a1f806e13df95074d652d26ad8
src/main/java/com/zy/common/web/WcsController.java
@@ -67,25 +67,25 @@
    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));
            int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type",110).eq("sta_no",100).notIn("wrk_sts",7));
            if(wrkCount > 0){
                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("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();
        // 生成工作档
@@ -216,6 +219,7 @@
        wrkMast.setLinkMis("Y");
        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 容器类型
        wrkMast.setMk("N");//是否完成上报wcs
        wrkMast.setFullPlt("N");//出库空板消除标记
        // 操作人员数据
        wrkMast.setAppeTime(now);
        wrkMast.setModiTime(now);
@@ -321,8 +325,12 @@
    @ResponseBody
    public Re status(@RequestBody StatusParam statusParam) {
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", statusParam.getTaskId()));
        if(Cools.isEmpty(wrkMast)){
        if(Cools.isEmpty(wrkMast)&&statusParam.getTaskStatus()!=8){
            return Re.error("没有找到:"+statusParam.getTaskId()+"这条任务");
        }else if(Cools.isEmpty(wrkMast)&&statusParam.getTaskStatus()==8){
            return Re.ok();
        }else if(!Cools.isEmpty(wrkMast)&&statusParam.getTaskStatus()==8&&wrkMast.getIoType()==110){
            return Re.ok();
        }
        /**
         * 任务状态
@@ -341,12 +349,11 @@
            wrkMast.setWrkSts(3L);//3.取货完成
        }else if (statusParam.getTaskStatus()==3){
            wrkMast.setWrkSts(6L);//6.任务中断
        } else if (statusParam.getTaskStatus()==4){
            wrkMast.setWrkSts(7L);//6.放货完成
        }if (statusParam.getTaskStatus()==8){
            if(wrkMast.getIoType()==1 || wrkMast.getIoType() == 10){
        } else if (statusParam.getTaskStatus()==4 || statusParam.getTaskStatus()==8){
//            wrkMast.setWrkSts(7L);//6.放货完成
            if(wrkMast.getIoType()==1 || wrkMast.getIoType() == 10 || wrkMast.getIoType() == 11){
                wrkMast.setWrkSts(4L);//4.入库完成
            }else if (wrkMast.getIoType()==101 || wrkMast.getIoType() == 110){
            }else if (wrkMast.getIoType()==101 || wrkMast.getIoType()==110){
                wrkMast.setWrkSts(14L);//14.已出库未确认
            }
        }