From 11f6eb0bcda5e562d26ebc2c5ccd0672d66da76d Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期一, 15 九月 2025 14:50:46 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 84 +++++++++++++++++++++++++++++++++++++++---
1 files changed, 78 insertions(+), 6 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 f6f1c90..ca6a12f 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2815,6 +2815,7 @@
&& rgvProtocol.getModeType() == RgvModeType.AUTO
&& (rgvProtocol.getStatusType() == RgvStatusType.WORKING1)
){
+
log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
if(rgvProtocol.getTaskNo1() == 9999){ // 棰勮皟搴︿换鍔$‘璁�
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
@@ -2847,6 +2848,23 @@
if (rgvProtocol.getTaskNo1()!=0 && rgvProtocol.getTaskNo1()!=9999){
WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1());
if(wrkMastSta.getWrkSts() == 1){//鍙栬揣纭
+ wrkMastSta.setWrkSts(4); //琛岃蛋鐘舵��
+ try{
+ wrkMastStaMapper.updateById(wrkMastSta);
+ log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
+ }catch (Exception e){
+ log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+ }
+ boolean rgvComplete = false;
+
+ rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(),7);
+ if (!rgvComplete){
+ log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
+ break;
+ }
+ break;
+ }
+ if(wrkMastSta.getWrkSts() == 4){//琛岃蛋纭
wrkMastSta.setWrkSts(2);
try{
wrkMastStaMapper.updateById(wrkMastSta);
@@ -2923,7 +2941,24 @@
log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
if (rgvProtocol.getTaskNo2() !=0 ){
WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1());
- if(wrkMastSta.getWrkSts() == 1){//缂鸿揣纭
+ if(wrkMastSta.getWrkSts() == 1){//鍙栬揣纭
+ wrkMastSta.setWrkSts(4); //琛岃蛋鐘舵��
+ try{
+ wrkMastStaMapper.updateById(wrkMastSta);
+ log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
+ }catch (Exception e){
+ log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+ }
+ boolean rgvComplete = false;
+
+ rgvComplete = rgvComplete((int) rgvProtocol.getRgvNo(),7);
+ if (!rgvComplete){
+ log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
+ break;
+ }
+ break;
+ }
+ if(wrkMastSta.getWrkSts() == 4){//琛岃蛋鍚庣‘璁�
wrkMastSta.setWrkSts(2);
try{
wrkMastStaMapper.updateById(wrkMastSta);
@@ -3300,7 +3335,7 @@
Short direction = 2;//鍙屽伐浣嶆渶缁堟姷杈句綅缃�
boolean sign = false;
//鑻ュ彇璐т负宸ヤ綅2涓斿彇璐у彛鍓嶄竴绔欑偣鏈夌墿锛岀粰鍙屽伐浣嶅悓鏃朵笅鍙戞寚浠�
- if(wrkMastSta.getWorkSta() == 2 && staProtocol2 != null && staProtocol2.isLoading() && staProtocol2.getWorkNo() > 0){
+ if(wrkMastSta.getWorkSta() == 2 && staProtocol2 != null && staProtocol2.isLoading() && staProtocol2.getWorkNo() > 0 && sign){
WrkMastSta wrkMastSta3 = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol2.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
wrkMastSta3.setWorkSta(1);
wrkMastSta3.setRgvNo((int) rgvProtocol.getRgvNo());
@@ -3400,7 +3435,7 @@
boolean sign = false;
Short direction = 1;//宸ヤ綅1鏂瑰悜
//鑻ュ彇璐т负宸ヤ綅2涓斿彇璐у彛鍓嶄竴绔欑偣鏈夌墿锛岀粰鍙屽伐浣嶅悓鏃朵笅鍙戞寚浠�
- if(wrkMastSta.getWorkSta() == 1 && staProtocol2 != null && staProtocol2.isLoading() && staProtocol2.getWorkNo() > 0){
+ if(wrkMastSta.getWorkSta() == 1 && staProtocol2 != null && staProtocol2.isLoading() && staProtocol2.getWorkNo() > 0 && sign){
WrkMastSta wrkMastSta3 = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol2.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
wrkMastSta3.setWorkSta(2);
wrkMastSta3.setRgvNo((int) rgvProtocol.getRgvNo());
@@ -3876,13 +3911,50 @@
boolean pakIn1 = true;
boolean pakIn2 = true;
rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
- if(wrkMastSta.getWrkSts() == 0){//鍙栬揣
+ if(wrkMastSta.getWrkSts() == 0 || wrkMastSta.getWrkSts() == 4){//鍒濆鍚庤璧�
+ if(wrkMastSta.getWorkSta() == 2){//鍑哄簱RGV鍙栬揣琛岃蛋
+ rgvCommand.setAckFinish2(false); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
+ rgvCommand.setTaskNo2(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅2宸ヤ綔鍙�
+ rgvCommand.setTaskStatus2(RgvTaskStatusType.X_MOVE); // 宸ヤ綅2浠诲姟妯″紡: 鍙栨斁璐�
+ rgvCommand.setEndStaNo2(wrkMastSta.getWrkEnd()); //宸ヤ綅2 鏀捐揣鍚庤鍘荤殑浣嶇疆
+ rgvCommand.setTargetPosition1(wrkMastSta.getStaStart()); //宸ヤ綅2鐩爣绔欑偣
+ rgvCommand.setDirection2(direction);
+ rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
+ pakIn1 = false;
+ }else{ //鍏ュ簱RGV鍙栬揣琛岃蛋
+ rgvCommand.setAckFinish1(false); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+ rgvCommand.setTaskNo1(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅1宸ヤ綔鍙�
+ rgvCommand.setTaskStatus1(RgvTaskStatusType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐�
+ rgvCommand.setEndStaNo1(wrkMastSta.getWrkEnd()); //宸ヤ綅1 鏀捐揣鍚庤鍘荤殑浣嶇疆
+ rgvCommand.setTargetPosition1(wrkMastSta.getStaStart()); //宸ヤ綅1鐩爣绔欑偣
+ rgvCommand.setDirection1(direction);
+ rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
+ }
+ if(!pakIn1){
+ if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
+ //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+ log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+ return false;
+ } else {
+ return true;
+ }
+ }else{
+ if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
+ //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+ log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+ return false;
+ } else {
+ return true;
+ }
+ }
+ }
+ if(wrkMastSta.getWrkSts() == 1){//鍙栬揣
if(wrkMastSta.getWorkSta() == 2){//鍑哄簱RGV鍙栬揣
rgvCommand.setAckFinish2(false); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
rgvCommand.setTaskNo2(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅2宸ヤ綔鍙�
rgvCommand.setTaskStatus2(RgvTaskStatusType.FETCH); // 宸ヤ綅2浠诲姟妯″紡: 鍙栨斁璐�
rgvCommand.setEndStaNo2(wrkMastSta.getWrkEnd()); //宸ヤ綅2 鏀捐揣鍚庤鍘荤殑浣嶇疆
- rgvCommand.setTargetPosition2(wrkMastSta.getStaStart()); //宸ヤ綅2鐩爣绔欑偣
+ rgvCommand.setTargetPosition1(wrkMastSta.getStaStart()); //宸ヤ綅2鐩爣绔欑偣
rgvCommand.setDirection2(direction);
rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
pakIn1 = false;
@@ -3919,7 +3991,7 @@
rgvCommand.setTaskNo2(Math.toIntExact(wrkMastSta.getWrkNo())); // 宸ヤ綅2宸ヤ綔鍙�
rgvCommand.setTaskStatus2(RgvTaskStatusType.PUT); // 宸ヤ綅2浠诲姟妯″紡: 鏀捐揣
rgvCommand.setEndStaNo2(wrkMastSta.getWrkEnd()); //宸ヤ綅2 鏀捐揣鍚庤鍘荤殑浣嶇疆
- rgvCommand.setTargetPosition2(wrkMastSta.getStaEnd()); //宸ヤ綅2鐩爣绔欑偣
+ rgvCommand.setTargetPosition1(wrkMastSta.getStaEnd()); //宸ヤ綅2鐩爣绔欑偣
rgvCommand.setCommand(true); //宸ヤ綅1浠诲姟纭
pakIn2 = false;
}else{ //宸ヤ綅1浠诲姟鏀捐揣
--
Gitblit v1.9.1