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