From 7f8a8351ecb3634f3decb58057daf24e59dd8d49 Mon Sep 17 00:00:00 2001
From: czkh <czkh@163.com>
Date: 星期二, 18 十一月 2025 13:28:35 +0800
Subject: [PATCH] 修复解决双工位堆垛机移库任务下发后瞬间完成问题
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 53 ++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 44 insertions(+), 9 deletions(-)
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 23ee297..6cb4231 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -60,7 +60,6 @@
*/
@Slf4j
@Service("mainService")
-@Transactional
public class MainServiceImpl {
public static final long COMMAND_TIMEOUT = 5 * 1000;
@@ -739,6 +738,12 @@
if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue()) && crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.forkPosType == CrnForkPosType.HOME) {
log.info("鍫嗗灈鏈哄嚭搴撳畬鎴� - 寮�濮嬫墽琛�");
+ Date date = new Date();
+ long diffInMillis = date.getTime() - wrkMast.getCrnStrTime().getTime();
+ if (!(diffInMillis >= 30000)){
+ continue;
+ }
+
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
// 涓嬪彂绔欑偣淇℃伅
@@ -858,7 +863,14 @@
// }
// 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
- if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getModeType() == CrnModeType.AUTO && crnProtocol.getForkPos() == 0 && crnProtocol.getTaskNo() == 0 && crnProtocol.getTaskNoTwo() == 0) {
+ if (
+ crnProtocol.getStatusType() == CrnStatusType.IDLE
+ && crnProtocol.getModeType() == CrnModeType.AUTO
+ && crnProtocol.getForkPos() == 0
+ && crnProtocol.getTaskNo() == 0
+ && crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
+ && crnProtocol.getForkPosTwo() == 0
+ && crnProtocol.getTaskNoTwo() == 0) {
News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�");
if (crnProtocol.getLoaded() == 0 && crnProtocol.getLoadedTwo() == 0) {
//News.error("宸ヤ綅1鏃犵墿锛屽伐浣�2鏃犵墿");
@@ -2000,11 +2012,6 @@
return;
}
- // 鍫嗗灈鏈烘帶鍒惰繃婊�
- if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
- return;
- }
-
// 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
if (wrkMastMapper.selectWorking(slave.getId()) != null) {
return;
@@ -2036,7 +2043,20 @@
}
}
-
+ if (crnStation == 0) {
+ return;
+ }else if(crnStation == 1) {
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+ return;
+ }
+ }else if(crnStation == 2) {
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
+ return;
+ }
+ }else {
+ }
News.warnNoLog("" + mark + " - 3" + " - 3" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue(), sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue(), sta.getRow1().shortValue(), sta.getBay1().shortValue(), sta.getLev1().shortValue());
@@ -2087,17 +2107,32 @@
}
// 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
- News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:" + crnProtocol.getTaskNo());
if (crnProtocol.getTaskNo() == 9999) {
crnThread.setResetFlag(true);
continue;
}
+
+ if ((System.currentTimeMillis() - crnProtocol.getLastCommandTime()) < 1000 * 6) {
+ News.error("" + mark + " - 0" + " - 鍫嗗灈鏈烘寚浠ょ瓑寰呯‘璁ゅ畬鎴愯繃蹇紓甯革紝浠诲姟鍙�:" + crnProtocol.getTaskNo());
+ continue;
+ }
+
+ News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:" + crnProtocol.getTaskNo());
+// if (crnProtocol.getTaskNo() == 9999) {
+// crnThread.setResetFlag(true);
+// continue;
+// }
// 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
if (wrkMast == null) {
News.error("" + mark + " - 1" + " - 鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
continue;
}
+ Date date = new Date();
+ long diffInMillis = date.getTime() - wrkMast.getCrnStrTime().getTime();
+ if (!(diffInMillis >= 30000)){
+ continue;
+ }
// 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚
if (wrkMast.getWrkSts() == 3) {
wrkMast.setWrkSts(4L);
--
Gitblit v1.9.1