From c25ccc2181c8d47936cf86443359e783eedeb018 Mon Sep 17 00:00:00 2001
From: yxFwq <1>
Date: 星期二, 19 十一月 2024 15:19:57 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 8215 +++++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 5,941 insertions(+), 2,274 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 44771ce..da5e0d0 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,13 +6,13 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
+import com.core.common.R;
import com.core.exception.CoolException;
+import com.zy.asrs.domain.enums.WorkNoType;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.*;
import com.zy.asrs.service.*;
-import com.zy.asrs.utils.RouteUtils;
-import com.zy.asrs.utils.Utils;
-import com.zy.asrs.utils.VersionUtils;
+import com.zy.asrs.utils.*;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.MatDto;
import com.zy.common.model.SearchLocParam;
@@ -24,27 +24,23 @@
import com.zy.common.utils.RgvUtils;
import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
+import com.zy.core.Slave;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.*;
import com.zy.core.model.*;
-import com.zy.core.model.command.CrnCommand;
-import com.zy.core.model.command.LedCommand;
-import com.zy.core.model.command.RgvCommand;
-import com.zy.core.model.protocol.CrnProtocol;
-import com.zy.core.model.protocol.RgvProtocol;
-import com.zy.core.model.protocol.StaProtocol;
+import com.zy.core.model.command.*;
+import com.zy.core.model.cpmmandParam.CrnCommandParam;
+import com.zy.core.model.protocol.*;
import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.BarcodeThread;
-import com.zy.core.thread.LedThread;
-import com.zy.core.thread.RgvThread;
-import com.zy.core.thread.SiemensDevpThread;
+import com.zy.core.thread.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import springfox.documentation.spring.web.json.Json;
import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -60,7 +56,12 @@
public class MainServiceImpl {
public static final long COMMAND_TIMEOUT = 5 * 1000;
+// private static final int[][] execute = new int[][]{{1,4},{2,4},{3,4},{4,4},{5,6},{6,6},{7,4},{8,4},{9,3},{10,4},{11,4}};
+ private static final int[][] execute = new int[][]{{1,4},{2,4},{3,4},{4,4},{5,6},{6,6},{7,4},{8,4},{9,3},{10,4},{11,4}};
+// private static final Integer jarMaxLoc1 = 7;
+ private static Integer jarMaxLoc = 0;
+ private static final Float jarTemperature = 50F;
@Autowired
private CommonService commonService;
@Autowired
@@ -103,9 +104,23 @@
private RgvOneSignMapper rgvOneSignMapper;
@Autowired
private WrkMastCrnMapper wrkMastCrnMapper;
+ @Autowired
+ private WrkMastSplitTwinMapper wrkMastSplitTwinMapper;
+ @Autowired
+ private WrkMastSplitTwinService wrkMastSplitTwinService;
+ @Autowired
+ private BasJarMastService basJarMastService;
+ @Autowired
+ private WrkMastExecuteService wrkMastExecuteService;
+ @Autowired
+ private BasJarService basJarService;
+ @Autowired
+ private BasJarMapper basJarMapper;
@Value("${wms.url}")
private String wmsUrl;
+
+
/**
* 缁勬墭
@@ -125,7 +140,7 @@
if (!Cools.isEmpty(barcode)) {
// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
- if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+ if ("00000000".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
continue;
}
} else {
@@ -178,7 +193,10 @@
// led 寮傚父鏄剧ず
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
if (ledThread != null) {
- MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg));
+ ErrMsg errMsg1 = new ErrMsg();
+ errMsg1.setErrMsg(errMsg);
+ errMsg1.setArea("1");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1));
}
continue;
}
@@ -213,8 +231,17 @@
// 鍒ゆ柇閲嶅宸ヤ綔妗�
WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
if (wrkMast != null) {
- log.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
- continue;
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+ barcodeThread.setBarcode("");
+ staProtocol.setWorkNo(wrkMast.getWrkNo());
+ staProtocol.setStaNo(wrkMast.getStaNo());
+
+ devpThread.setPakMk(staProtocol.getSiteId(), false,238);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result) {
+ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+ }
+ return;
}
// // 鑾峰彇鍏ュ簱閫氱煡妗�
// List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N"));
@@ -242,24 +269,32 @@
if (jsonObject.getInteger("code").equals(200)) {
StartupDto dto = jsonObject.getObject("data", StartupDto.class);
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
barcodeThread.setBarcode("");
staProtocol.setWorkNo(dto.getWorkNo());
if(Cools.isEmpty(dto.getRgvNo()) || dto.getRgvNo() <= 0) {
- staProtocol.setStaNo(dto.getStaNo());
+ staProtocol.setStaNo(607);//607
} else {//濡傛灉瀛樺湪RGV缂栧彿锛岃鏄庨渶瑕丷GV鎺ラ┏锛屽厛涓嬪彂浠诲姟鍒癛GV婧愮珯
staProtocol.setStaNo(dto.getRgvSstaNo());
}
- devpThread.setPakMk(staProtocol.getSiteId(), false);
+ devpThread.setPakMk(staProtocol.getSiteId(), false,283);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (!result) {
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
}
} else {
+ // led 寮傚父鏄剧ず
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+ if (ledThread != null) {
+ ErrMsg errMsg1 = new ErrMsg();
+ errMsg1.setErrMsg("鍏ュ簱璇锋眰澶辫触"+jsonObject.getInteger("code"));
+ errMsg1.setArea("1");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1));
+ }
log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
}
@@ -275,16 +310,11 @@
}
}
-
- /**
- * 缁勬墭
- * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
- */
- public synchronized void generateStoreWrkFileSingle() {
+ public synchronized void generateStoreWrkFile464() {
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻鍏ュ簱鍙�
- for (DevpSlave.Sta inSta : devp.getInSingleSta()) {
+ for (DevpSlave.Sta inSta : devp.getInSta464()) {
// 鑾峰彇鏉$爜鎵弿浠俊鎭�
BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
if (barcodeThread == null) {
@@ -294,7 +324,7 @@
if (!Cools.isEmpty(barcode)) {
// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
- if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+ if ("00000000".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
continue;
}
} else {
@@ -347,7 +377,10 @@
// led 寮傚父鏄剧ず
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
if (ledThread != null) {
- MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg));
+ ErrMsg errMsg1 = new ErrMsg();
+ errMsg1.setErrMsg(errMsg);
+ errMsg1.setArea("1");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1));
}
continue;
}
@@ -366,7 +399,222 @@
&& staProtocol.getWorkNo() == 0
&& staProtocol.isPakMk()) {// && !Cools.isEmpty(barcode)) {
- if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+// if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+// //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌172绔欑偣
+// staProtocol.setWorkNo((short)32222);
+// staProtocol.setStaNo((short)172);
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// if (!result) {
+// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+// }
+// continue;
+// }
+
+ // 鍒ゆ柇閲嶅宸ヤ綔妗�
+ WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
+ if (wrkMast != null) {
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+ barcodeThread.setBarcode("");
+ staProtocol.setWorkNo(wrkMast.getWrkNo());
+ staProtocol.setStaNo(wrkMast.getStaNo());
+
+ devpThread.setPakMk(staProtocol.getSiteId(), false,422);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result) {
+ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+ }
+ return;
+ }
+// // 鑾峰彇鍏ュ簱閫氱煡妗�
+// List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N"));
+// if (waitPakins.isEmpty()) {
+// log.error("鏃犳鍏ュ簱鏉$爜鏁版嵁銆傛潯鐮佸彿={}", barcode);
+// continue;
+// }
+
+ try {
+
+ LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+
+ SearchLocParam param = new SearchLocParam();
+ param.setBarcode(barcode);
+ param.setIoType(1);
+ param.setSourceStaNo(inSta.getStaNo());
+ param.setLocType1(locTypeDto.getLocType1());
+ String response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/pakin/loc/v1")
+ .setJson(JSON.toJSONString(param))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+
+// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+
+
+ barcodeThread.setBarcode("");
+ staProtocol.setWorkNo(dto.getWorkNo());
+
+ if(Cools.isEmpty(dto.getRgvNo()) || dto.getRgvNo() <= 0) {
+ staProtocol.setStaNo(607);//607
+ } else {//濡傛灉瀛樺湪RGV缂栧彿锛岃鏄庨渶瑕丷GV鎺ラ┏锛屽厛涓嬪彂浠诲姟鍒癛GV婧愮珯
+ staProtocol.setStaNo(dto.getRgvSstaNo());
+ }
+
+ devpThread.setPakMk(staProtocol.getSiteId(), false,467);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result) {
+ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+ }
+ } else if (jsonObject.getInteger("code").equals(700)){
+ SearchLocParam param2 = new SearchLocParam();
+ param2.setBarcode(barcode);
+ param2.setSourceStaNo(inSta.getStaNo());
+ param2.setLocType1(locTypeDto.getLocType1());
+ String response2 = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/pakin/yx/loc/v464")
+ .setJson(JSON.toJSONString(param2))
+ .build()
+ .doPost();
+ JSONObject jsonObject2 = JSON.parseObject(response2);
+ if (jsonObject2.getInteger("code").equals(200)) {
+ log.info("464绱ф�ョ珯鐐硅嚜鍔ㄧ粍鎵樻垚鍔燂紒锛�");
+ } else {
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/yx/loc/v464", JSON.toJSONString(param), response);
+
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+
+ if (ledThread != null) {
+ ErrMsg errMsg1 = new ErrMsg();
+ errMsg1.setErrMsg("鍏ュ簱澶辫触!绔欑偣鍙凤細"+inSta.getStaNo());
+ errMsg1.setArea("1");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1));
+ }
+ }
+ } else {
+ // led 寮傚父鏄剧ず
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+ if (ledThread != null) {
+ ErrMsg errMsg1 = new ErrMsg();
+ errMsg1.setErrMsg("鍏ュ簱璇锋眰澶辫触"+jsonObject.getInteger("code"));
+ errMsg1.setArea("1");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1));
+ }
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+
+ }
+
+
+ }
+ }
+
+ }
+
+ /**
+ * 缁勬墭
+ * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
+ */
+ public synchronized void generateStoreWrkFileSingle() {
+ // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ // 閬嶅巻鍏ュ簱鍙�
+ for (DevpSlave.Sta inSta : devp.getInSingleSta()) {
+ // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
+ if (barcodeThread == null) {
+ continue;
+ }
+ String barcode = barcodeThread.getBarcode();
+
+ if (!Cools.isEmpty(barcode)) {
+// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+ if ("00000000".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
+ continue;
+ }
+ } else {
+ continue;
+ }
+
+ // 鑾峰彇鍏ュ簱绔欎俊鎭�
+// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+ // 灏哄妫�娴嬪紓甯�
+ boolean back = false;
+ String errMsg = "寮傚父锛�";
+ if (staProtocol.isFrontErr()) {
+ errMsg = errMsg+"鍓嶈秴闄愶紱";
+ back = true;
+ }
+ if (staProtocol.isBackErr()) {
+ errMsg = errMsg+"鍚庤秴闄�";
+ back = true;
+ }
+ if (staProtocol.isHighErr()) {
+ errMsg = errMsg+"楂樿秴闄�";
+ back = true;
+ }
+ if (staProtocol.isLeftErr()) {
+ errMsg = errMsg+"宸﹁秴闄�";
+ back = true;
+ }
+ if (staProtocol.isRightErr()) {
+ errMsg = errMsg+"鍙宠秴闄�";
+ back = true;
+ }
+ if (staProtocol.isWeightErr()) {
+ errMsg = errMsg+"瓒呴噸";
+ back = true;
+ }
+ if (staProtocol.isBarcodeErr()) {
+ errMsg = errMsg+"鎵爜澶辫触";
+ back = true;
+ }
+ // 閫�鍥�
+ if (back) {
+ // led 寮傚父鏄剧ず
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+ if (ledThread != null) {
+ ErrMsg errMsg1 = new ErrMsg();
+ errMsg1.setErrMsg(errMsg);
+ errMsg1.setArea("1");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1));
+ }
+ continue;
+ }
+
+ // 鍏ュ嚭搴撴ā寮忓垽鏂�
+// if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
+// if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
+// continue;
+// }
+
+ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+ if (staProtocol.isAutoing()
+ && staProtocol.isLoading()
+ && staProtocol.isInEnable()
+ && !staProtocol.isEmptyMk()
+ && staProtocol.getWorkNo() == 0
+ && staProtocol.isPakMk()) {// && !Cools.isEmpty(barcode)) {
+
+ if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
// //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌172绔欑偣
// staProtocol.setWorkNo((short)32222);
@@ -377,6 +625,28 @@
// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
// }
continue;
+ }
+
+ // 鍒ゆ柇閲嶅宸ヤ綔妗�
+ WrkMast wrkMast111 = wrkMastMapper.selectPakInStep111(inSta.getStaNo(), barcode);
+ if (wrkMast111 != null) {
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+ barcodeThread.setBarcode("");
+ staProtocol.setWorkNo(wrkMast111.getWrkNo());
+ staProtocol.setStaNo(wrkMast111.getStaNo());
+
+ devpThread.setPakMk(staProtocol.getSiteId(), false,637);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result) {
+ if (ledThread != null) {
+ ErrMsg errMsg1 = new ErrMsg();
+ errMsg1.setErrMsg("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣濂斤細"+inSta.getStaNo());
+ errMsg1.setArea("1");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1));
+ }
+ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+ }
+ return;
}
// 鍒ゆ柇閲嶅宸ヤ綔妗�
@@ -423,9 +693,15 @@
staProtocol.setStaNo(dto.getRgvSstaNo());
}
- devpThread.setPakMk(staProtocol.getSiteId(), false);
+ devpThread.setPakMk(staProtocol.getSiteId(), false,695);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (!result) {
+ if (ledThread != null) {
+ ErrMsg errMsg1 = new ErrMsg();
+ errMsg1.setErrMsg("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣濂斤細"+inSta.getStaNo());
+ errMsg1.setArea("1");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1));
+ }
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
}
} else {
@@ -463,7 +739,7 @@
if (!Cools.isEmpty(barcode)) {
// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
- if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+ if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
continue;
}
} else {
@@ -516,7 +792,10 @@
// led 寮傚父鏄剧ず
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
if (ledThread != null) {
- MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg));
+ ErrMsg errMsg1 = new ErrMsg();
+ errMsg1.setErrMsg(errMsg);
+ errMsg1.setArea("1");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1));
}
continue;
}
@@ -535,7 +814,7 @@
&& staProtocol.getWorkNo() == 0
&& staProtocol.isPakMk()) {// && !Cools.isEmpty(barcode)) {
- if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+ if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
// //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌172绔欑偣
// staProtocol.setWorkNo((short)32222);
@@ -547,12 +826,34 @@
// }
continue;
}
-
+//
+// // 鍒ゆ柇閲嶅宸ヤ綔妗�
+// WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
+// if (wrkMast != null) {
+// log.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
+// continue;
+// }
// 鍒ゆ柇閲嶅宸ヤ綔妗�
WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
if (wrkMast != null) {
- log.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
- continue;
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+ barcodeThread.setBarcode("");
+ staProtocol.setWorkNo(wrkMast.getWrkNo());
+ staProtocol.setStaNo(wrkMast.getStaNo());
+
+ devpThread.setPakMk(staProtocol.getSiteId(), false,843);
+ log.info("閿佸畾鏍囪flase===銆婲===銆嬬珯鐐瑰彿锛歿}锛屽伐浣滃彿锛歿}锛屾潯鐮�:{}",staProtocol.getSiteId(),staProtocol.getWorkNo(),barcode);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result) {
+ if (ledThread != null) {
+ ErrMsg errMsg1 = new ErrMsg();
+ errMsg1.setErrMsg("鏇存柊plc绔欑偣淇℃伅澶辫触!绔欑偣濂斤細"+inSta.getStaNo());
+ errMsg1.setArea("1");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1));
+ }
+ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+ }
+ return;
}
// // 鑾峰彇鍏ュ簱閫氱煡妗�
// List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N"));
@@ -572,16 +873,13 @@
param.setLocType1(locTypeDto.getLocType1());
String response = new HttpHandler.Builder()
.setUri(wmsUrl)
- .setPath("/rpc/pakin/pair/station/large/loc/v1")
+ .setPath("/rpc/pakin/loc/v1")
.setJson(JSON.toJSONString(param))
.build()
.doPost();
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject.getInteger("code").equals(200)) {
StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-
- LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-
barcodeThread.setBarcode("");
staProtocol.setWorkNo(dto.getWorkNo());
@@ -592,74 +890,51 @@
staProtocol.setStaNo(dto.getRgvSstaNo());
}
- devpThread.setPakMk(staProtocol.getSiteId(), false);
+ devpThread.setPakMk(staProtocol.getSiteId(), false,892);
+ log.info("閿佸畾鏍囪flase===銆婲===銆嬬珯鐐瑰彿锛歿}锛屽伐浣滃彿锛歿}锛屾潯鐮�:{}",staProtocol.getStaNo(),staProtocol.getWorkNo(),barcode);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (!result) {
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
}
+ } else if (jsonObject.getInteger("code").equals(700)){
+ SearchLocParam param2 = new SearchLocParam();
+ param2.setBarcode(barcode);
+ param2.setSourceStaNo(inSta.getStaNo());
+ param2.setLocType1(locTypeDto.getLocType1());
+ String response2 = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/pakin/yx/loc/v33")
+ .setJson(JSON.toJSONString(param2))
+ .build()
+ .doPost();
+ JSONObject jsonObject2 = JSON.parseObject(response2);
+ if (jsonObject2.getInteger("code").equals(200)) {
+ log.info("澶ф枡绠辫嚜鍔ㄧ粍鎵樻垚鍔燂紒锛�");
+ } else {
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+
+ if (ledThread != null) {
+ ErrMsg errMsg1 = new ErrMsg();
+ errMsg1.setErrMsg("鍏ュ簱澶辫触!绔欑偣鍙凤細"+inSta.getStaNo());
+ errMsg1.setArea("1");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1));
+ }
+ }
} else {
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/pair/station/single/loc/v1", JSON.toJSONString(param), response);
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+
+ if (ledThread != null) {
+ ErrMsg errMsg1 = new ErrMsg();
+ errMsg1.setErrMsg("鍏ュ簱澶辫触!绔欑偣鍙凤細"+inSta.getStaNo());
+ errMsg1.setArea("1");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg1));
+ }
}
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
-
- }
-
-
- }
- }
- }
-
- /**
- * 缁勬墭
- * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿閫氱煡妗佹灦鐮佸灈
- */
- public synchronized void generateStoreWrkFileFull2LouM() {
- // 鏍规嵁杈撻�佺嚎plc閬嶅巻
- for (DevpSlave devp : slaveProperties.getDevp()) {
- // 閬嶅巻鐮佸灈鍙�
- for (DevpSlave.Sta driveSta : devp.getDriveSta()) {
- // 鑾峰彇鏉$爜鎵弿浠俊鎭�
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, driveSta.getBarcode());
- if (barcodeThread == null) {
- continue;
- }
- String barcode = barcodeThread.getBarcode();
-
- if (!Cools.isEmpty(barcode) && !barcode.equals("") && !barcode.equals(" ")) {
- if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
- continue;
- }
- } else {
- continue;
- }
-
- // 鑾峰彇鐮佸灈鍙d俊鎭�
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(driveSta.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (staProtocol.isAutoing()
- && staProtocol.isLoading()
- && staProtocol.isInEnable()
- && staProtocol.isEmptyMk()
- && (staProtocol.getWorkNo() == 0 || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000) )
- ) {
- try {
- BasDevp basDevp = basDevpService.selectById(driveSta.getStaNo());
- if (basDevp.getReportSign()>0){
- continue;
- }
- basDevp.setBarcode(barcode);
- basDevp.setReportSign(1);
- basDevpService.updateById(basDevp);
} catch (Exception e) {
e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -711,7 +986,7 @@
staNo = 147;
}
staProtocol.setStaNo(staNo);
- devpThread.setPakMk(staProtocol.getSiteId(), false);
+ devpThread.setPakMk(staProtocol.getSiteId(), false,988);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (result) {
// 鏇存柊宸ヤ綔涓绘。
@@ -819,7 +1094,7 @@
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
staProtocol.setWorkNo(wrkMast.getWrkNo());
staProtocol.setStaNo(dto.getStaNo());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
+ devpThread.setPakMk(staProtocol.getSiteId(), false,1096);
// ledThread.errorReset();
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (!result) {
@@ -934,7 +1209,7 @@
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
staProtocol.setWorkNo(wrkMast.getWrkNo());
staProtocol.setStaNo(dto.getStaNo());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
+ devpThread.setPakMk(staProtocol.getSiteId(), false,1211);
// ledThread.errorReset();
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (!result) {
@@ -1024,164 +1299,6 @@
}
/**
- * 2妤�212鍛煎彨绌烘澘
- */
- public synchronized void stnToCrnStnPick3Auto(Integer sign) {
- try{
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
- StaProtocol staProtocol = devpThread.getStation().get(212);
- if (staProtocol == null) {
- return;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.getWorkNo()==0 ){
- switch (sign){
- //鎵ц灏忚溅璐х墿鎼繍浠诲姟
- case 1:
- case 4:
- stnToCrnStnPick3();
- return;
- //鎵ц灏忚溅绌烘澘鎼繍浠诲姟
- case 2://鏀�//鎷嗙洏
- case 5://鏀�//鎷嗙洏
- stnToCrnStnPick4();
- return;
- default:
- return;
- }
- } else if (staProtocol.isAutoing() && staProtocol.isLoading()){
- switch (sign){
- case 3://婊℃斁
- case 6://婊℃斁
- stnToCrnStnPick5();
- return;
- default:
- return;
- }
- }
- }catch (Exception e){
- log.error("2妤�212鍛煎彨绌烘澘"+e);
- }
- }
- /**
- * 2妤�212鍛煎彨绌烘澘
- */
- public synchronized void stnToCrnStnPick3() {
- WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212();
- if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=61){//61銆佺瓑寰呯┖鏉�
- return;
- }
- for (DevpSlave devp : slaveProperties.getDevp()) {
- for (DevpSlave.Sta driveSta : devp.getDriveSta()) {
- if (driveSta.getStaNo()!=215){
- continue;
- }
- // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(driveSta.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo()==0
- || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000)) ){
- boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
-
- staProtocol.setWorkNo(wrkMast.getWrkNo()-1);
- staProtocol.setStaNo(driveSta.getStaNo()==215? 217:221);
- boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- if (!result2) {
- log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
- }
- wrkMast.setWrkSts(62L);
- wrkMastMapper.updateById(wrkMast);
-
- boolean result3 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol));
- return;
- }
- }
- }
- }
-
- /**
- * 2妤�212鍛煎彨绌烘澘
- */
- public synchronized void stnToCrnStnPick4() {
- WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212();
- if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=62){//62銆佺瓑寰呭皬杞︽惉杩�
- return;
- }
- for (DevpSlave devp : slaveProperties.getDevp()) {
- for (DevpSlave.Sta driveSta : devp.getInSta()) {
- if (driveSta.getStaNo()!=217){
- continue;
- }
- // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(driveSta.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- StaProtocol staProtocol212 = devpThread.getStation().get(212);
- if (staProtocol212 == null) {
- continue;
- } else {
- staProtocol212 = staProtocol212.clone();
- }
- if (staProtocol212.isAutoing() && !staProtocol212.isLoading() && staProtocol212.getWorkNo()==0){
- if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo()==0
- || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000) || staProtocol.getWorkNo()==wrkMast.getWrkNo()-1) ){
-// boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
-
- staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(212);
- boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- if (!result2) {
- log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
- }
- wrkMast.setWrkSts(63L);
- wrkMastMapper.updateById(wrkMast);
-
-// boolean result3 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol));
- return;
- }
- }
- }
- }
- }
-
- /**
- * 2妤�212鍛煎彨绌烘澘
- */
- public synchronized void stnToCrnStnPick5() {
- WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212();
- if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=63){//63銆佺瓑寰呭畬鎴�
- return;
- }
-
- // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
- StaProtocol staProtocol = devpThread.getStation().get(212);
- if (staProtocol == null) {
- return;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() && staProtocol.isLoading()){
-// boolean result1 = MessageQueue.offer(SlaveType.Devp, 2, new Task(3, staProtocol));
-
- wrkMast.setWrkSts(64L);
- wrkMastMapper.updateById(wrkMast);
-
-// boolean result3 = MessageQueue.offer(SlaveType.Devp, 2, new Task(4, staProtocol));
- return;
- }
- }
- /**
* 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 鎷嗗灈浣嶇疆
*/
public synchronized void storeEmptyPlt4() {
@@ -1228,136 +1345,355 @@
for (CrnSlave crnSlave : slaveProperties.getCrn()) {
// 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
- // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
- // 鏌ヨ宸ヤ綔妗�
- WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
- if (wrkMast == null) {
+ switch (crnSlave.getId()){
+ case 1:
+ case 2:
+ crnStnToOutStnOne(crnStn);
continue;
+ case 3:
+ case 4:
+ case 5:
+ crnStnToOutStnTwo(crnSlave.getId(),crnStn,1);
+ continue;
+ case 6:
+ case 7:
+ crnStnToOutStnThree(crnStn);
+ continue;
+ default:
+ break;
+ }
+ }
+ }
+ }
+ /**
+ * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
+ */
+ public synchronized boolean crnStnToOutStnOne(CrnSlave.CrnStn crnStn ) {
+ try{
+ // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+ if (staProtocol == null) {
+ return false;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
+ // 鏌ヨ宸ヤ綔妗�
+ WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
+ if (wrkMast == null) {
+ return false;
+ }
+ // 鍒ゆ柇宸ヤ綔妗f潯浠�
+ if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
+ return false;
+ }
+ // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
+ // 绉诲姩涓�
+ return false;
+ }
+
+ WrkMastCrn wrkMastCrn = wrkMastCrnMapper.selectWrkNoOneAndTwo(crnProtocol.getTaskNo().intValue());
+ if (!Cools.isEmpty(wrkMastCrn) && wrkMastCrn.getWrkSts().equals(12L)){
+ wrkMast = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNo().intValue());
+ } else {
+ return false;
+ }
+ // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
+ if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue())
+ && crnProtocol.statusType == CrnStatusType.WAITING
+ && crnProtocol.forkPosType == CrnForkPosType.HOME) {
+
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ StaProtocol staProtocolOther = devpThread.getStation().get(crnStn.getStaNoOther());
+ if (staProtocolOther == null) {
+ return false;
+ } else {
+ staProtocolOther = staProtocolOther.clone();
+ }
+ if (staProtocolOther.isAutoing() && staProtocolOther.isLoading() && (staProtocolOther.getWorkNo() == 0 || staProtocolOther.getStaNo() == null)) {
+// WrkMastCrn wrkMastCrn = wrkMastCrnMapper.selectWrkNoOneAndTwo(wrkMast.getWrkNo());
+
+
+ WrkMast wrkMastOne = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNoOne().intValue());
+ WrkMast wrkMastTwo = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNoTwo().intValue());
+ WrkMast wrkMast1 = null;
+ WrkMast wrkMast2 = null;
+ if (Utils.getRow(wrkMastOne.getSourceLocNo()) == wrkMast.getCrnNo()*4){
+ wrkMast1 = wrkMastTwo;
+ wrkMast2 = wrkMastOne;
+ }else {
+ wrkMast2 = wrkMastTwo;
+ wrkMast1 = wrkMastOne;
+ }
+
+ // 涓嬪彂绔欑偣淇℃伅
+ staProtocolOther.setWorkNo(Cools.isEmpty(wrkMast1.getWorkNoOther())? wrkMast1.getWrkNo():wrkMast1.getWorkNoOther());
+ staProtocolOther.setStaNo(wrkMast1.getStaNo());
+ if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocolOther))) {
+ return false;
+ }
+
+ // 涓嬪彂绔欑偣淇℃伅
+ staProtocol.setWorkNo(Cools.isEmpty(wrkMast2.getWorkNoOther())? wrkMast2.getWrkNo():wrkMast2.getWorkNoOther());
+// staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
+ staProtocol.setStaNo(wrkMast2.getStaNo());
+ if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
+ return false;
+ }
+ boolean sign = true;
+
+ // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
+ wrkMastCrn.setWrkSts(14L);
+ if (wrkMastCrnMapper.updateById(wrkMastCrn) != 0) {
+ } else {
+ sign = false;
+ log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
+ }
+
+ // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
+ wrkMastOne.setWrkSts(14L);
+ wrkMastOne.setCrnEndTime(new Date());
+ if (wrkMastMapper.updateById(wrkMastOne) != 0) {
+ } else {
+ sign = false;
+ log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
+ }
+
+ // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
+ wrkMastTwo.setWrkSts(14L);
+ wrkMastTwo.setCrnEndTime(new Date());
+ if (wrkMastMapper.updateById(wrkMastTwo) != 0) {
+ } else {
+ sign = false;
+ log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
+ }
+
+ if (sign){
+ // 澶嶄綅鍫嗗灈鏈�
+ crnThread.setResetFlag(true);
+ return true;
+ }
+ }
+ }
+ }
+ }catch (Exception e){
+ log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [鍑哄簱绔�:{}]", crnStn.getStaNo());
+ }
+ return false;
+ }
+
+ public synchronized boolean crnStnToOutStnTwo(Integer crnNo,CrnSlave.CrnStn crnStn ,Integer conStation) {
+ try{
+ Date now = new Date();
+ // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+ if (staProtocol == null) {
+ return false;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == null || staProtocol.getWorkNo() == 0)) {
+
+ // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn,crnNo);
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+
+ if (conStation==1){
+ // 鏌ヨ宸ヤ綔妗�
+ WrkMast wrkMast = wrkMastMapper.selectPakOutStep2345(staProtocol.getSiteId(),crnProtocol.getTaskNo().intValue());
+ if (wrkMast == null) {
+ return false;
}
// 鍒ゆ柇宸ヤ綔妗f潯浠�
if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
- continue;
+ return false;
}
- // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
// 绉诲姩涓�
- continue;
- }
- if (crnProtocol.getCrnNo()<=2){
- WrkMastCrn wrkMastCrn = wrkMastCrnMapper.selectWrkNoOneAndTwo(crnProtocol.getTaskNo().intValue());
- if (!Cools.isEmpty(wrkMastCrn) && wrkMastCrn.getWrkSts().equals(12L)){
- wrkMast = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNo().intValue());
- }
+ return false;
}
// 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue())
&& crnProtocol.statusType == CrnStatusType.WAITING
- && crnProtocol.forkPosType == CrnForkPosType.HOME) {
-
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- if (crnProtocol.getCrnNo()<=2){
-
- StaProtocol staProtocolOther = devpThread.getStation().get(crnStn.getStaNoOther());
- if (staProtocolOther == null) {
- continue;
- } else {
- staProtocolOther = staProtocolOther.clone();
+ && crnProtocol.forkPosType == CrnForkPosType.HOME
+ && crnProtocol.getLoaded()==0) {
+ List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(wrkMast.getCrnNo(), conStation, null, 2, 3);
+ if (wrkMastSplitTwinList.size()!=1){
+ log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",conStation,2,3);
+ }
+ for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
+ if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
+ log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={},宸ヤ綔浠诲姟鍙�={},鎵ц浠诲姟鍙�={}",wrkMast.getCrnNo(),"宸ヤ綔浠诲姟涓庢墽琛屼换鍔′笉鍖归厤",conStation,2,3,wrkMast.getWrkNo(),wrkMastSplitTwin.getWrkNo());
+ return false;
}
- if (staProtocolOther.isAutoing() && staProtocolOther.isLoading() && (staProtocolOther.getWorkNo() == 0 || staProtocolOther.getStaNo() == null)) {
- WrkMastCrn wrkMastCrn = wrkMastCrnMapper.selectWrkNoOneAndTwo(wrkMast.getWrkNo());
- if (Cools.isEmpty(wrkMastCrn)){
- continue;
- }
-
- WrkMast wrkMastOne = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNoOne().intValue());
- WrkMast wrkMastTwo = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNoTwo().intValue());
- WrkMast wrkMast1 = null;
- WrkMast wrkMast2 = null;
- if (Utils.getRow(wrkMastOne.getSourceLocNo()) == wrkMast.getCrnNo()*4){
- wrkMast1 = wrkMastTwo;
- wrkMast2 = wrkMastOne;
- }else {
- wrkMast2 = wrkMastTwo;
- wrkMast1 = wrkMastOne;
- }
-
- // 涓嬪彂绔欑偣淇℃伅
- staProtocolOther.setWorkNo(Cools.isEmpty(wrkMast1.getWorkNoOther())? wrkMast1.getWrkNo():wrkMast1.getWorkNoOther());
- staProtocolOther.setStaNo(wrkMast1.getStaNo());
- if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocolOther))) {
- continue;
- }
-
- // 涓嬪彂绔欑偣淇℃伅
- staProtocol.setWorkNo(Cools.isEmpty(wrkMast2.getWorkNoOther())? wrkMast2.getWrkNo():wrkMast2.getWorkNoOther());
-// staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
- staProtocol.setStaNo(wrkMast2.getStaNo());
- if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
- continue;
- }
- boolean sign = true;
-
- // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
- wrkMastCrn.setWrkSts(14L);
- if (wrkMastCrnMapper.updateById(wrkMastCrn) != 0) {
- } else {
- sign = false;
- log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
- }
-
- // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
- wrkMastOne.setWrkSts(14L);
- wrkMastOne.setCrnEndTime(new Date());
- if (wrkMastMapper.updateById(wrkMastOne) != 0) {
- } else {
- sign = false;
- log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
- }
-
- // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
- wrkMastTwo.setWrkSts(14L);
- wrkMastTwo.setCrnEndTime(new Date());
- if (wrkMastMapper.updateById(wrkMastTwo) != 0) {
- } else {
- sign = false;
- log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
- }
-
- if (sign){
- // 澶嶄綅鍫嗗灈鏈�
- crnThread.setResetFlag(true);
- }
- }
-
- }else {
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
// 涓嬪彂绔欑偣淇℃伅
staProtocol.setWorkNo(wrkMast.getWrkNo());
staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
- continue;
+ return false;
}
-
// 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
wrkMast.setWrkSts(14L);
- wrkMast.setCrnEndTime(new Date());
+ wrkMast.setCrnEndTime(now);
if (wrkMastMapper.updateById(wrkMast) != 0) {
- // 澶嶄綅鍫嗗灈鏈�
- crnThread.setResetFlag(true);
+ wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkSts()+1);
+ wrkMastSplitTwin.setUpdateTime(now);
+ // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+ if (wrkMastSplitTwinService.updateById(wrkMastSplitTwin)) {
+ // 鍫嗗灈鏈哄浣�
+ crnThread.setResetFlag(true);
+ return true;
+ }else {
+ log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"淇敼鎵ц妗f澶辫触",conStation,2,3);
+ }
} else {
log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
}
}
}
+ }else if (conStation==2){
+ if (crnProtocol.statusType != CrnStatusType.IDLE){
+ return false;
+ }
+ // 鏌ヨ宸ヤ綔妗�
+ WrkMast wrkMast = wrkMastMapper.selectPakOutStep2345(staProtocol.getSiteId(),crnProtocol.getTaskNoTwo().intValue());
+ if (wrkMast == null) {
+ return false;
+ }
+ // 鍒ゆ柇宸ヤ綔妗f潯浠�
+ if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
+ return false;
+ }
+ if (crnProtocol.statusTypeTwo == CrnStatusType.FETCHING || crnProtocol.statusTypeTwo == CrnStatusType.PUTTING) {
+ // 绉诲姩涓�
+ return false;
+ }
+ // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
+ if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNoTwo().equals(wrkMast.getWrkNo().shortValue())
+ && crnProtocol.statusTypeTwo == CrnStatusType.WAITING
+ && crnProtocol.forkPosTypeTwo == CrnForkPosType.HOME
+ && crnProtocol.getLoadedTwo()==0) {
+ List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(wrkMast.getCrnNo(), conStation, null, 2, 3);
+ if (wrkMastSplitTwinList.size()!=1){
+ log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",conStation,2,3);
+ }
+ for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
+ if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
+ log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={},宸ヤ綔浠诲姟鍙�={},鎵ц浠诲姟鍙�={}",wrkMast.getCrnNo(),"宸ヤ綔浠诲姟涓庢墽琛屼换鍔′笉鍖归厤",conStation,2,3,wrkMast.getWrkNo(),wrkMastSplitTwin.getWrkNo());
+ return false;
+ }
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ // 涓嬪彂绔欑偣淇℃伅
+ staProtocol.setWorkNo(wrkMast.getWrkNo());
+ staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
+ if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
+ return false;
+ }
+ // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
+ wrkMast.setWrkSts(14L);
+ wrkMast.setCrnEndTime(now);
+ if (wrkMastMapper.updateById(wrkMast) != 0) {
+ wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkSts()+1);
+ wrkMastSplitTwin.setUpdateTime(now);
+ // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+ if (wrkMastSplitTwinService.updateById(wrkMastSplitTwin)) {
+ // 鍫嗗灈鏈哄浣�
+ crnThread.setResetFlagTwo(true);
+ return true;
+ }else {
+ log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",wrkMast.getCrnNo(),"淇敼鎵ц妗f澶辫触",conStation,2,3);
+ }
+ } else {
+ log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
+ }
+ }
+ }
+ }
+ }
+ }catch (Exception e){
+ log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [鍑哄簱绔�:{}]", crnStn.getStaNo());
+ }
+ return false;
+ }
+
+ public synchronized boolean crnStnToOutStnThree(CrnSlave.CrnStn crnStn ) {
+ try{
+ // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+ if (staProtocol == null) {
+ return false;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
+ // 鏌ヨ宸ヤ綔妗�
+ WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
+ if (wrkMast == null) {
+ return false;
+ }
+ // 鍒ゆ柇宸ヤ綔妗f潯浠�
+ if (wrkMast.getIoType() < 100 || wrkMast.getStaNo() == null || wrkMast.getSourceStaNo() == null) {
+ return false;
+ }
+ // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkMast.getCrnNo());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
+ // 绉诲姩涓�
+ return false;
+ }
+ // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
+ if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue())
+ && crnProtocol.statusType == CrnStatusType.WAITING
+ && crnProtocol.forkPosType == CrnForkPosType.HOME) {
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ // 涓嬪彂绔欑偣淇℃伅
+ staProtocol.setWorkNo(wrkMast.getWrkNo());
+ staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
+ if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
+ return false;
+ }
+
+ // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
+ wrkMast.setWrkSts(14L);
+ wrkMast.setCrnEndTime(new Date());
+ if (wrkMastMapper.updateById(wrkMast) != 0) {
+ // 澶嶄綅鍫嗗灈鏈�
+ crnThread.setResetFlag(true);
+ return true;
+ } else {
+ log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo());
+ }
+ }
+ }
+ }catch (Exception e){
+ log.error("鏇存柊宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负14澶辫触锛侊紒锛� [鍑哄簱绔�:{}]", crnStn.getStaNo());
+ }
+ return false;
+ }
+
+ /**
+ * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯
+ */
+ public synchronized void crnStnToOutStnTwo() {
+ for (CrnSlave crnSlave : slaveProperties.getCrn()) {
+ // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
+ for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
+ switch (crnSlave.getId()){
+ case 3:
+ case 4:
+ case 5:
+ crnStnToOutStnTwo(crnSlave.getId(),crnStn,2);
+ continue;
+ default:
+ break;
}
}
}
@@ -1395,8 +1731,12 @@
case 2:
this.crnStnToLoc1Single(crn, crnProtocol); // 鍏ュ簱
break;
+ case 3:
+ case 4:
+ case 5:
+ continue;
default:
- this.crnStnToLoc1(crn, crnProtocol); // 鍏ュ簱
+ this.crnStnToLoc1(crn, crnProtocol,1); // 鍏ュ簱
}
crnProtocol.setLastIo("O");
} else if (basCrnp.getOutEnable().equals("Y")) {
@@ -1405,8 +1745,12 @@
case 2:
this.locToCrnStn1Single(crn, crnProtocol); // 鍑哄簱
break;
+ case 3:
+ case 4:
+ case 5:
+ continue;
default:
- this.locToCrnStn1(crn, crnProtocol); // 鍑哄簱
+ this.locToCrnStn1(crn, crnProtocol,1); // 鍑哄簱
}
crnProtocol.setLastIo("I");
}
@@ -1419,8 +1763,12 @@
case 2:
this.locToCrnStn1Single(crn, crnProtocol); // 鍑哄簱
break;
+ case 3:
+ case 4:
+ case 5:
+ continue;
default:
- this.locToCrnStn1(crn, crnProtocol); // 鍑哄簱
+ this.locToCrnStn1(crn, crnProtocol,1); // 鍑哄簱
}
crnProtocol.setLastIo("I");
} else if (basCrnp.getInEnable().equals("Y")) {
@@ -1429,8 +1777,12 @@
case 2:
this.crnStnToLoc1Single(crn, crnProtocol); // 鍏ュ簱
break;
+ case 3:
+ case 4:
+ case 5:
+ continue;
default:
- this.crnStnToLoc1(crn, crnProtocol); // 鍏ュ簱
+ this.crnStnToLoc1(crn, crnProtocol,1); // 鍏ュ簱
}
crnProtocol.setLastIo("O");
}
@@ -1447,125 +1799,110 @@
}
/**
- * 鎼滅储RGV杞︺�傞�氳繃鐩爣绔欐悳绱㈠摢鍙拌溅鍙敤
+ * 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
*/
- public synchronized Integer searchRgvNo(Integer staNo) {
+ public synchronized void crnIoExecuteTwo() {
try{
- BasDevp basDevp = basDevpService.selectById(staNo);
- if (basDevp == null) {
- return null;//鐩爣绔欎笉瀛樺湪
- }
- //璺緞鍊�
- int path = basDevp.getLocType3().intValue();
-
- ArrayList<RgvThread> list = new ArrayList<>();
- for (RgvSlave rgv : slaveProperties.getRgv()) {
- // 鑾峰彇RGV淇℃伅
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
-
+ for (CrnSlave crn : slaveProperties.getCrn()) {
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) {
continue;
}
- BasRgv basRgv = basRgvService.selectById(rgv.getId());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgv.getId());
+ BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
+ if (basCrnp == null) {
+ log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
continue;
}
- list.add(rgvThread);
- }
- if (list.size() > 1) {
- //瓒呰繃涓ゅ彴杞︼紝鎸夌収閰嶇疆鐨勮鍒欒繘琛屽垎閰�
- for (RgvThread rgvThread : list) {
- //鑾峰彇杞﹁締閰嶇疆鐨勮矾寰勮鍒�
- BasRgvPath basRgvPath = basRgvPathService.selectByRgvNo(rgvThread.getSlave().getId());
- if (basRgvPath == null) {
- continue;
- }
- //鐩爣绔欐槸鍚﹀寘鍚綋鍓嶈矾寰勪腑
- List<Integer> rgvPath = JSON.parseArray(basRgvPath.getPath(), Integer.class);
- if (rgvPath.contains(path)) {
- //褰撳墠璺緞涓寘鍚洰鏍囩珯锛屽垯閫夊畾杩欏彴杞�
- return rgvThread.getSlave().getId();
+ 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) {
+ /*
+ * 浠诲姟鎷嗗垎鐗规畩澶勭悊
+ * */
+ if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
+ && crnProtocol.getTaskNoTwo() == 0
+ && crnProtocol.getLoadedTwo() == 0
+ && crnProtocol.getForkPosTwo() == 0){
+ sign[0] = 1;
+ sign[1] = 1;
+ }
}
}
- }else {
- //灏忎簬鎴栫瓑浜�1鍙拌溅锛屽垎閰嶅叏璺緞
- BasRgvPath basRgvPath = basRgvPathService.selectByRgvNo(0);//鑾峰彇榛樿璺緞
- if (basRgvPath == null) {
- return null;
- }
- List<Integer> rgvPath = JSON.parseArray(basRgvPath.getPath(), Integer.class);
- if (rgvPath.contains(path)) {
- //褰撳墠璺緞涓寘鍚洰鏍囩珯锛屽垯閫夊畾杩欏彴杞�
- return list.get(0).getSlave().getId();
- }
- }
- return null;
+ if (sign[0]==1){
+ // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
+ if (crnProtocol.getLastIo().equals("I")) {
+ if (basCrnp.getInEnable().equals("Y")) {
+ switch (crn.getId()){
+ case 3:
+ case 4:
+ case 5:
+ this.crnStnToLoc1Big(crn, crnProtocol, sign[1]); // 鍏ュ簱
+ break;
+ default:
+ continue;
+ }
+ crnProtocol.setLastIo("O");
+ } else if (basCrnp.getOutEnable().equals("Y")) {
+ switch (crn.getId()){
+ case 3:
+ case 4:
+ case 5:
+ this.locToCrnStn1Big(crn, crnProtocol, sign[1]); // 鍑哄簱
+ break;
+ default:
+ continue;
+ }
+ crnProtocol.setLastIo("I");
+ }
+ }
+ // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
+ else if (crnProtocol.getLastIo().equals("O")) {
+ if (basCrnp.getOutEnable().equals("Y")) {
+ switch (crn.getId()){
+ case 3:
+ case 4:
+ case 5:
+ this.locToCrnStn1Big(crn, crnProtocol, sign[1]); // 鍑哄簱
+ break;
+ default:
+ continue;
+ }
+ crnProtocol.setLastIo("I");
+ } else if (basCrnp.getInEnable().equals("Y")) {
+ switch (crn.getId()){
+ case 3:
+ case 4:
+ case 5:
+ this.crnStnToLoc1Big(crn, crnProtocol, sign[1]); // 鍏ュ簱
+ break;
+ default:
+ continue;
+ }
+ crnProtocol.setLastIo("O");
+ }
+ }
+ }
+
+ // 搴撲綅绉昏浆
+ this.locToLoc(crn, crnProtocol);
+// this.crnRebackHp(crnProtocol, crnThread);
+
+ }
}catch (Exception e){
- log.error("鎼滅储RGV杞︺�傞�氳繃鐩爣绔欐悳绱㈠摢鍙拌溅鍙敤"+e);
- return null;
+ log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂鎶ラ敊"+e);
}
}
- /**
- * 鍥炲師鐐癸紝鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣
- */
- public synchronized void crnRebackHp(CrnProtocol crnProtocol, CrnThread crnThread) {
-// 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;
-// }
- if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
- if (crnProtocol.getBay() == 1 && crnProtocol.getLevel() == 1) {
- return;
- }
-
- // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
- if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
- return;
- }
-
- //鍫嗗灈鏈烘湁鎵ц涓换鍔★紝杩囨护3,4,11,12
- if (wrkMastMapper.selectCrnWorking(crnProtocol.getCrnNo()) != null) {
- return;
- }
-
- //杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟锛岃繃婊�2
- if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) == null) {
- return;
- }
- log.info("鍫嗗灈鏈哄彫鍥炲師鐐�==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満鏈夊叆搴撲换鍔�,鍙洖鍘熺偣");
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo((short) 63333); // 宸ヤ綔鍙�
- crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 鍥炲師鐐�
- crnCommand.setSourcePosX((short) 0); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY((short) 0); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞�
- if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
- log.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand));
- }
- crnThread.setBackHpFlag(true);
- }
-// }
- }
/**
* 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣�
@@ -1672,7 +2009,7 @@
crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞�
if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
- log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
} else {
// long startTime = System.currentTimeMillis();
@@ -1701,9 +2038,473 @@
/**
* 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣�
- * 2022-12-03 TQS淇敼锛屽厛閬嶅巻鏌ヨ鍚屽彴鍫嗗灈鏈哄伐浣滄。鎵�鏈夌珯鐐瑰叆搴撲换鍔IST锛屾牴鎹伐浣滄。浠诲姟鎺掑簭浼樺厛绾ч珮浜� 鏍规嵁鍫嗗灈鏈哄叆搴撶珯鐐规帓搴�
+ * 2024-06-05
*/
- public synchronized void crnStnToLoc1(CrnSlave slave, CrnProtocol crnProtocol) {
+ public synchronized void crnStnToLoc1Big(CrnSlave slave, CrnProtocol crnProtocol, Integer crnStation) {
+ List<WrkMast> wrkMasts = wrkMastMapper.selectPakInStep12(slave.getId());
+ Integer crnStation1 = crnStation;//璁板綍
+ for(WrkMast wrkMast : wrkMasts){
+ if (wrkMast == null) {
+ continue;
+ }
+
+ crnStation=crnStation1;//鍒锋柊
+
+ CrnSlave.CrnStn crnStn = null;
+ for (CrnSlave.CrnStn crnStn1 : slave.getCrnInStn()){
+ if(crnStn1.getStaNo().equals(wrkMast.getStaNo())){
+ crnStn = crnStn1;
+ break;
+ }
+ }
+ if(Cools.isEmpty(crnStn)){
+ continue;
+ }
+
+ boolean flag = false;
+ // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ // 鏌ヨ绔欑偣璇︾粏淇℃伅
+ BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
+ if (staDetl == null) {
+ log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ continue;
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo().equals(wrkMast.getWrkNo())
+ && staProtocol.isInEnable() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
+ flag = true;
+ }
+ if (!flag) {
+ continue;
+ }
+
+ // 鑾峰彇搴撲綅淇℃伅
+ LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+ if (locMast == null) {
+ log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
+ continue;
+ }
+ if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
+ log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
+ continue;
+ }
+
+ //宸ヤ綅
+ if (crnStation == 1){
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+ break;
+ }
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
+ break;
+ }
+ }else if(crnStation == 2){
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
+ break;
+ }
+ }else {
+ break;
+ }
+
+ if (locMast.getBay1()==81){
+ crnStation=2;
+ }
+
+
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+ continue;
+ }
+
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (wrkMastSplitTwinMapper.selectCount(new EntityWrapper<WrkMastSplitTwin>().eq("wrk_no", wrkMast.getWrkNo().longValue())) != 0) {
+ break;
+// return;
+ }
+
+ // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
+ if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
+ String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
+ LocMast shallowLoc = locMastService.selectById(shallowLocNo);
+ // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
+ if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
+ WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+ if (null == waitWrkMast) {
+ log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
+ } else {
+ waitWrkMast.setIoPri(15D);
+ waitWrkMast.setModiTime(new Date());
+ if (wrkMastMapper.updateById(waitWrkMast) == 0) {
+ log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+ }
+ continue;
+ }
+
+ } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
+ // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
+ if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
+ wrkMast.setUpdMk("Y");
+ wrkMast.setIoPri(14D);
+ wrkMastMapper.updateById(wrkMast);
+ // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
+ moveLocForDeepLoc(slave, shallowLoc);
+ // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
+// moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
+ }
+ continue;
+ } else if (shallowLoc.getLocSts().equals("Q")) {
+ WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
+ if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
+ continue;
+ }
+ }
+ }
+
+ StaProtocol staProtocolOther = devpThread.getStation().get(crnStn.getStaNoOther());
+ if (staProtocolOther == null) {
+ continue;
+ } else {
+ staProtocolOther = staProtocolOther.clone();
+ }
+
+ // 鏌ヨ绔欑偣璇︾粏淇℃伅
+ BasDevp staDetlOther = basDevpService.selectById(crnStn.getStaNoOther());
+ if (staDetlOther == null) {
+ log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNoOther());
+ continue;
+ }
+ if (staProtocolOther.getWorkNo()!=0){
+ WrkMast wrkMastOther = wrkMastMapper.selectPakInStep3(staProtocolOther.getWorkNo());
+ if (Cools.isEmpty(wrkMastOther)){
+ log.error("Other鏌ヨ宸ヤ綔妗f鏃犳暟鎹�--宸ヤ綔鍙穥},绔欑偣鍙凤細{}", staProtocolOther.getWorkNo(),staProtocolOther.getSiteId());
+ continue;
+ }
+ // 鑾峰彇搴撲綅淇℃伅
+ LocMast locMastOther = locMastService.selectById(wrkMastOther.getLocNo());
+ if (locMastOther == null) {
+ log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", locMastOther.getLocNo());
+ continue;
+ }
+ if (!locMastOther.getLocSts().equals("S") && !locMastOther.getLocSts().equals("Q")) {
+ log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMastOther.getLocNo(), locMastOther.getLocSts());
+ continue;
+ }
+ if (locMastOther.getBay1()!=81){
+ if (staProtocolOther.isAutoing() && staProtocolOther.isLoading()
+ && staProtocolOther.isInEnable() && staDetlOther.getCanining() != null && staDetlOther.getCanining().equals("Y")) {
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ CrnCommandParam crnCommandParam = new CrnCommandParam();
+ crnCommandParam.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+
+ crnCommandParam.setTaskNo2(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommandParam.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommandParam.setTaskMode2(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐�
+ crnCommandParam.setSourcePosX2(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓
+ crnCommandParam.setSourcePosY2(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪
+ crnCommandParam.setSourcePosZ2(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰
+ crnCommandParam.setDestinationPosX2((short)0); // 鐩爣搴撲綅鎺�
+ crnCommandParam.setDestinationPosY2((short)0); // 鐩爣搴撲綅鍒�
+ crnCommandParam.setDestinationPosZ2((short)0); // 鐩爣搴撲綅灞�
+
+ crnCommandParam.setTaskNo(wrkMastOther.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommandParam.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommandParam.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐�
+ crnCommandParam.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓
+ crnCommandParam.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪
+ crnCommandParam.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰
+ crnCommandParam.setDestinationPosX((short)0); // 鐩爣搴撲綅鎺�
+ crnCommandParam.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒�
+ crnCommandParam.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞�
+ if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(99, crnCommandParam.getCrnNo()-2))) {
+ log.error("杈撻�佺嚎閿佸畾鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), crnCommandParam.getCrnNo()-2);
+ continue;
+ }
+ if (!MessageQueue.offer(SlaveType.Crn, crnCommandParam.getCrnNo(), new Task(9, crnCommandParam))) {
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommandParam));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
+ Date now = new Date();
+ wrkMast.setWrkSts(3L);
+ wrkMast.setCrnStrTime(now);
+ wrkMast.setModiTime(now);
+ WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,2,now);
+ wrkMastSplitTwin.setWrkSts(1);
+ wrkMastSplitTwin.setWrkStart(wrkMast.getStaNo().toString());
+ wrkMastSplitTwin.setWrkEnd(wrkMast.getLocNo());
+ wrkMastSplitTwin.setStartRow(crnStn.getRow());
+ wrkMastSplitTwin.setStartBay(crnStn.getBay());
+ wrkMastSplitTwin.setStartLev(crnStn.getLev());
+ wrkMastSplitTwin.setEndRow(locMast.getRow1());
+ wrkMastSplitTwin.setEndBay(locMast.getBay1());
+ wrkMastSplitTwin.setEndLev(locMast.getLev1());
+ wrkMastSplitTwin.setWrkType(1);
+ wrkMastSplitTwin.setIoType(1);
+
+ wrkMastOther.setWrkSts(3L);
+ wrkMastOther.setCrnStrTime(now);
+ wrkMastOther.setModiTime(now);
+ WrkMastSplitTwin wrkMastSplitTwinOther = new WrkMastSplitTwin(wrkMastOther,1,now);
+ wrkMastSplitTwinOther.setWrkSts(1);
+ wrkMastSplitTwinOther.setWrkStart(wrkMastOther.getStaNo().toString());
+ wrkMastSplitTwinOther.setWrkEnd(wrkMastOther.getLocNo());
+ wrkMastSplitTwinOther.setStartRow(crnStn.getRow());
+ wrkMastSplitTwinOther.setStartBay(crnStn.getBay());
+ wrkMastSplitTwinOther.setStartLev(crnStn.getLev());
+ wrkMastSplitTwinOther.setEndRow(locMastOther.getRow1());
+ wrkMastSplitTwinOther.setEndBay(locMastOther.getBay1());
+ wrkMastSplitTwinOther.setEndLev(locMastOther.getLev1());
+ wrkMastSplitTwinOther.setWrkType(1);
+ wrkMastSplitTwinOther.setIoType(1);
+
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+
+ if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){
+ log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo());
+ }
+
+ if (wrkMastMapper.updateById(wrkMastOther) == 0) {
+ log.error("Other淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+
+ if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwinOther)==0){
+ log.error("Other鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo());
+ }
+ return;
+ }
+ }
+ }
+ return;
+ }
+ StaProtocol staProtocolOther1 = devpThread.getStation().get(crnStn.getStaNoOther1());
+ if (staProtocolOther1 == null) {
+ continue;
+ } else {
+ staProtocolOther1 = staProtocolOther1.clone();
+ }
+
+ if (staProtocolOther1.isAutoing() && staProtocolOther1.getWorkNo()!=0){
+ return;
+ }
+
+
+ StaProtocol staProtocolOther2 = devpThread.getStation().get(crnStn.getStaNoOther2());
+ if (staProtocolOther2 == null) {
+ continue;
+ } else {
+ staProtocolOther2 = staProtocolOther2.clone();
+ }
+ if (staProtocolOther2.isAutoing() && staProtocolOther2.getWorkNo()!=0){
+ return;
+ }
+ crnStation = 2;
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐�
+ crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX((short)0); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞�
+
+ staProtocol.setWorkNo(wrkMast.getWrkNo());
+ staProtocol.setStaNo(wrkMast.getStaNo());
+
+ devpThread.setPakMk(staProtocol.getSiteId(), false,2325);
+
+ if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(99, crnCommand.getCrnNo()-2))) {
+ log.error("杈撻�佺嚎閿佸畾鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), crnCommand.getCrnNo()-2);
+ continue;
+ }
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(5, crnCommand))) {
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
+ Date now = new Date();
+ wrkMast.setWrkSts(3L);
+ wrkMast.setCrnStrTime(now);
+ wrkMast.setModiTime(now);
+ WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,crnStation,now);
+ wrkMastSplitTwin.setWrkSts(1);
+ wrkMastSplitTwin.setWrkStart(wrkMast.getStaNo().toString());
+ wrkMastSplitTwin.setWrkEnd(wrkMast.getLocNo());
+ wrkMastSplitTwin.setStartRow(crnStn.getRow());
+ wrkMastSplitTwin.setStartBay(crnStn.getBay());
+ wrkMastSplitTwin.setStartLev(crnStn.getLev());
+ wrkMastSplitTwin.setEndRow(locMast.getRow1());
+ wrkMastSplitTwin.setEndBay(locMast.getBay1());
+ wrkMastSplitTwin.setEndLev(locMast.getLev1());
+ wrkMastSplitTwin.setWrkType(1);
+ wrkMastSplitTwin.setIoType(1);
+
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+
+ if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){
+ log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo());
+ }
+ break;
+ }
+ }
+ }
+
+ /**
+ * 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣�
+ * 2024-01-15 鐓滄槦灏忔枡绠�
+ */
+ public synchronized void crnStnToLoc1Single(CrnSlave slave, CrnProtocol crnProtocol) {
+ List<WrkMast> wrkMasts = wrkMastMapper.selectPakInStep12(slave.getId());
+ for(WrkMast wrkMast : wrkMasts){
+ if (wrkMast == null) {
+ continue;
+ }
+
+ CrnSlave.CrnStn crnStn = null;
+ for (CrnSlave.CrnStn crnStn1 : slave.getCrnInStn()){
+ if(crnStn1.getStaNo().equals(wrkMast.getStaNo())){
+ crnStn = crnStn1;
+ break;
+ }
+ }
+ if(Cools.isEmpty(crnStn)){
+ continue;
+ }
+
+ boolean flag = false;
+ boolean flagOther = false;
+ // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ StaProtocol staProtocolOther = devpThread.getStation().get(crnStn.getStaNoOther());
+ if (staProtocolOther == null) {
+ continue;
+ } else {
+ staProtocolOther = staProtocolOther.clone();
+ }
+ // 鏌ヨ绔欑偣璇︾粏淇℃伅
+ BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
+ if (staDetl == null) {
+ log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ continue;
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo().equals(wrkMast.getWrkNo())
+ && staProtocol.isInEnable() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
+ flag = true;
+ }
+
+ if (staProtocol.getWorkNo().equals(staProtocolOther.getWorkNo())){
+ continue;
+ }
+
+ // 鏌ヨ绔欑偣璇︾粏淇℃伅
+ BasDevp staDetlOther = basDevpService.selectById(crnStn.getStaNoOther());
+ if (staDetlOther == null) {
+ log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNoOther());
+ continue;
+ }
+ if (staProtocolOther.isAutoing() && staProtocolOther.isLoading() && staProtocolOther.getWorkNo() > 0 && staProtocolOther.isInEnable()
+ && staDetlOther.getCanining() != null && staDetlOther.getCanining().equals("Y")) {
+ flagOther = true;
+ }
+ if (!flag || !flagOther) {
+ continue;
+ }
+
+ //鏌ヨ鍫嗗灈鏈轰换鍔�
+ WrkMastCrn wrkMastCrn = wrkMastCrnMapper.selectWrkNoOneAndTwo(wrkMast.getWrkNo());
+ if (Cools.isEmpty(wrkMastCrn)){
+ continue;
+ }
+
+ WrkMast wrkMastOther = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNoTwo().intValue());
+
+ // 鑾峰彇搴撲綅淇℃伅
+ LocMast locMast = locMastService.selectById(Utils.getRow(wrkMastCrn.getLocNo())%4>2? wrkMastCrn.getLocNoTwo():wrkMastCrn.getLocNoOne());
+ if (locMast == null) {
+ log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMastCrn.getLocNo());
+ continue;
+ }
+ if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
+ log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", locMast.getLocNo(), locMast.getLocSts());
+ continue;
+ }
+
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+ continue;
+ }
+
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+ continue;
+ }
+
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+ crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰
+ 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))) {
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
+ Date now = new Date();
+ wrkMast.setWrkSts(3L);
+ wrkMast.setCrnStrTime(now);
+ wrkMast.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+
+ // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
+ wrkMastOther.setWrkSts(3L);
+ wrkMastOther.setCrnStrTime(now);
+ wrkMastOther.setModiTime(now);
+ if (wrkMastMapper.updateById(wrkMastOther) == 0) {
+ log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMastOther.getWrkNo());
+ }
+
+ wrkMastCrn.setWrkSts(3L);
+ wrkMastCrn.setModiTime(now);
+ if (wrkMastCrnMapper.updateById(wrkMastCrn) == 0) {
+ log.error("淇敼鍫嗗灈鏈哄伐浣滄。鐘舵�� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMastCrn.getWrkNo());
+ }
+ }
+ }
+
+ }
+
+ /**
+ * 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣�
+ * 2024-01-15 浼樺寲鍙屽伐浣�
+ */
+ public synchronized void crnStnToLoc1(CrnSlave slave, CrnProtocol crnProtocol, Integer crnStation) {
List<WrkMast> wrkMasts = wrkMastMapper.selectPakInStep12(slave.getId());
for(WrkMast wrkMast : wrkMasts){
if (wrkMast == null) {
@@ -1736,8 +2537,8 @@
log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
continue;
}
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
- && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo().equals(wrkMast.getWrkNo())
+ && staProtocol.isInEnable() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
flag = true;
}
if (!flag) {
@@ -1755,10 +2556,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,8 +2627,8 @@
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))) {
- log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
} else {
// 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
Date now = new Date();
@@ -1828,141 +2640,6 @@
}
}
}
-
- }
-
- /**
- * 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣�
- * 2022-12-03 TQS淇敼锛屽厛閬嶅巻鏌ヨ鍚屽彴鍫嗗灈鏈哄伐浣滄。鎵�鏈夌珯鐐瑰叆搴撲换鍔IST锛屾牴鎹伐浣滄。浠诲姟鎺掑簭浼樺厛绾ч珮浜� 鏍规嵁鍫嗗灈鏈哄叆搴撶珯鐐规帓搴�
- */
- public synchronized void crnStnToLoc1Single(CrnSlave slave, CrnProtocol crnProtocol) {
- List<WrkMast> wrkMasts = wrkMastMapper.selectPakInStep12(slave.getId());
- for(WrkMast wrkMast : wrkMasts){
- if (wrkMast == null) {
- continue;
- }
-
- CrnSlave.CrnStn crnStn = null;
- for (CrnSlave.CrnStn crnStn1 : slave.getCrnInStn()){
- if(crnStn1.getStaNo().equals(wrkMast.getStaNo())){
- crnStn = crnStn1;
- break;
- }
- }
- if(Cools.isEmpty(crnStn)){
- continue;
- }
-
- boolean flag = false;
- boolean flagOther = false;
- // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- StaProtocol staProtocolOther = devpThread.getStation().get(crnStn.getStaNoOther());
- if (staProtocolOther == null) {
- continue;
- } else {
- staProtocolOther = staProtocolOther.clone();
- }
- // 鏌ヨ绔欑偣璇︾粏淇℃伅
- BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
- if (staDetl == null) {
- log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
- continue;
- }
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
- && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
- flag = true;
- }
-
- // 鏌ヨ绔欑偣璇︾粏淇℃伅
- BasDevp staDetlOther = basDevpService.selectById(crnStn.getStaNoOther());
- if (staDetlOther == null) {
- log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNoOther());
- continue;
- }
- if (staProtocolOther.isAutoing() && staProtocolOther.isLoading() && staProtocolOther.getWorkNo() > 0 && staProtocolOther.isInEnable()
- && staDetlOther.getCanining() != null && staDetlOther.getCanining().equals("Y")) {
- flagOther = true;
- }
- if (!flag || !flagOther) {
- continue;
- }
-
- //鏌ヨ鍫嗗灈鏈轰换鍔�
- WrkMastCrn wrkMastCrn = wrkMastCrnMapper.selectWrkNoOneAndTwo(wrkMast.getWrkNo());
- if (Cools.isEmpty(wrkMastCrn)){
- continue;
- }
-
- WrkMast wrkMastOther = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNoTwo().intValue());
-
- // 鑾峰彇搴撲綅淇℃伅
- LocMast locMast = locMastService.selectById(Utils.getRow(wrkMastCrn.getLocNo())%4>2? wrkMastCrn.getLocNoTwo():wrkMastCrn.getLocNoOne());
- if (locMast == null) {
- log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMastCrn.getLocNo());
- continue;
- }
- if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
- log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
- continue;
- }
-
- // 鍫嗗灈鏈烘帶鍒惰繃婊�
- if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
- continue;
- }
-
- // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
- if (wrkMastMapper.selectWorking(slave.getId()) != null) {
- continue;
- }
-
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
- crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰
- 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))) {
- log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
- } else {
- // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
- Date now = new Date();
- wrkMast.setWrkSts(3L);
- wrkMast.setCrnStrTime(now);
- wrkMast.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
-
- // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
- wrkMastOther.setWrkSts(3L);
- wrkMastOther.setCrnStrTime(now);
- wrkMastOther.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMastOther) == 0) {
- log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMastOther.getWrkNo());
- }
-
- wrkMastCrn.setWrkSts(3L);
- wrkMastCrn.setModiTime(now);
- if (wrkMastCrnMapper.updateById(wrkMastCrn) == 0) {
- log.error("淇敼鍫嗗灈鏈哄伐浣滄。鐘舵�� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMastCrn.getWrkNo());
- }
- }
- }
-
}
/**
@@ -1986,7 +2663,7 @@
// 鑾峰彇婧愬簱浣嶄俊鎭�
LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) {
- log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
+ log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getSourceLocNo(), sourceSta.getLocSts());
continue;
}
// 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
@@ -2086,7 +2763,7 @@
crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
- log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
} else {
// 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
Date now = new Date();
@@ -2105,11 +2782,16 @@
/**
* 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔�
- * 2022-12-03 TQS淇敼锛屽厛閬嶅巻鏌ヨ宸ヤ綔妗f墍鏈夌珯鐐瑰嚭搴撲换鍔IST锛屾牴鎹伐浣滄。浠诲姟鎺掑簭浼樺厛绾ч珮浜� 鏍规嵁鍫嗗灈鏈哄叆搴撶珯鐐规帓搴�
+ * 2024-01-15 浼樺寲鍙屽伐浣�
*/
- 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 (wrkMastMapper.selectWorking(slave.getId()) != null) {
+ break;
+// return;
+ }
if (wrkMast == null) {
continue;
}
@@ -2132,7 +2814,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;
}
@@ -2140,7 +2822,7 @@
// 鑾峰彇婧愬簱浣嶄俊鎭�
LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) {
- log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
+ log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getSourceLocNo(), sourceSta.getLocSts());
continue;
}
// 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
@@ -2171,9 +2853,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,8 +2933,8 @@
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))) {
- log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
} else {
// 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
Date now = new Date();
@@ -2259,7 +2953,7 @@
/**
* 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔�
- * 2022-12-03 TQS淇敼锛屽厛閬嶅巻鏌ヨ宸ヤ綔妗f墍鏈夌珯鐐瑰嚭搴撲换鍔IST锛屾牴鎹伐浣滄。浠诲姟鎺掑簭浼樺厛绾ч珮浜� 鏍规嵁鍫嗗灈鏈哄叆搴撶珯鐐规帓搴�
+ * 2024-01-15 鐓滄槦灏忔枡绠�
*/
public synchronized void locToCrnStn1Single(CrnSlave slave, CrnProtocol crnProtocol) {
List<WrkMastCrn> wrkMastCrnList = wrkMastCrnMapper.selectList(new EntityWrapper<WrkMastCrn>()
@@ -2288,7 +2982,7 @@
// 鑾峰彇婧愬簱浣嶄俊鎭�
LocMast sourceSta = locMastService.selectById(wrkMastCrn.getSourceLocNo());
if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) {
- log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMastCrn.getLocNo(), sourceSta.getLocSts());
+ log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMastCrn.getSourceLocNo(), sourceSta.getLocSts());
continue;
}
// 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
@@ -2360,7 +3054,7 @@
crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
if (!MessageQueue.offer(SlaveType.Crn, wrkMastCrn.getCrnNo(), new Task(2, crnCommand))) {
- log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMastCrn.getCrnNo(), JSON.toJSON(crnCommand));
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMastCrn.getCrnNo(), JSON.toJSONString(crnCommand));
} else {
// 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
Date now = new Date();
@@ -2394,145 +3088,261 @@
}
/**
- * 鏌ユ壘宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級,涓擱GV鍏ュ簱鎺ラ┏绔欑鍚堢殑鐨勫叆搴撳伐浣滄。锛屾彁鍙栧嚭鏈�澶�2绗�
- * @param slave
- * @return
+ * 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔�
+ * 2024-06-05 鐓滄槦澶ф枡绠�
*/
- public synchronized List<WrkMast> getRgvInTask(RgvSlave slave){
- List<WrkMast> wrkMastTask = new ArrayList<>();
- List<Integer> staNos = new ArrayList<>();
- for (RgvSlave.RgvStn rgvStn : slave.getRgvInSStn()) {
- staNos.add(rgvStn.getStaNo());
- }
- if(staNos.size() < 1){
- return null;
- }
- List<WrkMast> wrkMasts = wrkMastMapper.selectRgvInStep1(slave.getId(), staNos);
- for(WrkMast wrkMast : wrkMasts){
- Integer plcId = 0;
- for (RgvSlave.RgvStn rgvStn : slave.getRgvInSStn()) {
- if(rgvStn.getStaNo() == wrkMast.getRgvSstaNo()){
- plcId = rgvStn.getDevpPlcId();
+ public synchronized void locToCrnStn1Big(CrnSlave slave, CrnProtocol crnProtocol, Integer crnStation) {
+ List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep12(slave.getId());
+ Integer crnStation1 = crnStation;
+ for (WrkMast wrkMast : wrkMasts) {
+ if (wrkMast == null) {
+ continue;
+ }
+
+ crnStation = crnStation1;
+
+ CrnSlave.CrnStn crnStn = null;
+ for (CrnSlave.CrnStn crnStn1 : slave.getCrnOutStn()){
+ if(crnStn1.getStaNo().equals(wrkMast.getSourceStaNo())){
+ crnStn = crnStn1;
break;
}
}
-
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, plcId);
- //鍒ゆ柇RGV鍏ュ簱婧愮珯鐐癸紝鑷姩銆佹湁鐗╋紝鏈変换鍔″彿锛屽彲鍑�
- boolean flag1 = false;
- StaProtocol staProtocol1 = devpThread.getStation().get(wrkMast.getRgvSstaNo());
- if (staProtocol1 == null) {
- continue;
- } else {
- staProtocol1 = staProtocol1.clone();
- }
- // 鏌ヨ绔欑偣璇︾粏淇℃伅
- BasDevp staDetl1 = basDevpService.selectById(wrkMast.getRgvSstaNo());
- if (staDetl1 == null) {
- log.error("RGV鍏ュ簱 ===>> 杈撻�佹満婧愮珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", wrkMast.getRgvSstaNo());
+ if(Cools.isEmpty(crnStn)){
continue;
}
- if (staProtocol1.isAutoing() && staProtocol1.isLoading() && staProtocol1.getWorkNo().intValue() == wrkMast.getWrkNo()
- && staProtocol1.isOutEnable() && staDetl1.getOutEnable() != null && staDetl1.getOutEnable().equals("Y")) {
- flag1 = true;
- }
- //鍒ゆ柇RGV鍏ュ簱鐩爣绔欑偣锛岃嚜鍔ㄣ�佹棤鐗╋紝娌℃湁浠诲姟鍙凤紝鍙叆
- boolean flag2 = false;
- StaProtocol staProtocol2 = devpThread.getStation().get(wrkMast.getRgvDstaNo());
- if (staProtocol2 == null) {
- continue;
- } else {
- staProtocol2 = staProtocol2.clone();
- }
- // 鏌ヨ绔欑偣璇︾粏淇℃伅
- BasDevp staDetl2 = basDevpService.selectById(wrkMast.getRgvSstaNo());
- if (staDetl2 == null) {
- log.error("RGV鍏ュ簱 ===>> 杈撻�佹満婧愮珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", wrkMast.getRgvSstaNo());
- continue;
- }
- if (staProtocol2.isAutoing() && staProtocol2.isLoading() && staProtocol2.getWorkNo().intValue() == wrkMast.getWrkNo()
- && staProtocol2.isInEnable() && staDetl2.getCanining() != null && staDetl2.getCanining().equals("Y")) {
- flag2 = true;
- }
-
- if(flag1 && flag2){
- wrkMastTask.add(wrkMast);
- if(wrkMastTask.size() >= 2) break;
- }
- }
- return wrkMastTask;
- }
-
- /**
- * 鏌ユ壘宸ヤ綔鐘舵�佷负14锛堝嚭搴撳畬鎴愶級,涓擱GV鍑哄簱鎺ラ┏绔欑鍚堢殑鐨勫嚭搴撳伐浣滄。锛屾彁鍙栧嚭鏈�澶�2绗�
- * @param slave
- * @return
- */
- public synchronized List<WrkMast> getRgvOutTask(RgvSlave slave){
- List<WrkMast> wrkMastTask = new ArrayList<>();
- List<Integer> staNos = new ArrayList<>();
- for (RgvSlave.RgvStn rgvStn : slave.getRgvOutSStn()) {
- staNos.add(rgvStn.getStaNo());
- }
- if(staNos.size() < 1){
- return null;
- }
- List<WrkMast> wrkMasts = wrkMastMapper.selectRgvOutStep1(slave.getId(), staNos);
- for(WrkMast wrkMast : wrkMasts){
- Integer plcId = 0;
- for (RgvSlave.RgvStn rgvStn : slave.getRgvOutSStn()) {
- if(rgvStn.getStaNo() == wrkMast.getRgvSstaNo()){
- plcId = rgvStn.getDevpPlcId();
- break;
+ if (wrkMast.getStaNo()>309){
+ int wrkCount = wrkMastMapper.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 110).gt("sta_no", 309).lt("sta_no", 314).gt("wrk_sts",11L));
+ if (wrkCount>=12){
+ continue;
+ }
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocolEnt = devpThread.getStation().get(212);
+ if (staProtocolEnt.isLoading() || staProtocolEnt.getWorkNo()!=0){
+ continue;
}
}
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, plcId);
- //鍒ゆ柇RGV鍑哄簱婧愮珯鐐癸紝鑷姩銆佹湁鐗╋紝鏈変换鍔″彿锛屽彲鍑�
- boolean flag1 = false;
- StaProtocol staProtocol1 = devpThread.getStation().get(wrkMast.getRgvSstaNo());
- if (staProtocol1 == null) {
+ // 宸ヤ綔妗g姸鎬佸垽鏂�
+ if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) {
+ log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType());
continue;
+ }
+// //閫�搴撴ā寮忚烦杩�118銆�119鍑哄簱浠诲姟
+// if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){
+// RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign");
+// if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
+// continue;
+// }
+// }
+ // 鑾峰彇婧愬簱浣嶄俊鎭�
+ LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
+ if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) {
+ log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getSourceLocNo(), sourceSta.getLocSts());
+ continue;
+ }
+ // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+ if (staProtocol == null) {
+ break;
+// continue;
} else {
- staProtocol1 = staProtocol1.clone();
- }
- // 鏌ヨ绔欑偣璇︾粏淇℃伅
- BasDevp staDetl1 = basDevpService.selectById(wrkMast.getRgvSstaNo());
- if (staDetl1 == null) {
- log.error("RGV鍑哄簱 ===>> 杈撻�佹満婧愮珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", wrkMast.getRgvSstaNo());
- continue;
- }
- if (staProtocol1.isAutoing() && staProtocol1.isLoading() && staProtocol1.getWorkNo().intValue() == wrkMast.getWrkNo()
- && staProtocol1.isOutEnable() && staDetl1.getOutEnable() != null && staDetl1.getOutEnable().equals("Y")) {
- flag1 = true;
+ staProtocol = staProtocol.clone();
}
- //鍒ゆ柇RGV鍑哄簱鐩爣绔欑偣锛岃嚜鍔ㄣ�佹棤鐗╋紝娌℃湁浠诲姟鍙凤紝鍙叆
- boolean flag2 = false;
- StaProtocol staProtocol2 = devpThread.getStation().get(wrkMast.getRgvDstaNo());
- if (staProtocol2 == null) {
+// // 鍏ュ嚭搴撴ā寮忓垽鏂�
+// if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
+ if (wrkMast.getStaNo() == 204 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
continue;
- } else {
- staProtocol2 = staProtocol2.clone();
- }
- // 鏌ヨ绔欑偣璇︾粏淇℃伅
- BasDevp staDetl2 = basDevpService.selectById(wrkMast.getRgvSstaNo());
- if (staDetl2 == null) {
- log.error("RGV鍑哄簱 ===>> 杈撻�佹満婧愮珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", wrkMast.getRgvSstaNo());
- continue;
- }
- if (staProtocol2.isAutoing() && staProtocol2.isLoading() && staProtocol2.getWorkNo().intValue() == wrkMast.getWrkNo()
- && staProtocol2.isInEnable() && staDetl2.getCanining() != null && staDetl2.getCanining().equals("Y")) {
- flag2 = true;
}
- if(flag1 && flag2){
- wrkMastTask.add(wrkMast);
- if(wrkMastTask.size() >= 2) break;
+ // 鏌ヨ绔欑偣璇︾粏淇℃伅
+ BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
+ if (staDetl == null) {
+ log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ break;
+// continue;
+ }
+ // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
+ if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+ && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+
+
+ //宸ヤ綅
+ if (crnStation == 1){
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+// continue;
+ break;
+ }
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
+// continue;
+ break;
+ }
+ }else if(crnStation == 2){
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
+// continue;
+ break;
+ }
+ }else {
+ break;
+ }
+
+ if (sourceSta.getBay1().shortValue()==81){
+ crnStation = 2;
+ }
+
+ // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
+ if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
+ String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
+ LocMast shallowLoc = locMastService.selectById(shallowLocNo);
+ // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
+ if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
+ WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+ if (null == waitWrkMast) {
+ log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
+ } else {
+ if (waitWrkMast.getWrkSts() == 11) {
+ waitWrkMast.setIoPri(15D);
+ waitWrkMast.setModiTime(new Date());
+ if (wrkMastMapper.updateById(waitWrkMast) == 0) {
+ log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+ }
+ continue;
+ } else {
+
+ }
+ }
+ } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
+// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+ //2022-08-16 modify,涓嶆牴鎹畊pdmk鏍囪绉诲簱浠诲姟(瀹规槗琚彇娑堝鑷村牭濉�)锛屾煡璇㈠伐浣滄。鏄惁瀛樺湪浠诲姟
+ WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
+ // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
+// if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())
+// || Cools.isEmpty(waitWrkMast)) {
+ if (Cools.isEmpty(waitWrkMast)) {
+ wrkMast.setUpdMk("Y");
+ wrkMastMapper.updateById(wrkMast);
+ // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
+ moveLocForDeepLoc(slave, shallowLoc);
+ }
+ log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo);
+ continue;
+ } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
+ WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
+ if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
+ continue;
+ }
+ }
+ }
+
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+ break;
+// return;
+ }
+
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (wrkMastSplitTwinMapper.selectCount(new EntityWrapper<WrkMastSplitTwin>().eq("wrk_no", wrkMast.getWrkNo().longValue())) != 0) {
+ break;
+// return;
+ }
+
+ if (true){
+ // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐�
+ crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX((short)0); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞�
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
+ } else {
+ // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+ Date now = new Date();
+ wrkMast.setWrkSts(12L);
+ wrkMast.setCrnStrTime(now);
+ wrkMast.setModiTime(now);
+ WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,crnStation,now);
+ wrkMastSplitTwin.setWrkSts(1);
+ wrkMastSplitTwin.setWrkStart(wrkMast.getSourceLocNo());
+ wrkMastSplitTwin.setWrkEnd(wrkMast.getSourceStaNo().toString());
+ wrkMastSplitTwin.setStartRow(sourceSta.getRow1());
+ wrkMastSplitTwin.setStartBay(sourceSta.getBay1());
+ wrkMastSplitTwin.setStartLev(sourceSta.getLev1());
+ wrkMastSplitTwin.setEndRow(crnStn.getRow());
+ wrkMastSplitTwin.setEndBay(crnStn.getBay());
+ wrkMastSplitTwin.setEndLev(crnStn.getLev());
+ wrkMastSplitTwin.setWrkType(1);
+ wrkMastSplitTwin.setIoType(2);
+ if (wrkMastMapper.updateById(wrkMast) == 0) {
+ log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ }
+
+ if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){
+ log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo());
+ }
+ break;
+ }
+ }
+// else {
+// // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+// CrnCommandParam crnCommandParam = new CrnCommandParam();
+// CrnCommand crnCommand = new CrnCommand();
+// crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+// crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+// crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐�
+// crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓
+// crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪
+// crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰
+// crnCommand.setDestinationPosX((short)0); // 鐩爣搴撲綅鎺�
+// crnCommand.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒�
+// crnCommand.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞�
+// if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
+// log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
+// } else {
+// // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+// Date now = new Date();
+// wrkMast.setWrkSts(12L);
+// wrkMast.setCrnStrTime(now);
+// wrkMast.setModiTime(now);
+// WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,crnStation,now);
+// wrkMastSplitTwin.setWrkSts(1);
+// wrkMastSplitTwin.setWrkStart(wrkMast.getSourceLocNo());
+// wrkMastSplitTwin.setWrkEnd(wrkMast.getSourceStaNo().toString());
+// wrkMastSplitTwin.setStartRow(sourceSta.getRow1());
+// wrkMastSplitTwin.setStartBay(sourceSta.getBay1());
+// wrkMastSplitTwin.setStartLev(sourceSta.getLev1());
+// wrkMastSplitTwin.setEndRow(crnStn.getRow());
+// wrkMastSplitTwin.setEndBay(crnStn.getBay());
+// wrkMastSplitTwin.setEndLev(crnStn.getLev());
+// wrkMastSplitTwin.setWrkType(1);
+// wrkMastSplitTwin.setIoType(2);
+// if (wrkMastMapper.updateById(wrkMast) == 0) {
+// log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+// }
+//
+// if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){
+// log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo());
+// }
+// break;
+// }
+// }
}
}
- return wrkMastTask;
+
}
/**
@@ -2589,7 +3399,7 @@
crnCommand.setDestinationPosY(sta.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(sta.getLev1().shortValue()); // 鐩爣搴撲綅灞�
if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
- log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand));
} else {
// 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
Date now = new Date();
@@ -2606,44 +3416,70 @@
/**
* 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
*/
+
public synchronized void storeFinished() {
for (CrnSlave crn : slaveProperties.getCrn()) {
+ switch (crn.getId()){
+ case 1:
+ case 2:
+ storeFinishedExecuteOne(crn);
+ continue;
+ case 3:
+ case 4:
+ case 5:
+ storeFinishedExecuteTwo(crn);
+ continue;
+ case 6:
+ case 7:
+ storeFinishedExecuteThree(crn);
+ continue;
+ default:
+ continue;
+ }
+ }
+ }
+
+ public synchronized boolean storeFinishedExecuteOne(CrnSlave crn) {
+ try{
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
CrnProtocol crnProtocol = crnThread.getCrnProtocol();
if (crnProtocol == null) {
- continue;
+ return false;
+ }
+ if (crnProtocol.modeType != CrnModeType.AUTO){
+ return false;
}
// 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
if (crnProtocol.getTaskNo() == 32222) {
// 鍫嗗灈鏈哄浣�
crnThread.setResetFlag(true);
- } else if (crnProtocol.getCrnNo()<3) {
+ } else {
// 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
WrkMastCrn wrkMastCrn = wrkMastCrnMapper.selectWrkNoOneAndTwo(crnProtocol.getTaskNo().intValue());
if (wrkMastCrn == null) {
log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
- continue;
+ return false;
}
// 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
if (wrkMast == null) {
log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
- continue;
+ return false;
}
// 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
WrkMast wrkMastOther = wrkMastMapper.selectPakInStep3(wrkMastCrn.getWrkNoTwo().intValue());
if (wrkMastOther == null) {
log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
- continue;
+ return false;
}
// 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚
if (wrkMastCrn.getWrkSts() == 3 || (wrkMastCrn.getWrkSts() == 12 && wrkMastCrn.getIoType() == 11)) {
wrkMastCrn.setWrkSts(4L);
} else {
- continue;
+ return false;
}
Date now = new Date();
wrkMastCrn.setModiTime(now);
@@ -2659,19 +3495,136 @@
if (wrkMastCrnMapper.updateById(wrkMastCrn) > 0 && wrkMastMapper.updateById(wrkMast) > 0 && wrkMastMapper.updateById(wrkMastOther) > 0 ) {
// 鍫嗗灈鏈哄浣�
crnThread.setResetFlag(true);
+ return true;
}
+ }
+ }
+ }catch (Exception e){
+ log.error("鍫嗗灈鏈哄伐浣嶄竴瀹屾垚绛夊緟纭寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crn.getId(),e.getMessage(),1);
+ }
+ return false;
+ }
+
+ public synchronized boolean storeFinishedExecuteTwo(CrnSlave crn) {
+ try{
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) {
+ return false;
+ }
+ if (crnProtocol.modeType != CrnModeType.AUTO){
+ return false;
+ }
+ // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
+ if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
+ if (crnProtocol.getTaskNo() == 32222) {
+ // 鍫嗗灈鏈哄浣�
+ crnThread.setResetFlag(true);
+ return true;
} else {
// 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
if (wrkMast == null) {
log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
- continue;
+ return false;
}
// 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚
if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
wrkMast.setWrkSts(4L);
} else {
- continue;
+ return false;
+ }
+ Date now = new Date();
+ wrkMast.setCrnEndTime(now);
+ wrkMast.setModiTime(now);
+ // 鍫嗗灈鏈哄浣�
+ List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 1, null, 2, 3);
+ if (wrkMastSplitTwinList.size()!=1){
+ log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",1,2,3);
+ }
+ for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
+ if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
+ log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={},宸ヤ綔浠诲姟鍙�={},鎵ц浠诲姟鍙�={}",crn.getId(),"宸ヤ綔浠诲姟涓庢墽琛屼换鍔′笉鍖归厤",1,2,3,wrkMast.getWrkNo(),wrkMastSplitTwin.getWrkNo());
+ return false;
+ }
+ wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkSts()+1);
+ wrkMastSplitTwin.setUpdateTime(now);
+ // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+ if (wrkMastMapper.updateById(wrkMast) > 0) {
+ // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+ if (wrkMastSplitTwinService.updateById(wrkMastSplitTwin)) {
+ // 鍫嗗灈鏈哄浣�
+ crnThread.setResetFlag(true);
+ return true;
+ }else {
+ log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"淇敼鎵ц妗f澶辫触",1,2,3);
+ }
+ }else {
+ log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"淇敼宸ヤ綔妗f澶辫触锛�",1,2,3);
+ }
+ }
+ return false;
+ }
+ }else if (crnProtocol.statusType == CrnStatusType.SEPARATE_WAITING && crnProtocol.getTaskNo() != 0 && crnProtocol.getLoaded()==1){
+ if (crnProtocol.getTaskNo() == 32222) {
+ // 鍫嗗灈鏈哄浣�
+ crnThread.setResetFlag(true);
+ return true;
+ } else {
+ List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 1, null, 1, 1);
+ if (wrkMastSplitTwinList.size()!=1){
+ log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",1,1,1);
+ }
+ for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
+ Date now = new Date();
+ wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkSts()+1);
+ wrkMastSplitTwin.setUpdateTime(now);
+ // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+ if (wrkMastSplitTwinService.updateById(wrkMastSplitTwin)) {
+ // 鍫嗗灈鏈哄浣�
+ crnThread.setResetFlag(true);
+ return true;
+ }else {
+ log.error("鍫嗗灈鏈烘斁璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"淇敼鎵ц妗f澶辫触",1,2,3);
+ }
+ }
+ }
+ }
+ }catch (Exception e){
+ log.error("鍫嗗灈鏈哄伐浣嶄竴瀹屾垚绛夊緟纭寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crn.getId(),e.getMessage(),1);
+ }
+ return false;
+ }
+
+ public synchronized boolean storeFinishedExecuteThree(CrnSlave crn) {
+ try{
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) {
+ return false;
+ }
+ if (crnProtocol.modeType != CrnModeType.AUTO){
+ return false;
+ }
+ // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
+ if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
+ if (crnProtocol.getTaskNo() == 32222) {
+ // 鍫嗗灈鏈哄浣�
+ crnThread.setResetFlag(true);
+ } else {
+ // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
+ WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue());
+ if (wrkMast == null) {
+ log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
+ return false;
+ }
+ // 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚
+ if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
+ wrkMast.setWrkSts(4L);
+ } else {
+ return false;
}
Date now = new Date();
wrkMast.setCrnEndTime(now);
@@ -2680,11 +3633,121 @@
if (wrkMastMapper.updateById(wrkMast) > 0) {
// 鍫嗗灈鏈哄浣�
crnThread.setResetFlag(true);
+ return true;
}
}
+ }
+ }catch (Exception e){
+ log.error("鍫嗗灈鏈哄伐浣嶄竴瀹屾垚绛夊緟纭寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crn.getId(),e.getMessage(),1);
+ }
+ return false;
+ }
+ /**
+ * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
+ */
+ public synchronized void storeFinishedTwo() {
+ for (CrnSlave crn : slaveProperties.getCrn()) {
+ switch (crn.getId()){
+ case 3:
+ case 4:
+ case 5:
+ storeFinishedTwoExecute(crn);
+ continue;
+ default:
+ continue;
}
}
+ }
+
+ public synchronized boolean storeFinishedTwoExecute(CrnSlave crn) {
+ try{
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) {
+ return false;
+ }
+ if (crnProtocol.modeType != CrnModeType.AUTO){
+ return false;
+ }
+ // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
+ if (crnProtocol.statusTypeTwo == CrnStatusType.WAITING && crnProtocol.getTaskNoTwo() != 0) {
+ if (crnProtocol.getTaskNoTwo() == 32222) {
+ // 鍫嗗灈鏈哄浣�
+ crnThread.setResetFlagTwo(true);
+ } else {
+ // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
+ WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNoTwo().intValue());
+ if (wrkMast == null) {
+ log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNoTwo());
+ return false;
+ }
+ // 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚
+ if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) {
+ wrkMast.setWrkSts(4L);
+ } else {
+ return false;
+ }
+ Date now = new Date();
+ wrkMast.setCrnEndTime(now);
+ wrkMast.setModiTime(now);
+ // 鍫嗗灈鏈哄浣�
+ List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 2, null, 2, 3);
+ if (wrkMastSplitTwinList.size()!=1){
+ log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",2,2,3);
+ }
+ for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
+ if (wrkMastSplitTwin.getWrkNo()!=wrkMast.getWrkNo().longValue()){
+ log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={},宸ヤ綔浠诲姟鍙�={},鎵ц浠诲姟鍙�={}",crn.getId(),"宸ヤ綔浠诲姟涓庢墽琛屼换鍔′笉鍖归厤",1,2,3,wrkMast.getWrkNo(),wrkMastSplitTwin.getWrkNo());
+ return false;
+ }
+ wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkSts()+1);
+ wrkMastSplitTwin.setUpdateTime(now);
+ // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+ if (wrkMastMapper.updateById(wrkMast) > 0) {
+ // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+ if (wrkMastSplitTwinService.updateById(wrkMastSplitTwin)) {
+ // 鍫嗗灈鏈哄浣�
+ crnThread.setResetFlagTwo(true);
+ return true;
+ }else {
+ log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"淇敼鎵ц妗f澶辫触",2,2,3);
+ }
+ }else {
+ log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"淇敼宸ヤ綔妗f澶辫触锛�",2,2,3);
+ }
+ }
+ return false;
+ }
+ }else if (crnProtocol.statusTypeTwo == CrnStatusType.SEPARATE_WAITING && crnProtocol.getTaskNoTwo() != 0 && crnProtocol.getLoadedTwo()==1){
+ if (crnProtocol.getTaskNoTwo() == 32222) {
+ // 鍫嗗灈鏈哄浣�
+ crnThread.setResetFlagTwo(true);
+ } else {
+ List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinMapper.getWrkMastSplitTwin(crn.getId(), 2, null, 1, 1);
+ if (wrkMastSplitTwinList.size()!=1){
+ log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"涓嶅瓨鍦ㄦ垨鑰呭瓨鍦ㄥ绗斿彲鎵ц浣滀笟锛岃鍒犻櫎鏃犳晥浣滀笟锛侊紒锛�",2,1,1);
+ }
+ for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
+ Date now = new Date();
+ wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkSts()+1);
+ wrkMastSplitTwin.setUpdateTime(now);
+ // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+ if (wrkMastSplitTwinService.updateById(wrkMastSplitTwin)) {
+ // 鍫嗗灈鏈哄浣�
+ crnThread.setResetFlagTwo(true);
+ return true;
+ }else {
+ log.error("鍫嗗灈鏈哄彇璐у畬鎴愮瓑寰呯‘璁ゅ紓甯�,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={},宸ヤ綔鐘舵��={}",crn.getId(),"淇敼鎵ц妗f澶辫触",2,2,3);
+ }
+ }
+ }
+ }
+ }catch (Exception e){
+ log.error("鍫嗗灈鏈哄伐浣嶄簩瀹屾垚绛夊緟纭寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crn.getId(),e.getMessage(),2);
+ }
+ return false;
}
/**
@@ -2955,7 +4018,61 @@
} else {
staProtocol = staProtocol.clone();
}
+ if (emptyInSta.getStaNo()==607 && staProtocol.getStaNo()==0 && staProtocol.getWorkNo()==0
+ && staProtocol.isLoading() && staProtocol.isAutoing() && staProtocol.isInEnable()){
+ String barcode = staProtocol.getBarcode();
+ if (!Cools.isEmpty(barcode)) {
+// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+ if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
+ continue;
+ }
+ } else {
+ continue;
+ }
+ try {
+ BasDevp basDevp = basDevpService.selectById(emptyInSta.getStaNo());
+ if (basDevp.getReportSign()==0){
+ WrkMast wrkMast = wrkMastMapper.selectByBarcodeTwo(barcode);
+ if (!Cools.isEmpty(wrkMast)){
+ continue;
+ }
+ LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+ SearchLocParam param = new SearchLocParam();
+ param.setIoType(10);
+ param.setSourceStaNo(emptyInSta.getStaNo());
+ param.setLocType1(locTypeDto.getLocType1());
+ param.setBarcode(barcode);
+ String response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/pakin/loc/v1")
+ .setJson(JSON.toJSONString(param))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ basDevp.setReportSign(1);
+ basDevpService.updateById(basDevp);
+// StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+//
+// // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+// staProtocol.setWorkNo(dto.getWorkNo());
+// staProtocol.setStaNo(607);
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(5, staProtocol));
+// if (!result) {
+// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+// }
+ } else {
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ return;
+ } else
// 绔欑偣鏉′欢鍒ゆ柇
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
&& staProtocol.isEmptyMk() && ((staProtocol.getWorkNo() > 32222 && staProtocol.getWorkNo() <= 63333) || staProtocol.getWorkNo()==0) && staProtocol.isPakMk()) {
@@ -2980,7 +4097,7 @@
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
staProtocol.setWorkNo(dto.getWorkNo());
staProtocol.setStaNo(dto.getStaNo());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
+ devpThread.setPakMk(staProtocol.getSiteId(), false,4087);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (!result) {
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
@@ -3016,7 +4133,13 @@
// 绔欑偣鏉′欢鍒ゆ柇
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
&& staProtocol.isEmptyMk() && ((staProtocol.getWorkNo() > 32222 && staProtocol.getWorkNo() <= 63333) || staProtocol.getWorkNo()==0) && staProtocol.isPakMk()) {
-
+ //鍥炲簱鏍囪
+ if (emptyInSta.getStaNo()==126 || emptyInSta.getStaNo()==131){
+ RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("sign"+emptyInSta.getStaNo());
+ if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()!=1){
+ continue;
+ }
+ }
try {
LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
@@ -3037,13 +4160,76 @@
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
staProtocol.setWorkNo(dto.getWorkNo());
staProtocol.setStaNo(dto.getStaNo());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
+ devpThread.setPakMk(staProtocol.getSiteId(), false,4150);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (!result) {
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
}
} else {
log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/pair/station/single/loc/v1", JSON.toJSONString(param), response);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
+ */
+ public synchronized void storeEmptyPltLarge() {
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ // 閬嶅巻绌烘澘鍏ュ簱鍙�
+ for (DevpSlave.Sta emptyInSta : devp.getEmptyInLargeSta()) {
+ // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+ // 绔欑偣鏉′欢鍒ゆ柇
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
+ && staProtocol.isEmptyMk() && ((staProtocol.getWorkNo() > 32222 && staProtocol.getWorkNo() <= 63333) || staProtocol.getWorkNo()==0) && staProtocol.isPakMk()) {
+ //鍥炲簱鏍囪
+ if (emptyInSta.getStaNo()==310 || emptyInSta.getStaNo()==312){
+ RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("sign"+emptyInSta.getStaNo());
+ if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()!=1){
+ continue;
+ }
+ }
+ try {
+ LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+
+ SearchLocParam param = new SearchLocParam();
+ param.setIoType(10);
+ param.setSourceStaNo(emptyInSta.getStaNo());
+ param.setLocType1(locTypeDto.getLocType1());
+ String response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/pakin/loc/v1")
+ .setJson(JSON.toJSONString(param))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+
+ // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+ staProtocol.setWorkNo(dto.getWorkNo());
+ staProtocol.setStaNo(dto.getStaNo());
+ devpThread.setPakMk(staProtocol.getSiteId(), false,4213);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (!result) {
+ throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+ }
+ } else {
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
}
} catch (Exception e) {
e.printStackTrace();
@@ -3096,7 +4282,7 @@
*/
public synchronized void storeEmptyPlt3() {
try{
- RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign();
+ RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign");
if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
return;
}
@@ -3527,27 +4713,6 @@
}
}
-// /**
-// * 鍒濆鍖朢GV鍦板浘
-// */
-// public synchronized void initRgvMap() {
-// Object data = redisUtil.get("rgv_map");
-// if (data == null) {
-// //閲嶆柊鑾峰彇鍏ㄨ矾寰勫湴鍥�
-// BasRgvPath basRgvPath = basRgvPathService.selectByRgvNo(0);//鑾峰彇榛樿璺緞
-// if (basRgvPath != null) {
-// ArrayList<RgvNode> rgvNodes = new ArrayList<>();
-// List<Integer> rgvPath = JSON.parseArray(basRgvPath.getPath(), Integer.class);
-// for (Integer integer : rgvPath) {
-// RgvNode rgvNode = new RgvNode(integer);
-// rgvNodes.add(rgvNode);
-// }
-// //灏嗘暟鎹簱鍦板浘鏁版嵁瀛樺叆redis
-// redisUtil.set("rgv_map", JSON.toJSONString(rgvNodes));
-// }
-// }
-// }
-
/**
* 鍫嗗灈鏈烘紨绀� ===>> 搴撲綅绉昏浆
*/
@@ -3650,1541 +4815,4043 @@
}
/**
- * 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵��
+ * 鍏ュ嚭搴� ===>> 灏忚溅浣滀笟涓嬪彂
*/
- public synchronized void crnIoWrkMast() {
+ public synchronized boolean steIoExecute(Integer sign) {
+ return false;
+ }
+ /**
+ * 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
+ */
+ public synchronized void crnIoExecuteTwoExecute(Integer i) {
for (CrnSlave crn : slaveProperties.getCrn()) {
+ try{
+ switch (crn.getId()){
+ case 3:
+ case 4:
+ case 5:
+ crnWrkMastSplitTwinExecute(crn,i);
+ continue;
+ default:
+ continue;
+ }
+ }catch (Exception e){
+ log.error("鍫嗗灈鏈哄嚭鍏ュ簱鎵ц浠诲姟涓嬪彂鎶ラ敊,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={}",crn.getId(),e.getMessage());
+ }
+ }
+ }
+
+
+ public synchronized boolean crnWrkMastSplitTwinExecute(CrnSlave crn,Integer i){
+ try{
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
CrnProtocol crnProtocol = crnThread.getCrnProtocol();
if (crnProtocol == null) {
+ return false;
+ }
+ BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
+ if (basCrnp == null) {
+ log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+ return false;
+ }
+
+
+ int[] sign = new int[]{0,0};
+ // 鍙湁褰撳爢鍨涙満鑷姩鏃舵墠缁х画鎵ц
+ if (crnProtocol.getModeType() == CrnModeType.AUTO) {
+ //鍙�
+ if (crnProtocol.getStatusType() == CrnStatusType.SEPARATE_IDLE
+ && crnProtocol.getTaskNo() == 0
+ && crnProtocol.getLoaded() == 1
+ && crnProtocol.getForkPos() == 0) {
+ if (crnProtocol.getStatusTypeTwo() == CrnStatusType.SEPARATE_IDLE
+ && crnProtocol.getTaskNoTwo() == 0
+ && crnProtocol.getLoadedTwo() == 1
+ && crnProtocol.getForkPosTwo() == 0){
+ List<WrkMastSplitTwin> wrkMastSplitTwinList1 = wrkMastSplitTwinService.getWrkMastSplitTwin(crn.getId(),1,2,2,0);
+ List<WrkMastSplitTwin> wrkMastSplitTwinList2 = wrkMastSplitTwinService.getWrkMastSplitTwin(crn.getId(),2,2,2,0);
+ if (!wrkMastSplitTwinList1.isEmpty() && !wrkMastSplitTwinList2.isEmpty() ){
+ if (wrkMastSplitTwinList1.size()>1 || wrkMastSplitTwinList2.size()>1 ){
+ log.error("Pair鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={}",crn.getId(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",sign[1],sign[0]);
+ return false;
+ }
+ WrkMastSplitTwin wrkMastSplitTwin1 = wrkMastSplitTwinList1.get(0);
+ WrkMastSplitTwin wrkMastSplitTwin2 = wrkMastSplitTwinList2.get(0);
+ boolean ack = crnExecutePutFullPair(crn.getId(), wrkMastSplitTwin1,wrkMastSplitTwin2, sign[1]);
+ if (ack){
+ wrkMastSplitTwin1.setWrkSts(wrkMastSplitTwin1.getWrkType()==1? 1:3);
+ wrkMastSplitTwinService.updateById(wrkMastSplitTwin1);
+ wrkMastSplitTwin2.setWrkSts(wrkMastSplitTwin2.getWrkType()==1? 1:3);
+ wrkMastSplitTwinService.updateById(wrkMastSplitTwin2);
+ }else {
+ log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂鎶ラ敊,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={}",crn.getId(),"涓嬪彂浠诲姟杩斿洖鍊间负锛�"+ack);
+ }
+
+ return false;
+ }
+
+ }
+ }
+ // 鍙湁褰撳爢鍨涙満宸ヤ綅1鍙栬揣鎴栬�呮湁鐗� 骞朵笖 宸ヤ綅2鏃犱换鍔℃椂鎵嶇户缁墽琛�
+ switch (i){
+ case 1:
+ if (crnProtocol.getStatusType() == CrnStatusType.IDLE
+ && crnProtocol.getTaskNo() == 0
+ && crnProtocol.getLoaded() == 0
+ && crnProtocol.getForkPos() == 0) {
+ sign[0] = 1;
+ sign[1] = 1;
+ }
+ break;
+ case 2:
+ if (crnProtocol.getStatusType() == CrnStatusType.SEPARATE_IDLE
+ && crnProtocol.getTaskNo() == 0
+ && crnProtocol.getLoaded() == 1
+ && crnProtocol.getForkPos() == 0) {
+ sign[0] = 2;
+ sign[1] = 1;
+ }
+ break;
+ case 3:
+ if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
+ && crnProtocol.getTaskNoTwo() == 0
+ && crnProtocol.getLoadedTwo() == 0
+ && crnProtocol.getForkPosTwo() == 0){
+ sign[0] = 1;
+ sign[1] = 2;
+ }
+ break;
+ case 4:
+ if (crnProtocol.getStatusTypeTwo() == CrnStatusType.SEPARATE_IDLE
+ && crnProtocol.getTaskNoTwo() == 0
+ && crnProtocol.getLoadedTwo() == 1
+ && crnProtocol.getForkPosTwo() == 0){
+ sign[0] = 2;
+ sign[1] = 2;
+ }
+ break;
+ default:
+ }
+ }
+
+ if (sign[0]!=0){
+ List<WrkMastSplitTwin> wrkMastSplitTwinList = wrkMastSplitTwinService.getWrkMastSplitTwin(crn.getId(),sign[1],null,sign[0],0);
+ if (wrkMastSplitTwinList.size()>1){
+ log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={},宸ヤ綔绫诲瀷={}",crn.getId(),"瀛樺湪澶氱瑪鍙墽琛屼綔涓氾紝璇峰垹闄ゆ棤鏁堜綔涓氾紒锛侊紒",sign[1],sign[0]);
+ return false;
+ }
+ for (WrkMastSplitTwin wrkMastSplitTwin:wrkMastSplitTwinList){
+ boolean ack = sign[0] == 1 ? crnExecuteTakeFull(crn.getId(), wrkMastSplitTwin, sign[1]) : crnExecutePutFull(crn.getId(), wrkMastSplitTwin, sign[1]);
+ if (ack){
+ wrkMastSplitTwin.setWrkSts(wrkMastSplitTwin.getWrkType()==1? 1:3);
+ wrkMastSplitTwinService.updateById(wrkMastSplitTwin);
+ }else {
+ log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂鎶ラ敊,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={}",crn.getId(),"涓嬪彂浠诲姟杩斿洖鍊间负锛�"+ack);
+ }
+ }
+ }
+ }catch (Exception e){
+ log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂鎶ラ敊,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={}",crn.getId(),e.getMessage());
+ }
+ return false;
+ }
+
+ /*
+ * 鍫嗗灈鏈哄彇璐ц嚦宸ヤ綅浠诲姟
+ * */
+ public synchronized boolean crnExecuteTakeFull(Integer crnNo,WrkMastSplitTwin wrkMastSplitTwin, Integer crnStation){
+ try{
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(wrkMastSplitTwin.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐�
+ crnCommand.setSourcePosX(wrkMastSplitTwin.getStartRow().shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY(wrkMastSplitTwin.getStartBay().shortValue()); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ(wrkMastSplitTwin.getStartLev().shortValue()); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX((short)0); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞�
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMastSplitTwin.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMastSplitTwin.getCrnNo(), JSON.toJSONString(crnCommand));
+ return false;
+ } else {
+ return true;
+ }
+ }catch (Exception e){
+ return false;
+ }
+ }
+
+ /*
+ * 鍫嗗灈鏈烘斁璐ц揣鑷冲嚭搴撶珯鐐逛换鍔�
+ * */
+ public synchronized boolean crnExecutePutFull(Integer crnNo,WrkMastSplitTwin wrkMastSplitTwin, Integer crnStation){
+ try{
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(wrkMastSplitTwin.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.SEPARATE_PUT); // 浠诲姟妯″紡: 鍗曟斁璐�
+ crnCommand.setSourcePosX((short)0); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY((short)0); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ((short)0); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX(wrkMastSplitTwin.getEndRow().shortValue()); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY(wrkMastSplitTwin.getEndBay().shortValue()); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ(wrkMastSplitTwin.getEndLev().shortValue()); // 鐩爣搴撲綅灞�
+ if (!MessageQueue.offer(SlaveType.Crn, wrkMastSplitTwin.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMastSplitTwin.getCrnNo(), JSON.toJSONString(crnCommand));
+ return false;
+ } else {
+ return true;
+ }
+ }catch (Exception e){
+ return false;
+ }
+ }
+
+ /*
+ * 鍫嗗灈鏈哄彇璐ц嚦宸ヤ綅浠诲姟
+ * */
+ public synchronized boolean crnExecuteTakeFullPair(Integer crnNo,WrkMastSplitTwin wrkMastSplitTwinOne,WrkMastSplitTwin wrkMastSplitTwinTwo, Integer crnStation){
+ try{
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+ CrnCommandParam crnCommandParam = new CrnCommandParam();
+ crnCommandParam.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
+ crnCommandParam.setTaskNo(wrkMastSplitTwinOne.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommandParam.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommandParam.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐�
+ crnCommandParam.setSourcePosX(wrkMastSplitTwinOne.getStartRow().shortValue()); // 婧愬簱浣嶆帓
+ crnCommandParam.setSourcePosY(wrkMastSplitTwinOne.getStartBay().shortValue()); // 婧愬簱浣嶅垪
+ crnCommandParam.setSourcePosZ(wrkMastSplitTwinOne.getStartLev().shortValue()); // 婧愬簱浣嶅眰
+ crnCommandParam.setDestinationPosX((short)0); // 鐩爣搴撲綅鎺�
+ crnCommandParam.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒�
+ crnCommandParam.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞�
+
+ crnCommandParam.setTaskNo2(wrkMastSplitTwinTwo.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommandParam.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommandParam.setTaskMode2(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐�
+ crnCommandParam.setSourcePosX2(wrkMastSplitTwinTwo.getStartRow().shortValue()); // 婧愬簱浣嶆帓
+ crnCommandParam.setSourcePosY2(wrkMastSplitTwinTwo.getStartBay().shortValue()); // 婧愬簱浣嶅垪
+ crnCommandParam.setSourcePosZ2(wrkMastSplitTwinTwo.getStartLev().shortValue()); // 婧愬簱浣嶅眰
+ crnCommandParam.setDestinationPosX2((short)0); // 鐩爣搴撲綅鎺�
+ crnCommandParam.setDestinationPosY2((short)0); // 鐩爣搴撲綅鍒�
+ crnCommandParam.setDestinationPosZ2((short)0); // 鐩爣搴撲綅灞�
+ if (!MessageQueue.offer(SlaveType.Crn, crnCommandParam.getCrnNo(), new Task(9, crnCommandParam))) {
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnCommandParam.getCrnNo(), JSON.toJSONString(crnCommandParam));
+ return false;
+ } else {
+ return true;
+ }
+ }catch (Exception e){
+ return false;
+ }
+ }
+
+ /*
+ * 鍫嗗灈鏈烘斁璐ц揣鑷冲嚭搴撶珯鐐逛换鍔�
+ * */
+ public synchronized boolean crnExecutePutFullPair(Integer crnNo,WrkMastSplitTwin wrkMastSplitTwinOne,WrkMastSplitTwin wrkMastSplitTwinTwo, Integer crnStation){
+ try{
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+ CrnCommandParam crnCommandParam = new CrnCommandParam();
+ crnCommandParam.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
+ crnCommandParam.setTaskNo(wrkMastSplitTwinOne.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommandParam.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommandParam.setTaskMode(CrnTaskModeType.SEPARATE_PUT); // 浠诲姟妯″紡: 鍗曟斁璐�
+ crnCommandParam.setSourcePosX((short)0); // 婧愬簱浣嶆帓
+ crnCommandParam.setSourcePosY((short)0); // 婧愬簱浣嶅垪
+ crnCommandParam.setSourcePosZ((short)0); // 婧愬簱浣嶅眰
+ crnCommandParam.setDestinationPosX(wrkMastSplitTwinOne.getEndRow().shortValue()); // 鐩爣搴撲綅鎺�
+ crnCommandParam.setDestinationPosY(wrkMastSplitTwinOne.getEndBay().shortValue()); // 鐩爣搴撲綅鍒�
+ crnCommandParam.setDestinationPosZ(wrkMastSplitTwinOne.getEndLev().shortValue()); // 鐩爣搴撲綅灞�
+
+ crnCommandParam.setTaskNo2(wrkMastSplitTwinTwo.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommandParam.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommandParam.setTaskMode2(CrnTaskModeType.SEPARATE_PUT); // 浠诲姟妯″紡: 鍗曟斁璐�
+ crnCommandParam.setSourcePosX2((short)0); // 婧愬簱浣嶆帓
+ crnCommandParam.setSourcePosY2((short)0); // 婧愬簱浣嶅垪
+ crnCommandParam.setSourcePosZ2((short)0); // 婧愬簱浣嶅眰
+ crnCommandParam.setDestinationPosX2(wrkMastSplitTwinTwo.getEndRow().shortValue()); // 鐩爣搴撲綅鎺�
+ crnCommandParam.setDestinationPosY2(wrkMastSplitTwinTwo.getEndBay().shortValue()); // 鐩爣搴撲綅鍒�
+ crnCommandParam.setDestinationPosZ2(wrkMastSplitTwinTwo.getEndLev().shortValue()); // 鐩爣搴撲綅灞�
+ if (!MessageQueue.offer(SlaveType.Crn, crnCommandParam.getCrnNo(), new Task(9, crnCommandParam))) {
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnCommandParam.getCrnNo(), JSON.toJSONString(crnCommandParam));
+ return false;
+ } else {
+ return true;
+ }
+ }catch (Exception e){
+ return false;
+ }
+ }
+
+ /**
+ * Jar浠诲姟鍒涘缓 鍒濆 //瀹屾垚
+ */
+ public synchronized void jarMastGenerate() {
+ for (JarSlave jarSlave : slaveProperties.getJar()) {
+ if (jarSlave.getId()>4){
continue;
}
- Date now = new Date();
- // 鍫嗗灈鏈烘鍦ㄨ繍琛�
- if (crnProtocol.getStatusType() != CrnStatusType.IDLE && crnProtocol.getTaskNo() != 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
- // 鑾峰彇宸ヤ綔妗�
- WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
- if (wrkMast == null) {
+ try{
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
continue;
}
- // 鍏ュ簱
- if (wrkMast.getWrkSts() == 1 || wrkMast.getWrkSts() == 2) {
- log.warn("鍫嗗灈鏈洪潪绌洪棽鎯呭喌涓嬶紝寮�濮嬩慨鏀瑰伐浣滄。鐘舵�併�俒id:{},鏃堕棿锛歿}] >>>>> 鍫嗗灈鏈哄綋鍓嶇姸鎬佷负锛歿}銆備换鍔″彿:{}", crn.getId(), DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), crnProtocol.getStatusType().desc, crnProtocol.getTaskNo());
- // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
- wrkMast.setWrkSts(3L);
- wrkMast.setCrnStrTime(now);
- wrkMast.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
- log.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}", DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), wrkMast.getWrkNo());
- }
- // 鍑哄簱銆佺Щ搴�
- if (wrkMast.getWrkSts() == 11) {
- log.warn("鍫嗗灈鏈洪潪绌洪棽鎯呭喌涓嬶紝寮�濮嬩慨鏀瑰伐浣滄。鐘舵�併�俒id:{},鏃堕棿锛歿}] >>>>> 鍫嗗灈鏈哄綋鍓嶇姸鎬佷负锛歿}銆備换鍔″彿:{}", crn.getId(), DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), crnProtocol.getStatusType().desc, crnProtocol.getTaskNo());
- // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
- wrkMast.setWrkSts(12L);
- wrkMast.setCrnStrTime(now);
- wrkMast.setModiTime(now);
- if (wrkMastMapper.updateById(wrkMast) == 0) {
- log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
- log.warn("淇敼宸ヤ綔妗g姸鎬佹垚鍔熴�俒鏃堕棿锛歿}] >>>>> 浠诲姟鍙�:{}", DateUtils.convert(now, DateUtils.yyyyMMddHHmmsssss_F), wrkMast.getWrkNo());
- }
-
-
- }
-
- }
- }
-
- /**
- * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
- */
- 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) {
+ for(JarSlave.StaStn staStn : jarSlave.getJarInSta()){
+ // 鑾峰彇纭寲缃愬叆搴撶珯淇℃伅
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, staStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(staStn.getStaNo());
+ if (staProtocol == null) {
continue;
+ } else {
+ staProtocol = staProtocol.clone();
}
- 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 dischargingMachineOutputTray() {
-// try {
-// List<WrkMast> wrkMasts = wrkMastMapper.selectDischargingMachineOutputTray();
-// if (Cools.isEmpty(wrkMasts) || wrkMasts.size()>3){
-// return;
-// }
-//
-// // 鑾峰彇鍏ュ簱绔欎俊鎭�
-// SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-// StaProtocol staProtocol = devpThread.getStation().get(213);
-// if (staProtocol == null) {
-// log.error("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂澶辫触锛岀珯鐐规煡璇㈠け璐�");
-// return;
-// } else {
-// staProtocol = staProtocol.clone();
-// }
-//
-// if (!staProtocol.isLoading()){
-// log.info("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂澶辫触锛岀珯鐐规棤鐗╋紝姝e湪鑷姩璋冨嚭绌烘澘锛�");
-// int i = wrkMastMapper.selectConfigCount10468N();
-// if (i==1){
-// wrkMastMapper.updateConfig10468Y();
-// }
-// return;
-// }else {
-// int i = wrkMastMapper.selectConfigCount10468N();
-// if (i==0){
-// return;
-// }
-// }
-// StaProtocol staProtocol214 = devpThread.getStation().get(214);
-// // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-// if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk() && staProtocol214.getWorkNo()==0) {
-// staProtocol.setWorkNo((short)9999);
-// staProtocol.setStaNo((short)214);
-// devpThread.setPakMk(staProtocol.getSiteId(), false);
-// boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
-// if (!result) {
-// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紒");
-// }
-// log.info("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂鎴愬姛锛氬伐浣滃彿9999銆佺洰鏍囩珯214锛�");
-// }else {
-// log.error("鐮佸灈浣嶈嚜鍔ㄨˉ鍏呯┖鏉匡細椹卞姩鎷嗙洏鏈鸿緭鍑烘墭鐩橈紝浠诲姟涓嬪彂澶辫触锛岀珯鐐圭姸鎬佷笉绗﹀悎锛�");
-// }
-// }catch (Exception e){
-// e.printStackTrace();
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-// }
-// }
-
-// /**
-// * 鍏朵粬 ===>> 鎷嗙洏鏈哄绌烘澘鎵爜锛岄┍鍔ㄦ墭鐩樺悜鐮佸灈浣嶏紝涓嶅叆搴�
-// */
-// public synchronized void scanBarcodeEmptyBoard() {
-// try {
-//
-// }catch (Exception e){
-// e.printStackTrace();
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-// }
-// }
-
- /**
- * 鍏朵粬 ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝ワ紙鍏ュ簱鍓嶆壂鐮侊級
- */
- public synchronized void stackingCompletionDriveTray() {
- try {
- int[] staNos=new int[]{215,219};//(2妤间袱涓叆搴撶爜鍨涚珯)
- for (int staNo : staNos){
- BasDevp basDevp = basDevpService.selectById(staNo);
- if ((basDevp.getWrkNo()!=0 && (basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999)) || Cools.isEmpty(basDevp.getBarcode())){
- continue;
- }
- Integer zpallet = waitPakinMapper.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()).eq("status","N"));
- if (zpallet<=0){
- continue;
- }
- // 鑾峰彇鍏ュ簱绔欎俊鎭�
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- StaProtocol staProtocol = devpThread.getStation().get(staNo);
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
-
- // 鍏ュ嚭搴撴ā寮忓垽鏂�
-// if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
-// if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
-// continue;
-// }
-
- if (!staProtocol.isLoading()){
- log.info("{}绔欑偣鏃犵墿锛屾鍦ㄨ嚜鍔ㄨ皟鍑虹┖鏉匡紒",staNo);
- continue;
- }
- // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (staProtocol.isAutoing()
- && staProtocol.isLoading()
- && staProtocol.isInEnable()
- && !staProtocol.isEmptyMk()
- && (basDevp.getWrkNo()==0 || (basDevp.getWrkNo()>=9900 && basDevp.getWrkNo()<=9999))
- ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
- int workNo = commonService.getWorkNo(5);
- staProtocol.setWorkNo(workNo);
- staProtocol.setStaNo(staNo + 2);
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
- if (!result) {
- throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒");
- }
-
- }
- }
- }catch (Exception e){
-// e.printStackTrace();
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- log.error("鍏朵粬 ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝ワ紙鍏ュ簱鍓嶆壂鐮侊級"+e);
- }
- }
- /**
- * 鍏朵粬 ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�
- */
- public synchronized void stackingCompletionDriveTray2() {
- try {
- int[] staNos=new int[]{131,135};//(2涓叆搴撶珯鐐癸紝1妤�2涓嚭搴撶爜鍨涚珯,鏍规嵁鐜板満淇敼)
- for (int staNo : staNos){
- BasDevp basDevp = basDevpService.selectById(staNo);
- if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){
- continue;
- }
- if (basDevp.getWrkNo()!=0 && (basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999)){
- continue;
- }
- WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne202(staNo);
- if (Cools.isEmpty(wrkMast)){
- continue;
- }
- // 鑾峰彇绔欑偣淇℃伅
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- StaProtocol staProtocol = devpThread.getStation().get(staNo);
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
-
- // 鍏ュ嚭搴撴ā寮忓垽鏂�
-// if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
-// if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
-// continue;
-// }
-
- if (!staProtocol.isLoading()){
- log.info("{}绔欑偣鏃犵墿锛屽紓甯革紒",staNo);
- continue;
- }
- // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (staProtocol.isAutoing()
- && staProtocol.isLoading()
- && staProtocol.isInEnable()
- && (staProtocol.getWorkNo() == 0 || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000))
- ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
-
- //浠诲姟瀹屾垚
- boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol));
- Thread.sleep(100);
-
- staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(144);
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
- if (!result) {
- throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒");
- }
- wrkMast.setWrkSts(52L);
- wrkMastMapper.updateById(wrkMast);
- Thread.sleep(100);
-
- //浠诲姟瀹屾垚
- boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol));
-
- }
- }
- }catch (Exception e){
-// e.printStackTrace();
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- log.error("鍏朵粬 ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�"+e);
- }
- }
-
- /**
- * 鍏朵粬 ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�
- */
- public synchronized void stackingCompletionDriveTrayOk2() {
- for (DevpSlave devp : slaveProperties.getDevp()) {
- // 閬嶅巻鎷f枡鍏ュ簱鍙�
- for (DevpSlave.Sta pickSta : devp.getPickSta2()) {
-
- // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
-
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()!=0 && staProtocol.isOutEnable()) {//
- WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo());
-
- if (wrkMast == null) {
- log.error("绔欑偣鍙�"+staProtocol.getSiteId()+"鏈煡璇㈠埌宸ヤ綔妗f锛�");
- // 鏃犳嫞鏂欐暟鎹�
- continue;
- }
- if (Cools.isEmpty(wrkMast.getSheetNo()) || !wrkMast.getSheetNo().equals("2") || wrkMast.getIoType()<100 || wrkMast.getWrkSts()!=14){
- continue;
- }
- if (wrkMast.getIoType()==101){
- //浠诲姟瀹屾垚
- boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol));
- wrkMast.setSheetNo("3");
- wrkMastMapper.updateById(wrkMast);
- }else {
- if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
- || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
- continue;
- }
- //浠诲姟瀹屾垚
- boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol));
- wrkMast.setSheetNo("3");
- wrkMastMapper.updateById(wrkMast);
-
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo()!=0){
try{
- Thread.sleep(100);
+ if (basJarMastService.selectJarMastOperation(jarSlave.getId(),2)!=0){
+ break;
+ }
+ BasJar basJar = basJarMapper.selectById(jarSlave.getId());
+ BasJar basJarOther = basJarMapper.selectById(jarSlave.getJarOtherId());
+ jarMaxLoc = basJar.getJarCount();
+ if (jarMaxLoc == 0 || basJarOther.getJarCount() == 0) {
+ break;
+ }
+ int count = basJarMastService.selectCount(new EntityWrapper<BasJarMast>().eq("jar_regin", basJar.getRegion()).lt("status", 17).gt("status", 6));
+ if (count>0){
+ break;
+ }
+ if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),3)!=0){
+ if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(), 3).equals(basJarOther.getJarCount())){
+ JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
+ JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
+ if (jarOtherProtocol == null) {
+ break;
+ }
+ if (jarOtherProtocol.getJarTemperature()>jarTemperature){
+ log.info("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....鍏堟墽琛屽叆缃愪换鍔★紒锛侊紒",jarOtherProtocol.getJarNo());
+ } else {
+ if (basJarMastService.getJarMastByJarIdCount(jarSlave.getId())>0){
+ log.info("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛屽厛鎵ц浜嗗叆缃愪换鍔★紝鎵ц瀹屾瘯鍐嶈繘琛屽喎鍗达紒锛侊紒",jarOtherProtocol.getJarNo());
+ } else {
+ break;
+ }
+ }
+ }
+ }
+ if (basJarMastService.getJarMastByJarIdCount(jarSlave.getId())>=jarMaxLoc*2){
+ break;
+ }
+ if (basJarMastService.selectJarMastOperation(jarSlave.getId(),0,9)>=jarMaxLoc){
+ break;
+ }
+ if (!Objects.equals
+ (
+ basJarMastService.selectJarMastOperation(jarSlave.getId(), 0, 4)
+ ,
+ basJarMastService.selectJarMastOperation(jarSlave.getId(), 0, 9)
+ )
+ ){
+ break;
+ }
+ BasJarMast jarMastByJarIdMax = basJarMastService.getJarMastByJarIdMax(jarSlave.getId(),0,4);
+ int jarLocDigit = 0;
+ if (Cools.isEmpty(jarMastByJarIdMax)){
+ if (basJarMastService.selectJarMastOperation(jarSlave.getId(),0,4)!=0){
+ break;
+ }
+ jarLocDigit = 1;
+ } else if (jarMastByJarIdMax.getJarLocDigit()<jarMaxLoc){
+ jarLocDigit = jarMastByJarIdMax.getJarLocDigit()+1;
+ } else {
+ continue;
+ }
+ WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
+ if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=2){
+ continue;
+ }
+ BasJarMast basJarMast = basJarMastService.getJarMastByWrkNo(wrkMast.getWrkNo().longValue());
+ if (!Cools.isEmpty(basJarMast)){
+ continue;
+ }
+ WrkMastExecute wrkMastExecute = wrkMastExecuteService.getWrkMastExecuteByWrkNo(wrkMast.getWrkNo().longValue());
+ if (!Cools.isEmpty(wrkMastExecute)){
+ continue;
+ }
+ log.error("Jar浠诲姟鍒涘缓 鍒濆===>琛�={}",4484);
+ if (jarMastGenerateExecute(jarSlave,wrkMast,jarLocDigit,staStn.getStaNo())){
+ return;
+ }
}catch (Exception e){
-
+ log.error(jarSlave.getId()+"鍙风~鍖栫綈Jar浠诲姟鍒涘缓寮傚父锛�"+e);
}
-
- boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol));
-
+ break;
}
}
+ } catch (Exception e){
+ log.error("{}鍙风~鍖栫綈Jar浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
}
- }
- }
- /**
- * 鍏朵粬 ===>> 璐存爣瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�
- */
- public synchronized void stackingCompletionDriveTray3() {
- try {
- int[] staNos=new int[]{144};//(1妤�1涓创鏍囦綅,鏍规嵁鐜板満淇敼)
- for (int staNo : staNos){
- BasDevp basDevp = basDevpService.selectById(staNo);
- if ((basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999) && basDevp.getWrkNo()!=32222){
- continue;
- }
- WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne202(staNo);
- if (Cools.isEmpty(wrkMast)){
- continue;
- }
- // 鑾峰彇绔欑偣淇℃伅
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- StaProtocol staProtocol = devpThread.getStation().get(staNo);
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
-
- // 鍏ュ嚭搴撴ā寮忓垽鏂�
-// if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
-// if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
-// continue;
-// }
-
- if (!staProtocol.isLoading()){
- log.info("{}绔欑偣鏃犵墿锛屽紓甯革紒",staNo);
- continue;
- }
- if (!staProtocol.getWorkNo().equals(wrkMast.getWrkNo())){
- log.info("绔欑偣宸ヤ綔鍙�={} 涓庤创鏍囧伐浣滃彿={} 涓嶄竴鑷达紝寮傚父锛�",staProtocol.getWorkNo(),wrkMast.getWrkNo().shortValue());
- }
- // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (staProtocol.isAutoing()
- && staProtocol.isLoading()
- ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
-
- staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(wrkMast.getStaNo());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
- if (!result) {
- throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒");
- }
- wrkMast.setWrkSts(55L);
- wrkMastMapper.updateById(wrkMast);
-
- }
- }
- }catch (Exception e){
-// e.printStackTrace();
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- log.error("鍏朵粬 ===>> 璐存爣瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�"+e);
}
}
/**
- * 鍏朵粬 ===>> 閫�璐х爜鍨涘畬鎴愭墭鐩樼户缁笅涓�姝�
+ * Jar浠诲姟鍒涘缓===銆嬫墽琛� //瀹屾垚
*/
- public synchronized void stackingCompletionDriveTrayOk3() {
- try {
- int[] staNos=new int[]{118};
- for (int staNo : staNos){
- BasDevp basDevp = basDevpService.selectById(staNo);
- if (Cools.isEmpty(basDevp) || basDevp.getWrkNo()!=0 || basDevp.getReportSign()!=3){
- continue;
- }
- WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne145(145);
- if (Cools.isEmpty(wrkMast)){
- continue;
- }
- // 鑾峰彇绔欑偣淇℃伅
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- StaProtocol staProtocol = devpThread.getStation().get(staNo);
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
+ public synchronized boolean jarMastGenerateExecute(JarSlave jarSlave,WrkMast wrkMast,Integer jarLocDigit,Integer staNo) {
+ try{
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ return false;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ return false;
+ }
+ if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
- StaProtocol staProtocol147 = devpThread.getStation().get(147);
- if (staProtocol147 == null) {
- continue;
- } else {
- staProtocol147 = staProtocol147.clone();
- }
+ JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
+ JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
+ if (jarOtherProtocol == null) {
+ return false;
+ }
+// if (jarOtherProtocol.modeType != JarModeType.AUTO){
+// return false;
+// }
- if (!staProtocol.isLoading()){
- log.info("{}绔欑偣鏃犵墿锛屽紓甯革紒",staNo);
- continue;
- }
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+ if (basJar.getJarMode()!=2){
+ return false;
+ }
- if (staProtocol147.isLoading()){
- log.info("{}绔欑偣鏈夌墿锛�",staProtocol147.getSiteId());
- continue;
- }
- // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (staProtocol.isAutoing()
- && staProtocol.isLoading()
- && !staProtocol.isEmptyMk()
- ) {
-
- boolean result3 = MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol147));
-
- staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(wrkMast.getStaNo());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
- if (!result) {
- throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒");
- }
-
- wrkMast.setSheetNo("5");
- wrkMastMapper.updateById(wrkMast);
-
- boolean result4 = MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol147));
-
+ //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂�� Other宸﹂棬鍏抽棴
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ if (jarProtocol.statusType != JarStatusType.SOS){
+ log.error("Jar浠诲姟鍒涘缓===銆嬫墽琛�===>琛�={}",4537);
+ BasJarMast basJarMast = new BasJarMast(basJar, wrkMast, jarLocDigit);
+ basJarMast.setJarEnterStaNo(staNo);//鍏ョ~鍖栫綈绔欑偣
+ basJarMastService.insert(basJarMast);
+ return true;
}
}
- }catch (Exception e){
-// e.printStackTrace();
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- log.error("鍏朵粬 ===>> 閫�璐х爜鍨涘畬鎴愭墭鐩樼户缁笅涓�姝�"+e);
+
+ } catch (Exception e){
+ log.error("{}鍙风~鍖栫綈鐢熸垚BasJarMast鍒濆浠诲姟澶辫触,寮傚父鍘熷洜={},宸ヤ綔鍙�={},纭寲搴撲綅={}",jarSlave.getId(),e.getMessage(),wrkMast,jarLocDigit);
}
+ return false;
}
/**
- * 鍏朵粬 ===>> 鎷嗗灈瀹屾垚缁х画涓嬩竴姝� 杩愯閫斾腑鑷姩閬胯绌烘澘
+ * Jar浠诲姟瀹屾垚 //瀹屾垚
*/
- public synchronized void stackingCompletionDriveTray4() {
- try {
- int[] staNos=new int[]{134};//(134鏈変换鍔★紝135绌洪棽锛屽垯閬胯)
- for (int staNo : staNos){
- BasDevp basDevp = basDevpService.selectById(staNo);
- BasDevp basDevp135 = basDevpService.selectById(135);
- if (basDevp.getWrkNo()==0 || (basDevp.getWrkNo()<10000 && basDevp.getWrkNo()>9899) ){
- continue;
+ public synchronized boolean jarMastGenerateComplete() {
+ try{
+ for (int[] ex : execute){
+ try{
+ WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
+ wrkMastExecuteSou.setIoType(ex[0]);
+ wrkMastExecuteSou.setWrkSts(ex[1]);
+ wrkMastExecuteSou.setWrkType(1);
+ List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecuteSou);
+ for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+ log.error("Jar浠诲姟瀹屾垚===>琛�={}",4564);
+ if (wrkMastExecute.getIoType()<7 || wrkMastExecute.getIoType()==9){
+ BasJarMast jarMastByWrkNo = basJarMastService.getJarMastByWrkNo(wrkMastExecute.getWrkNo());
+ jarMastByWrkNo.setStatus(jarMastByWrkNo.getStatusComplete(wrkMastExecute.getIoType()));
+ if (wrkMastExecute.getIoType()==3 && jarMastByWrkNo.getStatus()==8){
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarMastByWrkNo.getJarId(), new ArrayList<Integer>() {{
+ add(6);//纭寲瀹屾垚
+ }});
+ if (basJarMastList.isEmpty()){
+ continue;
+ }
+ Integer integer = basJarMastService.updateStatus(jarMastByWrkNo.getJarId(), 6, 8);
+ if (basJarMastList.size()!=integer){
+ log.error("{}鍙风~鍖栫綈纭寲瀹屾垚鍚庡紑闂ㄥ畬鎴愪慨鏀圭~鍖栨。妗堢姸鎬佺粨鏋滄暟閲忎笉涓�鑷达紒锛侊紒鏌ヨ璧勬枡鏁伴噺={}锛屾洿鏂拌繑鍥炴暟閲�={}",jarMastByWrkNo.getJarId(),basJarMastList.size(),integer);
+ }
+ } else if (wrkMastExecute.getIoType()==2 && jarMastByWrkNo.getStatus()==5){
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarMastByWrkNo.getJarId(), new ArrayList<Integer>() {{
+ add(4);//纭寲瀹屾垚
+ }});
+ if (basJarMastList.isEmpty()){
+ continue;
+ }
+ Integer integer = basJarMastService.updateStatus(jarMastByWrkNo.getJarId(), 4, 5);
+ if (basJarMastList.size()!=integer){
+ log.error("{}鍙风~鍖栫綈纭寲瀹屾垚鍚庡紑闂ㄥ畬鎴愪慨鏀圭~鍖栨。妗堢姸鎬佺粨鏋滄暟閲忎笉涓�鑷达紒锛侊紒鏌ヨ璧勬枡鏁伴噺={}锛屾洿鏂拌繑鍥炴暟閲�={}",jarMastByWrkNo.getJarId(),basJarMastList.size(),integer);
+ }
+ } else {
+ if (!basJarMastService.updateById(jarMastByWrkNo)){
+ log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,BasJarMast={},寮傚父淇℃伅={}",JSON.toJSONString(jarMastByWrkNo),"鏇存柊basJarMast澶辫触");
+ }
+ }
+ }
+ wrkMastExecute.setWrkSts(wrkMastExecute.getWrkStsComplete());
+ wrkMastExecute.setWrkType(2);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,wrkMastExecute={},寮傚父淇℃伅={}",JSON.toJSONString(wrkMastExecute),"鏇存柊wrkMastExecute澶辫触");
+ }
+ }
+ }catch (Exception e){
+ log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,execute={},寮傚父淇℃伅={}",JSON.toJSONString(ex),e.getMessage());
}
- if (basDevp135.getReportSign()!=0){
+ }
+ } catch (Exception e){
+ log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,寮傚父淇℃伅={}",e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟鍒涘缓 //瀹屾垚
+ */
+ public synchronized void jarWrkMastExecuteGenerate(Integer sign) {
+ try{
+ boolean[] signExecute = new boolean[]{false,false};
+ switch (sign){
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ signExecute = jarWrkMastExecuteGenerateJar(signExecute,sign);//纭寲缃愪换鍔�
+ case 5:
+ signExecute = jarWrkMastExecuteGenerateBurial(signExecute, sign);//鍐峰嵈妲藉彇杈撻�佺嚎
+ default:
+ jarWrkMastExecuteGenerateSte(signExecute,sign);//灏忚溅绉诲姩
+// signExecute = jarWrkMastExecuteGenerateBurial(signExecute, sign);//鍐峰嵈妲藉彇杈撻�佺嚎
+
+ }
+ if (!signExecute[0] && !signExecute[1]){
+ //Ste绉诲姩
+ jarMastMove();
+ }
+ } catch (Exception e){
+ log.error("纭寲鍖哄煙鍒嗘浠诲姟鍒涘缓寮傚父,寮傚父淇℃伅={}",e.getMessage());
+ }
+ }
+
+ public synchronized boolean[] jarWrkMastExecuteGenerateJar(boolean[] signExecute,Integer sign) {
+ for (JarSlave jarSlave : slaveProperties.getJar()) {
+ int i = jarSlave.getId()>2? 1:0;
+ try{
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
continue;
- }
- WrkMast wrkMast131 = wrkMastMapper.selectWrkMastUnstackingOne202Two(131);
- if (Cools.isEmpty(wrkMast131)){
- continue;
- }
- // 鑾峰彇绔欑偣淇℃伅
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- StaProtocol staProtocol135 = devpThread.getStation().get(135);
- if (staProtocol135 == null) {
- continue;
- } else {
- staProtocol135 = staProtocol135.clone();
- }
- if (staProtocol135.getWorkNo()<9900 || staProtocol135.getWorkNo()>9999 || staProtocol135.getWorkNo()==0
- || !staProtocol135.isLoading() || !staProtocol135.isAutoing()){
- continue;
- }
- StaProtocol staProtocol = devpThread.getStation().get(staNo);
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
}
- if (!staProtocol.isLoading()){
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
continue;
}
-// if (!staProtocol.getWorkNo().equals(wrkMast131.getWrkNo())){
-// log.info("绔欑偣宸ヤ綔鍙�={} 涓庤创鏍囧伐浣滃彿={} 涓嶄竴鑷达紝寮傚父锛�",staProtocol.getWorkNo(),wrkMast131.getWrkNo().shortValue());
-// }
- // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (staProtocol.isAutoing()
- && staProtocol.isLoading()
- && basDevp.getReportSign()==0
- ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
-// if (true){
-// return;
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ continue;
+ }
+
+
+ JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
+ JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
+ if (jarOtherProtocol == null) {
+ continue;
+ }
+// if (jarOtherProtocol.modeType != JarModeType.AUTO){
+// continue;
// }
- //浠诲姟瀹屾垚
- boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol135));
- try{
- Thread.sleep(100);
- }catch (Exception e){ }
- basDevp135.setReportSign(2);
- basDevpService.updateById(basDevp135);
- int workNo = commonService.getWorkNo(5);
- staProtocol135.setWorkNo(workNo);
- staProtocol135.setStaNo(144);
- devpThread.setPakMk(staProtocol135.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol135));
- if (!result) {
- throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒");
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ continue;
+ }
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂�� Other宸﹂棬鍏抽棴
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ switch (sign){
+ case 0:
+ case 1:
+ if (jarWrkMastExecuteGenerate1(jarSlave,sign)){
+ signExecute[i] = true;
+ break;//寮�闂ㄤ换鍔� 鐢熸垚鍏ョ~鍖栫綈浠诲姟
+ }
+ case 2:
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ continue;
+ }
+ if (jarWrkMastExecuteGenerate2(jarSlave,sign)){
+ signExecute[i] = true;
+ break;//鍏宠繘鏂欓棬
+ }
+ case 3:
+ if (jarWrkMastExecuteGenerate3(jarSlave,sign)){
+ signExecute[i] = true;
+ break;//寮�鍑烘枡闂�
+ }
+ case 4:
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ continue;
+ }
+ if (jarWrkMastExecuteGenerate4(jarSlave,sign)){
+ signExecute[i] = true;
+ break;//鍑虹~鍖栫綈 ===銆� 鍏ュ喎鍗存Ы
+ }
}
- boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol135));
+ }
+ } catch (Exception e){
+ log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+ }
+ }
+ return signExecute;
+ }
+ public synchronized boolean[] jarWrkMastExecuteGenerateBurial(boolean[] signExecute,Integer sign) {
+ for (JarSlave jarSlave : slaveProperties.getJar()) {
+ if (jarSlave.getId()<5){
+ continue;
+ }
+ try{
+ if (signExecute[jarSlave.getId()-5]){
+ continue;
+ }
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+ signExecute[jarSlave.getId()-5] = true;
+ continue;
+ }
+
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ signExecute[jarSlave.getId()-5] = true;
+ continue;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ signExecute[jarSlave.getId()-5] = true;
+ continue;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ continue;
+ }
+
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ continue;
+ }
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂�� Other宸﹂棬鍏抽棴
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0){
+ if (jarWrkMastExecuteGenerate5(jarSlave,sign)){
+ signExecute[jarSlave.getId()-5] = true;
+ return signExecute;
+ //鍐峰嵈瀹屾垚涓婅緭閫佺嚎
+ }
+ continue;
+ }
+ } catch (Exception e){
+ log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+ }
+ }
+ return signExecute;
+ }
+
+ public synchronized boolean[] jarWrkMastExecuteGenerateSte(boolean[] signExecute,Integer sign) {
+ for (JarSlave jarSlave : slaveProperties.getJar()) {
+ if (jarSlave.getId()<5){
+ continue;
+ }
+ try{
+ if (signExecute[jarSlave.getId()-5]){
+ continue;
+ }
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+ continue;
+ }
+
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ continue;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ continue;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ continue;
+ }
+
+ JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
+ JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
+ if (jarOtherProtocol == null) {
+ continue;
+ }
+// if (jarOtherProtocol.modeType != JarModeType.AUTO){
+// continue;
+// }
+
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ continue;
+ }
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂�� Other宸﹂棬鍏抽棴
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ switch (sign){
+ case 5:
+ if (jarWrkMastExecuteGenerate5(jarSlave,sign)){
+ signExecute[jarSlave.getId()-5] = true;
+ break;//鍑虹~鍖栫綈 ===銆� 鍏ュ喎鍗存Ы
+ }
+ }
+ }
+ } catch (Exception e){
+ log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+ }
+ }
+ return signExecute;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟鍒涘缓 //瀹屾垚
+ * 寮�闂ㄤ换鍔�
+ * 鐢熸垚鍏ョ~鍖栫綈浠诲姟
+ */
+ public synchronized boolean jarWrkMastExecuteGenerate1(JarSlave jarSlave,Integer sign) {
+ try{
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+ return false;
+ }
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
+ add(0);
+ add(2);
+ }});
+
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1,SteStatusType.IDLE)){
+// return false;
+// }
+
+ for (BasJarMast basJarMast : basJarMastList){
+ JarSlave.StaStn staStn = null;
+ for (JarSlave.StaStn staStn1 : jarSlave.getJarInSta()){
+ if (staStn1.getStaNo().equals(basJarMast.getJarEnterStaNo())){
+ staStn = staStn1;
+ }
+ }
+ if (Cools.isEmpty(staStn)){
+ continue;
+ }
+ //妫�娴嬬珯鐐圭姸鎬�
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, staStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(staStn.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo()==basJarMast.getWrkNo().intValue()){
+
+ //妫�娴婻GV鐘舵��
+ StaProtocol staProtocolRGV = devpThread.getStation().get(staStn.getRgvNo());
+ if (staProtocolRGV == null) {
+ continue;
+ } else {
+ staProtocolRGV = staProtocolRGV.clone();
+ }
+ if (staProtocolRGV.rgvBoolean(1)){
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ return false;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ return false;
+ }
+ if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS)){
+ return false;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ continue;
+ }
+ JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
+ JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
+ if (jarOtherProtocol == null) {
+ return false;
+ }
+// if (jarOtherProtocol.modeType != JarModeType.AUTO){
+// continue;
+// }
+
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+
+ if (wrkMastExecuteService.getWrkMastExecuteByjarReginCount(basJar.getRegion())!=0){
+ return false;
+ }
+
+ int count = basJarMastService.selectCount(new EntityWrapper<BasJarMast>().eq("jar_regin", basJar.getRegion()).lt("status", 17).gt("status", 11));
+ if (count>0){
+ return false;
+ }
+
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂�� Other宸﹂棬鍏抽棴
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ if (!jarProtocol.isLeftDoor() && basJarMast.getStatus()==0){
+ //鐢熸垚寮�闂ㄤ换鍔� OpenTheDoor
+ if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvNo(),1,1})){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
+ }
+ return true;
+ } else if (jarProtocol.isLeftDoor()){
+ //鐢熸垚鍏ョ~鍖栫綈浠诲姟
+ if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvNo(),5,1})){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
+ }
+ return true;
+ }
+// else if (jarProtocol.statusType == JarStatusType.IDLE && jarProtocol.isLeftDoor()){
+// log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬬~鍖栫綈绌洪棽浣嗘槸闂ㄦ湭鍏�===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
+// }
+ }
+ return false;
+ } else {
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(staProtocolRGV)+";BasJarMast:"+JSON.toJSONString(basJarMast));
+ return false;
+ }
+ }
+ }
+
+ } catch (Exception e){
+ log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟鍒涘缓 //瀹屾垚
+ * 鍏宠繘鏂欓棬
+ */
+ public synchronized boolean jarWrkMastExecuteGenerate2(JarSlave jarSlave,Integer sign) {
+ try{
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+ return false;
+ }
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
+ add(4);
+ }});
+ if (basJarMastList.isEmpty()){
+ return false;
+ }
+
+ BasJarMast basJarMastSign = basJarMastList.get(0);
+ if (Cools.isEmpty(basJarMastSign)){
+ return false;
+ }
+
+ if (wrkMastExecuteService.getWrkMastExecuteByjarReginCount(basJarMastSign.getJarRegin())!=0){
+ return false;
+ }
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1,SteStatusType.IDLE)){
+// return false;
+// }
+
+ JarSlave.RgvStn rgvStn = jarSlave.getJarInRgv().get(0);
+
+ if (jarWrkMastExecuteGenerateRgvStatus(rgvStn.getRgvNo(),rgvStn.getDevpPlcId(),1)){
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ return false;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ return false;
+ }
+
+ if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+ jarMaxLoc = basJar.getJarCount();
+ if (jarMaxLoc == 0) {
+ return false;
+ }
+// if (!basJar.getJarCount().equals(jarMaxLoc)){
+// log.error("{}鍙风~鍖栫綈鏌ヨ璁惧搴撳瓨鏁板紓甯革紒锛侊紒搴撳瓨寰呭叆鏁帮細{}",jarProtocol.getJarNo(),basJar.getJarCount());
+// return false;
+// }
+ if (basJarMastList.size() != jarMaxLoc){
+ return false;
+ }
+
+ //闂ㄤ綔涓� 鏃�
+ if (jarProtocol.isAutoing() && jarProtocol.statusType != JarStatusType.SOS && jarProtocol.jarErr==0
+ && jarProtocol.isRightDoor() && jarProtocol.isLeftDoor()
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ //鍏宠繘鏂欓棬
+ if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMastSign,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvNo(),2,1})){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMastSign));
+ }
+ return true;
+ }
+ return false;
+ } else {
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(rgvStn)+";BasJarMast:"+JSON.toJSONString(basJarMastSign));
+ return false;
+ }
+ } catch (Exception e){
+ log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟鍒涘缓 //瀹屾垚
+ * 寮�鍑烘枡闂�
+ */
+ public synchronized boolean jarWrkMastExecuteGenerate3(JarSlave jarSlave,Integer sign) {
+ try{
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+ return false;
+ }
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
+ add(6);
+ }});
+ if (basJarMastList.isEmpty()){
+ return false;
+ }
+
+ BasJarMast basJarMastSign = basJarMastList.get(0);
+ if (Cools.isEmpty(basJarMastSign)){
+ return false;
+ }
+
+ if (wrkMastExecuteService.getWrkMastExecuteByjarReginCount(basJarMastSign.getJarRegin())!=0){
+ return false;
+ }
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),2,SteStatusType.IDLE)){
+// return false;
+// }
+
+ //鍒ゆ柇RGV鐘舵��
+ JarSlave.RgvStn rgvStn = jarSlave.getJarOutRgv().get(0);
+
+ if (jarWrkMastExecuteGenerateRgvStatus(rgvStn.getRgvNo(),rgvStn.getDevpPlcId(),1)){
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ return false;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ return false;
+ }
+
+ if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+// if (jarProtocol.getJarTemperature()>jarTemperature){
+// log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+// return false;
+// }
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+ jarMaxLoc = basJar.getJarCount();
+ if (jarMaxLoc == 0) {
+ return false;
+ }
+ if (basJarMastList.size() != jarMaxLoc){
+ return false;
+ }
+
+ //闂ㄤ綔涓� 鏃�
+ if (jarProtocol.isAutoing() && jarProtocol.statusType == JarStatusType.WAITING2 && jarProtocol.jarErr==0
+ && !jarProtocol.isLeftDoor() && !jarProtocol.isRightDoor()
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ //寮�鍑烘枡闂�
+ if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMastSign,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),3,1})){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMastSign));
+ }
+ return true;
+ } else if (jarProtocol.isAutoing() && jarProtocol.statusType != JarStatusType.SOS
+ && jarProtocol.statusType != JarStatusType.WAITING2 && jarProtocol.jarErr==0
+ && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ Integer integer = basJarMastService.updateStatus(jarProtocol.getJarNo(), 6, 8);
+ if (basJarMastList.size()!=integer){
+ log.error("{}鍙风~鍖栫綈纭寲瀹屾垚鍚庡紑闂ㄥ畬鎴愪慨鏀圭~鍖栨。妗堢姸鎬佺粨鏋滄暟閲忎笉涓�鑷达紒锛侊紒鏌ヨ璧勬枡鏁伴噺={}锛屾洿鏂拌繑鍥炴暟閲�={}",jarProtocol.getJarNo(),basJarMastList.size(),integer);
+ }
+ return true;
+ }
+ return false;
+ } else {
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(rgvStn)+";BasJarMast:"+JSON.toJSONString(basJarMastSign));
+ return false;
+ }
+ } catch (Exception e){
+ log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟鍒涘缓 //瀹屾垚
+ * 鍑虹~鍖栫綈 ===銆� 鍏ュ喎鍗存Ы
+ */
+ public synchronized boolean jarWrkMastExecuteGenerate4(JarSlave jarSlave,Integer sign) {
+ try{
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+ return false;
+ }
+ List<BasJarMast> basJarMastList1 = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getJarOtherId(), new ArrayList<Integer>() {{
+ add(0);add(1);add(2);add(3);
+ }});
+ if (!basJarMastList1.isEmpty()){
+ return false;
+ }
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
+ add(8);
+ }});
+ if (basJarMastList.isEmpty()){
+ return false;
+ }
+ List<BasJarMast> basJarMastList10 = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
+ add(10);
+ }});
+
+ BasJarMast jarMastByJarIdMin = basJarMastService.getJarMastByJarIdMin(jarSlave.getId(),8,8);
+ if (Cools.isEmpty(jarMastByJarIdMin)){
+ return false;
+ }
+ if (wrkMastExecuteService.getWrkMastExecuteByjarReginCount(jarMastByJarIdMin.getJarRegin())!=0){
+ return false;
+ }
+
+ int count = basJarMastService.selectCount(new EntityWrapper<BasJarMast>().eq("jar_regin", jarMastByJarIdMin.getJarRegin()).lt("status", 17).gt("status", 10));
+ if (count>0){
+ return false;
+ }
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2,SteStatusType.IDLE)){
+// return false;
+// }
+
+ //鍒ゆ柇RGV鐘舵��
+ JarSlave.RgvStn rgvStn = jarSlave.getJarOutRgv().get(0);
+
+ if (jarWrkMastExecuteGenerateRgvStatus(rgvStn.getRgvNo(),rgvStn.getDevpPlcId(),1)){
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ return false;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ return false;
+ }
+
+ if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+
+ jarMaxLoc = basJar.getJarCount();
+ if (jarMaxLoc == 0) {
+ return false;
+ }
+ if (basJarMastList10.size()==jarMaxLoc){
+ return false;
+ }
+
+ BasJar basJarOther = basJarMapper.selectById(jarSlave.getJarOtherId());
+ if (Cools.isEmpty(basJarOther)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarSlave.getJarOtherId());
+ return false;
+ }
+
+ if (basJarOther.getJarCount() == 0) {
+ return false;
+ }
+
+ List<BasJarMast> basJarMastListOther = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getJarOtherId(), new ArrayList<Integer>() {{
+ add(8);
+ }});
+ if (!basJarMastListOther.isEmpty() && basJarMastListOther.size() < basJarOther.getJarCount()){
+ return false;
+ }
+ if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),4)!=0 && !basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(), 4).equals(basJarOther.getJarCount() )){
+ return false;
+ }
+
+// //涓存椂
+// if (basJar.getJarCode()==1){
+// JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
+// JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
+// if (jarOtherProtocol == null) {
+// return false;
+// }
+//
+// if (!jarOtherProtocol.isAutoing() || jarOtherProtocol.jarErr!=0
+// || !jarOtherProtocol.isLeftDoor() || !jarOtherProtocol.isRightDoor()
+// || jarOtherProtocol.leftDoorOpen==1 || jarOtherProtocol.leftDoorClose==1 || jarOtherProtocol.rightDoorOpen==1 || jarOtherProtocol.rightDoorClose==1){
+// log.error("{}鍙风~鍖栫綈鏌ヨ璁惧涓嶆弧瓒冲墠寰�鍐峰嵈姹犳潯浠讹紝浠e彿2纭寲缃愰棬娌″紑锛侊紒锛�",jarOtherProtocol.getJarNo());
+// return false;
+// }
+// }
+
+ //闂ㄤ綔涓� 鏃�
+// if (jarProtocol.isAutoing() && jarProtocol.statusType == JarStatusType.WAITING4 && jarProtocol.jarErr==0
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+ && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ //鍏ュ喎鍗存Ы
+ if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByJarIdMin,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),6,1})){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByJarIdMin));
+ }
+ jarMastByJarIdMin.setStatus(jarMastByJarIdMin.getStatusComplete());
+
+ if (!basJarMastService.updateById(jarMastByJarIdMin)){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>jarMastByJarIdMin鏇存柊澶辫触===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByJarIdMin));
+ }
+ return true;
+ }
+ return false;
+ } else {
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(rgvStn)+";BasJarMast:"+JSON.toJSONString(jarMastByJarIdMin));
+ return false;
+ }
+ } catch (Exception e){
+ log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟鍒涘缓 //瀹屾垚
+ * 鍐峰嵈瀹屾垚涓婅緭閫佺嚎
+ */
+ public synchronized boolean jarWrkMastExecuteGenerate5(JarSlave jarSlave,Integer sign) {
+ try{
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
+ return false;
+ }
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusListB(jarSlave.getId(), new ArrayList<Integer>() {{
+ add(12);//鍐峰嵈瀹屾垚
+ }});
+ if (basJarMastList.isEmpty()){
+ return false;
+ }
+
+ if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),6)!=0){
+ return false;
+ }
+
+ BasJarMast jarMastByJarIdMin = basJarMastService.getJarMastByJarIdMinB(jarSlave.getId(),12,12);
+ if (Cools.isEmpty(jarMastByJarIdMin)){
+ return false;
+ }
+
+ if (wrkMastExecuteService.getWrkMastExecuteByjarReginCount(jarMastByJarIdMin.getJarRegin())!=0){
+ return false;
+ }
+//
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),3,SteStatusType.IDLE)){
+// return false;
+// }
+
+ //鍒ゆ柇RGV鐘舵��
+ JarSlave.RgvStn rgvStn = jarSlave.getJarOutRgv().get(0);
+
+ if (jarWrkMastExecuteGenerateRgvStatus(rgvStn.getRgvNo(),rgvStn.getDevpPlcId(),1)){
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ return false;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ return false;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThreadOther = (JarThread) SlaveConnection.get(SlaveType.Jar, SteAndJarUtil.getRgvJarNo(jarProtocol.getJarNo()));
+ JarProtocol jarProtocolOther = jarThreadOther.getJarProtocol();
+ if (jarProtocolOther == null) {
+ return false;
+ }
+ if (jarProtocolOther.modeType != JarModeType.AUTO){
+ return false;
+ }
+
+ BasJar basJarOther = basJarMapper.selectById(jarProtocolOther.getJarNo());
+ if (Cools.isEmpty(basJarOther)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocolOther.getJarNo());
+ return false;
+ }
+
+ if (!jarProtocolOther.isRightDoor()){
+ return false;
+ }
+
+ //闂ㄤ綔涓� 鏃�
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0){
+ //鍐峰嵈瀹屾垚涓婅緭閫佺嚎
+ if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByJarIdMin,basJar.getBurial(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),9,1})){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByJarIdMin));
+ }
+ return true;
+ }
+ return false;
+ } else {
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(rgvStn)+";BasJarMast:"+JSON.toJSONString(jarMastByJarIdMin));
+ return false;
+ }
+ } catch (Exception e){
+ log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * 鍒ゆ柇STE灏忚溅鐘舵�� //瀹屾垚
+ * 1锛欰闈� 杩涙枡闈�
+ * 2锛欱闈� 鍑烘枡闈�
+ * 3锛氬喎鍗存ЫB闈� 涓婅緭閫佺嚎
+ */
+ public synchronized boolean jarWrkMastExecuteGenerateSteStatus(Integer steNo,Integer type,SteStatusType steStatusType,boolean chargeSign) {
+ try{
+ //鍒ゆ柇灏忚溅鐘舵��
+ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
+ if (steThread == null) {
+ return false;
+ }
+ SteProtocol steProtocol = steThread.getSteProtocol();
+ if (steProtocol == null) {
+ return false;
+ }
+ if (steProtocol.getMode() != (short)1) {
+// log.error(steNo + "鍙峰皬杞︾绾匡紝鏃犳硶鎿嶄綔");
+ return false;
+ }
+ if (steProtocol.getChargeStatus()!=0){
+ log.error(steNo + "鍙峰皬杞﹀湪鍏呯數锛岀瓑寰�....");
+ return false;
+ }
+ if (steProtocol.getCharge()<31.0F && chargeSign){
+ log.error(steNo + "鍙峰皬杞﹀綋鍓嶇數閲忚繃浣庯紝鍑嗗鍏呯數...褰撳墠鐢甸噺"+steProtocol.getCharge().toString());
+ return false;
+ }
+ if (!steProtocol.getStatusType().equals(steStatusType)) {
+ log.error(steNo + "鍙峰皬杞︾姸鎬佷笉鏄�"+JSON.toJSONString(steStatusType)+"锛岀瓑寰�....");
+ return false;
+ }
+ switch (type){
+ case 1:
+ if (!steProtocol.getLocaType().equals(SteLocaType.POINT20)) {
+ log.error(steNo + "鍙峰皬杞︿笉鍦ˋ闈㈠钩绉昏溅锛屾棤娉曟搷浣�");
+ return false;
+ }
+ break;
+ case 2:
+ if (!steProtocol.getLocaType().equals(SteLocaType.POINT23)) {
+ log.error(steNo + "鍙峰皬杞︿笉鍦˙闈㈠钩绉昏溅锛屾棤娉曟搷浣�");
+ return false;
+ }
+ break;
+ case 3:
+ if (!steProtocol.getLocaType().equals(SteLocaType.POINT26) && !steProtocol.getLocaType().equals(SteLocaType.POINT25)) {
+ log.error(steNo + "鍙峰皬杞︿笉鍦ㄦ按妲紹绔紝鏃犳硶鎿嶄綔");
+ return false;
+ }
+ break;
+ default: return false;
+ }
+ return true;
+ } catch (Exception e){
+ log.error("{}鍙峰皬杞︾姸鎬佸垽鏂姸鎬佸紓甯�,寮傚父鍘熷洜={}",steNo,e.getMessage());
+ }
+ return false;
+ }
+
+ public synchronized boolean jarWrkMastExecuteGenerateSteStatusCharge(Integer steNo,Integer type,SteStatusType steStatusType,boolean chargeSign) {
+ try{
+ //鍒ゆ柇灏忚溅鐘舵��
+ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
+ if (steThread == null) {
+ return false;
+ }
+ SteProtocol steProtocol = steThread.getSteProtocol();
+ if (steProtocol == null) {
+ return false;
+ }
+ if (steProtocol.getMode() != (short)1) {
+// log.error(steNo + "鍙峰皬杞︾绾匡紝鏃犳硶鎿嶄綔");
+ return false;
+ }
+ if (steProtocol.getCharge()<31.0F && chargeSign){
+ log.error(steNo + "鍙峰皬杞﹀綋鍓嶇數閲忚繃浣庯紝鍑嗗鍏呯數...褰撳墠鐢甸噺"+steProtocol.getCharge().toString());
+ return false;
+ }
+ if (!steProtocol.getStatusType().equals(steStatusType)) {
+ log.error(steNo + "鍙峰皬杞︾姸鎬佷笉鏄�"+JSON.toJSONString(steStatusType)+"锛岀瓑寰�....");
+ return false;
+ }
+ switch (type){
+ case 1:
+ if (!steProtocol.getLocaType().equals(SteLocaType.POINT20)) {
+ log.error(steNo + "鍙峰皬杞︿笉鍦ˋ闈㈠钩绉昏溅锛屾棤娉曟搷浣�");
+ return false;
+ }
+ break;
+ case 2:
+ if (!steProtocol.getLocaType().equals(SteLocaType.POINT23)) {
+ log.error(steNo + "鍙峰皬杞︿笉鍦˙闈㈠钩绉昏溅锛屾棤娉曟搷浣�");
+ return false;
+ }
+ break;
+ case 3:
+ if (!steProtocol.getLocaType().equals(SteLocaType.POINT26) && !steProtocol.getLocaType().equals(SteLocaType.POINT25)) {
+ log.error(steNo + "鍙峰皬杞︿笉鍦ㄦ按妲紹绔紝鏃犳硶鎿嶄綔");
+ return false;
+ }
+ break;
+ default: return false;
+ }
+ return true;
+ } catch (Exception e){
+ log.error("{}鍙峰皬杞︾姸鎬佸垽鏂姸鎬佸紓甯�,寮傚父鍘熷洜={}",steNo,e.getMessage());
+ }
+ return false;
+ }
+
+ /*
+ * 鍒ゆ柇RGV灏忚溅鐘舵�� //瀹屾垚
+ * RGV1;//灏忚溅鏃犺揣绌洪棽
+ * RGV2;//灏忚溅杈撻�佺嚎鍙栬揣鍒颁綅
+ * RGV3;//灏忚溅杩愯涓�
+ * RGV3;//灏忚溅杩愯涓�
+ * RGV4;//灏忚溅鏀瑰乏渚ц揣鐗╃洰鏍囩珯 鍙�1锛堝乏锛夎揣鐗�
+ * RGV5;//灏忚溅鏀瑰彸渚ц揣鐗╃洰鏍囩珯 鍙�2锛堝彸锛夎揣鐗�
+ * RGV6;//涓婁綅鏈烘竻闄ゅ钩绉昏溅璧勬枡
+ * */
+ public synchronized boolean jarWrkMastExecuteGenerateRgvStatus(Integer rgvNo,Integer rgvPlcId,Integer type) {
+ try{
+ //妫�娴婻GV鐘舵��
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvPlcId);
+ StaProtocol staProtocolRGV = devpThread.getStation().get(rgvNo);
+ if (staProtocolRGV == null) {
+ return false;
+ } else {
+ staProtocolRGV = staProtocolRGV.clone();
+ }
+ if (staProtocolRGV == null) {
+ return false;
+ }
+
+ return staProtocolRGV.rgvBoolean(type);
+ } catch (Exception e){
+ log.error("{}鍙稲GV鐘舵�佸垽鏂姸鎬佸紓甯�,寮傚父鍘熷洜={}",rgvNo,e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц //瀹屾垚
+ */
+ public synchronized boolean jarWrkMastExecuteGenerateExecute(BasJar basJar,BasJarMast basJarMast,Integer id,int[] digit) {
+ try {
+ WrkMastExecute wrkMastExecute = new WrkMastExecute(basJarMast);
+ wrkMastExecute.setJarId(id);
+ wrkMastExecute.setSteId(digit[0]);//绌挎鏉縄D
+ wrkMastExecute.setRgvId(basJar.getEnterRgvNo());//RGV ID enter
+ wrkMastExecute.setRgvEndId(basJar.getOutRgvNo());//RGV ID out
+ wrkMastExecute.setIoType(digit[2]);//浠诲姟绫诲瀷 0: 鏈煡 1: 寮�杩涙枡闂� 2: 鍏宠繘鏂欓棬 3: 寮�鍑烘枡闂� 4: 鍏冲嚭鏂欓棬 5: 鍏ョ~鍖栫綈 6: 鍏ュ喎鍗存Ы 7: 绌挎杞﹁繘鍐峰嵈妲� 8: 绌挎杞︾寮�鍐峰嵈妲� 9: 鍑哄喎鍗存Ы 10锛欰=>B 11:B=>A 100:灏忚溅鍏呯數浠诲姟
+ wrkMastExecute.setType(digit[3]);//璁惧 0: 鏈煡 1: 纭寲缃� 2: 鍐峰嵈妲� 3: 纭寲缃�==>鍐峰嵈妲�
+ return wrkMastExecuteService.insert(wrkMastExecute);
+ } catch (Exception e) {
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц //瀹屾垚
+ */
+ public synchronized boolean jarWrkMastExecuteGenerateExecuteMove(BasJar basJar,BasJarMast basJarMast,Integer id,int[] digit) {
+ try {
+ WrkMastExecute wrkMastExecute = new WrkMastExecute(basJarMast);
+ wrkMastExecute.setJarId(id);
+ wrkMastExecute.setSteId(digit[0]);//绌挎鏉縄D
+ wrkMastExecute.setRgvId(basJar.getEnterRgvNo());//RGV ID enter
+ wrkMastExecute.setRgvEndId(basJar.getOutRgvNo());//RGV ID out
+ wrkMastExecute.setIoType(digit[2]);//浠诲姟绫诲瀷 0: 鏈煡 1: 寮�杩涙枡闂� 2: 鍏宠繘鏂欓棬 3: 寮�鍑烘枡闂� 4: 鍏冲嚭鏂欓棬 5: 鍏ョ~鍖栫綈 6: 鍏ュ喎鍗存Ы 7: 绌挎杞﹁繘鍐峰嵈妲� 8: 绌挎杞︾寮�鍐峰嵈妲� 9: 鍑哄喎鍗存Ы 10锛欰=>B 11:B=>A
+ wrkMastExecute.setType(digit[3]);//璁惧 0: 鏈煡 1: 纭寲缃� 2: 鍐峰嵈妲� 3: 纭寲缃�==>鍐峰嵈妲�
+ return wrkMastExecuteService.insert(wrkMastExecute);
+ } catch (Exception e) {
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+ }
+ return false;
+ }
+
+ /*
+ * JarWrkMastExecute浠诲姟鍒涘缓==>涓嬪彂
+ * Action
+ * */
+ public synchronized void jarWrkMastExecuteAction(Integer sign,Integer sign2) {
+ if (sign2==0){
+ jarWrkMastExecuteActionOne(sign);
+ } else if (sign2 == 1){
+ jarWrkMastExecuteActionTwo(sign);
+ } else if (sign2 == 2){
+ jarWrkMastExecuteActionThree(sign);
+ }
+ }
+ public synchronized void jarWrkMastExecuteActionOne(Integer sign) {
+ try{
+ List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, null,0);
+ for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+ if (wrkMastExecute.getWrkSts()!=0){
+ continue;
+ }
+ /*
+ * 浠诲姟绫诲瀷 0: 鏈煡
+ * 1: 寮�杩涙枡闂� 2: 鍏宠繘鏂欓棬 3: 寮�鍑烘枡闂� 4: 鍏冲嚭鏂欓棬
+ * 5: 鍏ョ~鍖栫綈
+ * 6: 鍏ュ喎鍗存Ы
+ * 7: 绌挎杞﹁繘鍐峰嵈妲� 8: 绌挎杞︾寮�鍐峰嵈妲�
+ * 9: 鍑哄喎鍗存Ы
+ * 10锛欰=>B 11:B=>A
+ * 100锛氬厖鐢典换鍔�
+ * */
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓==>涓嬪彂===>琛�={}",5326);
+ switch (wrkMastExecute.getIoType()){
+ case 1://1: 寮�杩涙枡闂�
+ case 3://3: 寮�鍑烘枡闂�
+ if (jarWrkMastExecuteActionExecute1(wrkMastExecute,sign)){
+ break;
+ }
+ continue;
+ case 2:
+ case 4:
+ if (jarWrkMastExecuteActionExecute2(wrkMastExecute,sign)){
+ break;
+ }
+ continue;
+ case 5:
+ if (jarWrkMastExecuteActionExecute5(wrkMastExecute,sign)){
+ break;
+ }
+ continue;
+ case 6:
+ if (jarWrkMastExecuteActionExecute6(wrkMastExecute,sign)){
+ break;
+ }
+ continue;
+ case 7:
+ case 8:
+ if (jarWrkMastExecuteActionExecute7(wrkMastExecute,sign)){
+ break;
+ }
+ continue;
+ case 9:
+ if (jarWrkMastExecuteActionExecute9(wrkMastExecute,sign)){
+ break;
+ }
+ continue;
+ case 10:
+ case 11:
+ if (jarWrkMastExecuteActionExecute10(wrkMastExecute,sign)){
+ break;
+ }
+ continue;
+ case 100:
+ if (jarWrkMastExecuteActionExecute100(wrkMastExecute,sign)){
+ break;
+ }
+ continue;
+ }
+ }
+ } catch (Exception e){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>Action==>涓嬪彂"+e.getMessage());
+ }
+
+ }
+
+ /*
+ * JarWrkMastExecute浠诲姟鍒涘缓==>涓嬪彂
+ * Action
+ * */
+ public synchronized void jarWrkMastExecuteActionTwo(Integer sign) {
+ try{
+ List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, null,2);
+ for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+ /*
+ * 浠诲姟绫诲瀷 0: 鏈煡
+ * 1: 寮�杩涙枡闂� 2: 鍏宠繘鏂欓棬 3: 寮�鍑烘枡闂� 4: 鍏冲嚭鏂欓棬
+ * 5: 鍏ョ~鍖栫綈
+ * 6: 鍏ュ喎鍗存Ы
+ * 7: 绌挎杞﹁繘鍐峰嵈妲� 8: 绌挎杞︾寮�鍐峰嵈妲�
+ * 9: 鍑哄喎鍗存Ы
+ * 10锛欰=>B 11:B=>A
+ * */
+ switch (wrkMastExecute.getIoType()){
+ case 1://1: 寮�杩涙枡闂�
+ case 3://3: 寮�鍑烘枡闂�
+ if (jarWrkMastExecuteActionExecute1(wrkMastExecute,sign)){
+ break;
+ }
+ return;
+ case 2:
+ case 4:
+ if (jarWrkMastExecuteActionExecute2(wrkMastExecute,sign)){
+ break;
+ }
+ return;
+ case 5:
+ if (jarWrkMastExecuteActionExecute5(wrkMastExecute,sign)){
+ break;
+ }
+ return;
+ case 6:
+ if (jarWrkMastExecuteActionExecute6(wrkMastExecute,sign)){
+ break;
+ }
+ return;
+ case 7:
+ case 8:
+ if (jarWrkMastExecuteActionExecute7(wrkMastExecute,sign)){
+ break;
+ }
+ return;
+ case 9:
+ if (jarWrkMastExecuteActionExecute9Two(wrkMastExecute,sign)){
+ break;
+ }
+ return;
+ case 10:
+ case 11:
+ if (jarWrkMastExecuteActionExecute10(wrkMastExecute,sign)){
+ break;
+ }
+ return;
+ }
+ }
+ } catch (Exception e){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>Action==>涓嬪彂"+e.getMessage());
+ }
+
+ }
+
+ /*
+ * JarWrkMastExecute浠诲姟鍒涘缓==>涓嬪彂
+ * Action
+ * */
+ public synchronized void jarWrkMastExecuteActionThree(Integer sign) {
+ try{
+ List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, null,4);
+ for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+ /*
+ * 浠诲姟绫诲瀷 0: 鏈煡
+ * 1: 寮�杩涙枡闂� 2: 鍏宠繘鏂欓棬 3: 寮�鍑烘枡闂� 4: 鍏冲嚭鏂欓棬
+ * 5: 鍏ョ~鍖栫綈
+ * 6: 鍏ュ喎鍗存Ы
+ * 7: 绌挎杞﹁繘鍐峰嵈妲� 8: 绌挎杞︾寮�鍐峰嵈妲�
+ * 9: 鍑哄喎鍗存Ы
+ * 10锛欰=>B 11:B=>A
+ * */
+ switch (wrkMastExecute.getIoType()){
+ case 5:
+ if (jarWrkMastExecuteActionExecute5Three(wrkMastExecute,sign)){
+ break;
+ }
+ return;
+ case 6:
+ if (jarWrkMastExecuteActionExecute6Three(wrkMastExecute,sign)){
+ break;
+ }
+ return;
+ }
+ }
+ } catch (Exception e){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>Action==>涓嬪彂"+e.getMessage());
+ }
+
+ }
+
+
+ /**
+ * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+ * 1銆�3寮�杩涙枡闂�
+ * 浠诲姟涓嬪彂
+ */
+ public synchronized boolean jarWrkMastExecuteActionExecute1(WrkMastExecute wrkMastExecute,Integer sign) {
+ try{
+ List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+ if (wrkMastExecuteByJarNo.size()!=1
+ || !wrkMastExecuteByJarNo.get(0).getIoType().equals(wrkMastExecute.getIoType())
+ || !wrkMastExecuteByJarNo.get(0).getWrkSts().equals(wrkMastExecute.getWrkSts())
+ || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo()) ){
+ return false;
+ }
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ return false;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ return false;
+ }
+ if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+// if (jarProtocol.getJarTemperature()>jarTemperature){
+// log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+// return false;
+// }
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
+// return false;
+// }
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
+ if (staProtocolRGV == null) {
+ return false;
+ } else {
+ staProtocolRGV = staProtocolRGV.clone();
+ }
+ if (staProtocolRGV == null) {
+ return false;
+ }
+
+ StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+ if (staProtocolRGVOther == null) {
+ return false;
+ } else {
+ staProtocolRGVOther = staProtocolRGVOther.clone();
+ }
+ if (staProtocolRGVOther == null) {
+ return false;
+ }
+
+
+ if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){
+ if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+ //绉昏蛋 == > 2
+ if (!jarRgvMoveTake(wrkMastExecute,2)){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ return true;
+ }
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层�� 杩涙枡浠叧闂渶鎵撳紑
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ log.error("1銆�3寮�杩涙枡闂�==>浠诲姟涓嬪彂===>琛�={}",5546);
+ if (!jarProtocol.isLeftDoor() && !jarProtocol.isRightDoor()){
+ if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+ //绉昏蛋 == > 2
+ if (!jarRgvMoveTake(wrkMastExecute,2)){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(2);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ } else {
+ //鐩存帴寮�闂�/鍏抽棬
+ if (!jarDoorTake(wrkMastExecute,JarTaskModeType.OPEN_THE_DOOR)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ }
+ }else if (jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()){
+ //鐩存帴瀹屾垚
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(4);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ }
+
+ return true;
+ }
+ return false;
+ } else {
+ log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
+ return false;
+ }
+ } catch (Exception e){
+ log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+ * 2銆�4:鍏宠繘鏂欓棬
+ * 浠诲姟涓嬪彂
+ */
+ public synchronized boolean jarWrkMastExecuteActionExecute2(WrkMastExecute wrkMastExecute,Integer sign) {
+ try{
+ List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+ if (wrkMastExecuteByJarNo.size()!=1
+ || !wrkMastExecuteByJarNo.get(0).getIoType().equals(wrkMastExecute.getIoType())
+ || !wrkMastExecuteByJarNo.get(0).getWrkSts().equals(wrkMastExecute.getWrkSts())
+ || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo()) ){
+ return false;
+ }
+
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ return false;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ return false;
+ }
+ if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
+// return false;
+// }
+
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
+ if (staProtocolRGV == null) {
+ return false;
+ } else {
+ staProtocolRGV = staProtocolRGV.clone();
+ }
+ if (staProtocolRGV == null) {
+ return false;
+ }
+
+ StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+ if (staProtocolRGVOther == null) {
+ return false;
+ } else {
+ staProtocolRGVOther = staProtocolRGVOther.clone();
+ }
+ if (staProtocolRGVOther == null) {
+ return false;
+ }
+
+ if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){
+ if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+ //绉昏蛋 == > 2
+ if (!jarRgvMoveTake(wrkMastExecute,2)){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ return true;
+ }
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层�� 杩涙枡浠墦寮�闇�鍏抽棴
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ log.error("2銆�4:鍏抽棬==>浠诲姟涓嬪彂===>琛�={}",5667);
+ if (jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()){
+ if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+ //绉昏蛋 == > 2
+ if (!jarRgvMoveTake(wrkMastExecute,2)){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(2);
+
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ } else {
+ //鐩存帴鍏抽棬
+ if (!jarDoorTake(wrkMastExecute,JarTaskModeType.CLOSE_THE_DOOR)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ }
+ } else if (!jarProtocol.isLeftDoor() && !jarProtocol.isRightDoor()){
+ //鐩存帴瀹屾垚
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(4);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ }
+ return true;
+ }
+ return false;
+ } else {
+ log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
+ return false;
+ }
+ } catch (Exception e){
+ log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+ * 5:鍏ョ~鍖栫綈
+ * 浠诲姟涓嬪彂
+ */
+ public synchronized boolean jarWrkMastExecuteActionExecute5(WrkMastExecute wrkMastExecute,Integer sign) {
+ try{
+ List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+ if (wrkMastExecuteByJarNo.size()!=1
+ || !wrkMastExecuteByJarNo.get(0).getIoType().equals(wrkMastExecute.getIoType())
+ || !wrkMastExecuteByJarNo.get(0).getWrkSts().equals(wrkMastExecute.getWrkSts())
+ || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo()) ){
+ return false;
+ }
+
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ return false;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ return false;
+ }
+ if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
+ if (staProtocolRGV == null) {
+ return false;
+ } else {
+ staProtocolRGV = staProtocolRGV.clone();
+ }
+ if (staProtocolRGV == null) {
+ return false;
+ }
+
+ StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+ if (staProtocolRGVOther == null) {
+ return false;
+ } else {
+ staProtocolRGVOther = staProtocolRGVOther.clone();
+ }
+ if (staProtocolRGVOther == null) {
+ return false;
+ }
+ if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){
+ if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+ //绉昏蛋 == > 2
+ if (!jarRgvMoveTake(wrkMastExecute,2)){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ return true;
+ }
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层�� 杩涙枡浠墦寮�闇�鍏抽棴
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ log.error("5:鍏ョ~鍖栫綈==>浠诲姟涓嬪彂===>琛�={}",5667);
+ //鍒ゆ柇灏忚溅鐘舵�� //鍏ョ~鍖栫綈灏忚溅鍙复鏃跺睆钄�
+ if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE,true)){
+ return false;
+ }
+ if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+
+ //璋冭溅 == > 鍙栬揣
+ if (!jarRgvGetTake(wrkMastExecute
+ ,SteAndJarUtil.getRgvStaRow(wrkMastExecute.getJarEnterStaNo())==1
+ ,SteAndJarUtil.getRgvStaRow(wrkMastExecute.getJarEnterStaNo())==3)){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ return true;
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ } else {
+ //璋冭溅 == > endRow
+ if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(2);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ }
+ return true;
+ }
+ return false;
+ } else {
+ log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
+ return false;
+ }
+ } catch (Exception e){
+ log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+ * io_type==>5:鍏ョ~鍖栫綈 : wrkSts ==>4锛歳gv鍙栬揣瀹屾垚
+ * =====>wrkSts ==>5锛歋te绌挎鐗堝叆纭寲缃�(娓呮RGV璧勬枡)
+ * 浠诲姟涓嬪彂
+ */
+ public synchronized boolean jarWrkMastExecuteActionExecute5Three(WrkMastExecute wrkMastExecute,Integer sign) {
+ try{
+ List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecute);
+ if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){
+ return false;
+ }
+
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ return false;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ return false;
+ }
+ if (jarProtocol.statusType .equals(JarStatusType.WAITING2) || jarProtocol.statusType .equals(JarStatusType.SOS)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
+// return false;
+// }
+
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
+ if (staProtocolRGV == null) {
+ return false;
+ } else {
+ staProtocolRGV = staProtocolRGV.clone();
+ }
+ if (staProtocolRGV == null) {
+ return false;
+ }
+
+ StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+ if (staProtocolRGVOther == null) {
+ return false;
+ } else {
+ staProtocolRGVOther = staProtocolRGVOther.clone();
+ }
+ if (staProtocolRGVOther == null) {
+ return false;
+ }
+
+ if (staProtocolRGV.rgvBoolean(2) && staProtocolRGVOther.rgvBoolean(1)){//涓存椂
+// if (staProtocolRGV.rgvBoolean(2)){
+ if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+ //绉昏蛋 == > 2
+ if (!jarRgvMoveTake(wrkMastExecute,2)){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ return true;
+ }
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层�� 杩涙枡浠墦寮�闇�鍏抽棴
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ log.error("io_type==>5:鍏ョ~鍖栫綈 : wrkSts ==>4锛歳gv鍙栬揣瀹屾垚==>浠诲姟涓嬪彂===>琛�={}",5898);
+
+ if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE,true)){
+ return false;
+ }
+ //璋冭溅 == > 鍙栬揣
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT20.id,SteLocaType.POINT22.id,SteTaskModeType.STE_WFFH_13,false,wrkMastExecute.getJarId())){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(5);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ } else {
+ //璋冭溅 == > endRow
+ if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ }
+ return true;
+ }
+ return false;
+ } else {
+ log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
+ return false;
+ }
+ } catch (Exception e){
+ log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+ * 6:鍏ュ喎鍗存Ы
+ * 浠诲姟涓嬪彂
+ */
+ public synchronized boolean jarWrkMastExecuteActionExecute6(WrkMastExecute wrkMastExecute,Integer sign) {
+ try{
+ List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+ if (wrkMastExecuteByJarNo.size()!=1
+ || !wrkMastExecuteByJarNo.get(0).getIoType().equals(wrkMastExecute.getIoType())
+ || !wrkMastExecuteByJarNo.get(0).getWrkSts().equals(wrkMastExecute.getWrkSts())
+ || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo()) ){
+ return false;
+ }
+
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ return false;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ return false;
+ }
+ if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThreadOther = (JarThread) SlaveConnection.get(SlaveType.Jar, SteAndJarUtil.getRgvJarNo(wrkMastExecute.getJarId()));
+ JarProtocol jarProtocolOther = jarThreadOther.getJarProtocol();
+ if (jarProtocolOther == null) {
+ return false;
+ }
+ if (jarProtocolOther.modeType != JarModeType.AUTO){
+ return false;
+ }
+
+ BasJar basJarOther = basJarMapper.selectById(jarProtocolOther.getJarNo());
+ if (Cools.isEmpty(basJarOther)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocolOther.getJarNo());
+ return false;
+ }
+
+ if (!jarProtocolOther.isRightDoor()){
+ return false;
+ }
+
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
+ if (staProtocolRGV == null) {
+ return false;
+ } else {
+ staProtocolRGV = staProtocolRGV.clone();
+ }
+ if (staProtocolRGV == null) {
+ return false;
+ }
+
+ StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+ if (staProtocolRGVOther == null) {
+ return false;
+ } else {
+ staProtocolRGVOther = staProtocolRGVOther.clone();
+ }
+ if (staProtocolRGVOther == null) {
+ return false;
+ }
+
+ if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){ //涓存椂
+// if ( staProtocolRGVOther.rgvBoolean(1)){
+ if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+ //绉昏蛋 == > 2
+ if (!jarRgvMoveTake(wrkMastExecute,2)){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ return true;
+ }
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层��
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ log.error("6:鍏ュ喎鍗存Ы==>浠诲姟涓嬪彂===>琛�={}",6002);
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE,true)){
+ return false;
+ }
+
+ if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+
+ //璋冭溅 == > 鍙栬揣
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT21.id,SteTaskModeType.STE_WFQH_12,false,wrkMastExecute.getJarId())){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ } else {
+ //璋冭溅 == > endRow
+ if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(2);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ }
+ return true;
+ }
+ return false;
+ } else {
+ log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
+ return false;
+ }
+ } catch (Exception e){
+ log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+ * 6:鍏ュ喎鍗存Ы
+ * 浠诲姟涓嬪彂
+ */
+ public synchronized boolean jarWrkMastExecuteActionExecute6Three(WrkMastExecute wrkMastExecute,Integer sign) {
+ try{
+ List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecute);
+ if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){
+ return false;
+ }
+
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ return false;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ return false;
+ }
+
+ if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThreadOther = (JarThread) SlaveConnection.get(SlaveType.Jar, SteAndJarUtil.getRgvJarNo(wrkMastExecute.getJarId()));
+ JarProtocol jarProtocolOther = jarThreadOther.getJarProtocol();
+ if (jarProtocolOther == null) {
+ return false;
+ }
+ if (jarProtocolOther.modeType != JarModeType.AUTO){
+ return false;
+ }
+
+ BasJar basJarOther = basJarMapper.selectById(jarProtocolOther.getJarNo());
+ if (Cools.isEmpty(basJarOther)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocolOther.getJarNo());
+ return false;
+ }
+
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
+// return false;
+// }
+
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
+ if (staProtocolRGV == null) {
+ return false;
+ } else {
+ staProtocolRGV = staProtocolRGV.clone();
+ }
+ if (staProtocolRGV == null) {
+ return false;
+ }
+
+ StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+ if (staProtocolRGVOther == null) {
+ return false;
+ } else {
+ staProtocolRGVOther = staProtocolRGVOther.clone();
+ }
+ if (staProtocolRGVOther == null) {
+ return false;
+ }
+
+ if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){ //涓存椂
+// if (staProtocolRGVOther.rgvBoolean(1)){
+ if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+ //绉昏蛋 == > 2
+ if (!jarRgvMoveTake(wrkMastExecute,2)){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ return true;
+ }
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层��
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ log.error("6:鍏ュ喎鍗存Ы Three==>浠诲姟涓嬪彂===>琛�={}",6115);
+
+ if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocolOther.getJarNo())){
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.WAITING2,false)){
+ return false;
+ }
+ //璋冭溅 == > 鍙栬揣
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT25.id,SteTaskModeType.STE_WFFH_13,false,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(5);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ } else {
+ //璋冭溅 == > endRow
+ if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getJarNoEndRow(basJar.getBurial()))){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+// wrkMastExecute.setWrkType(1);
+// wrkMastExecute.setWrkSts(2);
+// if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+// log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+// wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+// }
+ }
+ return true;
+ }
+ return false;
+ } else {
+ log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
+ return false;
+ }
+ } catch (Exception e){
+ log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+ * 7锛氱┛姊溅杩涘喎鍗存Ы 7 B=>C
+ * 8锛氱┛姊溅绂诲紑鍐峰嵈妲� 8 C=>B
+ * 浠诲姟涓嬪彂
+ */
+ public synchronized boolean jarWrkMastExecuteActionExecute7(WrkMastExecute wrkMastExecute,Integer sign) {
+ try{
+ List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecute);
+ if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){
+ return false;
+ }
+
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ return false;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ return false;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThreadOther = (JarThread) SlaveConnection.get(SlaveType.Jar, SteAndJarUtil.getRgvJarNo(wrkMastExecute.getJarId()));
+ JarProtocol jarProtocolOther = jarThreadOther.getJarProtocol();
+ if (jarProtocolOther == null) {
+ return false;
+ }
+ if (jarProtocolOther.modeType != JarModeType.AUTO){
+ return false;
+ }
+
+ BasJar basJarOther = basJarMapper.selectById(jarProtocolOther.getJarNo());
+ if (Cools.isEmpty(basJarOther)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocolOther.getJarNo());
+ return false;
+ }
+
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
+// return false;
+// }
+
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
+ if (staProtocolRGV == null) {
+ return false;
+ } else {
+ staProtocolRGV = staProtocolRGV.clone();
+ }
+ if (staProtocolRGV == null) {
+ return false;
+ }
+
+ StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+ if (staProtocolRGVOther == null) {
+ return false;
+ } else {
+ staProtocolRGVOther = staProtocolRGVOther.clone();
+ }
+ if (staProtocolRGVOther == null) {
+ return false;
+ }
+
+ if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){
+ if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+ //绉昏蛋 == > 2
+ if (!jarRgvMoveTake(wrkMastExecute,2)){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ return true;
+ }
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层��
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0
+ && jarProtocolOther.isLeftDoor() && jarProtocolOther.isRightDoor()
+ ){
+ log.error("7锛氱┛姊溅杩涘喎鍗存Ы 7 B=>C//8锛氱┛姊溅绂诲紑鍐峰嵈妲� 8 C=>B Three==>浠诲姟涓嬪彂===>琛�={}",6245);
+ if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocolOther.getJarNo())){
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (wrkMastExecute.getIoType()==7){ //7 B=>C
+ if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE,true)){
+ //璋冭溅 == > 绉诲姩
+ if (jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT26.id,SteTaskModeType.STE_MOVE_14,false,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE,false)){
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(4);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ }
+ } else { //8 C=>B
+ if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE,false)){
+ //璋冭溅 == > 绉诲姩
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT26.id,SteLocaType.POINT23.id,SteTaskModeType.STE_MOVE_14,false,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE,false)){
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(4);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ }
+ }
+
+ } else {
+ //璋冭溅 == > endRow
+ if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(jarProtocolOther.getJarNo()))){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(2);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ }
+ return true;
+ }
+ return false;
+ } else {
+ log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
+ return false;
+ }
+ } catch (Exception e){
+ log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+ * 9锛氬嚭鍐峰嵈妲�
+ * 浠诲姟涓嬪彂
+ */
+ public synchronized boolean jarWrkMastExecuteActionExecute9(WrkMastExecute wrkMastExecute,Integer sign) {
+ try{
+ List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+ if (wrkMastExecuteByJarNo.size()!=1
+ || !wrkMastExecuteByJarNo.get(0).getIoType().equals(wrkMastExecute.getIoType())
+ || !wrkMastExecuteByJarNo.get(0).getWrkSts().equals(wrkMastExecute.getWrkSts())
+ || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo()) ){
+ return false;
+ }
+
+// // 鑾峰彇纭寲缃愪俊鎭�
+// JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId());
+// JarProtocol jarProtocol = jarThread.getJarProtocol();
+// if (jarProtocol == null) {
+// return false;
+// }
+// if (jarProtocol.modeType != JarModeType.AUTO){
+// return false;
+// }
+// if (jarProtocol.getJarTemperature()>jarTemperature){
+// log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+// return false;
+// }
+ BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙峰喎鍗存Ы鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+ return false;
+ }
+
+// // 鑾峰彇纭寲缃愪俊鎭�
+// JarThread jarThreadOther = (JarThread) SlaveConnection.get(SlaveType.Jar, SteAndJarUtil.getRgvJarNo(wrkMastExecute.getJarId()));
+// JarProtocol jarProtocolOther = jarThreadOther.getJarProtocol();
+// if (jarProtocolOther == null) {
+// return false;
+// }
+// if (jarProtocolOther.modeType != JarModeType.AUTO){
+// return false;
+// }
+//
+// BasJar basJarOther = basJarMapper.selectByJarNo(jarProtocolOther.getJarNo());
+// if (Cools.isEmpty(basJarOther)){
+// log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocolOther.getJarNo());
+// return false;
+// }
+
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
+// return false;
+// }
+//
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocol = devpThread.getStation().get(basJar.getStaNo());
+ if (staProtocol == null) {
+ return false;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ if (staProtocol == null) {
+ return false;
+ }
+ if (staProtocol.getWorkNo()!=0 || !staProtocol.isAutoing() || staProtocol.isLoading()){
+ return false;
+ }
+//
+// StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+// if (staProtocolRGVOther == null) {
+// return false;
+// } else {
+// staProtocolRGVOther = staProtocolRGVOther.clone();
+// }
+// if (staProtocolRGVOther == null) {
+// return false;
+// }
+//
+// if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){
+// if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+// //绉昏蛋 == > 2
+// if (jarRgvTake(wrkMastExecute,2)){
+// log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+// wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+// }
+// return true;
+// }
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层��
+// if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+// && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0
+// ){
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE,true)){
+ log.error("9锛氬嚭鍐峰嵈妲�==>浠诲姟涓嬪彂===>琛�={}",6410);
+
+ //璋冭溅 == > 鍙栬揣
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT26.id,SteLocaType.POINT24.id,SteTaskModeType.STE_WFQH_12,false,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},鍐峰嵈妲芥暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(basJar),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(1);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},鍐峰嵈妲芥暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(basJar),sign);
+ }
+ }
+ return true;
+// }
+// return false;
+// } else {
+// log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
+// return false;
+// }
+ } catch (Exception e){
+ log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+ * 9锛氬嚭鍐峰嵈妲�
+ * 浠诲姟涓嬪彂
+ */
+ public synchronized boolean jarWrkMastExecuteActionExecute9Two(WrkMastExecute wrkMastExecute,Integer sign) {
+ try{
+ List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+ if (wrkMastExecuteByJarNo.size()!=1
+ || !wrkMastExecuteByJarNo.get(0).getIoType().equals(wrkMastExecute.getIoType())
+ || !wrkMastExecuteByJarNo.get(0).getWrkSts().equals(wrkMastExecute.getWrkSts())
+ || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo()) ){
+ return false;
+ }
+
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocol = devpThread.getStation().get(wrkMastExecute.getJarOutStaNo());
+ if (staProtocol == null) {
+ return false;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ if (staProtocol == null) {
+ return false;
+ }
+ if (staProtocol.getWorkNo()!=0 || !staProtocol.isAutoing() || !staProtocol.isLoading()){
+ return false;
+ }
+
+ //鍒ゆ柇STE灏忚溅鐘舵��
+ if (jarWrkMastExecuteGenerateSteStatus(wrkMastExecute.getSteId(),3,SteStatusType.IDLE,false)){
+ log.error("9锛氬嚭鍐峰嵈妲絋wo==>浠诲姟涓嬪彂===>琛�={}",6468);
+ // 涓嬪彂绔欑偣淇℃伅
+ staProtocol.setWorkNo(wrkMastExecute.getWrkNo().intValue());
+ staProtocol.setStaNo(wrkMastExecute.getOutStaNo());
+ if (!MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocol))) {
+ return false;
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("杈撻�佺嚎鍑哄簱鐩爣绔欏懡浠や笅鍙戝け璐�===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},鏀捐揣绔欑偣鏁版嵁={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(staProtocol),sign);
+ }
+ }
+ return true;
+ } catch (Exception e){
+ log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+ * 10锛欰=>B\11锛欱=>A
+ * 浠诲姟涓嬪彂
+ */
+ public synchronized boolean jarWrkMastExecuteActionExecute10(WrkMastExecute wrkMastExecute,Integer sign) {
+ try{
+ List<WrkMastExecute> wrkMastExecuteByJarNo = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecute);
+ if (wrkMastExecuteByJarNo.size()!=1 || !wrkMastExecuteByJarNo.get(0).getWrkNo().equals(wrkMastExecute.getWrkNo())){
+ return false;
+ }
+
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, wrkMastExecute.getJarId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ return false;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ return false;
+ }
+
+ if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ return false;
+ }
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
+// return false;
+// }
+
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
+ if (staProtocolRGV == null) {
+ return false;
+ } else {
+ staProtocolRGV = staProtocolRGV.clone();
+ }
+ if (staProtocolRGV == null) {
+ return false;
+ }
+
+ StaProtocol staProtocolRGVOther = devpThread.getStation().get(basJar.getOutRgvNo());
+ if (staProtocolRGVOther == null) {
+ return false;
+ } else {
+ staProtocolRGVOther = staProtocolRGVOther.clone();
+ }
+ if (staProtocolRGVOther == null) {
+ return false;
+ }
+ Integer[] steJarNoAB = SteAndJarUtil.getSteJarNoAB(wrkMastExecute.getJarId());
+ boolean signOther = false;
+ for(Integer jarNoOther : steJarNoAB){
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThreadOther = (JarThread) SlaveConnection.get(SlaveType.Jar, jarNoOther);
+ JarProtocol jarProtocolOther = jarThreadOther.getJarProtocol();
+ if (jarProtocolOther == null) {
+ continue;
+ }
+ if (jarProtocolOther.modeType != JarModeType.AUTO){
+ continue;
+ }
+
+ if (jarProtocolOther.statusType .equals(JarStatusType.SOS)){
+// log.error("{}鍙风~鍖栫綈鏌ヨ璁惧姝e湪纭寲涓紝浠诲姟寮傚父锛侊紒锛�",jarProtocol.getJarNo());
+ continue;
+ }
+ if (jarProtocolOther.getJarTemperature()>jarTemperature){
+// log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ continue;
+ }
+ BasJar basJarOther = basJarMapper.selectById(jarProtocolOther.getJarNo());
+ if (Cools.isEmpty(basJarOther)){
+// log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ continue;
+ }
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0
+ ){
+ jarProtocol = jarProtocolOther;
+ signOther = true;
+ break;
+ }
+ }
+ if (signOther){
+ if (staProtocolRGV.rgvBoolean(1) && staProtocolRGVOther.rgvBoolean(1)){ //涓存椂
+ if (staProtocolRGV.getNowRow() != staProtocolRGVOther.getNowRow()){
+ //绉昏蛋 == > 2
+ if (!jarRgvMoveTake(wrkMastExecute,2)){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ return true;
+ }
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层��
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0 && jarProtocol.isLeftDoor() && jarProtocol.isRightDoor()
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0
+ ){
+ log.error("10锛欰=>B\\11锛欱=>A==>浠诲姟涓嬪彂===>琛�={}",6558);
+ if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (wrkMastExecute.getIoType()==10){//10锛欰=>B
+ if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE,true)){
+ //璋冭溅 == > 绉诲姩
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT20.id,SteLocaType.POINT23.id,SteTaskModeType.STE_MOVE_14,false,jarProtocol.getJarNo())){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE,false)){
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(4);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ }
+ } else {//11:B=>A
+ if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE,false)){
+ //璋冭溅 == > 绉诲姩
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT20.id,SteTaskModeType.STE_MOVE_14,false,jarProtocol.getJarNo())){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE,false)){
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(4);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ }
+ }
+
+ } else {
+ //璋冭溅 == > endRow
+ if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(jarProtocol.getJarNo()))){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(2);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
+ }
+ }
+ return true;
+ }
+ return false;
+ } else {
+ log.error("jarWrkMastExecuteActionExecute1===>鎵ц寮傚父===銆婻GV涓嶆弧瓒虫潯浠讹紝绛夊緟===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar.getEnterRgvNo())+";WrkMastExecute:"+JSON.toJSONString(wrkMastExecute));
+ return false;
+ }
+ }
+
+ } catch (Exception e){
+ log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+ * 100锛氬厖鐢典换鍔�
+ * 浠诲姟涓嬪彂
+ */
+ public synchronized boolean jarWrkMastExecuteActionExecute100(WrkMastExecute wrkMastExecute,Integer sign) {
+ try{
+ // 鑾峰彇纭寲缃愪俊鎭�
+ BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+ return false;
+ }
+
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
+ if (staProtocolRGV == null) {
+ return false;
+ } else {
+ staProtocolRGV = staProtocolRGV.clone();
+ }
+ if (staProtocolRGV == null) {
+ return false;
+ }
+
+ if (staProtocolRGV.rgvBoolean(1) || staProtocolRGV.rgvBoolean(2)){
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层��
+ log.error("100:鍏呯數浠诲姟==>浠诲姟涓嬪彂===>琛�={}",6899);
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (!jarWrkMastExecuteGenerateSteStatusCharge(basJar.getEnterSteNo(),1,SteStatusType.IDLE,false)){
+ return false;
+ }
+ //璋冭溅 == > 鍙栬揣
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT20.id,SteLocaType.POINT20.id,SteTaskModeType.START_CHARGE,false,wrkMastExecute.getJarId())){
+ log.error("绌挎鏉縎te鍏呯數鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute));
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(99);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍏呯數鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute));
+ }
+ return true;
+ }
+ return false;
+ } catch (Exception e){
+ log.error("绌挎鏉縎te鍏呯數鍛戒护涓嬪彂澶辫触,寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+ }
+ return false;
+ }
+
+ /*
+ * Rgv 鍔ㄤ綔 绉诲姩
+ * */
+ public synchronized boolean jarRgvMoveTake(WrkMastExecute wrkMastExecute,Integer endRow){
+ try {
+ StaProtocol staProtocol = new StaProtocol();
+ staProtocol.setSiteId(wrkMastExecute.getRgvId());
+ staProtocol.setEndRow(endRow.shortValue());
+ // 涓嬪彂绔欑偣淇℃伅
+ if (!MessageQueue.offer(SlaveType.Devp, 2, new Task(9, staProtocol))) {
+ log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={}", wrkMastExecute.getRgvId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocol));
+ return false;
+ }
+ return true;
+ }catch (Exception e){
+ log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛孯gv鍙�={},浠诲姟鏁版嵁={},endRow={}", wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(endRow));
+ }
+ return false;
+ }
+
+ /*
+ * Rgv 鍔ㄤ綔 鍙栬揣
+ * */
+ public synchronized boolean jarRgvGetTake(WrkMastExecute wrkMastExecute,boolean RGV4,boolean RGV5){
+ try {
+ StaProtocol staProtocol = new StaProtocol();
+ staProtocol.setSiteId(wrkMastExecute.getRgvId());
+ staProtocol.setRGV4(RGV4);
+ staProtocol.setRGV5(RGV5);
+ // 涓嬪彂绔欑偣淇℃伅
+ if (!MessageQueue.offer(SlaveType.Devp, 2, new Task(10, staProtocol))) {
+ log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={}", wrkMastExecute.getRgvId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocol));
+ return false;
+ }
+ return true;
+ }catch (Exception e){
+ log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛孯gv鍙�={},浠诲姟鏁版嵁={},RGV4={},RGV5={}", wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(RGV4), JSON.toJSON(RGV5));
+ }
+ return false;
+ }
+
+ /*
+ * Rgv 鍔ㄤ綔 鍙栬揣瀹屾垚澶嶄綅
+ * */
+ public synchronized boolean jarRgvGetFuTake(WrkMastExecute wrkMastExecute,boolean RGV6){
+ try {
+ StaProtocol staProtocol = new StaProtocol();
+ staProtocol.setSiteId(wrkMastExecute.getRgvId());
+ staProtocol.setRGV6(RGV6);
+ // 涓嬪彂绔欑偣淇℃伅
+ if (!MessageQueue.offer(SlaveType.Devp, 2, new Task(11, staProtocol))) {
+ log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={}", wrkMastExecute.getRgvId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocol));
+ return false;
+ }
+ return true;
+ }catch (Exception e){
+ log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触锛孯gv鍙�={},浠诲姟鏁版嵁={},RGV6={}", wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(RGV6));
+ }
+ return false;
+ }
+
+ /*
+ * Ste 鍔ㄤ綔
+ * */
+ public synchronized boolean jarSteTake(WrkMastExecute wrkMastExecute,Integer startLoad,Integer endLoad,SteTaskModeType steTaskModeType,boolean complete,Integer siteId){
+ try {
+ SteCommand steCommand = new SteCommand();
+ steCommand.setTaskNo(wrkMastExecute.getWrkNo().intValue());
+ steCommand.setSteNo(wrkMastExecute.getSteId());
+ steCommand.setStartLoad(startLoad);
+ steCommand.setEndLoad(endLoad);
+ steCommand.setTaskModeType(steTaskModeType);
+ steCommand.setComplete(complete);
+ if (!complete){
+ steCommand.setTaskMode(steTaskModeType.id.shortValue());
+ }
+ steCommand.setJarNo(siteId.shortValue());
+ if (!MessageQueue.offer(SlaveType.Ste, steCommand.getSteNo(), new Task(2, steCommand))) {
+ log.error("绌挎杞te鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={},complete={}", steCommand.getSteNo(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steCommand),complete);
+ return false;
+ }
+ return true;
+ }catch (Exception e){
+ log.error("绌挎杞te鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},complete={}", wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(complete));
+ }
+ return false;
+ }
+
+ /*
+ * Jar 鍔ㄤ綔
+ * */
+ public synchronized boolean jarDoorTake(WrkMastExecute wrkMastExecute,JarTaskModeType jarTaskModeType){
+ try{
+ JarCommand jarCommand = new JarCommand();
+ jarCommand.setJarNo(wrkMastExecute.getJarId());
+ jarCommand.setTaskModeType(jarTaskModeType);
+ if (!MessageQueue.offer(SlaveType.Jar, jarCommand.getJarNo(), new Task(2, jarCommand))) {
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={}", jarCommand.getJarNo(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarCommand));
+ return false;
+ }
+ return true;
+ }catch (Exception e){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={},浠诲姟鏁版嵁={},涓嬪彂鏁版嵁={}", wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarTaskModeType));
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟瀹屾垚 //瀹屾垚
+ */
+ public synchronized void jarWrkMastExecuteGenerateComplete(Integer sign) {
+ try{
+ switch (sign){
+ case 1:
+ if (jarWrkMastExecuteGenerateSteComplete(sign)){
+ break;
+ }
+ case 2:
+ if (jarWrkMastExecuteGenerateJarComplete(sign)){
+ break;
+ }
+ case 3:
+ if (jarWrkMastExecuteGenerateRgvComplete1(sign)){
+ break;
+ }
+ case 4:
+ if (jarWrkMastExecuteGenerateRgvComplete2(sign)){
+ break;
+ }
+ default:
+ return;
+ }
+ }catch (Exception e){
+ log.error("JarWrkMastExecute浠诲姟瀹屾垚鎶ラ敊锛�"+e);
+ }
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟瀹屾垚 ===>Ste //瀹屾垚
+ */
+ public synchronized boolean jarWrkMastExecuteGenerateSteComplete(Integer sign) {
+ try{
+ for (SteSlave steSlave : slaveProperties.getSte()) {
+ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steSlave.getId());
+ if (steThread == null) {
+ continue;
+ }
+ SteProtocol steProtocol = steThread.getSteProtocol();
+ if (steProtocol == null) {
+ continue;
+ }
+ if (steProtocol.getMode()==(short)1 && steProtocol.taskNo!=0 && steProtocol.getChargeStatus()==0){
+// if (steProtocol.statusType.equals(SteStatusType.WAITING)){
+//
+// }
+ List<WrkMastExecute> wrkMastExecuteByWrkNoList = wrkMastExecuteService.getWrkMastExecuteByWrkNoList(steProtocol.getTaskNo().longValue());
+ for (WrkMastExecute wrkMastExecute : wrkMastExecuteByWrkNoList){
+ if (!Cools.isEmpty(wrkMastExecute)){
+ switch (wrkMastExecute.getIoType()){
+ case 6:
+ if (wrkMastExecute.getWrkSts()==3){//==>4
+ //1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堝彇璐с��4锛氬彇璐у畬鎴愮瓑寰呬笅涓�姝ャ��5锛歋te绌挎鐗堟斁璐ц嚦鍐峰嵈姹犮��6锛氭斁璐у畬鎴愩��7锛氭洿鏂板畬鎴� //io_type = 6
+ //ste浠诲姟绛夊緟瀹屾垚
+ if (steProtocol.statusType.equals(SteStatusType.WAITING)){
+ //ste浠诲姟瀹屾垚
+ if (jarSteTake(wrkMastExecute,null,null,null,true,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+ wrkMastExecute.setWrkSts(4);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+ }
+ return true;
+ }
+ }
+ log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(steProtocol),sign);
+ return true;
+ }
+ case 5:
+ if (wrkMastExecute.getWrkSts()==5){
+ //1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歳gv鍙栬揣銆�4锛歳gv鍙栬揣瀹屾垚銆�5锛歋te绌挎鐗堝叆纭寲缃愩��6锛氬叆缃愬畬鎴愩��7锛氭洿鏂板畬鎴� //io_type = 5
+ //ste浠诲姟瀹屾垚
+ if (steProtocol.statusType.equals(SteStatusType.WAITING)){
+ //ste浠诲姟瀹屾垚
+ if (jarSteTake(wrkMastExecute,null,null,null,true,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+ wrkMastExecute.setWrkSts(6);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+ }
+ return true;
+ }
+ }
+ log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+ return true;
+ }
+ continue;
+ case 7:
+ case 8:
+ case 10:
+ case 11:
+ //1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堢Щ鍔ㄤ腑銆�4锛氱Щ鍔ㄥ畬鎴愩��5锛氭洿鏂板畬鎴�
+ if (wrkMastExecute.getWrkSts()==3){
+ //ste浠诲姟瀹屾垚
+ if (steProtocol.statusType.equals(SteStatusType.WAITING)){
+ //ste浠诲姟瀹屾垚
+ if (jarSteTake(wrkMastExecute,null,null,null,true,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+ wrkMastExecute.setWrkSts(4);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+ }
+ return true;
+ }
+ }
+ log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+ return true;
+ }
+ continue;
+ case 9:
+ if (wrkMastExecute.getWrkSts()==1){
+ //1锛歋te绌挎鐗堝彇鏀捐揣涓��2锛氭斁璐у畬鎴愮瓑寰呬笅涓�姝ャ��3锛氳緭閫佺嚎浠诲姟涓嬪彂瀹屾垚銆�4锛氭洿鏂板畬鎴� //io_type = 9
+ //ste浠诲姟瀹屾垚
+ if (steProtocol.statusType.equals(SteStatusType.WAITING)){
+ //ste浠诲姟瀹屾垚
+ if (jarSteTake(wrkMastExecute,null,null,null,true,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
+ wrkMastExecute.setWrkSts(2);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+ }
+ return true;
+ }
+ }
+ log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+ continue;
+ }
+ default: continue;
+ }
+ }
+
+ }
+ }
+ }
+ return true;
+ }catch (Exception e){
+ log.error("JarWrkMastExecute浠诲姟瀹屾垚 ===>Ste鎶ラ敊锛�"+e);
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟瀹屾垚 ===>Jar //瀹屾垚
+ * //纭寲瀹屾垚 淇敼浠诲姟鐘舵��
+ */
+ public synchronized boolean jarWrkMastExecuteGenerateJarComplete(Integer sign) {
+ try{
+ for (JarSlave jarSlave : slaveProperties.getJar()) {
+ if (jarSlave.getId()>4){
+ continue;
+ }
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ continue;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ continue;
+ }
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ continue;
+ }
+ //WAITING2(4, "纭寲瀹屾垚"),
+ if (jarProtocol.getJarErr()==0 && jarProtocol.getStatusType().equals(JarStatusType.WAITING2)
+ && !jarProtocol.isRightDoor() && !jarProtocol.isLeftDoor()
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0
+ ){
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
+ add(5);//纭寲涓�
+ }});
+ if (basJarMastList.isEmpty()){
+ continue;
+ }
+ Integer integer = basJarMastService.updateStatus(jarProtocol.getJarNo(), 5, 6);
+ if (basJarMastList.size()!=integer){
+ log.error("{}鍙风~鍖栫綈纭寲瀹屾垚淇敼纭寲妗f鐘舵�佺粨鏋滄暟閲忎笉涓�鑷达紒锛侊紒鏌ヨ璧勬枡鏁伴噺={}锛屾洿鏂拌繑鍥炴暟閲�={}",jarProtocol.getJarNo(),basJarMastList.size(),integer);
+ }
+ } else if (jarProtocol.getJarErr()==0
+ && jarProtocol.isRightDoor() && jarProtocol.isLeftDoor()
+ && jarProtocol.leftDoorOpen!=1 && jarProtocol.leftDoorOpen!=3
+ && jarProtocol.rightDoorOpen!=1 && jarProtocol.rightDoorOpen!=3
+ && (jarProtocol.leftDoorOpen==2 || jarProtocol.rightDoorOpen==2)){
+// if (jarProtocol.getJarTemperature()>jarTemperature){
+// log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+// return false;
+// }
+ WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
+ wrkMastExecuteSou.setWrkSts(3);
+ List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecuteSou);
+ if (wrkMastExecuteList.isEmpty()){
+ WrkMastExecute execute = new WrkMastExecute();
+ execute.setJarId(jarProtocol.getJarNo());
+ //鐩存帴鍏抽棬
+ if (!jarDoorTake(execute,JarTaskModeType.OPEN_THE_DOOR_COMPLETE)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ execute.getJarId(), JSON.toJSON(execute), JSON.toJSON(jarProtocol),sign);
+ }
+ return true;
+ }
+ for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+ if (wrkMastExecute.getIoType() == 1 || wrkMastExecute.getIoType() == 3){
+ //鐩存帴鍏抽棬
+ if (!jarDoorTake(wrkMastExecute,JarTaskModeType.OPEN_THE_DOOR_COMPLETE)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkSts(4);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ return false;
+ }
+ return true;
+ }
+ }
+ } else if (jarProtocol.getJarErr()==0
+ && !jarProtocol.isRightDoor() && !jarProtocol.isLeftDoor()
+ && jarProtocol.leftDoorClose!=1 && jarProtocol.leftDoorClose!=3
+ && jarProtocol.rightDoorClose!=1 && jarProtocol.rightDoorClose!=3
+ && (jarProtocol.leftDoorClose==2 || jarProtocol.rightDoorClose==2)){
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ continue;
+ }
+ WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
+ wrkMastExecuteSou.setWrkSts(3);
+ List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecuteSou);
+ if (wrkMastExecuteList.isEmpty()){
+ WrkMastExecute execute = new WrkMastExecute();
+ execute.setJarId(jarProtocol.getJarNo());
+ //鐩存帴鍏抽棬
+ if (!jarDoorTake(execute,JarTaskModeType.CLOSE_THE_DOOR_COMPLETE)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ execute.getJarId(), JSON.toJSON(execute), JSON.toJSON(jarProtocol),sign);
+ }
+ return true;
+ }
+ for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+ if (wrkMastExecute.getIoType() == 2 || wrkMastExecute.getIoType() == 4){
+ //鐩存帴鍏抽棬
+ if (!jarDoorTake(wrkMastExecute,JarTaskModeType.CLOSE_THE_DOOR_COMPLETE)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkSts(4);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ return false;
+ }
+ return true;
+ }
+ }
+ }
+ }
+ return true;
+ }catch (Exception e){
+ log.error("//纭寲瀹屾垚 淇敼浠诲姟鐘舵�� 鎶ラ敊锛�"+e);
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟瀹屾垚 ===>RGV绉诲姩 //瀹屾垚
+ */
+ public synchronized boolean jarWrkMastExecuteGenerateRgvComplete1(Integer sign) {
+ try{
+ WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
+ wrkMastExecuteSou.setWrkSts(1);
+ List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecuteSou);
+ for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+ if (wrkMastExecute.getIoType() == 9){
+ continue;
+ }
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocolRGV = devpThread.getStation().get(wrkMastExecute.getRgvId());
+ if (staProtocolRGV == null) {
+ continue;
+ } else {
+ staProtocolRGV = staProtocolRGV.clone();
+ }
+ if (staProtocolRGV == null) {
+ continue;
+ }
+
+ StaProtocol staProtocolRGVEnd = devpThread.getStation().get(wrkMastExecute.getRgvEndId());
+ if (staProtocolRGVEnd == null) {
+ continue;
+ } else {
+ staProtocolRGVEnd = staProtocolRGVEnd.clone();
+ }
+ if (staProtocolRGVEnd == null) {
+ continue;
+ }
+ if (staProtocolRGV.getNowRow() == staProtocolRGVEnd.getNowRow()
+ && staProtocolRGV.getNowRow() == SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId())){
+ wrkMastExecute.setWrkSts(2);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},骞宠 杞gv鏁版嵁={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocolRGV),sign);
+ return false;
+ }
+ return true;
+ }
+ }
+ return true;
+ }catch (Exception e){
+ log.error("JarWrkMastExecute浠诲姟瀹屾垚 ===>RGV绉诲姩锛佸紓甯�"+e);
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟瀹屾垚 ===>RGV鍙栬揣 //瀹屾垚
+ */
+ public synchronized boolean jarWrkMastExecuteGenerateRgvComplete2(Integer sign) {
+ try{
+ WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
+ wrkMastExecuteSou.setWrkSts(3);
+ wrkMastExecuteSou.setIoType(5);
+ List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecuteSou);
+ for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocolRGV = devpThread.getStation().get(wrkMastExecute.getRgvId());
+ if (staProtocolRGV == null) {
+ continue;
+ } else {
+ staProtocolRGV = staProtocolRGV.clone();
+ }
+ if (staProtocolRGV == null) {
+ continue;
+ }
+
+
+ if ( staProtocolRGV.rgvBoolean(2)
+ && staProtocolRGV.getNowRow() == SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId())){
+ //璋冭溅 == > 鍙栬揣瀹屾垚澶嶄綅
+ if (!jarRgvGetFuTake(wrkMastExecute,true)){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocolRGV),sign);
+ return true;
+ }
+ wrkMastExecute.setWrkSts(4);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("骞宠 杞gv鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},骞宠 杞gv鏁版嵁={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(staProtocolRGV),sign);
+ return true;
+ }
+ return true;
+ } else {
+ log.error("{}鍙峰钩琛¤溅褰撳墠鐘舵�佷笉婊¤冻鍏ョ~鍖栫綈鏉′欢锛屽綋鍓嶄换鍔★紝骞宠 杞︿粠鍙栬揣");
+ }
+ }
+ return true;
+ }catch (Exception e){
+ log.error(" JarWrkMastExecute浠诲姟瀹屾垚 ===>RGV鍙栬揣 寮傚父锛�"+e);
+ }
+ return false;
+ }
+
+ /**
+ * Jar浠诲姟 绌挎杞︾Щ鍔ㄤ换鍔� //瀹屾垚
+ */
+ public synchronized boolean jarMastMove() {
+ try{
+ for (SteSlave steSlave : slaveProperties.getSte()){
+ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steSlave.getId());
+ if (steThread == null) {
+ continue;
+ }
+ SteProtocol steProtocol = steThread.getSteProtocol();
+ if (steProtocol == null) {
+ continue;
+ }
+
+ if (wrkMastExecuteService.selectNoStart(steSlave.getId())!=0){
+ continue;
+ }
+
+ if (wrkMastExecuteService.selectMoveStart(steSlave.getId())!=0){
+ continue;
+ }
+
+ try{
+ if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),1,SteStatusType.IDLE,false)){
+ List<WrkMastExecute> wrkMastExecutes = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 5, null,steProtocol.getSteNo().intValue());
+ List<WrkMastExecute> wrkMastExecutes100 = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 100, null,steProtocol.getSteNo().intValue());
+ if (wrkMastExecutes.isEmpty() && wrkMastExecutes100.isEmpty()){
+ List<WrkMastExecute> wrkMastExecutesB = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 6, null,steProtocol.getSteNo().intValue());
+ List<WrkMastExecute> wrkMastExecutesC = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 9, null,steProtocol.getSteNo().intValue());
+
+ if (!wrkMastExecutesB.isEmpty() || !wrkMastExecutesC.isEmpty()){
+ WrkMastExecute wrkMastExecute = !wrkMastExecutesB.isEmpty() ? wrkMastExecutesB.get(0) : wrkMastExecutesC.get(0);
+ BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+ return false;
+ }
+ BasJarMast jarMastByWrkNo = basJarMastService.getJarMastByWrkNo(wrkMastExecute.getWrkNo());
+ //A==>B
+ if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByWrkNo,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),10,1})){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByWrkNo));
+ }
+ continue;
+ }
+ }
+ } else if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),2,SteStatusType.IDLE,false)){
+ List<WrkMastExecute> wrkMastExecutes = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 6, null,steProtocol.getSteNo().intValue());
+ if (wrkMastExecutes.isEmpty()){
+ List<WrkMastExecute> wrkMastExecutesA = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 5, null,steProtocol.getSteNo().intValue());
+ List<WrkMastExecute> wrkMastExecutesC = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 9, null,steProtocol.getSteNo().intValue());
+ List<WrkMastExecute> wrkMastExecutes100 = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 100, null,steProtocol.getSteNo().intValue());
+ if (!wrkMastExecutes100.isEmpty()){
+ WrkMastExecute wrkMastExecute = wrkMastExecutes100.get(0);
+ BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+ return false;
+ }
+
+ BasJarMast jarMastByWrkNo = new BasJarMast(basJar);
+ jarMastByWrkNo.setWrkNo(Integer.toUnsignedLong(wrkMastExecute.getWrkNo().intValue()));//宸ヤ綔鍙�
+ jarMastByWrkNo.setJarEnterStaNo(basJar.getEnterRgvNo());
+ jarMastByWrkNo.setEnterStaNo(basJar.getEnterRgvNo());
+ jarMastByWrkNo.setOutStaNo(basJar.getOutRgvNo());
+ //B==>A
+ if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByWrkNo,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),11,1})){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByWrkNo));
+ }
+ continue;
+ }
+ if (!wrkMastExecutesA.isEmpty()){
+ WrkMastExecute wrkMastExecute = wrkMastExecutesA.get(0);
+ BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+ return false;
+ }
+ BasJarMast jarMastByWrkNo = basJarMastService.getJarMastByWrkNo(wrkMastExecute.getWrkNo());
+ //B==>A
+ if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByWrkNo,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),11,1})){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByWrkNo));
+ }
+ continue;
+ }
+
+ if (!wrkMastExecutesC.isEmpty()){
+ WrkMastExecute wrkMastExecute = wrkMastExecutesC.get(0);
+ BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+ return false;
+ }
+ BasJarMast jarMastByWrkNo = basJarMastService.getJarMastByWrkNo(wrkMastExecute.getWrkNo());
+ //B==>C
+ if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByWrkNo,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),7,1})){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByWrkNo));
+ }
+ continue;
+ }
+ }
+ } else if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),3,SteStatusType.IDLE,false)){
+ List<WrkMastExecute> wrkMastExecutes = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 9, null,steProtocol.getSteNo().intValue());
+ if (wrkMastExecutes.isEmpty()){
+ List<WrkMastExecute> wrkMastExecutesB = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 6, null,steProtocol.getSteNo().intValue());
+ List<WrkMastExecute> wrkMastExecutesA = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 5, null,steProtocol.getSteNo().intValue());
+ List<WrkMastExecute> wrkMastExecutes100 = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 100, null,steProtocol.getSteNo().intValue());
+ if (!wrkMastExecutes100.isEmpty()){
+ WrkMastExecute wrkMastExecute = wrkMastExecutes100.get(0);
+ BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+ return false;
+ }
+
+ BasJarMast jarMastByWrkNo = new BasJarMast(basJar);
+ jarMastByWrkNo.setWrkNo(Integer.toUnsignedLong(wrkMastExecute.getWrkNo().intValue()));//宸ヤ綔鍙�
+ jarMastByWrkNo.setJarEnterStaNo(basJar.getEnterRgvNo());
+ jarMastByWrkNo.setEnterStaNo(basJar.getEnterRgvNo());
+ jarMastByWrkNo.setOutStaNo(basJar.getOutRgvNo());
+ //C==>B
+ if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByWrkNo,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),8,1})){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByWrkNo));
+ }
+ continue;
+ }
+ if (!wrkMastExecutesB.isEmpty() || !wrkMastExecutesA.isEmpty()){
+ WrkMastExecute wrkMastExecute = !wrkMastExecutesB.isEmpty() ? wrkMastExecutesB.get(0) : wrkMastExecutesA.get(0);
+ BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+ return false;
+ }
+ BasJarMast jarMastByWrkNo = basJarMastService.getJarMastByWrkNo(wrkMastExecute.getWrkNo());
+ //C==>B
+ if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByWrkNo,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),8,1})){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByWrkNo));
+ }
+ continue;
+ }
+ }
+ }
+ }catch (Exception e){
+ log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,steProtocol={},寮傚父淇℃伅={}",JSON.toJSONString(steProtocol),e.getMessage());
+ }
+
+ WrkMastExecute wrkMastExecute = wrkMastExecuteService.selectStart(steSlave.getId());
+
+
+ }
+ } catch (Exception e){
+ log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,寮傚父淇℃伅={}",e.getMessage());
+ }
+ return false;
+ }
+ /**
+ * ste鍏呯數浠诲姟鍒涘缓 //瀹屾垚
+ */
+ public synchronized boolean jarChargeGenerate() {
+ try{
+ //80%鐢甸噺 鏃犱换鍔� 鍏呯數 >50鐢甸噺 鏈変换鍔� 鏂數
+ //30%鐢甸噺 涓嶆帴鍙栦换鍔� 鏃犺繘琛屼腑浠诲姟 鍏呯數 >50鐢甸噺 鏈変换鍔� 鏂數
+ for (SteSlave steSlave : slaveProperties.getSte()){
+ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steSlave.getId());
+ if (steThread == null) {
+ continue;
+ }
+ SteProtocol steProtocol = steThread.getSteProtocol();
+ if (steProtocol == null) {
+ continue;
+ }
+ if (Cools.isEmpty(steProtocol.getChargeStatus())) {
+ log.error("{}鍙峰皬杞︼紝鍏呯數鐘舵�佷俊鎭紓甯革紝灏忚溅淇℃伅锛歿}",steProtocol.getSteNo(),steProtocol.toString());
+ continue;
+ }
+ if (steProtocol.getChargeStatus()!=0) {
+ continue;
+ }
+ WrkMastExecute wrkMastExecuteByCharge = wrkMastExecuteService.getWrkMastExecuteByCharge(steSlave.getId());
+ if (!Cools.isEmpty(wrkMastExecuteByCharge)){
+ continue;
+ }
+
+ if (steProtocol.getCharge()<30.0F){
+ if (wrkMastExecuteService.selectMoveStartCharge(steSlave.getId())!=0){
+ continue;
+ }
+ } else if (steProtocol.getCharge()<80.0F){
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusListCharge(steSlave.getId(), new ArrayList<Integer>() {{
+ add(5);
+ add(11);
+ add(17);
+ }});
+ if(!basJarMastList.isEmpty()){
+ continue;
+ }
+ if (wrkMastExecuteService.selectNoStart(steSlave.getId())!=0){
+ continue;
+ }
+ if (wrkMastExecuteService.selectMoveStart(steSlave.getId())!=0){
+ continue;
+ }
+ } else {
+ continue;
+ }
+
+ try{
+ boolean jarIDLESign = false;
+ if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),1,SteStatusType.IDLE,false)){
+ //鐢熸垚鍏呯數浠诲姟
+ //A
+ BasJar basJar = basJarMapper.selectById(steSlave.getId()==1? 1:3);
+ int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(7));//鍏呯數宸ヤ綔鍙�
+ BasJarMast basJarMast = new BasJarMast(basJar);
+ basJarMast.setWrkNo(Integer.toUnsignedLong(workNo));//宸ヤ綔鍙�
+ basJarMast.setJarEnterStaNo(basJar.getEnterRgvNo());
+ basJarMast.setEnterStaNo(basJar.getEnterRgvNo());
+ basJarMast.setOutStaNo(basJar.getOutRgvNo());
+ if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),100,1})){
+ log.error("JarWrkMastExecute鍏呯數浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
+ }
+ continue;
+ } else if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),2,SteStatusType.IDLE,false)){
+ jarIDLESign =true;
+ } else if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),3,SteStatusType.IDLE,false)){
+ jarIDLESign =true;
+ }
+ if (jarIDLESign){
+ //鐢熸垚鍏呯數浠诲姟
+ //C==>A
+ BasJar basJar = null;
+ List<BasJar> basJarList = basJarMapper.selectList(new EntityWrapper<BasJar>().eq("region", steSlave.getId()));
+ for (BasJar basJarNow : basJarList){
+ // 鑾峰彇纭寲缃愪俊鎭�0.0
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, basJarNow.getJarNo());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ continue;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ continue;
+ }
+ if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+ continue;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ continue;
+ }
+ if (jarProtocol.leftDoorOpen != 0 || jarProtocol.rightDoorOpen != 0){
+ continue;
+ }
+ basJar = basJarNow;
+ break;
+ }
+ if (basJar == null){
+ continue;
+ }
+ int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(7));//鍏呯數宸ヤ綔鍙�
+ BasJarMast basJarMast = new BasJarMast(basJar);
+ basJarMast.setWrkNo(Integer.toUnsignedLong(workNo));//宸ヤ綔鍙�
+ basJarMast.setJarEnterStaNo(basJar.getEnterRgvNo());
+ basJarMast.setEnterStaNo(basJar.getEnterRgvNo());
+ basJarMast.setOutStaNo(basJar.getOutRgvNo());
+ if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),100,1})){
+ log.error("JarWrkMastExecute鍏呯數浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
+ }
+ }
+ }catch (Exception e){
+ log.error("鍏呯數浠诲姟鍒涘缓寮傚父,steProtocol={},寮傚父淇℃伅={}",JSON.toJSONString(steProtocol),e.getMessage());
+ }
+ }
+ } catch (Exception e){
+ log.error("纭寲鍖哄煙鍒嗘鍏呯數浠诲姟鍒涘缓寮傚父,寮傚父淇℃伅={}",e.getMessage());
+ }
+ return false;
+ }
+ /**
+ * Ste鍏呯數浠诲姟瀹屾垚 //瀹屾垚
+ */
+ public synchronized boolean jarChargeComplete() {
+ try{
+ //80%鐢甸噺 鏃犱换鍔� 鍏呯數 >50鐢甸噺 鏈変换鍔� 鏂數
+ //30%鐢甸噺 涓嶆帴鍙栦换鍔� 鏃犺繘琛屼腑浠诲姟 鍏呯數 >50鐢甸噺 鏈変换鍔� 鏂數
+ for (SteSlave steSlave : slaveProperties.getSte()){
+ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steSlave.getId());
+ if (steThread == null) {
+ continue;
+ }
+ SteProtocol steProtocol = steThread.getSteProtocol();
+ if (steProtocol == null) {
+ continue;
+ }
+ if (Cools.isEmpty(steProtocol.getChargeStatus())) {
+ log.error("{}鍙峰皬杞︼紝鍏呯數鐘舵�佷俊鎭紓甯革紝灏忚溅淇℃伅锛歿}",steProtocol.getSteNo(),steProtocol.toString());
+ continue;
+ }
+ if (steProtocol.getChargeStatus()!=1) {
+ continue;
+ }
+
+ if (steProtocol.getCharge()>95.0F || steProtocol.getFullCharge()){
+ } else if (steProtocol.getCharge()>50.0F){
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusListCharge(steSlave.getId(), new ArrayList<Integer>() {{
+ add(5);
+ add(11);
+ add(17);
+ }});
+ if(basJarMastList.isEmpty()){
+ if (wrkMastExecuteService.selectNoStartCharge(steSlave.getId())==0){
+ if (wrkMastExecuteService.selectMoveStart(steSlave.getId())==0){
+ boolean sign = true;
+ for (SteSlave.InStn inStn : steSlave.getSteInStn()){
+ //妫�娴嬬珯鐐圭姸鎬�
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(inStn.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0) {
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, inStn.getJarNo());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ continue;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ continue;
+ }
+ if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+ continue;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ continue;
+ }
+ sign = false;
+ }
+ }
+ if(sign){
+ continue;
+ }
+ }
+ }
+ }
+ } else {
+ continue;
+ }
+
+ WrkMastExecute wrkMastExecuteByCharge = wrkMastExecuteService.getWrkMastExecuteByCharge(steSlave.getId());
+ if (Cools.isEmpty(wrkMastExecuteByCharge)){
+ BasJar basJar = basJarMapper.selectById(steSlave.getId()==1? 1:3);
+ int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(7));//鍏呯數宸ヤ綔鍙�
+ BasJarMast basJarMast = new BasJarMast(basJar);
+ basJarMast.setWrkNo(Integer.toUnsignedLong(workNo));//宸ヤ綔鍙�
+ basJarMast.setJarEnterStaNo(basJar.getEnterRgvNo());
+ basJarMast.setEnterStaNo(basJar.getEnterRgvNo());
+ basJarMast.setOutStaNo(basJar.getOutRgvNo());
+ wrkMastExecuteByCharge = new WrkMastExecute(basJarMast);
+ wrkMastExecuteByCharge.setJarId(basJar.getJarNo());
+ wrkMastExecuteByCharge.setSteId(steSlave.getId());//绌挎鏉縄D
+ wrkMastExecuteByCharge.setRgvId(basJar.getEnterRgvNo());//RGV ID enter
+ wrkMastExecuteByCharge.setRgvEndId(basJar.getOutRgvNo());//RGV ID out
+ wrkMastExecuteByCharge.setIoType(100);//浠诲姟绫诲瀷 0: 鏈煡 1: 寮�杩涙枡闂� 2: 鍏宠繘鏂欓棬 3: 寮�鍑烘枡闂� 4: 鍏冲嚭鏂欓棬 5: 鍏ョ~鍖栫綈 6: 鍏ュ喎鍗存Ы 7: 绌挎杞﹁繘鍐峰嵈妲� 8: 绌挎杞︾寮�鍐峰嵈妲� 9: 鍑哄喎鍗存Ы 10锛欰=>B 11:B=>A 100:灏忚溅鍏呯數浠诲姟
+ wrkMastExecuteByCharge.setType(1);//璁惧 0: 鏈煡 1: 纭寲缃� 2: 鍐峰嵈妲� 3: 纭寲缃�==>鍐峰嵈妲�
+ }
+
+ try{
+ if (jarWrkMastExecuteGenerateSteStatusCharge(steSlave.getId(),1,SteStatusType.CHARGE,true)){
+ //瀹屾垚鍏呯數浠诲姟
+ //璋冭溅 == > 鏂紑鍏呯數
+ if (!jarSteTake(wrkMastExecuteByCharge,SteLocaType.POINT20.id,SteLocaType.POINT20.id,SteTaskModeType.CLOSE_CHARGE,true,wrkMastExecuteByCharge.getJarId())){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={}",
+ wrkMastExecuteByCharge.getSteId(), JSON.toJSONString(wrkMastExecuteByCharge));
+ }
+ wrkMastExecuteByCharge.setWrkType(2);
+ wrkMastExecuteByCharge.setWrkSts(100);
+ if (!wrkMastExecuteService.updateById(wrkMastExecuteByCharge)){
+ log.error("鍏呯數浠诲姟瀹屾垚鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={}",
+ wrkMastExecuteByCharge.getSteId(), JSON.toJSONString(wrkMastExecuteByCharge));
+ }
+ }
+ }catch (Exception e){
+ log.error("鍏呯數浠诲姟瀹屾垚寮傚父,steProtocol={},寮傚父淇℃伅={}",JSON.toJSONString(steProtocol),e.getMessage());
+ }
+ }
+ } catch (Exception e){
+ log.error("纭寲鍖哄煙鍒嗘浠诲姟鍏呯數浠诲姟瀹屾垚寮傚父,寮傚父淇℃伅={}",e.getMessage());
+ }
+ return false;
+ }
+ /**
+ * 鍏朵粬 ===>> 607鍒嗛厤纭寲缃�
+ */
+ public synchronized void stackingCompletionDriveTray() {
+ Integer staNo1 = jarGetStartStaNo(607);
+ if (staNo1!=0){
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocol607 = devpThread.getStation().get(607);
+ String barcode = staProtocol607.getBarcode();
+ if (!Cools.isEmpty(barcode)) {
+// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+ if ("NG".endsWith(barcode) || "NoRead".equals(barcode) || !CodeDetectionUtil.barcodeDetection(barcode)) {
+ return;
+ }
+ } else {
+ return;
+ }
+ if (staProtocol607.getWorkNo()==0 && staProtocol607.isLoading() && staProtocol607.isAutoing()
+ && staProtocol607.getStaNo() == 0 && staProtocol607.isInEnable()){
+ WrkMast wrkMast = wrkMastMapper.selectByBarcodeTwo(barcode);
+ if (!Cools.isEmpty(wrkMast)){
+ staProtocol607.setWorkNo(wrkMast.getWrkNo());
+ staProtocol607.setStaNo(staNo1);
+ boolean result2 = MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocol607));
+ }
+ }
+ } else {
+
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, 1);
+
+ if (ledThread != null) {
+ ErrMsg errMsg1 = new ErrMsg();
+ errMsg1.setErrMsg("鍒嗛厤纭寲缃�===>鐩爣绔欑偣鍙凤細"+staNo1);
+ errMsg1.setArea("1");
+ MessageQueue.offer(SlaveType.Led, 1, new Task(5, errMsg1));
+ } try {
+ Thread.sleep(500);
+ } catch (Exception e){
+
+ }
+ }
+
+ try{
+ for (int idi = 1;idi<5;idi++){
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, idi);
+
+ if (ledThread != null) {
+ ErrMsg errMsg1 = new ErrMsg();
+ errMsg1.setErrMsg("娴嬭瘯锛�"+idi);
+ errMsg1.setArea("1");
+ MessageQueue.offer(SlaveType.Led, idi, new Task(5, errMsg1));
+ } try {
+ Thread.sleep(500);
+ } catch (Exception e){
+
+ }
+ }
+ LedThread ledThread3 = (LedThread) SlaveConnection.get(SlaveType.Led, 3);
+
+ if (ledThread3 != null) {
+ ErrMsg errMsg1 = new ErrMsg();
+ errMsg1.setErrMsg("娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯娴嬭瘯锛�"+3);
+ errMsg1.setArea("1");
+ MessageQueue.offer(SlaveType.Led, 3, new Task(5, errMsg1));
+ } try {
+ Thread.sleep(500);
+ } catch (Exception e){
+
+ }
+ } catch (Exception e){
+
+ }
+
+
+ }
+ public synchronized Integer jarGetStartStaNo(Integer staNo) {
+ try {
+ int[] jarNos=new int[]{3,1,4,2};//(607鍒嗛厤纭寲缃�)
+ ArrayList<Integer> staNos = new ArrayList<Integer>() {{
+ add(608);add(609);add(610);add(611);add(612);
+ add(613);add(614);add(615);add(616);add(617);add(618);
+ add(619);add(620);add(621);add(622);
+ }};
+ ArrayList<Integer> jarNoList = new ArrayList<>();
+ ArrayList<Integer> jarNoList1 = new ArrayList<>();
+ ArrayList<Integer> jarNoListNow = new ArrayList<>();
+ for (int jarNo : jarNos) {
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarNo, new ArrayList<Integer>() {{
+ add(0);
+ add(1);
+ add(2);
+ add(3);
+ add(4);
+ }});
+ if (basJarMastList.isEmpty()){
+ continue;
+ }
+ BasJar basJar = basJarMapper.selectById(jarNo);
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarNo);
+ continue;
+ }
+
+ jarMaxLoc = basJar.getJarCount();
+ if (jarMaxLoc == 0) {
+ continue;
+ }
+ if (basJarMastList.size()>0 && basJarMastList.size()<jarMaxLoc){
+ jarNoList.add(jarNo);
+ }
+ }
+ for (int jarNo : jarNos) {
+ if (!jarNoList.contains(jarNo)){
+ jarNoList1.add(jarNo);
+ }
+ }
+ for (int jarNo : jarNoList1) {
+ List<BasJarMast> jarMastByJarIdAndStatusList = basJarMastService.getJarMastByJarIdAndStatusList(8, jarNo);
+ if (jarMastByJarIdAndStatusList.isEmpty()){
+ jarNoList.add(jarNo);
+ }
+ }
+ jarNoList1 = new ArrayList<Integer>();
+ for (int jarNo : jarNos) {
+ if (!jarNoList.contains(jarNo)){
+ jarNoList1.add(jarNo);
+ }
+ }
+ for (int jarNo : jarNoList1) {
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarNo, new ArrayList<Integer>() {{
+ add(5);
+ add(6);
+ add(7);
+ add(8);
+ add(9);
+ add(13);
+ add(14);
+ add(15);
+ }});
+ if (basJarMastList.isEmpty()){
+ jarNoList.add(jarNo);
+ }
+ }
+ for (int jarNo : jarNoList) {
+ if (jarNoListNow.contains(jarNo)){
+ continue;
+ }
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarNo);
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ continue;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ continue;
+ }
+ if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+ continue;
+ }
+ if (jarProtocol.getJarTemperature()>jarTemperature){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+ continue;
+ }
+
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ continue;
+ }
+ jarMaxLoc = basJar.getJarCount();
+ if (jarMaxLoc == 0) {
+ continue;
+ }
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarNo, new ArrayList<Integer>() {{
+ add(0);
+ add(1);
+ add(2);
+ add(3);
+ add(4);
+ }});
+
+ Integer count = basJarMastList.size();
+ ArrayList<Integer> wrkNoList = new ArrayList<>();
+ for (Integer staNoEnt : staNos){
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocolEnt = devpThread.getStation().get(staNoEnt);
+ if (staProtocolEnt == null || (staProtocolEnt.isLoading() && staProtocolEnt.getWorkNo()==0)){
+// log.error("绔欑偣寮傚父,璁℃暟鍔犱竴锛岀珯鐐瑰彿锛�"+staNoEnt);
+ count++;
+ } else if (staProtocolEnt != null && staProtocolEnt.getWorkNo()!=0 && !wrkNoList.contains(staProtocolEnt.getWorkNo())){
+ if (staProtocolEnt.getStaNo().equals(basJar.getEntStaNo$())){
+ count++;
+ wrkNoList.add(staProtocolEnt.getWorkNo());
+ }
+ }
+ }
+ if (count<jarMaxLoc){
+ return basJar.getEntStaNo$();
}
}
}catch (Exception e){
// e.printStackTrace();
// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- log.error("鍏朵粬 ===>> 璐存爣瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�"+e);
+ log.error("鍏朵粬 ===>> 鍒嗛厤纭寲缃愯繘鍏ヤ笅涓�姝�"+e);
}
- }
-
- /**
- * 瀹屾垚灏忚溅浠诲姟
- */
- public synchronized void rgvCompleteWrkMastSta() {
- try{
- for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
- continue;
- }
-
- // 鍙湁褰揜GV绛夊緟WCS纭銆佽嚜鍔�
- if (rgvProtocol.getStatusType() == RgvStatusType.WORKING
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && ((rgvProtocol.getStatusType1()==RgvStatusType.WAITING || rgvProtocol.getStatusType2()==RgvStatusType.WAITING ) ||
- (rgvProtocol.getStatusType1()==RgvStatusType.FETCHWAITING || rgvProtocol.getStatusType2()==RgvStatusType.FETCHWAITING ))
- ) {
- log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
- if (rgvProtocol.getTaskNo1()!=0 && (rgvProtocol.getStatusType1()==RgvStatusType.WAITING || rgvProtocol.getStatusType1()==RgvStatusType.FETCHWAITING)){
- if (rgvProtocol.getTaskNo1()==(short)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());
- break;
- }
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().longValue());
- if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getType()!=1 || wrkMastSta.getWrkSts()!=1){
- log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
- continue;
- }
- WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
- if (!Cools.isEmpty(wrkMast) && wrkMastSta.getWrkType()!=5){
- Thread.sleep(200);
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
- if (staProtocol == null) {
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
- continue;
- }
- // 涓嬪彂绔欑偣淇℃伅
- staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(wrkMast.getStaNo());
- if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol))) {
- continue;
- }
- log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟锛�"+staProtocol);
-// try{
-// Thread.sleep(1000);
-// DevpThread devpThreadEnd = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-// StaProtocol staProtocolEnd = devpThreadEnd.getStation().get(wrkMastSta.getStaEnd());
-// log.error("灏忚溅浠诲姟瀹屾垚璇诲彇杈撻�佺嚎浠诲姟锛�"+staProtocolEnd);
-// if (staProtocolEnd.getWorkNo()==0 ){ //|| !staProtocolEnd.getWorkNo().equals(wrkMast.getWrkNo())
-// staProtocolEnd.setWorkNo(wrkMast.getWrkNo());
-// staProtocolEnd.setStaNo(wrkMast.getStaNo());
-// if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocolEnd))) {
-// continue;
-// }
-// log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟绗簩娆★細"+staProtocolEnd);
-// }
-// }catch (Exception e){
-//
-// }
- }
- boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
- 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());
- }else if (rgvProtocol.getTaskNo2()!=0 && (rgvProtocol.getStatusType2()==RgvStatusType.WAITING || rgvProtocol.getStatusType2()==RgvStatusType.FETCHWAITING)){
- if (rgvProtocol.getTaskNo2()==(short)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());
- break;
- }
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2().longValue());
- if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getType()!=2){
- log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
- continue;
- }
- WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
- if (!Cools.isEmpty(wrkMast) && wrkMastSta.getWrkType()!=5){
- Thread.sleep(200);
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
- if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
- continue;
- }
- // 涓嬪彂绔欑偣淇℃伅
- staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(wrkMast.getStaNo());
- if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol))) {
- continue;
- }
- log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟锛�"+staProtocol);
-// try{
-// Thread.sleep(1000);
-// DevpThread devpThreadEnd = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-// StaProtocol staProtocolEnd = devpThreadEnd.getStation().get(wrkMastSta.getStaEnd());
-// log.error("灏忚溅浠诲姟瀹屾垚璇诲彇杈撻�佺嚎浠诲姟锛�"+staProtocolEnd);
-// if (staProtocolEnd.getWorkNo()==0 ){ //|| !staProtocolEnd.getWorkNo().equals(wrkMast.getWrkNo())
-// staProtocolEnd.setWorkNo(wrkMast.getWrkNo());
-// staProtocolEnd.setStaNo(wrkMast.getStaNo());
-// if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocolEnd))) {
-// continue;
-// }
-// log.error("灏忚溅浠诲姟瀹屾垚涓嬪彂杈撻�佺嚎浠诲姟绗簩娆★細"+staProtocolEnd);
-// }
-// }catch (Exception e){
-//
-// }
- }
- boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
- 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());
- }else {
- log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭浣嗘槸娌℃湁宸ヤ綔鍙凤紒",rgvProtocol.getRgvNo());
- }
- }
- }
- }catch (Exception e){
- log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
- }
- }
- /**
- * 鍏ュ嚭搴� ===>> 灏忚溅浣滀笟涓嬪彂
- */
- public synchronized boolean rgvIoExecute(Integer sign) {
- boolean rgvIoExecuteSign = false;
- try{
- for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
- // 鑾峰彇灏忚溅淇℃伅
- boolean signWork = false;
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
- continue;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
- && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
- && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getLoaded1()==0
- && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
- ) {
- switch (sign){
- //鎵ц灏忚溅璐х墿鎼繍浠诲姟
- case 1:
- signWork = rgvRunWrkMastFullSta(rgvSlave);
- break;
- //鎵ц灏忚溅绌烘澘鎼繍浠诲姟
- case 2://鏀�//鎷嗙洏
- signWork = rgvRunWrkMastEmptyStaPut(rgvSlave);
- break;
- case 3://婊℃斁
- signWork = rgvRunWrkMastEmptyStaPutFull(rgvSlave);
- break;
- case 4://鍙栧彔鐩�
- signWork = rgvRunWrkMastEmptyStaTake(rgvSlave);
- break;
- case 5:////婊″彇
- signWork = rgvRunWrkMastEmptyStaTakeFull(rgvSlave);
- break;
- case 6:////鎻愬崌
-// signWork = qwe();
- break;
- default:
- break;
- }
- for (int signCount = 1;!signWork && signCount<7;signCount++){
- switch (signCount){
- case 1://鎵ц灏忚溅璐х墿鎼繍浠诲姟
- signWork = rgvRunWrkMastFullSta(rgvSlave);
- break;
- case 2://鏀�//鎷嗙洏
- signWork = rgvRunWrkMastEmptyStaPut(rgvSlave);
- break;
- case 3://婊℃斁
- signWork = rgvRunWrkMastEmptyStaPutFull(rgvSlave);
- break;
- case 4://鍙栧彔鐩�
- signWork = rgvRunWrkMastEmptyStaTake(rgvSlave);
- break;
- case 5:////婊″彇
- signWork = rgvRunWrkMastEmptyStaTakeFull(rgvSlave);
- break;
- case 6:////鎻愬崌
-// signWork = rgvRunWrkMastEmptyStaPut();
- break;
- default:
- break;
- }
- }
- }else {
- continue;
- }
- if (!rgvIoExecuteSign){
- rgvIoExecuteSign = signWork;
- }
- }
-// if (!rgvIoExecuteSign){
-// if (sign>6){
-//
-// }
-// }
- }catch (Exception e){
- log.error("RGV灏忚溅浠诲姟涓嬪彂鎶ラ敊"+e);
- }
- return rgvIoExecuteSign;
- }
- /**
- * 鎵ц灏忚溅鎼繍浠诲姟
- */
- public synchronized boolean rgvRunWrkMastFullSta(RgvSlave rgvSlave) {
- try{
-// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- return false;
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
- return false;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
- && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
- && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getLoaded1()==0
- && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
- ) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(basRgv.getRgvNo());
- if (basRgvMap == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
- return false;
- }
- 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()!=1 || wrkMastSta.getWrkType()!=3){//1:婊$増 3锛氬彇鏀�
- continue;
- }
- BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaEnd());
- if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y")){
- continue;
- }
- boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta);
- if (sign){
- boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd());
- if (signMap){
- wrkMastSta.setWrkSts(1);
- try{
- wrkMastStaMapper.updateById(wrkMastSta);
- }catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
- return true;
- }else {
- log.error("3864琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
- }
- }else {
- log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
- }
- break;
- }
- }
-// }
- }catch (Exception e){
- log.error("3875琛屾墽琛屽皬杞︽惉杩愪换鍔′笅鍙戝け璐�");
- log.error("3875琛�"+e);
- }
- return false;
- }
- /**
- * 鎵ц灏忚溅鎼繍浠诲姟//鎷嗙洏
- */
- public synchronized boolean rgvRunWrkMastEmptyStaPut(RgvSlave rgvSlave) {//鎷嗙洏
- try{
-// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- return false;
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
- return false;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤//鎷嗙洏
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
- && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
- && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
- && (rgvProtocol.getLoaded2()==3 || rgvProtocol.getLoaded2()==1 || rgvProtocol.getLoaded2()==4)////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛堝彧鑳芥媶鍙狅級 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗�() 锛�3 1銆�2灞傞兘鏈夌墿 4锛氾紙锛夊彧鍏佽鎷嗙洏
- ) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- if (basRgvMap == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
- return false;
- }
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
- List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿
- List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//鏌ヨ鍙墽琛屼换鍔�
- for (WrkMastSta wrkMastSta : wrkMastStaList){
- if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=2){// 2:绌烘澘 || 宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 5锛氭弧鍙� 6锛氭弧鏀�
- continue;
- }
- boolean sign = false;
- if ( wrkMastSta.getStaEnd()!=0){//鏀�
- BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaEnd());
- if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y")){
- continue;
- }
- sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鎷嗙洏
- }else {
- continue;
- }
- if (sign){
- boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd());
- if (signMap){
- wrkMastSta.setWrkSts(2);
- try{
- wrkMastStaMapper.updateById(wrkMastSta);
- }catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
- return true;
- }else {
- log.error("3857琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
- }
- }else {
- log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
- }
- break;
- }
- }
-// }
- }catch (Exception e){
- log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
- log.error("3933琛�"+e);
- }
- return false;
- }
-
- /**
- * 鎵ц灏忚溅鎼繍浠诲姟
- */
- public synchronized boolean rgvRunWrkMastEmptyStaPutFull(RgvSlave rgvSlave) {//婊℃斁
- try{
-// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- return false;
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
- return false;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
- && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
- && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
- && (rgvProtocol.getLoaded2()==2 || rgvProtocol.getLoaded2()==3 ) ////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿 4锛氾紙锛夊彧鍏佽鎷嗙洏
- ) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- if (basRgvMap == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
- return false;
- }
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
- List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿
- List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//鏌ヨ鍙墽琛屼换鍔�
- for (WrkMastSta wrkMastSta : wrkMastStaList){
- if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=6){// 2:绌烘澘 || 宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 5锛氭弧鍙� 6锛氭弧鏀� 7:鎻愬崌
- continue;
- }
- boolean sign = false;
- if ( wrkMastSta.getStaEnd()!=0){//婊℃斁
- BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaEnd());
- if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y")){
- continue;
- }
- sign = rgvPutEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
- }else {
- continue;
- }
- if (sign){
- boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd());
- if (signMap){
- wrkMastSta.setWrkSts(2);
- try{
- wrkMastStaMapper.updateById(wrkMastSta);
- }catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
- return true;
- }else {
- log.error("3857琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
- }
- }else {
- log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
- }
- break;
- }
- }
-// }
- }catch (Exception e){
- log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
- log.error("3933琛�"+e);
- }
- return false;
- }
-
- public synchronized boolean rgvRunWrkMastEmptyStaTake(RgvSlave rgvSlave) {//鍙犵洏
- try{
-// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- return false;
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
- return false;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
- && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
- && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
- && (rgvProtocol.getLoaded2()==0 || rgvProtocol.getLoaded2()==1 ) //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿 4锛氾紙锛夊彧鍏佽鎷嗙洏
- ) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- if (basRgvMap == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
- return false;
- }
- 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()!=2 || wrkMastSta.getWrkType()!=1){// 2:绌烘澘 || 宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 5锛氭弧鍙� 6锛氭弧鏀�
- continue;
- }
- boolean sign = false;
- if ( wrkMastSta.getStaStart()!=0){//鍙�
- BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaStart());
- if (!basDevp.getAutoing().equals("Y") || !basDevp.getLoading().equals("Y")){
- continue;
- }
- sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鍙犵洏
- }else {
- continue;
- }
- if (sign){
- boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute());
- if (signMap){
- wrkMastSta.setWrkSts(1);
- try{
- wrkMastStaMapper.updateById(wrkMastSta);
- }catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
- return true;
- }else {
- log.error("3879琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
- }
- }else {
- log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
- }
- break;
- }
- }
-// }
- }catch (Exception e){
- log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触");
- log.error("3989琛�"+e);
- }
- return false;
- }
-
- public synchronized boolean rgvRunWrkMastEmptyStaTakeFull(RgvSlave rgvSlave) {//婊″彇
- try{
-// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- return false;
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
- return false;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
- && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
- && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
- && rgvProtocol.getLoaded2()==0 //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿 4锛氾紙锛夊彧鍏佽鎷嗙洏
- ) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- if (basRgvMap == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
- return false;
- }
- 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()!=2 || wrkMastSta.getWrkType()!=5){// 2:绌烘澘 || 宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 5锛氭弧鍙� 6锛氭弧鏀�
- continue;
- }
- boolean sign = false;
- if (wrkMastSta.getStaStart()!=0){//婊″彇
- BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaStart());
- if (!basDevp.getAutoing().equals("Y") || !basDevp.getLoading().equals("Y")){
- continue;
- }
- sign = rgvTakeEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
- }else {
- continue;
- }
- if (sign){
- boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute());
- if (signMap){
- wrkMastSta.setWrkSts(1);
- try{
- wrkMastStaMapper.updateById(wrkMastSta);
- }catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
- return true;
- }else {
- log.error("3879琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
- }
- }else {
- log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
- }
- break;
- }
- }
-// }
- }catch (Exception e){
- log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触");
- log.error("3989琛�"+e);
- }
- return false;
- }
-
- /*
- * 鏈変换鍔′絾鏈墽琛� 姝ゆ椂闇�瑕佽皟鏁村皬杞︿綅缃�
- * */
- public synchronized void rgvRunWrkMastEmptyStaAvoidance() {
- try{
- Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔�
- if (integer==0){
- return;
- }
- for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
- 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
- ) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){
- continue;
- }
- 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;
- }
- rgvAvoidanceXY(rgvProtocol.getRgvNo());
- rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
- }
- }
- }catch (Exception e){
- log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
- log.error("4109琛�"+e);
- }
- }
-
- /*
- * 鍒锋柊鍦板浘鏁版嵁
- * */
- public synchronized void refreshRgvMap() {
- try{
- for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }
- BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
- if (basRgv == null) {
- log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
- continue;
- }
-
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
- if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
- && rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
- && rgvProtocol.getTaskNo1()==0
- && rgvProtocol.getTaskNo2()==0
- ) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvSlave.getId());
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
- rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
- }
- }
- }catch (Exception e){
- log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
- log.error("4109琛�"+e);
- }
- }
-
- /*
- * 灏忚溅XY绉诲姩 閬胯
- * */
- public synchronized boolean rgvAvoidanceXY(Integer rgvId){
- if (rgvId==1){
- try{
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- 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( (short)101);
- 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{
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
- rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo2((short)32222); // 宸ヤ綅2宸ヤ綔鍙�
- rgvCommand.setTaskMode2(RgvTaskModeType.X_MOVE); // 宸ヤ綅2浠诲姟妯″紡: 鍥炲師鐐�
- rgvCommand.setSourceStaNo2((short)117);
- 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浠诲姟鍙�
- 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;
- }
- }
-
- /*
- * 灏忚溅鍙栬揣鑷冲伐浣嶄换鍔�
- * */
- public synchronized boolean rgvTakeFull(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); // 宸ヤ綅1浠诲姟妯″紡: 鍙栬揣
- rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().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;
- }
- }
-
- /*
- * 灏忚溅鏀捐揣鑷宠緭閫佺嚎浠诲姟
- * */
- public synchronized boolean rgvPutFull(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.PUT); // 宸ヤ綅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;
- }
- }
-
- /*
- * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 鍙犵洏
- * */
- public synchronized boolean rgvTakeEmpty(Integer rgvId,WrkMastSta wrkMastSta){
- try{
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
- rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
- rgvCommand.setTaskMode2(RgvTaskModeType.FETCH); // 宸ヤ綅2浠诲姟妯″紡: 鍙栬揣
- rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅2璧风偣
- 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鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
- }catch (Exception e){
- return false;
- }
- }
-
- /*
- * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟 //鎷嗙洏
- * */
- public synchronized boolean rgvPutEmpty(Integer rgvId,WrkMastSta wrkMastSta){
- try{
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
- rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
- rgvCommand.setTaskMode2(RgvTaskModeType.PUT); // 宸ヤ綅2浠诲姟妯″紡: 鏀捐揣
- rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅2鐩爣绔欑偣
- 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鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
- }catch (Exception e){
- return false;
- }
- }
-
- /*
- * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 婊″彇
- * */
- public synchronized boolean rgvTakeEmptyFull(Integer rgvId,WrkMastSta wrkMastSta){
- try{
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
- rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
- rgvCommand.setTaskMode2(RgvTaskModeType.FETCH_5); // 宸ヤ綅2浠诲姟妯″紡: 婊″彇
- rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅2璧风偣
- 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鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
- }catch (Exception e){
- return false;
- }
- }
-
- /*
- * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟 //婊℃斁
- * */
- public synchronized boolean rgvPutEmptyFull(Integer rgvId,WrkMastSta wrkMastSta){
- try{
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
- rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
- rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
- rgvCommand.setTaskMode2(RgvTaskModeType.PUT_6); // 宸ヤ綅2浠诲姟妯″紡: 婊℃斁
- rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅2鐩爣绔欑偣
- 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鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
- return false;
- } else {
- return true;
- }
- }catch (Exception e){
- return false;
- }
- }
-
- /*
- * 灏忚溅澶嶄綅
- * */
- public synchronized boolean rgvComplete(Integer rgvId){
- try{
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(3, new RgvCommand()))) {
- //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}",rgvId);
- return false;
- } else {
- log.info("RGV鍛戒护涓嬪彂鎴愬姛锛孯GV鍙�={}",rgvId);
- return true;
- }
- }catch (Exception e){
- log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}銆傚紓甯革細"+e,rgvId);
- return false;
- }
- }
-
- /*
- * 灏忚溅鍦板浘鏇存柊 鏇存柊閿�
- * */
- public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd){
-
-// 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);
- basRgvMapMapper.updateById(basRgvMapCurrent);
-
- //鏇存柊鍙︿竴鍙板皬杞﹀湴鍥�
- Integer rgvNoOther = basRgvMapCurrent.getRgvNoOther();
- BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther);
- List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute());
- Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�
- basRgvMapOther.setEndRoute(lockEndRoute);
- basRgvMapMapper.updateById(basRgvMapOther);
- return true;
- }catch (Exception e){
- log.error("灏忚溅鍦板浘鏇存柊鍑洪敊锛�");
- return false;
- }
+ return 0;
}
}
--
Gitblit v1.9.1