From 6a5a8be14cd24a10f4865c0b5021e7b98040d86d Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 22 一月 2026 10:53:50 +0800
Subject: [PATCH] 修复出入库没有交替执行
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 47 ++++++++++++++++++++++++++++++++++-------------
1 files changed, 34 insertions(+), 13 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 f4bc655..abe8e7a 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -339,25 +339,38 @@
// 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
- && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
+ && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0 && wrkMastMapper.selectWorking(crn.getId()) == null) {
+ boolean success;
// 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
if (crnProtocol.getLastIo().equals("I")) {
if (basCrnp.getInEnable().equals("Y")) {
- this.crnStnToLoc(crn, crnProtocol); // 鍏ュ簱
- crnProtocol.setLastIo("O");
+ success = this.crnStnToLoc(crn, crnProtocol); // 鍏ュ簱
+ if(success) {
+ crnProtocol.setLastIo("O");
+ continue;
+ }
} else if (basCrnp.getOutEnable().equals("Y")) {
- this.locToCrnStn(crn, crnProtocol); // 鍑哄簱
- crnProtocol.setLastIo("I");
+ success = this.locToCrnStn(crn, crnProtocol); // 鍑哄簱
+ if(success) {
+ crnProtocol.setLastIo("I");
+ continue;
+ }
}
}
// 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
else if (crnProtocol.getLastIo().equals("O")) {
if (basCrnp.getOutEnable().equals("Y")) {
- this.locToCrnStn(crn, crnProtocol); // 鍑哄簱
- crnProtocol.setLastIo("I");
+ success = this.locToCrnStn(crn, crnProtocol); // 鍑哄簱
+ if(success) {
+ crnProtocol.setLastIo("I");
+ continue;
+ }
} else if (basCrnp.getInEnable().equals("Y")) {
- this.crnStnToLoc(crn, crnProtocol); // 鍏ュ簱
- crnProtocol.setLastIo("O");
+ success = this.crnStnToLoc(crn, crnProtocol); // 鍏ュ簱
+ if(success) {
+ crnProtocol.setLastIo("O");
+ continue;
+ }
}
}
// 搴撲綅绉昏浆
@@ -370,7 +383,7 @@
/**
* 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣�
*/
- public void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) throws IOException {
+ public boolean crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) throws IOException {
for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", slave.getId()).eq("crn_stn", crnStn.getStaNo()));
for (StaDesc staDesc : staDescs) {
@@ -456,6 +469,7 @@
// 涓婃姤鎵ц鐘舵��
toWmsService.executionStatusReport(taskWrk.getTaskNo(), taskWrk.getWrkSts());
taskWrkService.updateById(taskWrk);
+ return true;
} catch (Exception e) {
log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽紓甯革細" + e);
@@ -463,6 +477,7 @@
}
}
}
+ return false;
}
@Resource
private ConfigService configService;
@@ -471,10 +486,10 @@
* 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔�
* 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
*/
- public void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
+ public boolean locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
List<TaskWrk> taskWrksInitial = taskWrkMapper.selectPakOut(slave.getId(), null);
if (taskWrksInitial.size() == 0) {
- return;
+ return false;
}
// 鎺у埗鏄惁鍏佽杩炵画鍑哄簱锛屼笉鍒ゆ柇鍑哄簱绔欑偣鐘舵��
boolean crnAvailableOut = false;
@@ -546,6 +561,10 @@
log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
break;
}
+ // 鍙湁205鍜�210鍏佽杩炵画鍑哄簱
+ if (staProtocol.getSiteId() != 205 && staProtocol.getSiteId() != 210) {
+ crnAvailableOut = false;
+ }
// 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
@@ -559,7 +578,7 @@
// 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) {
- break;
+ return false;
}
CrnCommand command = new CrnCommand();
command.setCrnNo(taskWrk.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
@@ -594,6 +613,7 @@
}
// 涓婃姤鎵ц鐘舵��
toWmsService.executionStatusReport(taskWrk.getTaskNo(), taskWrk.getWrkSts());
+ return true;
} catch (Exception e) {
log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽紓甯革細" + e);
@@ -603,6 +623,7 @@
}
}
}
+ return false;
}
/**
--
Gitblit v1.9.1