自动化立体仓库 - WMS系统
zjj
2024-09-03 e1c7f150792a5085dd64e86e6af82820ab34dc05
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()));
@@ -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
@@ -576,9 +589,8 @@
    @PostMapping("/start")
    @ResponseBody
    @Transactional
    @Synchronized
    public R start(@RequestBody ReplenishmentParam param){
        log.info("start param: " + param.toString());
    public synchronized R start(@RequestBody ReplenishmentParam param){
        log.info("agv start param: " + param.toString());
        String containerCode = param.getContainerCode();
        if(Cools.isEmpty(containerCode)){
            throw new CoolException("料箱码为空");
@@ -613,7 +625,7 @@
        }
        //入库任务
        if (!Cools.isEmpty(agvWaitPakinService.selectByContainerCode(containerCode))){
        if (!Cools.isEmpty(agvWaitPakinService.selectByContainerCode(containerCode)) && Cools.isEmpty(agvWrkMast)){
            //绑定站点
            agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",containerCode);
            //生成工作档
@@ -687,11 +699,20 @@
    @ResponseBody
    public R containerMove(@RequestBody ReplenishmentParam param){
        String devNo = param.getDevNo();
        if(Cools.isEmpty(currentContainerMap)){
            currentContainerMap = new HashMap<>();
        String devNo = Cools.eq("CS-310",param.getDevNo()) ? "310-1" : Cools.eq("CS-311",param.getDevNo()) ? "312-2" : Cools.eq("CS-312",param.getDevNo()) ? "314-1" : Cools.eq("CS-313",param.getDevNo()) ? "316-1" : null;
        if(Cools.isEmpty(devNo)){
            return R.error("站点有误");
        }
        String containerCode = currentContainerMap.get(devNo);
        AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devNo);
        String containerCode = agvBasDevp.getBarcode();
//        String devNo = param.getDevNo();
//        if(Cools.isEmpty(currentContainerMap)){
//            currentContainerMap = new HashMap<>();
//        }
//        String containerCode = currentContainerMap.get(devNo);
        AgvBasDevpDto agvBasDevpDto = new AgvBasDevpDto();
@@ -718,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);