自动化立体仓库 - WMS系统
#
Junjie
2025-04-07 3015d66dae1fef9850c9c990570e8ca90f0ded60
src/main/java/com/zy/common/web/WcsController.java
@@ -177,10 +177,23 @@
                return R.parse(CodeRes.NO_COMB_700);
            }
            boolean checkTimeout = false;
            for (WaitPakin waitPakin : waitPakins) {
                Mat mat = matService.selectByMatnr(waitPakin.getMatnr());
                mat.setWeight(waitPakin.getAnfme());
                mats.add(mat);
                Date appeTime = waitPakin.getAppeTime();
                Date now = new Date();
                long diffTime = now.getTime() - appeTime.getTime();
                if (diffTime >= 1000 * 60 * 60 * 4) {
                    checkTimeout = true;
                    break;
                }
            }
            if (checkTimeout) {
                return R.error("托盘组托超时,删除后重新组托");
            }
            int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
@@ -467,12 +480,12 @@
            log.error("{}任务【ioType = {}】已过期!!!", wrkNo, ioType);
            throw new CoolException(CodeRes.NONE_MAST_800);
        }
        List<LocDetl> locDetls = locDetlService.selectByLocNo(wrkMast.getSourceLocNo());
        if (locDetls.isEmpty()) {
            throw new CoolException("库存明细不存在");
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
        if (Cools.isEmpty(wrkDetls)) {
            throw new CoolException(CodeRes.NONE_DETL_900);
        }
        // 检索库位
        List<String> matnrList = locDetls.stream().map(LocDetl::getMatnr).distinct().collect(Collectors.toList());
        List<String> matnrList = wrkDetls.stream().map(WrkDetl::getMatnr).distinct().collect(Collectors.toList());
        if (ioType == 103) {//拣料任务
            if (devpNo == 325 || devpNo == 331 || devpNo == 333 || devpNo == 339) {
                devpNo = 341;
@@ -529,7 +542,7 @@
        }
        //获取回库提升机目标站
        Integer staNo = liftNo * 100 + locMast1.getLev1();
        Integer staNo = liftNo * 100 + locMast.getLev1();
        // 更新工作档数据状态
        wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54
@@ -577,7 +590,7 @@
    @ResponseBody
    @Transactional
    public synchronized R start(@RequestBody ReplenishmentParam param){
        log.info("start param: " + param.toString());
        log.info("agv start param: " + param.toString());
        String containerCode = param.getContainerCode();
        if(Cools.isEmpty(containerCode)){
            throw new CoolException("料箱码为空");
@@ -612,7 +625,7 @@
        }
        //入库任务
        if (!Cools.isEmpty(agvWaitPakinService.selectByContainerCode(containerCode))){
        if (!Cools.isEmpty(agvWaitPakinService.selectByContainerCode(containerCode)) && Cools.isEmpty(agvWrkMast)){
            //绑定站点
            agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",containerCode);
            //生成工作档
@@ -726,6 +739,17 @@
                    }
                }
            };
            if (agvWrkMast.getIoType() == 103){
                List<AgvLocDetl> suppCodes = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("supp_code", agvWrkMast.getBarcode()));
                if (!Cools.isEmpty(suppCodes)){
                    for (AgvLocDetl agvLocDetl : suppCodes){
                        AgvWrkDetl agvWrkDetl = new AgvWrkDetl(agvLocDetl.getSuppCode(), agvLocDetl.getMatnr(), agvLocDetl.getMaktx(), agvLocDetl.getSpecs(), agvLocDetl.getAnfme());
                        agvWrkDetlList.add(agvWrkDetl);
                    }
                }
            }
            agvBasDevpDto.setAgvWrkDetls(agvWrkDetlList);
            agvBasDevpDto.setAgvWrkMast(agvWrkMast);