From e1769fa6dad08ec33ab9472c5865c9f91c8e76d0 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 14 二月 2025 13:27:51 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 207 +++++++++++++++++++++++++++++++++++++--------------
1 files changed, 149 insertions(+), 58 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 3b47be2..bd7f25e 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -3,9 +3,9 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
+import com.core.common.SpringUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.*;
@@ -21,7 +21,6 @@
import com.zy.common.utils.CollectionUtils;
import com.zy.common.utils.HttpHandler;
import com.zy.common.utils.RedisUtil;
-import com.zy.common.utils.RgvUtils;
import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
@@ -74,8 +73,6 @@
@Autowired
private LocMastService locMastService;
@Autowired
- private StaDescService staDescService;
- @Autowired
private BasCrnpService basCrnpService;
@Autowired
private BasRgvService basRgvService;
@@ -93,8 +90,6 @@
private BasRgvErrLogService basRgvErrLogService;
@Autowired
private BasRgvPathService basRgvPathService;
- @Autowired
- private RedisUtil redisUtil;
@Autowired
private WrkMastStaMapper wrkMastStaMapper;
@Autowired
@@ -1556,7 +1551,7 @@
}
//閫�搴撴ā寮忚烦杩�118銆�119鍑哄簱浠诲姟
if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){
- RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign();
+ RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign");
if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
continue;
}
@@ -2286,7 +2281,7 @@
*/
public synchronized void storeEmptyPlt3() {
try{
- RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign();
+ RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign");
if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
return;
}
@@ -4250,8 +4245,28 @@
&& rgvProtocol.getStatusType1() == RgvStatusType.IDLE
&& rgvProtocol.getStatusType2() == RgvStatusType.IDLE
) {
-
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+ if (rgvProtocol.getRgvNo()!=1){
+ if (!rgvProtocol.getRgvPosI().equals(120) && !rgvProtocol.getRgvPosI().equals(110)){
+ continue;
+ }
+ rgvAvoidanceXY(rgvProtocol.getRgvNo());
+// return;
+ continue;
+ }
+ if (!rgvProtocol.getRgvPosI().equals(110) && !rgvProtocol.getRgvPosI().equals(108) && !rgvProtocol.getRgvPosI().equals(119)){
+ continue;
+ }
+ Integer count108Y = wrkMastStaMapper.selectAllWrkCount108Y();
+ if (count108Y!=0){
+ continue;
+ }
+// Integer count108 = wrkMastStaMapper.selectAllWrkCount108();
+// if (count108!=0){
+// continue;
+// }
+ rgvAvoidanceXY(rgvProtocol.getRgvNo());
+ continue;
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
// Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMap.getRgvNo(), basRgvMap.getEndRoute()); //鑾峰彇鍚堝苟骞叉秹椤�
// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(),fallMerge);
// List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route ,route);
@@ -4259,56 +4274,56 @@
// log.info("灏忚溅瀛樺湪鍙墽琛屼换鍔★紝璺宠繃閬胯锛侊紒4214");
// return;
// }
- if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){
-// if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),RouteUtils.RouteIndexFarMas(rgvProtocol.getRgvNo(),rgvRunSta[rgvProtocol.getRgvNo()-1]),rgvProtocol.getRgvNo())){
-// if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),rgvRunSta[rgvProtocol.getRgvNo()-1],rgvProtocol.getRgvNo())){
- if (rgvProtocol.getRgvNo()==1){
- signRgv1 = false;
- }else {
- signRgv2 = false;
- }
- }
- if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){
- signRgv1 = false;
- continue;
- } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){
- signRgv2 = false;
- continue;
- }
+// if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){
+//// if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),RouteUtils.RouteIndexFarMas(rgvProtocol.getRgvNo(),rgvRunSta[rgvProtocol.getRgvNo()-1]),rgvProtocol.getRgvNo())){
+//// if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),rgvRunSta[rgvProtocol.getRgvNo()-1],rgvProtocol.getRgvNo())){
+// if (rgvProtocol.getRgvNo()==1){
+// signRgv1 = false;
+// }else {
+// signRgv2 = false;
+// }
+// }
+// if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){
+// signRgv1 = false;
+// continue;
+// } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){
+// signRgv2 = false;
+// continue;
+// }
}else {
signRgv = false;
break;
}
}
- if (signRgv && (signRgv1 || signRgv2)){
- for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
- && rgvProtocol.getTaskNo1()==0
- && rgvProtocol.getTaskNo2()==0
- && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
- && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
- ) {
- if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){
- continue;
- } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){
- continue;
- }
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- rgvAvoidanceXY(rgvProtocol.getRgvNo());
- rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
-
- }
- }
- }
+// if (signRgv && (signRgv1 || signRgv2)){
+// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+// if (rgvProtocol == null) {
+// continue;
+// }
+//
+// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
+// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+// && rgvProtocol.getModeType() == RgvModeType.AUTO
+// && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+// && rgvProtocol.getTaskNo1()==0
+// && rgvProtocol.getTaskNo2()==0
+// && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
+// && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
+// ) {
+// if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){
+// continue;
+// } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){
+// continue;
+// }
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// rgvAvoidanceXY(rgvProtocol.getRgvNo());
+// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
+//
+// }
+// }
+// }
}catch (Exception e){
log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
log.error("4109琛�"+e);
@@ -4364,7 +4379,7 @@
rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙�
rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐�
//basRgvMap.getLockStartRoute().shortValue()
- rgvCommand.setSourceStaNo1( (short)101);
+ rgvCommand.setSourceStaNo1( (short)104);
rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
//step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
@@ -4386,7 +4401,7 @@
rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
rgvCommand.setTaskNo2((short)32222); // 宸ヤ綅2宸ヤ綔鍙�
rgvCommand.setTaskMode2(RgvTaskModeType.X_MOVE); // 宸ヤ綅2浠诲姟妯″紡: 鍥炲師鐐�
- rgvCommand.setSourceStaNo2((short)117);
+ rgvCommand.setSourceStaNo2((short)114);
rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭
if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
//step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
@@ -4621,7 +4636,8 @@
BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther);
List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute());
Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�
- basRgvMapOther.setEndRoute(lockEndRoute);
+ Integer lockEndRouteL = RouteUtils.RouteIndexFarMasL(rgvNoOther, lockEndRoute);//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�
+ basRgvMapOther.setEndRoute(lockEndRouteL);
basRgvMapMapper.updateById(basRgvMapOther);
return true;
}catch (Exception e){
@@ -4630,4 +4646,79 @@
}
}
+
+ /**
+ * ste鍏呯數浠诲姟鍒涘缓 //瀹屾垚
+ */
+ public synchronized void armNoStartTwoLo() {
+ int[] staNos =new int[]{215,219};
+ for (int staNo : staNos){
+ try{
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocol = devpThread.getStation().get(staNo);
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() == 0){
+ RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("armNo"+staNo);
+ if (!Cools.isEmpty(rgvOneSign) && rgvOneSign.getRgvOneSign() == 1){
+ int workNo = commonService.getWorkNo(6);
+ StaProtocol staProtocolnew = new StaProtocol();
+ staProtocolnew.setSiteId(staNo);
+ staProtocolnew.setWorkNo(workNo);
+ staProtocolnew.setStaNo(staNo==215? 217:221);
+ boolean result2 = MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocolnew));
+ if (!result2) {
+ log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", 2);
+ }
+ if (!staProtocol.isLoading()){
+ updateRgvOneSign("armNo"+staNo,0);
+ }
+ }
+ }
+ }catch (Exception e){
+ log.error("绔欑偣"+staNo+"2妤兼満姊拌噦鐮佸灈鍚庢爣璁版竻闄ゅけ璐ワ紝寮傚父淇℃伅锛�"+e);
+ }
+ }
+ }
+
+ public synchronized void armNoCleanUpTwoLo() {
+ int[] staNos =new int[]{215,219};
+ for (int staNo : staNos){
+ try{
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocol = devpThread.getStation().get(staNo);
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ if (!staProtocol.isLoading()){
+ updateRgvOneSign("armNo"+staNo,0);
+ }
+ }catch (Exception e){
+ log.error("绔欑偣"+staNo+"2妤兼満姊拌噦鐮佸灈鍚庢爣璁版竻闄ゅけ璐ワ紝寮傚父淇℃伅锛�"+e);
+ }
+ }
+ }
+
+ public void updateRgvOneSign(String signType,Integer oneSign){
+ try{
+ RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(signType);
+ if (!Cools.isEmpty(rgvOneSign)){
+ rgvOneSign.setRgvOneSign(oneSign);
+ rgvOneSignMapper.updateById(rgvOneSign);
+ }
+ } catch (Exception e){
+ RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(signType);
+ if (!Cools.isEmpty(rgvOneSign)){
+ rgvOneSign.setRgvOneSign(999);
+ rgvOneSignMapper.updateById(rgvOneSign);
+ }
+ }
+ }
+
}
--
Gitblit v1.9.1