From a84eadb43f793d74d39cc838b75a1aafd2885be4 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期六, 02 三月 2024 09:34:28 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 155 insertions(+), 14 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 a2485cb..a286863 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1395,8 +1395,12 @@
case 2:
this.crnStnToLoc1Single(crn, crnProtocol); // 鍏ュ簱
break;
+ case 3:
+ case 4:
+ case 5:
+ break;
default:
- this.crnStnToLoc1(crn, crnProtocol); // 鍏ュ簱
+ this.crnStnToLoc1(crn, crnProtocol,1); // 鍏ュ簱
}
crnProtocol.setLastIo("O");
} else if (basCrnp.getOutEnable().equals("Y")) {
@@ -1405,8 +1409,12 @@
case 2:
this.locToCrnStn1Single(crn, crnProtocol); // 鍑哄簱
break;
+ case 3:
+ case 4:
+ case 5:
+ break;
default:
- this.locToCrnStn1(crn, crnProtocol); // 鍑哄簱
+ this.locToCrnStn1(crn, crnProtocol,1); // 鍑哄簱
}
crnProtocol.setLastIo("I");
}
@@ -1419,8 +1427,12 @@
case 2:
this.locToCrnStn1Single(crn, crnProtocol); // 鍑哄簱
break;
+ case 3:
+ case 4:
+ case 5:
+ break;
default:
- this.locToCrnStn1(crn, crnProtocol); // 鍑哄簱
+ this.locToCrnStn1(crn, crnProtocol,1); // 鍑哄簱
}
crnProtocol.setLastIo("I");
} else if (basCrnp.getInEnable().equals("Y")) {
@@ -1429,13 +1441,120 @@
case 2:
this.crnStnToLoc1Single(crn, crnProtocol); // 鍏ュ簱
break;
+ case 3:
+ case 4:
+ case 5:
+ break;
default:
- this.crnStnToLoc1(crn, crnProtocol); // 鍏ュ簱
+ this.crnStnToLoc1(crn, crnProtocol,1); // 鍏ュ簱
}
crnProtocol.setLastIo("O");
}
}
}
+ // 搴撲綅绉昏浆
+ this.locToLoc(crn, crnProtocol);
+// this.crnRebackHp(crnProtocol, crnThread);
+
+ }
+ }catch (Exception e){
+ log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂鎶ラ敊"+e);
+ }
+ }
+
+ /**
+ * 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
+ */
+ public synchronized void crnIoExecuteTwo() {
+ try{
+ for (CrnSlave crn : slaveProperties.getCrn()) {
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) {
+ continue;
+ }
+ BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
+ if (basCrnp == null) {
+ log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+ continue;
+ }
+
+
+ int[] sign = new int[]{0,0};
+ // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
+ if (crnProtocol.getModeType() == CrnModeType.AUTO) {
+ // 鍙湁褰撳爢鍨涙満宸ヤ綅绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
+ if (crnProtocol.getStatusType() == CrnStatusType.IDLE
+ && crnProtocol.getTaskNo() == 0
+ && crnProtocol.getLoaded() == 0
+ && crnProtocol.getForkPos() == 0) {
+ sign[0] = 1;
+ sign[1] = 1;
+ }else if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
+ && crnProtocol.getTaskNoTwo() == 0
+ && crnProtocol.getLoadedTwo() == 0
+ && crnProtocol.getForkPosTwo() == 0){
+ sign[0] = 1;
+ sign[1] = 2;
+ }
+ }
+
+ if (sign[0]==1){
+ // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
+ if (crnProtocol.getLastIo().equals("I")) {
+ if (basCrnp.getInEnable().equals("Y")) {
+ switch (crn.getId()){
+ case 3:
+ case 4:
+ case 5:
+ this.crnStnToLoc1(crn, crnProtocol, sign[1]); // 鍏ュ簱
+ break;
+ default:
+ break;
+ }
+ crnProtocol.setLastIo("O");
+ } else if (basCrnp.getOutEnable().equals("Y")) {
+ switch (crn.getId()){
+ case 3:
+ case 4:
+ case 5:
+ this.locToCrnStn1(crn, crnProtocol, sign[1]); // 鍑哄簱
+ break;
+ default:
+ break;
+ }
+ crnProtocol.setLastIo("I");
+ }
+ }
+ // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
+ else if (crnProtocol.getLastIo().equals("O")) {
+ if (basCrnp.getOutEnable().equals("Y")) {
+ switch (crn.getId()){
+ case 3:
+ case 4:
+ case 5:
+ this.locToCrnStn1(crn, crnProtocol, sign[1]); // 鍑哄簱
+ break;
+ default:
+ break;
+ }
+ crnProtocol.setLastIo("I");
+ } else if (basCrnp.getInEnable().equals("Y")) {
+ switch (crn.getId()){
+ case 3:
+ case 4:
+ case 5:
+ this.crnStnToLoc1(crn, crnProtocol, sign[1]); // 鍏ュ簱
+ break;
+ default:
+ break;
+ }
+ crnProtocol.setLastIo("O");
+ }
+ }
+ }
+
// 搴撲綅绉昏浆
this.locToLoc(crn, crnProtocol);
// this.crnRebackHp(crnProtocol, crnThread);
@@ -1703,7 +1822,7 @@
* 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣�
* 2022-12-03 TQS淇敼锛屽厛閬嶅巻鏌ヨ鍚屽彴鍫嗗灈鏈哄伐浣滄。鎵�鏈夌珯鐐瑰叆搴撲换鍔IST锛屾牴鎹伐浣滄。浠诲姟鎺掑簭浼樺厛绾ч珮浜� 鏍规嵁鍫嗗灈鏈哄叆搴撶珯鐐规帓搴�
*/
- public synchronized void crnStnToLoc1(CrnSlave slave, CrnProtocol crnProtocol) {
+ public synchronized void crnStnToLoc1(CrnSlave slave, CrnProtocol crnProtocol, Integer crnStation) {
List<WrkMast> wrkMasts = wrkMastMapper.selectPakInStep12(slave.getId());
for(WrkMast wrkMast : wrkMasts){
if (wrkMast == null) {
@@ -1755,10 +1874,21 @@
continue;
}
- // 鍫嗗灈鏈烘帶鍒惰繃婊�
- if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
- continue;
+ //宸ヤ綅
+ if (crnStation == 1){
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+ break;
+ }
+ }else if(crnStation == 2){
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
+ break;
+ }
+ }else {
+ break;
}
+
// 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
if (wrkMastMapper.selectWorking(slave.getId()) != null) {
@@ -1815,7 +1945,7 @@
crnCommand.setDestinationPosX(locMast.getRow1().shortValue()); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞�
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
} else {
// 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
@@ -1828,7 +1958,6 @@
}
}
}
-
}
/**
@@ -2107,7 +2236,7 @@
* 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔�
* 2022-12-03 TQS淇敼锛屽厛閬嶅巻鏌ヨ宸ヤ綔妗f墍鏈夌珯鐐瑰嚭搴撲换鍔IST锛屾牴鎹伐浣滄。浠诲姟鎺掑簭浼樺厛绾ч珮浜� 鏍规嵁鍫嗗灈鏈哄叆搴撶珯鐐规帓搴�
*/
- public synchronized void locToCrnStn1(CrnSlave slave, CrnProtocol crnProtocol) {
+ public synchronized void locToCrnStn1(CrnSlave slave, CrnProtocol crnProtocol, Integer crnStation) {
List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep12(slave.getId());
for (WrkMast wrkMast : wrkMasts) {
if (wrkMast == null) {
@@ -2171,9 +2300,21 @@
&& staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- // 鍫嗗灈鏈烘帶鍒惰繃婊�
- if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+
+ //宸ヤ綅
+ if (crnStation == 1){
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
// continue;
+ break;
+ }
+ }else if(crnStation == 2){
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
+// continue;
+ break;
+ }
+ }else {
break;
}
@@ -2239,7 +2380,7 @@
crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
- if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
} else {
// 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
--
Gitblit v1.9.1