自动化立体仓库 - WMS系统
Junjie
2023-12-06 828b592b5f8e31204f93bcc2ea0c5866bdc0dcf0
src/main/java/com/zy/common/web/WcsController.java
@@ -51,6 +51,10 @@
    private AgvWaitPakinService agvWaitPakinService;
    @Autowired
    private AgvWorkService agvWorkService;
    @Autowired
    private AgvBasDevpService agvBasDevpService;
    @Autowired
    private AgvWrkMastService agvWrkMastService;
//    @Autowired
//    private ErpService erpService;
@@ -297,8 +301,25 @@
            throw new CoolException(CodeRes.NONE_DETL_900);
        }
        // 检索库位
        List<String> matnrList = wrkDetls.stream().map(WrkDetl::getMaktx).distinct().collect(Collectors.toList());
        return commonService.getLocNo(1, ioType - 50, devpNo, matnrList, locTypeDto,0); // 库位号, 堆垛机,目标站
        List<String> matnrList = wrkDetls.stream().map(WrkDetl::getMatnr).distinct().collect(Collectors.toList());
        if (ioType == 107) {//盘点回库任务
            if (devpNo == 325 || devpNo == 331 || devpNo == 333 || devpNo == 339) {
                devpNo = 341;
            }
        }
        StartupDto dto = commonService.getLocNo(1, ioType - 50, devpNo, matnrList, locTypeDto,0); // 库位号, 堆垛机,目标站
        // 更新目标库位状态
        LocMast locMast = locMastService.selectById(dto.getLocNo());
        if (locMast.getLocSts().equals("O")){
            locMast.setLocSts("S"); // S.入库预约
            locMast.setModiTime(new Date());
            if (!locMastService.updateById(locMast)){
                throw new CoolException("改变库位状态失败");
            }
        } else {
            throw new CoolException(dto.getLocNo()+"目标库位已被占用");
        }
        return dto;
    }
    /*
@@ -311,13 +332,14 @@
        Integer wrkNo = param.getWrkNo();
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkNo);
        wrkDetls.forEach(wrkDetl -> {
            AgvWaitPakin agvWaitPakin = new AgvWaitPakin();
            BeanUtils.copyProperties(wrkDetl,agvWaitPakin);
            agvWaitPakin.setIoStatus("Y");
            agvWaitPakin.setModiTime(now);
            agvWaitPakin.setAppeTime(now);
            agvWaitPakinService.insert(agvWaitPakin);
            if(!Cools.isEmpty(wrkDetl.getSuppCode()) && Cools.isEmpty(agvWaitPakinService.selectByContainerCode(wrkDetl.getSuppCode()))){
                AgvWaitPakin agvWaitPakin = new AgvWaitPakin();
                BeanUtils.copyProperties(wrkDetl,agvWaitPakin);
                agvWaitPakin.setIoStatus("Y");
                agvWaitPakin.setModiTime(now);
                agvWaitPakin.setAppeTime(now);
                agvWaitPakinService.insert(agvWaitPakin);
            }
        });
        return R.ok();
@@ -330,13 +352,38 @@
    @ResponseBody
    public R start(@RequestBody ReplenishmentParam param){
        String containerCode = param.getContainerCode();
        if(Cools.isEmpty(containerCode)){
            throw new CoolException("料箱码为空");
        }
        if(!Character.isDigit(containerCode.charAt(0))){
            containerCode = containerCode.substring(3,containerCode.length());
        }
        AgvBasDevp agvBasDevp = agvBasDevpService.getByDevNo(param.getDevNo());
        if(Cools.isEmpty(agvBasDevp) || !"O".equals(agvBasDevp.getLocSts())){
            throw new CoolException("当前站点不存在或者站点不为空");
        }
        if(Cools.isEmpty(agvWaitPakinService.selectByContainerCode(containerCode))){
            throw new CoolException("该料箱位组托");
        }
        //去找agv工作档任务
        if(!Cools.isEmpty(agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode",containerCode)))){
            throw new CoolException("该料箱正在入库中");
        }
        //绑定站点
        agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",containerCode);
        //agvWorkService.createWaitPainWrkMastStart(agvBasDevpList, getUserId());
        //生成工作档
        List<AgvBasDevp> agvBasDevpList = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>().eq("dev_no", param.getDevNo()));
        agvWorkService.createWaitPainWrkMastStart(agvBasDevpList, null, true);
        return R.ok();
    }
}