From de92c7f5e4643f678febef20435473f8c619b3d0 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期五, 11 三月 2022 09:55:28 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 100 ++++++++++++++++++++++++++++---------------------
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java | 2
src/main/resources/mapper/WrkMastMapper.xml | 4 +-
src/main/java/com/zy/core/MainProcess.java | 2 -
4 files changed, 60 insertions(+), 48 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index f20acb6..b2ea12f 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -35,7 +35,7 @@
WrkMast selectPakInStep45(@Param("workNo")Integer workNo);
- WrkMast selectPakInStep8(@Param("steNo")Integer steNo);
+ WrkMast selectCarWaiting(@Param("workNo")Integer workNo);
// 鎷f枡鍐嶅叆搴撴椂锛岀珯鐐规湁鐗╀笖闇�姹傛椂鏌ヨ
// @Select("select top 1 * from asr_wrk_mast where wrk_no=#{workNo} and wrk_sts=14 and (io_type=103 or io_type=107 or io_type=104)")
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 19d9816..9972426 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -735,7 +735,7 @@
}
/**
- * 鍏ュ簱 ===>> 鍫嗗灈鏈烘惉鍏ュ皬杞�
+ * 鍏ュ嚭搴� ===>> 鍫嗗灈鏈烘惉鍏ュ皬杞�
*/
public void carMoveIn(WrkMast wrkMast, Integer steNo, CrnProtocol crnProtocol) {
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
@@ -746,6 +746,7 @@
// 鍫嗗灈鏈虹┖闂�
if (crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() == 0) {
LocMast locMast;
+ // 鍏ュ簱鎼�
if (wrkMast.getWrkSts() <= 10) {
locMast = locMastService.selectById(wrkMast.getLocNo());
// 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
@@ -772,7 +773,33 @@
log.error("淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 4.杩佸叆灏忚溅 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
}
}
-
+ // 鍑哄簱鎼�
+ } else {
+ locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+ // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+ crnCommand.setSourcePosX(steProtocol.getRow()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY(steProtocol.getBay()); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ(steProtocol.getLev()); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX(Utils.getGroupRow(locMast.getLocNo()).shortValue()); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞�
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 12.灏忚溅寰呮惉 => 13.杩佸叆灏忚溅
+ Date now = new Date();
+ wrkMast.setWrkSts(13L);
+ wrkMast.setCrnStrTime(now);
+ wrkMast.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ log.error("淇敼宸ヤ綔妗g姸鎬� 12.灏忚溅寰呮惉 => 13.杩佸叆灏忚溅 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+ }
}
}
@@ -985,7 +1012,7 @@
}
}
// 鍫嗗灈鏈烘惉杩愬皬杞�
- if (wrkMast.getWrkSts() == 3L) {
+ if (wrkMast.getWrkSts() == 12L) {
this.carMoveIn(wrkMast, wrkMast.getSteNo(), crnProtocol);
}
}
@@ -1066,43 +1093,6 @@
/**
- * 鍫嗗灈鏈洪拡瀵逛簬灏忚溅杩佺Щ宸ヤ綔鐨勫畬鎴�
- */
- @Async
- public void carMoveFinished() {
- for (CrnSlave crn : slaveProperties.getCrn()) {
- // 鑾峰彇鍫嗗灈鏈轰俊鎭�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) { continue; }
- // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
- if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
- // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
- WrkMast wrkMast = wrkMastMapper.selectPakInStep45(crnProtocol.getTaskNo().intValue());
- if (wrkMast == null) {
- log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
- continue;
- }
- // 鍏ュ簱 + 搴撲綅杞Щ ==> 6.灏忚溅寰呭叆
- if ((wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 5) || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)){
- wrkMast.setWrkSts(6L);
- } else {
- continue;
- }
- Date now = new Date();
- wrkMast.setCrnEndTime(now);
- wrkMast.setModiTime(now);
- // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
- if (wrkMastMapper.updateById(wrkMast) > 0) {
- // 鍫嗗灈鏈哄浣�
- crnThread.setResetFlag(true);
- }
-
- }
- }
- }
-
- /**
* 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
*/
@Async
@@ -1167,7 +1157,7 @@
}
}
}
- // 杩佸叆灏忚溅 瀹屾垚
+ // 鍏ュ簱 ===>> 杩佸叆灏忚溅 瀹屾垚
} else if (wrkMast.getWrkSts() == 4) {
// 4.杩佸叆灏忚溅 ==> 6.灏忚溅寰呭叆
wrkMast.setWrkSts(6L);
@@ -1181,7 +1171,7 @@
} else {
log.error("淇敼宸ヤ綔妗g姸鎬� 4.杩佸叆灏忚溅 => 6.灏忚溅寰呭叆 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
}
- // 杩佸嚭灏忚溅 瀹屾垚
+ // 鍏ュ簱 ===>> 杩佸嚭灏忚溅 瀹屾垚
} else if (wrkMast.getWrkSts() == 5) {
// 5.杩佸嚭灏忚溅 ==> 6.灏忚溅寰呭叆
wrkMast.setWrkSts(6L);
@@ -1194,6 +1184,20 @@
crnThread.setResetFlag(true);
} else {
log.error("淇敼宸ヤ綔妗g姸鎬� 5.杩佸嚭灏忚溅 => 6.灏忚溅寰呭叆 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+ // 鍑哄簱 ===>> 杩佸叆灏忚溅 瀹屾垚
+ } else if (wrkMast.getWrkSts() == 13) {
+ // 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴�
+ wrkMast.setWrkSts(14L);
+ Date now = new Date();
+ wrkMast.setCrnEndTime(now);
+ wrkMast.setModiTime(now);
+ // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+ if (wrkMastMapper.updateById(wrkMast) > 0) {
+ // 鍫嗗灈鏈哄浣�
+ crnThread.setResetFlag(true);
+ } else {
+ log.error("淇敼宸ヤ綔妗g姸鎬� 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
}
}
}
@@ -1212,7 +1216,7 @@
if (steProtocol == null) { continue; }
if (steProtocol.getStatusType().equals(SteStatusType.WAITING) && steProtocol.getTaskNo() != 0) {
// 鏌ヨ鏄惁鏈夊緟鍏ュ簱鐨勪换鍔�
- WrkMast wrkMast = wrkMastMapper.selectPakInStep8(steProtocol.getSteNo().intValue());
+ WrkMast wrkMast = wrkMastMapper.selectCarWaiting(steProtocol.getTaskNo());
if (wrkMast == null) { continue; }
switch (wrkMast.getWrkSts().intValue()) {
@@ -1236,6 +1240,16 @@
steThread.setResetFlag(true);
}
break;
+ case 11:
+ // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.灏忚溅寰呮惉
+ wrkMast.setWrkSts(12L);
+ wrkMast.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.灏忚溅寰呮惉 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ } else {
+ steThread.setResetFlag(true);
+ }
+ break;
case 14:
// 淇敼宸ヤ綔妗g姸鎬� 14.灏忚溅鎼嚭搴� => 15.绛夊緟鍚婅溅
wrkMast.setWrkSts(15L);
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 4b24503..a6bff69 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -51,8 +51,6 @@
mainService.crnStnToOutStn();
// 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
mainService.crnIoExecute();
- // 鍫嗗灈鏈洪拡瀵逛簬灏忚溅杩佺Щ宸ヤ綔鐨勫畬鎴�
- mainService.carMoveFinished();
// 鍏ュ簱 ===>> 鎵ц鍫嗗灈鏈哄宸ヤ綔妗g殑瀹屾垚鎿嶄綔
mainService.storeFinished();
// 鍏ュ簱 ===>> 鎵ц绌挎杞﹀宸ヤ綔妗g殑瀹屾垚鎿嶄綔
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 43b71f4..9bb7080 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -100,8 +100,8 @@
select top 1 * from dbo.asr_wrk_mast where wrk_no=#{workNo} and wrk_sts = 7
</select>
- <select id="selectPakInStep8" resultMap="BaseResultMap">
- select top 1 * from dbo.asr_wrk_mast where ste_no=#{steNo} and wrk_sts = 8
+ <select id="selectCarWaiting" resultMap="BaseResultMap">
+ select top 1 * from dbo.asr_wrk_mast where wrk_no=#{workNo} and wrk_sts in (2,8,11,14)
</select>
<select id="selectPickStep" resultMap="BaseResultMap">
--
Gitblit v1.9.1