src/main/java/com/zy/asrs/mapper/LocMastMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/LocMastService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/utils/Utils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/service/CommonService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/LocMastMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -13,7 +13,7 @@ @Repository public interface LocMastMapper extends BaseMapper<LocMast> { LocMast queryFreeLocMast(@Param("row") Integer row, @Param("rows") List<Integer> rows, @Param("locType1") Short locType1); List<LocMast> queryFreeLocMast(@Param("row") Integer row, @Param("rows") List<Integer> rows, @Param("rowsLen") Integer rowsLen, @Param("locType1") Short locType1); @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
@@ -11,7 +11,7 @@ /** * 检索可用库位 */ LocMast queryFreeLocMast(Integer row, List<Integer> rows, Short locType1); LocMast queryFreeLocMast(Integer row, List<Integer> rows, Integer rowsLen, Short locType1); /** * 获取同组货架的空库位 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -23,8 +23,18 @@ private RowLastnoService rowLastnoService; @Override public LocMast queryFreeLocMast(Integer row, List<Integer> rows, Short locType1) { return this.baseMapper.queryFreeLocMast(row, rows, locType1); public LocMast queryFreeLocMast(Integer row, List<Integer> rows, Integer rowsLen, Short locType1) { List<LocMast> locMasts = this.baseMapper.queryFreeLocMast(row, rows, rowsLen, locType1); if (Cools.isEmpty(locMasts)) { return null; } Integer innermostRow = Utils.getInnermostRow(locMasts.get(0).getLocNo()); for (LocMast locMast : locMasts) { if (locMast.getRow1().equals(innermostRow)) { return locMast; } } return null; } @Override @@ -81,8 +91,12 @@ } @Override public void breakUp(String locNo) { public synchronized void breakUp(String locNo) { List<String> groupLoc = Utils.getGroupOuterLoc(locNo); for (String outerLocNo : groupLoc) { LocMast locMast = this.selectById(outerLocNo); } } } src/main/java/com/zy/asrs/utils/Utils.java
@@ -196,6 +196,41 @@ } } public static Integer getInnermostRow(String locNo){ int row = getRow(locNo); switch (row) { case 1: case 2: case 3: return 1; case 4: case 5: case 6: case 7: return 7; case 8: case 9: case 10: case 11: return 8; case 12: case 13: case 14: return 14; case 15: case 16: case 17: case 18: return 15; case 19: case 20: case 21: return 21; default: throw new RuntimeException("库位解析异常"); } } public static List<String> getGroupLoc(String locNo){ int row = getRow(locNo); @@ -320,15 +355,91 @@ } } public static void main(String[] args) { SlaveProperties slaveProperties = new SlaveProperties(); slaveProperties.setDoubleDeep(true); List<Integer> list = new ArrayList<>(); list.add(1);list.add(4);list.add(5);list.add(8);list.add(9);list.add(12); slaveProperties.setDoubleLocs(list); slaveProperties.setGroupCount(4); Integer deepRow = getDeepRow(slaveProperties, 6); System.out.println(deepRow); public static List<String> getGroupOuterLoc(String locNo){ int row = getRow(locNo); switch (row) { case 1: return new ArrayList<String>() {{ add(zerofill(String.valueOf(2), 2) + locNo.substring(2)); add(zerofill(String.valueOf(3), 2) + locNo.substring(2)); }}; case 2: return new ArrayList<String>() {{ add(zerofill(String.valueOf(3), 2) + locNo.substring(2)); }}; case 3: case 4: case 11: case 12: case 18: case 19: return new ArrayList<>(); case 5: return new ArrayList<String>() {{ add(zerofill(String.valueOf(4), 2) + locNo.substring(2)); }}; case 6: return new ArrayList<String>() {{ add(zerofill(String.valueOf(4), 2) + locNo.substring(2)); add(zerofill(String.valueOf(5), 2) + locNo.substring(2)); }}; case 7: return new ArrayList<String>() {{ add(zerofill(String.valueOf(4), 2) + locNo.substring(2)); add(zerofill(String.valueOf(5), 2) + locNo.substring(2)); add(zerofill(String.valueOf(6), 2) + locNo.substring(2)); }}; case 8: return new ArrayList<String>() {{ add(zerofill(String.valueOf(9), 2) + locNo.substring(2)); add(zerofill(String.valueOf(10), 2) + locNo.substring(2)); add(zerofill(String.valueOf(11), 2) + locNo.substring(2)); }}; case 9: return new ArrayList<String>() {{ add(zerofill(String.valueOf(10), 2) + locNo.substring(2)); add(zerofill(String.valueOf(11), 2) + locNo.substring(2)); }}; case 10: return new ArrayList<String>() {{ add(zerofill(String.valueOf(11), 2) + locNo.substring(2)); }}; case 13: return new ArrayList<String>() {{ add(zerofill(String.valueOf(12), 2) + locNo.substring(2)); }}; case 14: return new ArrayList<String>() {{ add(zerofill(String.valueOf(12), 2) + locNo.substring(2)); add(zerofill(String.valueOf(13), 2) + locNo.substring(2)); }}; case 15: return new ArrayList<String>() {{ add(zerofill(String.valueOf(16), 2) + locNo.substring(2)); add(zerofill(String.valueOf(17), 2) + locNo.substring(2)); add(zerofill(String.valueOf(18), 2) + locNo.substring(2)); }}; case 16: return new ArrayList<String>() {{ add(zerofill(String.valueOf(17), 2) + locNo.substring(2)); add(zerofill(String.valueOf(18), 2) + locNo.substring(2)); }}; case 17: return new ArrayList<String>() {{ add(zerofill(String.valueOf(18), 2) + locNo.substring(2)); }}; case 20: return new ArrayList<String>() {{ add(zerofill(String.valueOf(19), 2) + locNo.substring(2)); }}; case 21: return new ArrayList<String>() {{ add(zerofill(String.valueOf(19), 2) + locNo.substring(2)); add(zerofill(String.valueOf(20), 2) + locNo.substring(2)); }}; default: throw new RuntimeException("库位解析异常"); } } } src/main/java/com/zy/common/service/CommonService.java
@@ -269,7 +269,7 @@ if (locMast == null) { List<Integer> rows = Utils.getGroupLoc(curRow); locMast = locMastService.queryFreeLocMast(null, rows, locTypeDto.getLocType1()); locMast = locMastService.queryFreeLocMast(null, rows, rows.size(), locTypeDto.getLocType1()); // 因库位移转、需预留空库位 // if (!locMastService.checkEmptyCount(locMast)) { // locMast = null; src/main/resources/mapper/LocMastMapper.xml
@@ -39,18 +39,38 @@ </resultMap> <select id="queryFreeLocMast" resultMap="BaseResultMap"> select top 1 * select * from asr_loc_mast where row1 in where 1=1 and row1 in <foreach item="item" collection="rows" index="index" separator="," open="(" close=")"> #{item} </foreach> and ctn_no = ( select top 1 ctn_no from ( select ctn_no, count(1) as count from asr_loc_mast where 1=1 and row1 in <foreach item="item" collection="rows" index="index" separator="," open="(" close=")"> #{item} </foreach> and loc_sts = 'O' <if test="locType1 != null"> and loc_type1 = #{locType1} </if> and loc_sts='O' order by loc_sts desc,row1 asc, lev1 asc, bay1 asc group by ctn_no ) a where count = #{rowsLen} order by right(ctn_no, 2) + 0 asc, left(ctn_no, 3) + 0 asc ) </select> </mapper>