From a10daf057d11b14608652bcd3f8afe8a287b77a8 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期六, 12 十月 2024 09:35:43 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 1374 ++++++++++++++++++++++++++++++-----------------------------
1 files changed, 699 insertions(+), 675 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 58e4698..d3648b2 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -26,6 +26,10 @@
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.*;
+import com.zy.core.enums.DevpType.DevpRequestType;
+import com.zy.core.enums.DevpType.DevpStateType;
+import com.zy.core.enums.DevpType.DevpTrayType;
+import com.zy.core.enums.DevpType.DevpWorkType;
import com.zy.core.model.*;
import com.zy.core.model.command.CrnCommand;
import com.zy.core.model.command.LedCommand;
@@ -112,6 +116,7 @@
for (DevpSlave.Sta inSta : devp.getInSta()) {
// 鑾峰彇鏉$爜鎵弿浠俊鎭�
BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
+ BarcodeThread barcodeThreadMat = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcodeMat());
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
@@ -124,78 +129,50 @@
if (barcodeThread == null) {
continue;
}
- String barcode = barcodeThread.getBarcode();
- // 灏哄妫�娴嬪紓甯�
- boolean back = false;
- String errMsg = "";
- if (staProtocol.isFrontErr()) {
- errMsg = "鍓嶈秴闄�";
- back = true;
- }
- if (!back && staProtocol.isBackErr()) {
- errMsg = "鍚庤秴闄�";
- back = true;
- }
- if (!back && staProtocol.isHighErr()) {
- errMsg = "楂樿秴闄�";
- back = true;
- }
- if (!back && staProtocol.isLeftErr()) {
- errMsg = "宸﹁秴闄�";
- back = true;
- }
- if (!back && staProtocol.isRightErr()) {
- errMsg = "鍙宠秴闄�";
- back = true;
- }
- if (!back && staProtocol.isWeightErr()) {
- errMsg = "瓒呴噸";
- back = true;
- }
- if (!back && staProtocol.isBarcodeErr()) {
- errMsg = "鎵爜澶辫触";
- back = true;
- }
- // 閫�鍥�
- if (back) {
-// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
- MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
- if (!staProtocol.isLoading()){
- continue;
- }
- if (!staProtocol.isPakMk()) {
- continue;
- }
- staProtocol.setWorkNo(wrkNo);
- News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
- wrkNo++;
- staProtocol.setStaNo(inSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta());
+ if (barcodeThreadMat == null) {
+ continue;
}
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (staProtocol.isAutoing()
- && staProtocol.isLoading()
- && staProtocol.isInEnable()
- && !staProtocol.isEmptyMk()
+ if (staProtocol.stateType == DevpStateType.AUTO //鑷姩
+ && staProtocol.workType == DevpWorkType.BUSY //蹇欑
+ && staProtocol.requestType == DevpRequestType.IN //鍙叆
+ && staProtocol.trayType == DevpTrayType.FULL // 婊℃澘
&& staProtocol.isPakMk()) {
- if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
- News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
- continue;
- }
+ String barcode = staProtocol.getBarcode();
+
// 鍒ゆ柇閲嶅宸ヤ綔妗�
WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
if (wrkMast != null) {
- News.error(methodName + ":宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
- if (ledThread != null) {
- News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯");
- MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={" + wrkMast.getWrkNo() + "}, 璇锋墜鍔ㄥ彇娑堝凡瀛樺湪宸ヤ綔妗�"));
+ int wrkNo1 = basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo()));
+ if (wrkNo1 != 0){
+ News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
+ if (ledThread != null) {
+ News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑浠诲姟,宸ヤ綔鍙�="+ wrkMast.getWrkNo()));
+ }
+ continue;
}
- continue;
+ barcodeThread.setBarcode("");
+ staProtocol.setWorkNo(wrkMast.getWrkNo());
+ staProtocol.setStaNo(RouteUtils.SouStaEnd(null,wrkMast.getSourceStaNo()));
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ log.info("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒))锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
+
+ ledThread.errorReset();
+ log.info("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
+
+ if (!result) {
+ News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
+ log.error("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒)==>鏇存柊plc绔欑偣淇℃伅澶辫触");
+
+// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+ continue;
+ }
+
}
WrkMast checkPick = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
.eq("barcode", barcode)
@@ -205,7 +182,6 @@
}
try {
LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
SearchLocParam param = new SearchLocParam();
param.setBarcode(barcode);
param.setIoType(1);
@@ -226,14 +202,16 @@
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
log.error("杈撻�佺嚎涓嬪彂2锛�"+dto.getWorkNo()+","+dto.getStaNo());
+
+ ledThread.errorReset();
+ log.error("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎");
+
if (!result) {
News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
- }else {
- ledThread.errorReset();
}
- } else {
+ }else {
staProtocol.setWorkNo(wrkNo);
wrkNo++;
staProtocol.setStaNo(inSta.getBackSta().shortValue());
@@ -282,17 +260,19 @@
staProtocol = staProtocol.clone();
}
-// // 鍏ュ嚭搴撴ā寮忓垽鏂�
+ // 鍏ュ嚭搴撴ā寮忓垽鏂�
if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) {
continue;
}
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (!staProtocol.isLoading()){
+ if (staProtocol.workType == DevpWorkType.BUSY){
continue;
}
- if (staProtocol.isAutoing() && staProtocol.isInEnable()
- && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
+ if (staProtocol.stateType == DevpStateType.AUTO
+ && staProtocol.requestType == DevpRequestType.IN
+ && staProtocol.trayType == DevpTrayType.FULL
+ && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
&& staProtocol.isPakMk()) {
News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�");
// 鍒ゆ柇閲嶅宸ヤ綔妗�
@@ -321,9 +301,9 @@
}
}else {
- News.errorNoLog(""+mark+" - 6"+" - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒"+" 鑷姩淇″彿锛�"+staProtocol.isLoading()+"銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
- +"銆佺┖鏉夸俊鍙凤細"+ staProtocol.isEmptyMk()+"銆佸伐浣滃彿锛�" + staProtocol.getWorkNo()
- +"銆侀攣瀹氭爣璁�"+ staProtocol.isPakMk()+"銆佸叆搴撳嵃璁帮細" + staProtocol.getStamp());
+ News.errorNoLog(""+mark+" - 6"+" - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒"+" 鑷姩淇″彿锛�"+staProtocol.stateType+"銆佸彲鍏ヤ俊鍙凤細" + staProtocol.requestType
+ +"銆佺┖鏉夸俊鍙凤細"+ staProtocol.trayType+"銆佸伐浣滃彿锛�" + staProtocol.getWorkNo()
+ +"銆侀攣瀹氭爣璁�"+ staProtocol.isPakMk());
}
}
}
@@ -365,8 +345,10 @@
// // 鍏ュ嚭搴撴ā寮忓垽鏂�
// if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
- News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�");
+ if (staProtocol.stateType == DevpStateType.AUTO
+ && staProtocol.workType == DevpWorkType.BUSY
+ && staProtocol.requestType == DevpRequestType.IN
+ && staProtocol.isPakMk()) {
WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
if (wrkMast == null) {
@@ -378,15 +360,6 @@
continue;
}
- // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹�
-// int stnNo = 0;
-// if (wrkMast.getStaNo() == 109) {
-// stnNo = 127;
-// } else if (wrkMast.getStaNo() == 113) {
-// stnNo = 128;
-// } else {
-// log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo());
-// }
// 鑾峰彇鐩爣绔�
Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
.eq("type_no", wrkMast.getIoType() - 50)
@@ -461,8 +434,8 @@
}
}else {
- News.errorNoLog(""+mark+" - 6"+" - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒"+" 鑷姩淇″彿锛�"+staProtocol.isLoading()+"銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
- +"銆佺┖鏉夸俊鍙凤細"+ staProtocol.isEmptyMk());
+ News.errorNoLog(""+mark+" - 6"+" - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒"+" 鑷姩淇″彿锛�"+staProtocol.stateType+"銆佸彲鍏ヤ俊鍙凤細" + staProtocol.workType
+ +"銆佺┖鏉夸俊鍙凤細"+ staProtocol.trayType);
}
}
@@ -485,10 +458,10 @@
} else {
staProtocol = staProtocol.clone();
}
- if (staProtocol.isAutoing()
- && staProtocol.isLoading()
- && staProtocol.isInEnable()
- && !staProtocol.isEmptyMk()
+ if (staProtocol.stateType == DevpStateType.AUTO
+ && staProtocol.workType == DevpWorkType.BUSY
+ && staProtocol.requestType == DevpRequestType.IN
+ && staProtocol.trayType == DevpTrayType.FULL
// && staProtocol.getWorkNo() > 0
&& staProtocol.isPakMk()){
@@ -500,7 +473,7 @@
String barcode = barcodeThread.getBarcode();
if(!Cools.isEmpty(barcode)) {
// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
- if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) {
+ if("00000000".equals(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) {
staProtocol.setWorkNo(wrkNo++);
staProtocol.setStaNo(pickSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
@@ -590,15 +563,19 @@
log.info("浠诲姟鍙�"+wrkMast.getWrkNo()+"鐩樼偣鍐嶅叆搴撴煡璇㈠簱浣嶆垚鍔�===>>" + jsonObject.toJSONString());
try {
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
- staProtocol.setWorkNo(wrkMast.getWrkNo());
+ staProtocol.setWorkNo(dto.getWorkNo());
staProtocol.setStaNo((short)161);
devpThread.setPakMk(staProtocol.getSiteId(), false);
- ledThread.errorReset();
+
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (!result) {
log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
}
log.info("浠诲姟鍙�"+wrkMast.getWrkNo()+"鐩樼偣鍐嶅叆搴撲换鍔′笅鍙戞垚鍔�===>>" + staProtocol);
+
+ ledThread.errorReset();
+ log.error("鐩樼偣鍚巐ed閿欒鍒犻櫎");
+
} catch (Exception e) {
log.error("鐩樼偣鍐嶅叆搴撳け璐�===>>" + e);
e.printStackTrace();
@@ -647,7 +624,7 @@
} else {
staProtocol = staProtocol.clone();
}
- if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
+ if (staProtocol.stateType == DevpStateType.AUTO && staProtocol.workType == DevpWorkType.BUSY && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
// 鏌ヨ宸ヤ綔妗�
WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
if (wrkMast == null) {
@@ -668,7 +645,7 @@
if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue())
&& crnProtocol.statusType == CrnStatusType.WAITING
&& crnProtocol.forkPosType == CrnForkPosType.HOME) {
- News.error("鍫嗗灈鏈哄嚭搴撳畬鎴� - 寮�濮嬫墽琛�");
+ log.info("鍫嗗灈鏈哄嚭搴撳畬鎴� - 寮�濮嬫墽琛�");
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
@@ -676,7 +653,10 @@
staProtocol.setWorkNo(wrkMast.getWrkNo());
staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
+ log.info(staProtocol.getWorkNo()+","+staProtocol.getStaNo()+"杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂澶辫触");
continue;
+ }else {
+ log.info(staProtocol.getWorkNo()+","+staProtocol.getStaNo()+"杈撻�佺嚎鍑哄簱鍛戒护涓嬪彂鎴愬姛");
}
// 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
@@ -684,7 +664,7 @@
wrkMast.setCrnEndTime(new Date());
if (wrkMastMapper.updateById(wrkMast) != 0) {
// 澶嶄綅鍫嗗灈鏈�
- News.error("鍑哄簱浠诲姟瀹屾垚涓嬪彂鍫嗗灈鏈哄浣�", wrkMast.getWrkNo());
+ log.error("鍑哄簱浠诲姟瀹屾垚涓嬪彂鍫嗗灈鏈哄浣�,{}", wrkMast.getWrkNo());
crnThread.setResetFlag(true);
} else {
News.error(""+mark+" - 1"+" - 鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
@@ -841,14 +821,14 @@
News.error(""+mark+" - 1"+" - 2"+" - 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
continue;
}
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
+ if ( staProtocol.stateType == DevpStateType.AUTO&& staProtocol.workType == DevpWorkType.BUSY&& staProtocol.getWorkNo() > 0 && staProtocol.requestType == DevpRequestType.IN
&& staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
flag = true;
}
if (!flag) {
News.errorNoLog(""+mark+" - 1"+" - 3"+" - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(浠ヤ笅闇�瑕佸叏true):"
- +"鑷姩淇″彿"+staProtocol.isAutoing()+"鏈夌墿淇″彿"+staProtocol.isLoading()
- +"宸ヤ綔鍙�>0"+staProtocol.getWorkNo()+"鍙叆淇″彿"+staProtocol.isInEnable()
+ +"鑷姩淇″彿"+staProtocol.stateType+"鏈夌墿淇″彿"+staProtocol.workType
+ +"宸ヤ綔鍙�>0"+staProtocol.getWorkNo()+"鍙叆淇″彿"+staProtocol.requestType
+"鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")"+staDetl.getCanining());
continue;
}
@@ -1020,8 +1000,8 @@
// continue;
}
// 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
- if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
- && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+ if (staProtocol.stateType == DevpStateType.AUTO && staProtocol.workType == DevpWorkType.IDLE && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+ && staProtocol.getWorkNo() == 0 && staProtocol.requestType == DevpRequestType.OUT) {
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
// 鍫嗗灈鏈烘帶鍒惰繃婊�
@@ -1331,11 +1311,8 @@
}
// 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
- News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔");
- if (crnProtocol.getTaskNo() == 9999) {
- // 鍫嗗灈鏈哄浣�
- crnThread.setResetFlag(true);
- } else {
+ News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:"+crnProtocol.getTaskNo());
+
// 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
if (wrkMast == null) {
@@ -1354,12 +1331,13 @@
// 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
if (wrkMastMapper.updateById(wrkMast) > 0) {
// 鍫嗗灈鏈哄浣�
+ log.error(wrkMast.getWrkNo()+"浠诲姟淇敼鐘舵��4鎴愬姛锛屽浣嶅爢鍨涙満={}",crnThread.getCrnProtocol().getCrnNo());
News.warnNoLog(""+mark+" - 2"+" - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}",crnThread.getCrnProtocol().getCrnNo());
crnThread.setResetFlag(true);
}
}
- }
+
}
// News.infoNoLog(""+mark+" - 0"+" - 瀵瑰伐浣滄。鐨勫畬鎴愭搷浣滄墽琛屽畬鎴�");
}
@@ -1511,15 +1489,15 @@
ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, emptyInSta.getLed());
}
- if (!staProtocol.isLoading()){
+ if (staProtocol.workType == DevpWorkType.IDLE){
continue;
}
// 绔欑偣鏉′欢鍒ゆ柇
- if (staProtocol.isAutoing()
- && staProtocol.isLoading()
- && staProtocol.isInEnable()
- && staProtocol.isEmptyMk()
+ if (staProtocol.stateType == DevpStateType.AUTO
+ && staProtocol.workType == DevpWorkType.BUSY
+ && staProtocol.requestType == DevpRequestType.IN
+ && staProtocol.trayType == DevpTrayType.EMPTY
&& staProtocol.isPakMk()
&& (staProtocol.getWorkNo() !=0 && staProtocol.getWorkNo() > 9700)
) {
@@ -1591,8 +1569,8 @@
}
} else {
- News.errorNoLog(""+mark+" - 4"+" - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒"+" 鑷姩淇″彿锛�"+staProtocol.isAutoing()+"銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
- +"銆佺┖鏉夸俊鍙凤細"+ staProtocol.isEmptyMk()+"銆佸伐浣滃彿锛�" + staProtocol.getWorkNo()
+ News.errorNoLog(""+mark+" - 4"+" - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒"+" 鑷姩淇″彿锛�"+staProtocol.stateType+"銆佸彲鍏ヤ俊鍙凤細" + staProtocol.workType
+ +"銆佺┖鏉夸俊鍙凤細"+ staProtocol.trayType+"銆佸伐浣滃彿锛�" + staProtocol.getWorkNo()
+"銆侀攣瀹氭爣璁�"+ staProtocol.isPakMk());
}
}
@@ -1614,7 +1592,7 @@
for (Integer staNo : led.getStaArr()) {
// 鑾峰彇鍙夎溅绔欑偣
StaProtocol staProtocol = devpThread.getStation().get(staNo);
- if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) {
+ if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || staProtocol.workType == DevpWorkType.IDLE) {
continue;
} else {
staProtocol = staProtocol.clone();
@@ -1631,6 +1609,9 @@
switch (wrkMast.getIoType()) {
case 1:
ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
+ break;
+ case 10:
+ ledCommand.setTitle("绌烘澘鍏ュ簱");
break;
case 101:
ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
@@ -1655,7 +1636,7 @@
ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
ledCommand.setStaNo(wrkMast.getStaNo());
ledCommand.setBarcode(wrkMast.getBarcode());
- if (wrkMast.getIoType() != 110) {
+ if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
wrkDetls.forEach(wrkDetl -> {
@@ -1690,7 +1671,7 @@
// 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
if (!commands.isEmpty()) {
if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) {
- News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+ News.error("{}鍙稬ED鏄剧ず鍐呭鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
continue;
}
}
@@ -1729,21 +1710,20 @@
// 鑾峰彇鍙夎溅绔欑偣
StaProtocol staProtocol = devpThread.getStation().get(staNo);
if (staProtocol == null) { continue; }
- if (staProtocol.getWorkNo() != 0) {
+ if (staProtocol.getWorkNo() != 0 || staProtocol.isErr()) {
reset = false;
break;
}
}
// 鑾峰彇led绾跨▼
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getDevpPlcId());
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
// led鏄剧ず榛樿鍐呭
if (reset) {
if (ledThread == null) {
continue;
}
- ledThread.errorReset();
if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
- News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+ News.error("{}鍙稬ED鏄剧ず榛樿鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
}
}
}
@@ -2105,65 +2085,65 @@
/**
* 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
*/
- public synchronized void ioConvert() {
- try {
- // 鏍规嵁杈撻�佺嚎plc閬嶅巻
- for (DevpSlave devp : slaveProperties.getDevp()) {
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-
- for (DevpSlave.Sta inSta : devp.getInSta()) {
- if (inSta.getStaNo() == 2) {
- continue;
- }
- WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getStaNo());
- switch (inSta.getStaNo()) {
- case 203://1F
- if (pakout != null) {
- if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
- // 鍑哄簱鍒囨崲涓�
- devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
- WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
- if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
- && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading()
- && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) {
- // 鍑哄簱妯″紡
- devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE;
- }
- }
- } else {
- // 鍏ュ簱妯″紡
- devpThread.ioModeOf2F = IoModeType.PAKIN_MODE;
- }
- break;
- case 401://1F
- if (pakout != null) {
- if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {
- // 鍑哄簱鍒囨崲涓�
- devpThread.ioModeOf4F = IoModeType.PAKOUT_BOOTING;
- WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
- if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
- && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading()
- && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) {
- // 鍑哄簱妯″紡
- devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE;
- }
- }
- } else {
- // 鍏ュ簱妯″紡
- devpThread.ioModeOf4F = IoModeType.PAKIN_MODE;
- }
- break;
- }
- }
-
- }
-
- } catch (Exception e) {
- e.printStackTrace();
- }
-
-
- }
+// public synchronized void ioConvert() {
+// try {
+// // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+// for (DevpSlave devp : slaveProperties.getDevp()) {
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+//
+// for (DevpSlave.Sta inSta : devp.getInSta()) {
+// if (inSta.getStaNo() == 2) {
+// continue;
+// }
+// WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getStaNo());
+// switch (inSta.getStaNo()) {
+// case 203://1F
+// if (pakout != null) {
+// if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
+// // 鍑哄簱鍒囨崲涓�
+// devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
+// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+// && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading()
+// && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) {
+// // 鍑哄簱妯″紡
+// devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE;
+// }
+// }
+// } else {
+// // 鍏ュ簱妯″紡
+// devpThread.ioModeOf2F = IoModeType.PAKIN_MODE;
+// }
+// break;
+// case 401://1F
+// if (pakout != null) {
+// if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {
+// // 鍑哄簱鍒囨崲涓�
+// devpThread.ioModeOf4F = IoModeType.PAKOUT_BOOTING;
+// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+// && !devpThread.getStation().get(inSta.getStaNo() + 1).isLoading()
+// && devpThread.getStation().get(inSta.getStaNo() + 1).getWorkNo() == 0) {
+// // 鍑哄簱妯″紡
+// devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE;
+// }
+// }
+// } else {
+// // 鍏ュ簱妯″紡
+// devpThread.ioModeOf4F = IoModeType.PAKIN_MODE;
+// }
+// break;
+// }
+// }
+//
+// }
+//
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+//
+//
+// }
public synchronized void outOfDevp(Integer mark) {
@@ -2183,391 +2163,434 @@
}
- public synchronized void autoEmptyOut() {
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- List<Integer> list = new ArrayList<>();
- list.add(101);list.add(112);
- Map<Integer,Integer> map = new HashMap<>();
- map.put(101,102);map.put(112,111);
- for (Integer site:list){
- WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("sta_no", map.get(site)));
- if (!Cools.isEmpty(wrkMast)){
- continue;
- }
- //濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔�
- StaProtocol staProtocol = devpThread.getStation().get(site);
- if (staProtocol == null) {
- return;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() //鑷姩
- && !staProtocol.isLoading() //鏃犵墿
- && staProtocol.isOutEnable() //鍙嚭淇″彿
- && staProtocol.getWorkNo() == 0
- ) {
- WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(site);
- if (null != pakoutEmpty) {
- return;
- }
- Short loctype1 = 1;
- if (site == 101){
- loctype1 = 2;
- }
- LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1);
- locTypeDto.setSiteId(site);
- try {
- String response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath("/rpc/auto/emptyOut/v1")
- .setJson(JSON.toJSONString(locTypeDto))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- String data = jsonObject.get("data").toString();
- News.info((String) jsonObject.get("msg")+","+data);
- } else {
- News.warnNoLog("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1","", response);
- }
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- }
- }
+// public synchronized void autoEmptyOut() {
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+// List<Integer> list = new ArrayList<>();
+// list.add(101);list.add(112);
+// Map<Integer,Integer> map = new HashMap<>();
+// map.put(101,102);map.put(112,111);
+// for (Integer site:list){
+// WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("sta_no", map.get(site)));
+// if (!Cools.isEmpty(wrkMast)){
+// continue;
+// }
+// //濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔�
+// StaProtocol staProtocol = devpThread.getStation().get(site);
+// if (staProtocol == null) {
+// return;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+// if (staProtocol.isAutoing() //鑷姩
+// && !staProtocol.isLoading() //鏃犵墿
+// && staProtocol.isOutEnable() //鍙嚭淇″彿
+// && staProtocol.getWorkNo() == 0
+// ) {
+// WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(site);
+// if (null != pakoutEmpty) {
+// return;
+// }
+// Short loctype1 = 1;
+// if (site == 101){
+// loctype1 = 2;
+// }
+// LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1);
+// locTypeDto.setSiteId(site);
+// try {
+// String response = new HttpHandler.Builder()
+// .setUri(wmsUrl)
+// .setPath("/rpc/auto/emptyOut/v1")
+// .setJson(JSON.toJSONString(locTypeDto))
+// .build()
+// .doPost();
+// JSONObject jsonObject = JSON.parseObject(response);
+// if (jsonObject.getInteger("code").equals(200)) {
+// String data = jsonObject.get("data").toString();
+// News.info((String) jsonObject.get("msg")+","+data);
+// } else {
+// News.warnNoLog("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1","", response);
+// }
+// } catch (Exception e) {
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// }
+// }
+// }
+//
+// }
- }
-
- public synchronized void autoEmptyIn() {
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- List<Integer> list = new ArrayList<>();
- list.add(153);list.add(157);
- for (Integer site:list){
- StaProtocol staProtocol = devpThread.getStation().get(site);
- if (staProtocol == null) {
- return;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() //鑷姩
- && staProtocol.isLoading() //鏈夌墿
- && staProtocol.isInEnable() //鍙叆淇″彿
- && staProtocol.isPakMk()
- && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) //宸ヤ綔鍙蜂负0鎴栬�呭伐浣滃彿鏄�9991~9999锛堣緭閫佹満鐣欑敤锛�
- ) {
-
- try {
- Short loctype1 = 1;
- if (site == 153){
- loctype1 = 2;
- }
- LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1);
- locTypeDto.setSiteId(site);
-
- String response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath("/rpc/auto/emptyIn/v1")
- .setJson(JSON.toJSONString(locTypeDto))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- News.info((String) jsonObject.get("msg"));
- staProtocol.setWorkNo(jsonObject.get("data").hashCode());
- staProtocol.setStaNo(site.shortValue());
- devpThread.setPakMk(site,false);
- MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
- } else {
- News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyIn/v1", JSON.toJSONString(locTypeDto), response);
- }
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- }
-
- }
-
- }
+// public synchronized void autoEmptyIn() {
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+// List<Integer> list = new ArrayList<>();
+// list.add(153);list.add(157);
+// for (Integer site:list){
+// StaProtocol staProtocol = devpThread.getStation().get(site);
+// if (staProtocol == null) {
+// return;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+// if (staProtocol.isAutoing() //鑷姩
+// && staProtocol.isLoading() //鏈夌墿
+// && staProtocol.isInEnable() //鍙叆淇″彿
+// && staProtocol.isPakMk()
+// && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) //宸ヤ綔鍙蜂负0鎴栬�呭伐浣滃彿鏄�9991~9999锛堣緭閫佹満鐣欑敤锛�
+// ) {
+//
+// try {
+// Short loctype1 = 1;
+// if (site == 153){
+// loctype1 = 2;
+// }
+// LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1);
+// locTypeDto.setSiteId(site);
+//
+// String response = new HttpHandler.Builder()
+// .setUri(wmsUrl)
+// .setPath("/rpc/auto/emptyIn/v1")
+// .setJson(JSON.toJSONString(locTypeDto))
+// .build()
+// .doPost();
+// JSONObject jsonObject = JSON.parseObject(response);
+// if (jsonObject.getInteger("code").equals(200)) {
+// News.info((String) jsonObject.get("msg"));
+// staProtocol.setWorkNo(jsonObject.get("data").hashCode());
+// staProtocol.setStaNo(site.shortValue());
+// devpThread.setPakMk(site,false);
+// MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+// } else {
+// News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyIn/v1", JSON.toJSONString(locTypeDto), response);
+// }
+// } catch (Exception e) {
+// e.printStackTrace();
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// }
+// }
+//
+// }
+//
+// }
/*
* 灏忚溅鍦板浘鏇存柊 鏇存柊閿�
* */
- public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd,String sign){
-
-// List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute());
- //鏇存柊褰撳墠灏忚溅閿�
- try{
- Integer farCurrentStaNo = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getNowRoute(), staStart, staEnd, basRgvMapCurrent.getLockStartRoute());//鑾峰彇鏈�杩滅珯鐐�
- Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getRgvNo(), farCurrentStaNo); //鑾峰彇鍚堝苟骞叉秹椤�
- basRgvMapCurrent.setLockEndRoute(fallMerge);
- Integer i = basRgvMapMapper.updateById(basRgvMapCurrent);
-// if (i>0){
- log.error("{}:==>{}:{}鍙疯溅鏇存柊缁撴潫閿�,{}",sign,new Date(),basRgvMapCurrent.getRgvNo(),JSON.toJSONString(basRgvMapCurrent));
-// }
-
- //鏇存柊鍙︿竴鍙板皬杞﹀湴鍥�
- Integer rgvNoOther = basRgvMapCurrent.getRgvNoOther(basRgvMapCurrent.getRgvNo());
- BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther);
- List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute());
- Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�
- basRgvMapOther.setEndRoute(lockEndRoute);
- Integer i1 = basRgvMapMapper.updateById(basRgvMapOther);
-// if (i1>0){
- log.error("{}:==>{}:{}鍙疯溅鏇存柊缁撴潫浣嶇疆,{}",sign,new Date(),basRgvMapOther.getRgvNo(),JSON.toJSONString(basRgvMapOther));
-// }
- return true;
- }catch (Exception e){
- log.error("灏忚溅鍦板浘鏇存柊鍑洪敊锛�");
- return false;
- }
- }
+// public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd,String sign){
+// log.info("灏忚溅鍦板浘鏇存柊锛乕鏍囪锛歿}];[BasRgvMap锛歿}];[staStart锛歿}];[staEnd锛歿}];",sign,JSON.toJSONString(basRgvMapCurrent),staStart,staEnd);
+//
+//// List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute());
+// //鏇存柊褰撳墠灏忚溅閿�
+// try{
+// Integer farCurrentStaNo = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getNowRoute(), staStart, staEnd, basRgvMapCurrent.getLockStartRoute());//鑾峰彇鏈�杩滅珯鐐�
+// log.info("灏忚溅鍦板浘鏇存柊锛佽幏鍙栨渶杩滅珯鐐�;[farCurrentStaNo锛歿}]",farCurrentStaNo);
+// Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getRgvNo(), farCurrentStaNo); //鑾峰彇鍚堝苟骞叉秹椤�
+// log.info("灏忚溅鍦板浘鏇存柊锛佽幏鍙栧悎骞跺共娑夐」;[fallMerge锛歿}]",fallMerge);
+// basRgvMapCurrent.setLockEndRoute(fallMerge);
+// Integer i = basRgvMapMapper.updateById(basRgvMapCurrent);
+//// if (i>0){
+//// log.error("{}:==>{}:{}鍙疯溅鏇存柊缁撴潫閿�,{}",sign,new Date(),basRgvMapCurrent.getRgvNo(),JSON.toJSONString(basRgvMapCurrent));
+//// }
+//
+// //鏇存柊鍙︿竴鍙板皬杞﹀湴鍥�
+// Integer rgvNoOther = basRgvMapCurrent.getRgvNoOther(basRgvMapCurrent.getRgvNo());
+// log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞﹀彿;[rgvNoOther锛歿}]",rgvNoOther);
+//
+// BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther);
+// log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞�;[basRgvMapOther锛歿}]",JSON.toJSONString(basRgvMapOther));
+//
+// List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute());
+// Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�
+// log.info("灏忚溅鍦板浘鏇存柊锛佸彟涓�鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�;[lockEndRoute锛歿}]",lockEndRoute);
+// basRgvMapOther.setEndRoute(lockEndRoute);
+// Integer i1 = basRgvMapMapper.updateById(basRgvMapOther);
+//// if (i1>0){
+//// log.error("{}:==>{}:{}鍙疯溅鏇存柊缁撴潫浣嶇疆,{}",sign,new Date(),basRgvMapOther.getRgvNo(),JSON.toJSONString(basRgvMapOther));
+//// }
+// return true;
+// }catch (Exception e){
+// log.error("灏忚溅鍦板浘鏇存柊鍑洪敊锛佸紓甯稿師鍥狅細"+e);
+// return false;
+// }
+// }
/*
* 鍒锋柊鍦板浘鏁版嵁
* */
- public synchronized void refreshRgvMap() {
- try{
- List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
- for (BasRgvMap rgvSlave:basRgvMaps) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }else {
- rgvProtocol = rgvProtocol.clone();
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�2", rgvSlave.getRgvNo());
- continue;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE &&
- rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
- && (rgvProtocol.getTaskNo1()==0)
- &&rgvThread.isPakMk()
- ) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-
- Integer rgvNoOther = basRgvMap.getRgvNoOther(rgvProtocol.getRgvNo());
- RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNoOther);
- RgvProtocol rgvProtocolOther = rgvThreadOther.getRgvProtocol();
- if (rgvProtocolOther == null) {
- continue;
- }else {
- rgvProtocolOther = rgvProtocolOther.clone();
- }
- if (rgvProtocolOther.getStatusType() == RgvStatusType.IDLE
- && rgvProtocolOther.getModeType() == RgvModeType.AUTO
- && rgvProtocolOther.getLoaded1()==0
- && (rgvProtocolOther.getTaskNo1()==0)
- &&rgvThreadOther.isPakMk()
- ){
- //瀵瑰伐浣滄。杩涜鍒ゆ柇
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
- if (rgvProtocol.getTaskNo1() >0 && rgvProtocol.getTaskNo1()<=9000){
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
- rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2366");
- }else if (rgvProtocol.getTaskNo1() == 0){
- rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2366");
- }
-
- }
-
-
-
- }
- }
- }catch (Exception e){
- log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
- log.error("4109琛�"+e);
- }
- }
+// public synchronized void refreshRgvMap() {
+// try{
+// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
+// for (BasRgvMap rgvSlave:basRgvMaps) {
+// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
+// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+// if (rgvProtocol == null) {
+// continue;
+// }else {
+// rgvProtocol = rgvProtocol.clone();
+// }
+// BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
+// if (basRgv == null) {
+// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�2", rgvSlave.getRgvNo());
+// continue;
+// }
+//
+// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
+// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE &&
+// rgvProtocol.getModeType() == RgvModeType.AUTO
+// && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+// && (rgvProtocol.getTaskNo1()==0)
+// &&rgvThread.isPakMk()
+// ) {
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+//
+// Integer rgvNoOther = basRgvMap.getRgvNoOther(rgvProtocol.getRgvNo());
+// RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNoOther);
+// RgvProtocol rgvProtocolOther = rgvThreadOther.getRgvProtocol();
+// if (rgvProtocolOther == null) {
+// continue;
+// }else {
+// rgvProtocolOther = rgvProtocolOther.clone();
+// }
+// if (rgvProtocolOther.getStatusType() == RgvStatusType.IDLE
+// && rgvProtocolOther.getModeType() == RgvModeType.AUTO
+// && rgvProtocolOther.getLoaded1()==0
+// && (rgvProtocolOther.getTaskNo1()==0)
+// &&rgvThreadOther.isPakMk()
+// ){
+// //瀵瑰伐浣滄。杩涜鍒ゆ柇
+// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
+// if (rgvProtocol.getTaskNo1() >0 && rgvProtocol.getTaskNo1()<=9000){
+// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
+// rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2366");
+// }else if (rgvProtocol.getTaskNo1() == 0){
+// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2366");
+// }
+//
+// }
+//
+//
+//
+// }
+// }
+// }catch (Exception e){
+// log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
+// log.error("4109琛�"+e);
+// }
+// }
/**
* 瀹屾垚灏忚溅浠诲姟
*/
- public synchronized void rgvCompleteWrkMastSta() {
- try{
- for (DevpSlave devp : slaveProperties.getDevp()) {
- List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
- for (BasRgvMap rgvSlave:basRgvMaps) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }else {
- rgvProtocol = rgvProtocol.clone();
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�3", rgvSlave.getRgvNo());
- continue;
- }
-
- // 鍙湁褰揜GV绛夊緟WCS纭銆佽嚜鍔�
- if ((rgvProtocol.getStatusType1() == RgvStatusType.WAITING || rgvProtocol.getStatusType1()==RgvStatusType.FETCHWAITING)
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && (rgvProtocol.getStatusType() == RgvStatusType.WORKING1)
- ){
- log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
- if (rgvProtocol.getTaskNo1()!=0){
- if (rgvProtocol.getTaskNo1()==32222){
- boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
- if (!rgvComplete){
- log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
- }
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
- rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2415");
- rgvThread.setPakMk(true);
- break;
- }
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
- if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getWrkSts()!=1){
- log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
- continue;
- }
-
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
- continue;
- }
- WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
- if (!Cools.isEmpty(wrkMast)){
- if (!staProtocol.isPakMk()){
- continue;
- }
- // 涓嬪彂绔欑偣淇℃伅
- staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
- if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) {
- continue;
- }
- }else {
- log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护,浣嗘湭鏌ヨ鍒板伐浣滄。");
- // 涓嬪彂绔欑偣淇℃伅
- Map<Integer,Integer> map = new HashMap<>();
- map.put(101,102);map.put(112,111);
- map.put(100,100);
- staProtocol.setWorkNo(rgvProtocol.getTaskNo1().intValue());
- staProtocol.setStaNo(map.get(rgvProtocol.getRgvPosI()).shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
+// public synchronized void rgvCompleteWrkMastSta() {
+// try{
+// for (DevpSlave devp : slaveProperties.getDevp()) {
+// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
+// for (BasRgvMap rgvSlave:basRgvMaps) {
+// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
+// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+// if (rgvProtocol == null) {
+// continue;
+// }else {
+// rgvProtocol = rgvProtocol.clone();
+// }
+// BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
+// if (basRgv == null) {
+// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�3", rgvSlave.getRgvNo());
+// continue;
+// }
+//
+// // 鍙湁褰揜GV绛夊緟WCS纭銆佽嚜鍔�
+// if ((rgvProtocol.getStatusType1() == RgvStatusType.WAITING || rgvProtocol.getStatusType1()==RgvStatusType.FETCHWAITING)
+// && rgvProtocol.getModeType() == RgvModeType.AUTO
+// && (rgvProtocol.getStatusType() == RgvStatusType.WORKING1)
+// ){
+// log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
+// if (rgvProtocol.getTaskNo1()!=0){
+// if (rgvProtocol.getTaskNo1()==32222){
+// boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
+// if (!rgvComplete){
+// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
+// }
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
+// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2415");
+// rgvThread.setPakMk(true);
+// break;
+// }
+// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
+// if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getWrkSts()!=1){
+// log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
+// continue;
+// }
+//
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+// StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
+// if (staProtocol == null) {
+// continue;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+// if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
+// continue;
+// }
+// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
+// if (!Cools.isEmpty(wrkMast)){
+// if (!staProtocol.isPakMk()){
+// continue;
+// }
+// // 涓嬪彂绔欑偣淇℃伅
+// staProtocol.setWorkNo(wrkMast.getWrkNo());
+// staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
// log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
- if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) {
- continue;
- }
- }
- boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
-// boolean rgvComplete = true;
- if (!rgvComplete){
- log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
- break;
- }
- wrkMastSta.setWrkSts(3);
- wrkMastStaMapper.updateById(wrkMastSta);
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
- rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2471");
- rgvThread.setPakMk(true);
- }
-
- else {
- log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭浣嗘槸娌℃湁宸ヤ綔鍙凤紒",rgvProtocol.getRgvNo());
- }
- }
- }
- }
- }catch (Exception e){
- log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
- }
- }
- /**
- * 鎵ц灏忚溅鎼繍浠诲姟
- */
- public synchronized void rgvRunWrkMastFullSta() {
- boolean wrkEnable = false;
- try{
- List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
- for (BasRgvMap rgvSlave:basRgvMaps) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }else {
- rgvProtocol = rgvProtocol.clone();
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgvSlave.getRgvNo());
- continue;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getLoaded1()==0
- && rgvProtocol.getTaskNo1() == 0
- ) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- if (basRgvMap == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
- continue;
- }
- List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
- List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
- for (WrkMastSta wrkMastSta : wrkMastStaList){
- if (wrkMastSta.getType()!=0 || wrkMastSta.getWrkType()!=3){//1:婊$増 3锛氬彇鏀�
- continue;
- }
- boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
- wrkEnable = true;
- if (sign){
- rgvThread.setPakMk(false);
- boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2526");
- if (signMap){
- Thread.sleep(300);
- wrkMastSta.setWrkSts(1);
- try{
- wrkMastStaMapper.updateById(wrkMastSta);
- return;
- }catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
- break;
- }else {
- log.error("3864琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
- }
- } else {
- log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
- }
- break;
- }
- }
-
- }
- if (!wrkEnable){
- rgvRunWrkMastEmptyStaAvoidance();
- }
- }catch (Exception e){
- log.error("3875琛屾墽琛屽皬杞︽惉杩愪换鍔′笅鍙戝け璐�");
- log.error("3875琛�"+e);
- }
- }
+// if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) {
+// continue;
+// }
+// }else {
+// log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护,浣嗘湭鏌ヨ鍒板伐浣滄。");
+// // 涓嬪彂绔欑偣淇℃伅
+// Map<Integer,Integer> map = new HashMap<>();
+// map.put(101,102);map.put(112,111);
+// map.put(100,100);
+// staProtocol.setWorkNo(rgvProtocol.getTaskNo1().intValue());
+// staProtocol.setStaNo(map.get(rgvProtocol.getRgvPosI()).shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+//// log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
+// if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) {
+// continue;
+// }
+// }
+// boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
+//// boolean rgvComplete = true;
+// if (!rgvComplete){
+// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
+// break;
+// }
+// WrkMast wrkMast1 = wrkMastService.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
+// wrkMast1.setPdcType("Y");
+//
+// wrkMastService.updateById(wrkMast1);
+//
+// wrkMastSta.setWrkSts(3);
+// wrkMastStaMapper.updateById(wrkMastSta);
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
+// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2471");
+// rgvThread.setPakMk(true);
+// }
+//
+// else {
+// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭浣嗘槸娌℃湁宸ヤ綔鍙凤紒",rgvProtocol.getRgvNo());
+// }
+// }
+// }
+// }
+// }catch (Exception e){
+// log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
+// }
+// }
+// /**
+// * 鎵ц灏忚溅鎼繍浠诲姟
+// */
+// public synchronized boolean rgvRunWrkMastFullSta() {
+// boolean wrkEnable = false;
+// try{
+// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
+// for (BasRgvMap rgvSlave:basRgvMaps) {
+// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
+// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+// if (rgvProtocol == null) {
+// continue;
+// }else {
+// rgvProtocol = rgvProtocol.clone();
+// }
+// BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
+// if (basRgv == null) {
+// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgvSlave.getRgvNo());
+// continue;
+// }
+//
+// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
+// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+// && rgvProtocol.getModeType() == RgvModeType.AUTO
+// && rgvProtocol.getLoaded1()==0
+// && rgvProtocol.getTaskNo1() == 0
+// && rgvThread.isPakMk()
+// ) {
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// if (basRgvMap == null) {
+// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
+// continue;
+// }
+// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
+// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+// List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
+// for (WrkMastSta wrkMastSta : wrkMastStaList){
+// if (wrkMastSta.getType()!=0 || wrkMastSta.getWrkType()!=3 || wrkMastSta.getWrkSts()!=0){//1:婊$増 3锛氬彇鏀�
+// continue;
+// }
+// //鍒ゆ柇宸ヤ綔缁撴潫浣嶇疆鐘舵��
+// boolean signDev = false;
+// BasDevp devNo = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", wrkMastSta.getStaEnd()));
+// if (devNo.getDevNo()==113){
+// BasDevp devNo114 = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 114));
+// if (!Cools.isEmpty(devNo114)){
+// if (devNo114.getOutEnable().equals("Y")){
+// signDev = true;
+// }
+// }
+// }
+// if (!Cools.isEmpty(devNo)){
+// if (devNo.getAutoing().equals("Y") && !devNo.getWrkNo().equals(0) && !devNo.getLoading().equals("N")){
+// continue;
+// }
+// if (!signDev && devNo.getDevNo()==113){
+// if (!devNo.getAutoing().equals("Y") || !devNo.getWrkNo().equals(0) || !devNo.getLoading().equals("N")){
+// wrkEnable = true;
+// continue;
+// }
+// if (!devNo.getOutEnable().equals("Y")){
+// wrkEnable = true;
+// continue;
+// }
+// }
+// }
+// boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
+// wrkEnable = true;
+// if (sign){
+// wrkMastSta.setWrkSts(1);
+// try{
+// wrkMastStaMapper.updateById(wrkMastSta);
+// log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
+// }catch (Exception e){
+// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+// }
+// rgvThread.setPakMk(false);
+// boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2526");
+// if (signMap){
+// return wrkEnable;
+//// break;
+// }else {
+// log.error("3864琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
+// Thread.sleep(500);
+// }
+// } else {
+// log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
+// Thread.sleep(500);
+// }
+// break;
+// }
+// }
+//
+// }
+//// if (!wrkEnable){
+//// rgvRunWrkMastEmptyStaAvoidance();
+//// }
+// }catch (Exception e){
+// log.error("3875琛屾墽琛屽皬杞︽惉杩愪换鍔′笅鍙戝け璐�");
+// log.error("3875琛�"+e);
+// }
+// return wrkEnable;
+// }
/**
* 鎵ц灏忚溅鎼繍浠诲姟
*/
@@ -2700,133 +2723,134 @@
/*
* 鏈変换鍔′絾鏈墽琛� 姝ゆ椂闇�瑕佽皟鏁村皬杞︿綅缃�
* */
- public synchronized void rgvRunWrkMastEmptyStaAvoidance() {
- try{
- Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔�
- if (integer==0){
- return;
- }
- List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
- for (BasRgvMap rgvSlave:basRgvMaps) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }else {
- rgvProtocol = rgvProtocol.clone();
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�1", rgvSlave.getRgvNo());
- continue;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
- && rgvProtocol.getTaskNo1()==0
- && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
-// && rgvProtocol.getTaskNo2()==0
- ) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){
- continue;
- }
-// if (rgvProtocol.getRgvNo()==1 && rgvProtocol.getRgvPosI().equals(100)){
-// continue;
-// } else if (rgvProtocol.getRgvNo()==2 && rgvProtocol.getRgvPosI().equals(157) ){
+// public synchronized void rgvRunWrkMastEmptyStaAvoidance() {
+// try{
+// Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔�
+// if (integer==0){
+// return;
+// }
+// List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
+// for (BasRgvMap rgvSlave:basRgvMaps) {
+// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
+// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+// if (rgvProtocol == null) {
+// continue;
+// }else {
+// rgvProtocol = rgvProtocol.clone();
+// }
+// BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
+// if (basRgv == null) {
+// log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�1", rgvSlave.getRgvNo());
+// continue;
+// }
+//
+// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
+// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+// && rgvProtocol.getModeType() == RgvModeType.AUTO
+// && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+// && rgvProtocol.getTaskNo1()==0
+// && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
+// && rgvThread.isPakMk()
+//// && rgvProtocol.getTaskNo2()==0
+// ){
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){
// continue;
// }
- rgvAvoidanceXY(rgvProtocol.getRgvNo());
- rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2727");
- }
- }
- }catch (Exception e){
- log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
- log.error("4109琛�"+e);
- }
- }
-
- /*
- * 灏忚溅XY绉诲姩 閬胯
- * */
- public synchronized boolean rgvAvoidanceXY(Integer rgvId){
- BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo(rgvId);
- if (basRgvMap.getStartRoute() == 100 || basRgvMap.getStartRoute() == 101){
- try{
-
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
- rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐�
- //basRgvMap.getLockStartRoute().shortValue()
- rgvCommand.setSourceStaNo1(basRgvMap.getStartRoute().shortValue());
- 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浠诲姟鍙�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
- }catch (Exception e){
- return false;
-
- }
- }else {
- try{
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
- rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐�
- //basRgvMap.getLockStartRoute().shortValue()
- rgvCommand.setSourceStaNo1(basRgvMap.getStartRoute().shortValue());
- 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浠诲姟鍙�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
- }catch (Exception e){
- return false;
-
- }
- }
- }
-
-
- /*
- * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔�
- * */
- public synchronized boolean rgvTakeFullAll(Integer rgvId,WrkMastSta wrkMastSta){
- try{
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
- rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐�
- rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣
- rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅1鐩爣绔欑偣
- 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鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
- }catch (Exception e){
- return false;
- }
- }
+//// if (rgvProtocol.getRgvNo()==1 && rgvProtocol.getRgvPosI().equals(100)){
+//// continue;
+//// } else if (rgvProtocol.getRgvNo()==2 && rgvProtocol.getRgvPosI().equals(157) ){
+//// continue;
+//// }
+// rgvAvoidanceXY(rgvProtocol.getRgvNo());
+// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2727");
+// }
+// }
+// }catch (Exception e){
+// log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
+// log.error("4109琛�"+e);
+// }
+// }
+//
+// /*
+// * 灏忚溅XY绉诲姩 閬胯
+// * */
+// public synchronized boolean rgvAvoidanceXY(Integer rgvId){
+// BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo(rgvId);
+// if (basRgvMap.getStartRoute() == 100 || basRgvMap.getStartRoute() == 101){
+// try{
+//
+// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+// RgvCommand rgvCommand = new RgvCommand();
+// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+// rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙�
+// rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐�
+// //basRgvMap.getLockStartRoute().shortValue()
+// rgvCommand.setSourceStaNo1(basRgvMap.getStartRoute().shortValue());
+// 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浠诲姟鍙�
+// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+// return false;
+// } else {
+// return true;
+// }
+// }catch (Exception e){
+// return false;
+//
+// }
+// }else {
+// try{
+// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+// RgvCommand rgvCommand = new RgvCommand();
+// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+// rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙�
+// rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐�
+// //basRgvMap.getLockStartRoute().shortValue()
+// rgvCommand.setSourceStaNo1(basRgvMap.getStartRoute().shortValue());
+// 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浠诲姟鍙�
+// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+// return false;
+// } else {
+// return true;
+// }
+// }catch (Exception e){
+// return false;
+//
+// }
+// }
+// }
+//
+//
+// /*
+// * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔�
+// * */
+// public synchronized boolean rgvTakeFullAll(Integer rgvId,WrkMastSta wrkMastSta){
+// try{
+// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+// RgvCommand rgvCommand = new RgvCommand();
+// rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+// rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
+// rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅1宸ヤ綔鍙�
+// rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 宸ヤ綅1浠诲姟妯″紡: 鍙栨斁璐�
+// rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣
+// rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅1鐩爣绔欑偣
+// 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鍐欎换鍔�
+// log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+// return false;
+// } else {
+// return true;
+// }
+// }catch (Exception e){
+// return false;
+// }
+// }
/*
* 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔�
--
Gitblit v1.9.1