From 17e41c4b535eb30a4768c7d17b8707bad74bbb22 Mon Sep 17 00:00:00 2001 From: zhangchao <zc857179121@qq.com> Date: 星期三, 04 九月 2024 17:56:15 +0800 Subject: [PATCH] 移库逻辑调整 --- src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java | 8 +++ src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 81 ++++++++++++++++++++-------------------- src/main/resources/mapper/LocMastMapper.xml | 7 +++ src/main/java/com/zy/asrs/mapper/LocMastMapper.java | 2 src/main/java/com/zy/asrs/service/LocMastService.java | 4 ++ 5 files changed, 60 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java index c2bc5dc..a9b1604 100644 --- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java +++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java @@ -20,7 +20,7 @@ "when 11 then 0 when 12 then 1 when 13 then 1 when 14 then 0 when 15 then 0 when 16 then 1 end desc,newid()") List<Integer> queryDistinctRow(@Param("crnNo")Integer crnNo); - LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType1") Short locType1, @Param("locType2") Short locType2); + LocMast queryFreeLocMast(@Param("row") Integer row,@Param("bay") Integer bay, @Param("locType1") Short locType1, @Param("locType2") Short locType2); @Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}") List<String> queryGroupEmptyStock(Integer crnNo); diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java index 2f8d1bc..a4dd7a9 100644 --- a/src/main/java/com/zy/asrs/service/LocMastService.java +++ b/src/main/java/com/zy/asrs/service/LocMastService.java @@ -16,6 +16,10 @@ * 妫�绱㈠彲鐢ㄥ簱浣� */ LocMast queryFreeLocMast(Integer row, Short locType1,Short locType2); + /** + * 妫�绱㈠彲鐢ㄥ簱浣� + */ + LocMast queryFreeLocMast(Integer row,Integer bay, Short locType1,Short locType2); /** * 鑾峰彇鍚岀粍璐ф灦鐨勭┖搴撲綅 diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java index c60047f..6367aaf 100644 --- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java @@ -19,10 +19,16 @@ @Override public LocMast queryFreeLocMast(Integer row, Short locType1, Short locType2) { - return this.baseMapper.queryFreeLocMast(row, locType1, locType2); + return this.baseMapper.queryFreeLocMast(row, null, locType1, locType2); } @Override + public LocMast queryFreeLocMast(Integer row, Integer bay, Short locType1, Short locType2) { + return this.baseMapper.queryFreeLocMast(row, bay, locType1, locType2); + } + + + @Override public List<String> queryGroupEmptyStock(String sourceLocNo) { if (Cools.isEmpty(sourceLocNo)) { return null; diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index b3e674b..3dd16f4 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -91,17 +91,17 @@ @Value("${wms.url}") private String wmsUrl; - private Short getWorkMode(Integer bay) { - if (bay == 2 || bay == 7) { + private Short getWorkMode(Short locType1, Integer bay) { + if (locType1 == 2) { return (short) 3; - } else if (bay == 3) { - return (short) 2; - } else if (bay == 4) { - return (short) 2; - } else if (bay == 5) { - return (short) 1; + } else if (locType1 == 5) { + return (short) 3; } else { - return (short) 0; + if (bay == 5) { + return (short) 1; + } else { + return (short) 2; + } } } @@ -883,7 +883,7 @@ CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� - Short workMode = getWorkMode(locMast.getBay1()); + Short workMode = getWorkMode(locMast.getLocType1(), locMast.getBay1()); if (workMode == 2) { //CrnTaskModeType璇ユ灇涓剧被鏃犳晥锛屽彧鏈�1浠h〃宸ヤ綅锛�2浠h〃宸ヤ綅2锛�3鍙屽伐浣� crnCommand.setTaskMode(CrnTaskModeType.PAKOUT); @@ -1055,12 +1055,13 @@ News.warnNoLog("" + mark + " - 2" + " - 12" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue(), sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue(), crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue()); String locNo = sourceSta.getLocNo(); - + // 鑾峰彇鐩爣搴撲綅淇℃伅 + LocMast sta = locMastService.getById(sourceSta.getLocNo()); // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔� CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� - Short workMode = getWorkMode(sourceSta.getBay1()); + Short workMode = getWorkMode(sta.getLocType1(), sourceSta.getBay1()); if (workMode == 2) { //CrnTaskModeType璇ユ灇涓剧被鏃犳晥锛屽彧鏈�1浠h〃宸ヤ綅锛�2浠h〃宸ヤ綅2锛�3鍙屽伐浣� crnCommand.setTaskMode(CrnTaskModeType.PAKOUT); @@ -1268,7 +1269,7 @@ CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� - Short workMode = getWorkMode(sourceSta.getBay1()); + Short workMode = getWorkMode(sta.getLocType1(), sourceSta.getBay1()); crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� if (workMode == 2) { //CrnTaskModeType璇ユ灇涓剧被鏃犳晥锛屽彧鏈�1浠h〃宸ヤ綅锛�2浠h〃宸ヤ綅2锛�3鍙屽伐浣� @@ -1918,7 +1919,7 @@ LocMast loc = null; for (Integer row : rows) { if (Utils.isDeepLoc(slaveProperties, row)) { - loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1(), shallowLoc.getLocType2()); + loc = locMastService.queryFreeLocMast(row, shallowLoc.getBay1(), shallowLoc.getLocType1(), shallowLoc.getLocType2()); if (loc != null) { if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) { String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo()); @@ -1930,25 +1931,25 @@ } if (null != loc) { //璋冩暣鐨勫師鍥狅細鍙屽伐浣嶇殑鎯呭喌锛�5鍒楋紝鍙兘2鍙峰伐浣嶅彇鏀撅紝34鍒楋紝鍙兘宸ヤ綅1鍙栨斁 - if (shallowLoc.getLocType1() == 1) { - if (shallowLoc.getBay1() == 5 && loc.getBay1() == 5) { - break; - } else if (shallowLoc.getBay1() == 3 || shallowLoc.getBay1() == 4) { - if (loc.getBay1() == 3 || loc.getBay1() == 4) { - break; - } - } - loc = null; - } else { - break; - } +// if (shallowLoc.getLocType1() == 1) { +// if (shallowLoc.getBay1() == 5 && loc.getBay1() == 5) { +// break; +// } else if (shallowLoc.getBay1() == 3 || shallowLoc.getBay1() == 4) { +// if (loc.getBay1() == 3 || loc.getBay1() == 4) { +// break; +// } +// } +// loc = null; +// } else { + break; + // } } } } if (null == loc) { for (Integer row : rows) { if (Utils.isShallowLoc(slaveProperties, row)) { - loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1(), shallowLoc.getLocType2()); + loc = locMastService.queryFreeLocMast(row, shallowLoc.getBay1(), shallowLoc.getLocType1(), shallowLoc.getLocType2()); if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱 String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo()); @@ -1959,19 +1960,19 @@ } if (null != loc) { - //璋冩暣鐨勫師鍥狅細鍙屽伐浣嶇殑鎯呭喌锛�5鍒楋紝鍙兘2鍙峰伐浣嶅彇鏀撅紝34鍒楋紝鍙兘宸ヤ綅1鍙栨斁 - if (shallowLoc.getLocType1() == 1) { - if (shallowLoc.getBay1() == 5 && loc.getBay1() == 5) { - break; - } else if (shallowLoc.getBay1() == 3 || shallowLoc.getBay1() == 4) { - if (loc.getBay1() == 3 || loc.getBay1() == 4) { - break; - } - } - loc = null; - } else { - break; - } +// //璋冩暣鐨勫師鍥狅細鍙屽伐浣嶇殑鎯呭喌锛�5鍒楋紝鍙兘2鍙峰伐浣嶅彇鏀撅紝34鍒楋紝鍙兘宸ヤ綅1鍙栨斁 +// if (shallowLoc.getLocType1() == 1) { +// if (shallowLoc.getBay1() == 5 && loc.getBay1() == 5) { +// break; +// } else if (shallowLoc.getBay1() == 3 || shallowLoc.getBay1() == 4) { +// if (loc.getBay1() == 3 || loc.getBay1() == 4) { +// break; +// } +// } +// loc = null; +// } else { + break; + // } } } } diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml index bbca6f5..55f3dfe 100644 --- a/src/main/resources/mapper/LocMastMapper.xml +++ b/src/main/resources/mapper/LocMastMapper.xml @@ -42,6 +42,9 @@ from asr_loc_mast where row1=#{row} and loc_sts='O' + <if test="bay != null and bay == 5"> + and bay1 = #{bay} + </if> <if test="locType1 != null"> and loc_type1 = #{locType1} </if> @@ -51,6 +54,10 @@ order by NEWID(),lev1 asc,bay1 asc </select> + + + + <select id="queryDemoSourceLoc" resultMap="BaseResultMap"> select top 1 * from asr_loc_mast where crn_no = #{crnNo} and loc_sts='D' -- Gitblit v1.9.1