自动化立体仓库 - WMS系统
#
LSH
2023-01-30 2b12b7d324d013df11c8ed81ee61a0c5b54ca3f7
#
5个文件已修改
75 ■■■■■ 已修改文件
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 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocMastMapper.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -19,6 +19,8 @@
            , @Param("rowsLen") Integer rowsLen, @Param("locType1") Short locType1, @Param("inoutEveryday") Boolean inoutEveryday
            , @Param("rowBeg") Integer rowBeg, @Param("rowEnd") Integer rowEnd, @Param("bayBeg") Integer bayBeg
            , @Param("bayEnd") Integer bayEnd, @Param("levBeg") Integer levBeg, @Param("levEnd") Integer levEnd);
    List<LocMast> queryFreeLocMastEnd(@Param("row") Integer row);
    List<LocMast> queryFreeLocMastEnd0(@Param("bay") Integer bay,@Param("lev") Integer lev,@Param("row1") Integer row);
    @Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}")
    List<String> queryGroupEmptyStock(Integer crnNo);
src/main/java/com/zy/asrs/service/LocMastService.java
@@ -15,6 +15,8 @@
    List<LocMast> queryFreeLocMast0(List<Integer> rows, Integer rowsLen, Short locType1,Boolean inoutEveryday);
    List<LocMast> queryFreeLocMast1(List<Integer> rows, Integer rowsLen, Short locType1,Boolean inoutEveryday
                                    , Integer rowBeg, Integer rowEnd, Integer bayBeg, Integer bayEnd, Integer levBeg, Integer levEnd);
    List<LocMast> queryFreeLocMastEnd(Integer row);
    List<LocMast> queryFreeLocMastEnd0(Integer bay,Integer lev,Integer row);
    /**
     * 获取同组货架的空库位
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -41,6 +41,15 @@
    }
    @Override
    public List<LocMast> queryFreeLocMastEnd(Integer row){
        return this.baseMapper.queryFreeLocMastEnd(row);
    }
    @Override
    public List<LocMast> queryFreeLocMastEnd0(Integer bay,Integer lev,Integer row){
        return this.baseMapper.queryFreeLocMastEnd0(bay,lev,row);
    }
    @Override
    public List<String> queryGroupEmptyStock(String sourceLocNo) {
        if (Cools.isEmpty(sourceLocNo)) {
            return null;
src/main/java/com/zy/common/service/CommonService.java
@@ -353,7 +353,25 @@
//            }
        }
        // 2.库位当前所属尺寸无空库位时,调整尺寸参数,向上兼容检索库位
        // 2.无库位时,无视区域锁定,重新查找库位
        if (Cools.isEmpty(locMast)){
            List<LocMast> locMasts = locMastService.queryFreeLocMastEnd(curRow);
            for (LocMast locMast1 : locMasts){
                List<LocMast> locMasts1 = locMastService.queryFreeLocMastEnd0(locMast1.getBay1(), locMast1.getLev1(),locMast1.getRow1());
                Integer innermostRow = Utils.getInnermostRow(locMasts1.get(0).getLocNo());
                for (LocMast locMast2:locMasts1){
                    if (locMast2.getRow1().equals(innermostRow)) {
                        locMast = locMast2;
                        break;
                    }
                }
                if (!Cools.isEmpty(locMast)){
                    break;
                }
            }
        }
        // 3.库位当前所属尺寸无空库位时,调整尺寸参数,向上兼容检索库位
        if (Cools.isEmpty(locMast)) {
            // 当前巷道无空库位时,递归调整至下一巷道,检索全部巷道无果后,跳出递归
            if (times < rowCount) {
src/main/resources/mapper/LocMastMapper.xml
@@ -186,4 +186,46 @@
        )
    </select>
    <select id="queryFreeLocMastEnd" resultMap="BaseResultMap">
        select *
        from asr_loc_mast
        where row1=#{row}
        and loc_sts='O'
        and loc_no not in ('0100101', '0200101', '0300101', '1200701', '1300701', '1400701', '1900401', '2000401', '2100401')
        order by loc_sts desc ,lev1 asc,bay1 asc
    </select>
    <select id="queryFreeLocMastEnd0" resultMap="BaseResultMap">
        select *
        from asr_loc_mast
        where bay1=#{bay}
        and lev1=#{lev}
        and loc_sts='O'
        and loc_no not in ('0100101', '0200101', '0300101', '1200701', '1300701', '1400701', '1900401', '2000401', '2100401')
        <if test="row1 >= 1 and row1 &lt;= 3">
            and row1 >= 1 and row1 &lt;= 3
            order by loc_sts desc ,row1 asc
        </if>
        <if test="row1 >= 4 and row1 &lt;= 7">
            and row1 >= 4 and row1 &lt;= 7
            order by loc_sts desc ,row1 desc
        </if>
        <if test="row1 >= 8 and row1 &lt;= 11">
            and row1 >= 8 and row1 &lt;= 11
            order by loc_sts desc ,row1 asc
        </if>
        <if test="row1 >= 12 and row1 &lt;= 14">
            and row1 >= 12 and row1 &lt;= 14
            order by loc_sts desc ,row1 desc
        </if>
        <if test="row1 >= 15 and row1 &lt;= 18">
            and row1 >= 15 and row1 &lt;= 18
            order by loc_sts desc ,row1 asc
        </if>
        <if test="row1 >= 19 and row1 &lt;= 21">
            and row1 >= 19 and row1 &lt;= 21
            order by loc_sts desc ,row1 desc
        </if>
    </select>
</mapper>