自动化立体仓库 - WMS系统
whycq
2024-05-24 d17a7346759fbb432cea1c83de63d29c6a3d330d
# 自动回流取消任务更改源库位为D
3个文件已修改
37 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/AgvCommonService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -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);
        }
src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -238,7 +238,7 @@
            throw new CoolException("当前"+agvLocMast.getBarcode()+"货架码已在工作档中");
        }
        //检索空闲接驳位,选择合适的接驳位
        AgvBasDevp devpNo = agvCommonService.getDevpNo(3, agvLocMast.getFloor());
        AgvBasDevp devpNo = agvCommonService.getDevpNoisAuto(3, agvLocMast.getFloor(),"Y");
        //生成工作档
        AgvWrkMast mast = new AgvWrkMast();
        //工作状态
src/main/java/com/zy/common/service/AgvCommonService.java
@@ -253,6 +253,24 @@
        throw new CoolException("该楼层没有空接驳位");
    }
    /**
     * 检索库位号
     * @return locNo 检索到的库位号
     */
    public AgvBasDevp getDevpNoisAuto(int type, int floor, String auto) {
        // 目标库位
        AgvBasDevp basDevp = null;
        // 开始查找库位 ==============================>>
        basDevp = getDevpNoAuto(type,floor,auto);
        if (basDevp != null) {
            return basDevp;
        }
        //找不到库位,抛出异常
        throw new CoolException("该楼层没有空接驳位");
    }
    //随机取一个货位
    private AgvBasDevp getDevpNoRule(int type,int floor){
        return agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>()
@@ -262,4 +280,14 @@
                .like("dev_no","DB"));
    }
    //随机取一个货位
    private AgvBasDevp getDevpNoAuto(int type,int floor,String auto){
        return agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>()
                .eq("loc_sts","O")
                .eq("floor",floor)
                .eq("loc_type1",type)
                .eq("autoing",auto)
                .like("dev_no","DB"));
    }
}