Junjie
2023-11-21 574a90c2d6550fa67dde1994d533fcd4c2a08735
#出库过滤同库位组
6个文件已修改
91 ■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/LocMastMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/LocMastService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/Utils.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocMastMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -41,4 +41,6 @@
    List<LocMast> selectLocByLev(Integer lev);
    List<LocMast> selectEmptyLocNos(@Param("locNos") List<String> locNos);
    List<LocMast> selectNotEmptyLocNos(@Param("locNos") List<String> locNos);
}
src/main/java/com/zy/asrs/service/LocMastService.java
@@ -72,4 +72,6 @@
    List<LocMast> selectLocByLev(Integer lev);
    List<LocMast> selectEmptyLocNos(List<String> locNos);
    List<LocMast> selectNotEmptyLocNos(List<String> locNos);
}
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -96,4 +96,9 @@
    public List<LocMast> selectEmptyLocNos(List<String> locNos) {
        return this.baseMapper.selectEmptyLocNos(locNos);
    }
    @Override
    public List<LocMast> selectNotEmptyLocNos(List<String> locNos) {
        return this.baseMapper.selectNotEmptyLocNos(locNos);
    }
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -918,6 +918,14 @@
                return false;//存在入库任务,禁止出库
            }
            //同库位组校验
            List<String> outerLoc = Utils.getGroupOuterLoc(wrkMast.getSourceLocNo());
            List<LocMast> outerLocMasts = locMastService.selectNotEmptyLocNos(outerLoc);
            if (!outerLocMasts.isEmpty()) {
                News.info("{}任务,浅库位存在货物,系统等待中", wrkMast.getWrkNo());
                return false;//浅库位存在未执行任务
            }
            //获取源站
            LiftStaProtocol liftStaProtocol = NyLiftUtils.getLiftStaByLev(basDevp.getLiftNo(), Utils.getLev(wrkMast.getSourceLocNo()));
            if (liftStaProtocol == null) {
src/main/java/com/zy/asrs/utils/Utils.java
@@ -100,21 +100,6 @@
        return getGroupRow(row, pakin);
    }
    public static List<String> getGroupLocNo(String locNo){
        int row = getRow(locNo);
        List<String> result = new ArrayList<>();
        if (FIRST_GROUP_ROW_LIST.contains(row)) {
            for (Integer groupRow : FIRST_GROUP_ROW_LIST) {
                result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2));
            }
        } else if (SECOND_GROUP_ROW_LIST.contains(row)) {
            for (Integer groupRow : SECOND_GROUP_ROW_LIST) {
                result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2));
            }
        }
        return result;
    }
    public static Integer getGroupRow(Integer row, Boolean pakin) {
        if (FIRST_GROUP_ROW_LIST.contains(row)) {
            return 4;
@@ -370,6 +355,54 @@
        throw new RuntimeException("库位解析异常");
    }
    /**
     * 获取外侧方向的库位组
     * @param locNo 库位号
     */
    public static List<String> getGroupOuterLoc(String locNo){
        int row = getRow(locNo);
        int bay = getBay(locNo);
        //(1,3,4,10,11)没有外侧方向库位组,(13,14,16)59列之内没有外侧方向库位组
        if (FIRST_GROUP_ROW_LIST.contains(row)) {//1排
            return new ArrayList<>();
        }
        if (SECOND_GROUP_ROW_LIST.contains(row)) {//3-4排
            return new ArrayList<>();
        }
        if (THIRD_GROUP_ROW_LIST.contains(row)) {//6-7排
            List<String> result = new ArrayList<>();
            for (Integer row0 : THIRD_GROUP_ROW_LIST) {
                if (row0 < row) {
                    result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
                }
            }
            return result;
        }
        if (FOURTH_GROUP_ROW_LIST.contains(row)) {//8排
            return new ArrayList<>();
        }
        if (FIFTH_GROUP_ROW_LIST.contains(row)) {//10-11排
            return new ArrayList<>();
        }
        if (SIXTH_GROUP_ROW_LIST.contains(row) && (bay >= 59 && bay <= 61)) {//13-16排59-61列外侧方向库位组
            List<String> result = new ArrayList<>();
            for (Integer row0 : SIXTH_GROUP_ROW_LIST) {
                if (row0 < row) {
                    result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
                }
            }
            return result;
        }
        if (SEVENTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//13-14排59列之内没有外侧方向库位组
            return new ArrayList<>();
        }
        if (EIGHTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//16排59列之内没有外侧方向库位组
            return new ArrayList<>();
        }
        throw new RuntimeException("库位解析异常");
    }
    //获取除白名单外的指定楼层全部穿梭车xy坐标点
    public static List<int[]> getShuttlePoints(Integer whiteShuttle, Integer lev) {
        BasShuttleService basShuttleService = SpringUtils.getBean(BasShuttleService.class);
src/main/resources/mapper/LocMastMapper.xml
@@ -33,7 +33,6 @@
        <result column="inv_wh" property="invWh" />
        <result column="mk" property="mk" />
        <result column="barcode" property="barcode" />
        <result column="Pdc_type" property="PdcType" />
        <result column="ctn_no" property="ctnNo" />
        <result column="qr_code_value" property="qrCodeValue" />
@@ -83,4 +82,14 @@
        and loc_sts = 'O'
        order by row1
    </select>
    <select id="selectNotEmptyLocNos" resultMap="BaseResultMap">
        select * from asr_loc_mast
        where loc_no in
        <foreach item="loc" collection="locNos" index="index"  separator="," open="(" close=")">
            #{loc}
        </foreach>
        and loc_sts != 'O'
        order by row1
    </select>
</mapper>