自动化立体仓库 - WMS系统
whycq
2024-05-27 1efaa37727a8d70a6bc0b0f70532649c16bfab35
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -79,7 +79,7 @@
        agvBasDevpList.forEach(agvBasDevp -> {
            if(Cools.isEmpty(agvBasDevp.getBarcode())){
                throw new CoolException("选中的站点中含有未绑定托盘的站点,请重新选择");
                throw new CoolException("选中的站点中含有未绑定货架的站点,请重新选择");
            }
            if(!"F".equals(agvBasDevp.getLocSts())){
@@ -337,13 +337,13 @@
        }
        if(!Cools.eq(agvBasDevp.getBarcode(),containerCode) && !agvBasDevp.getLocSts().equals("O") && !emptyAutoIn){
            throw new CoolException("当前工作位状态为" + agvBasDevp.getLocSts()+",无法进行空板入库");
            throw new CoolException("当前工作位状态为" + agvBasDevp.getLocSts()+",无法进行入库");
        }
        //查询工作档
        AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(containerCode);
        if(!Cools.isEmpty(agvWrkMast) && !emptyAutoIn){
            throw new CoolException("当前容器已有入库任务,无法进行入库");
            throw new CoolException("当前货架已有入库任务,无法进行入库");
        }
        //检索库位,选择合适的库位
@@ -392,7 +392,7 @@
            throw new CoolException("当前工作位状态为" + agvBasDevp.getLocSts()+",无法进行空板出库");
        }
        //寻找相应类型的空托盘
        //寻找相应类型的空货架
        AgvLocMast agvLocMast = agvLocMastService.selectEmptyZpallet(containerType,agvBasDevp.getFloor());
        if(containerType == 0){
            //空板自动出库,根据站点类型选择
@@ -401,7 +401,7 @@
        }
        if (Cools.isEmpty(agvLocMast)) {
            throw new CoolException("暂无当前出库站点类型的空托盘!");
            throw new CoolException("暂无当前出库站点类型的空货架!");
        }
        //生成工作档
        createWrkMast(110,21L,agvLocMast.getLocNo(),agvBasDevp.getDevNo(),agvLocMast.getBarcode(),now,userId,containerType);
@@ -599,6 +599,7 @@
            agvLocMastService.updateLocStsByLocNo(locNo,"O","",null);
            agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
            // 移库取消
        } else if( wrkMast.getIoType() == 11 || wrkMast.getIoType() == 12) {
            //源库位
@@ -640,7 +641,11 @@
            String locNo = wrkMast.getSourceLocNo();
            //目标站点
            String devNo = wrkMast.getLocNo();
            agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
            if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 109) {
                agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
            } else {
                agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
            }
            agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
        }
@@ -695,7 +700,7 @@
    }
    /*
    更新目标库位信息和库位托盘类型
    更新目标库位信息和库位货架类型
     */
    private void updateAgvLocMast(AgvLocMast locMast, String locSts, short type){
        locMast.setLocSts(locSts);
@@ -714,7 +719,7 @@
    }
    /*
    更新源站点信息和库位托盘类型
    更新源站点信息和库位货架类型
     */
    private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts, Short continerType){
        if(!Cools.isEmpty(agvBasDevp)){
@@ -748,7 +753,7 @@
        wrkDetl.setIoTime(now);
        wrkDetl.setBatch(batch);
        wrkDetl.setAnfme(anfme); // 数量
        wrkDetl.setSuppCode(zpallet); // 托盘条码
        wrkDetl.setSuppCode(zpallet); // 货架条码
        wrkDetl.setAppeUser(userId);
        wrkDetl.setAppeTime(now);
        wrkDetl.setModiUser(userId);
@@ -779,7 +784,7 @@
            wrkDetl.setIoTime(now);
            wrkDetl.setBatch(agvWaitPakin.getBatch());
            wrkDetl.setAnfme(agvWaitPakin.getAnfme()); // 数量
            wrkDetl.setZpallet(agvWaitPakin.getZpallet()); // 托盘条码
            wrkDetl.setZpallet(agvWaitPakin.getZpallet()); // 货架条码
            wrkDetl.setAppeUser(userId);
            wrkDetl.setAppeTime(now);
            wrkDetl.setModiUser(userId);
@@ -806,9 +811,9 @@
        wrkMast.setSourceLocNo(sourceLocNo);
        //目标站点
        wrkMast.setLocNo(locNo);
        //容器编码
        //货架编码
        wrkMast.setBarcode(barcode);
        //容器类型
        //货架类型
        wrkMast.setWhsType(containerType);
        wrkMast.setAppeUser(userId);