自动化立体仓库 - WMS系统
Junjie
2023-05-26 b936dcdc85e19315937b07fc624ff63281ef771a
高频入库,检测当前库位内侧其他库位是否为R或S(出入库预约状态)
5个文件已修改
43 ■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/LocMastMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/LocMastService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocMastMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -37,7 +37,7 @@
    void updateLocSts(@Param("locNo") String locNo,@Param("locSts") String locSts);
    //找外侧空库位
    LocMast findOutMast(Short locType1, List<Integer> crnNos);
    List<LocMast> findOutMast(Short locType1, List<Integer> crnNos);
    //找单品类型,最内侧空库位
    LocMast findInEmptyLocMast(Short locType1, @Param("rows") List<Integer> rows);
@@ -49,4 +49,6 @@
    LocMast findEmptyLowFrequencyLocMast(Short locType1);
    List<LocMast> selectLocByLev(Integer lev);
    List<LocMast> selectByLocNos(@Param("locNos") List<String> locNos);
}
src/main/java/com/zy/asrs/service/LocMastService.java
@@ -56,7 +56,7 @@
    void updateLocSts(String locNo, String locSts);
    //找外侧空库位
    LocMast findOutMast(Short locType1, List<Integer> crnNos);
    List<LocMast> findOutMast(Short locType1, List<Integer> crnNos);
    //找单品类型,最内侧空库位
    LocMast findInEmptyLocMast(Short locType1, List<Integer> rows);
@@ -69,4 +69,6 @@
    //查询指定楼层的库位数据
    List<LocMast> selectLocByLev(Integer lev);
    List<LocMast> selectByLocNos(List<String> locNos);
}
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -205,7 +205,7 @@
    }
    @Override
    public LocMast findOutMast(Short locType1, List<Integer> crnNos) {
    public List<LocMast> findOutMast(Short locType1, List<Integer> crnNos) {
        return this.baseMapper.findOutMast(locType1, crnNos);
    }
@@ -228,4 +228,9 @@
    public List<LocMast> selectLocByLev(Integer lev) {
        return this.baseMapper.selectLocByLev(lev);
    }
    @Override
    public List<LocMast> selectByLocNos(List<String> locNos) {
        return this.baseMapper.selectByLocNos(locNos);
    }
}
src/main/java/com/zy/common/service/CommonService.java
@@ -134,9 +134,9 @@
                start = 12;
                end = 21;
                //203站分配3,4堆垛机
                //203站分配2,3堆垛机
                crnNos.add(2);
                crnNos.add(3);
                crnNos.add(4);
                //分配14,15,21排
                rows.add(14);
@@ -267,8 +267,18 @@
    private LocMast getLocNoStep3(LocTypeDto locTypeDto, List<Integer> crnNos) {
        LocMast locMast = null;
        //找最外侧空库位
        LocMast locMast0 = locMastService.findOutMast(locTypeDto.getLocType1(), crnNos);
        if (locMast0 != null) {
        List<LocMast> locMasts = locMastService.findOutMast(locTypeDto.getLocType1(), crnNos);
        for (LocMast locMast0 : locMasts) {
            //检测当前库位内侧其他库位是否为R或S(出入库预约状态)
            List<String> insideLoc = Utils.getGroupInsideLoc(locMast0.getLocNo());
            List<LocMast> insideLocMast = locMastService.selectByLocNos(insideLoc);
            for (LocMast mast : insideLocMast) {
                if (mast.getLocSts().equals("R") || mast.getLocSts().equals("S")) {
                    //R或S(出入库预约状态,不能选定这个外侧库位)
                    continue;
                }
            }
            // 浅库位符合尺寸检测
            if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) {
                // 浅库位对应堆垛机必须可用且无异常
src/main/resources/mapper/LocMastMapper.xml
@@ -284,7 +284,7 @@
    </select>
    <select id="findOutMast" resultMap="BaseResultMap">
        select top 1 * from asr_loc_mast
        select * from asr_loc_mast
        where loc_type1 = #{locType1}
        and loc_type2 = 2
        and crn_no in
@@ -330,4 +330,12 @@
    <select id="selectLocByLev" resultMap="BaseResultMap">
        SELECT * FROM asr_loc_mast WHERE lev1 = #{lev}
    </select>
    <select id="selectByLocNos" resultMap="BaseResultMap">
        select * from asr_loc_mast
        where loc_no in
        <foreach item="item" collection="locNos" index="index"  separator="," open="(" close=")">
            #{item}
        </foreach>
    </select>
</mapper>