From bb8e4e0583cc57206a11f0374598424acf96946e Mon Sep 17 00:00:00 2001
From: lsh <lsh123456>
Date: 星期四, 27 六月 2024 20:17:26 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 2097 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 1,997 insertions(+), 100 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 c8ff8f9..c5a2c39 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -11,10 +11,7 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.*;
import com.zy.asrs.service.*;
-import com.zy.asrs.utils.CodeDetectionUtil;
-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;
@@ -26,13 +23,12 @@
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.command.*;
import com.zy.core.model.cpmmandParam.CrnCommandParam;
import com.zy.core.model.protocol.*;
import com.zy.core.properties.SlaveProperties;
@@ -59,6 +55,8 @@
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},{9,3},{10,4},{11,4}};
@Autowired
private CommonService commonService;
@@ -1167,6 +1165,7 @@
}
return false;
}
+
public synchronized boolean crnStnToOutStnTwo(CrnSlave.CrnStn crnStn ,Integer conStation) {
try{
Date now = new Date();
@@ -1288,6 +1287,7 @@
}
return false;
}
+
public synchronized boolean crnStnToOutStnThree(CrnSlave.CrnStn crnStn ) {
try{
// 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
@@ -2938,6 +2938,7 @@
}
}
}
+
public synchronized boolean storeFinishedExecuteOne(CrnSlave crn) {
try{
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
@@ -3003,6 +3004,7 @@
}
return false;
}
+
public synchronized boolean storeFinishedExecuteTwo(CrnSlave crn) {
try{
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
@@ -3094,6 +3096,7 @@
}
return false;
}
+
public synchronized boolean storeFinishedExecuteThree(CrnSlave crn) {
try{
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
@@ -3613,6 +3616,7 @@
}
}
}
+
/**
* 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
*/
@@ -4413,12 +4417,12 @@
}
/**
- * Jar浠诲姟鍒涘缓 //瀹屾垚
+ * Jar浠诲姟鍒涘缓 鍒濆 //瀹屾垚
*/
public synchronized void jarMastGenerate() {
for (JarSlave jarSlave : slaveProperties.getJar()) {
try{
- if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
continue;
}
for(JarSlave.StaStn staStn : jarSlave.getJarInSta()){
@@ -4473,7 +4477,7 @@
if (!Cools.isEmpty(basJarMast)){
continue;
}
- WrkMastExecute wrkMastExecute = wrkMastExecuteService.getWrkMastByWrkNo(wrkMast.getWrkNo().longValue());
+ WrkMastExecute wrkMastExecute = wrkMastExecuteService.getWrkMastExecuteByWrkNo(wrkMast.getWrkNo().longValue());
if (!Cools.isEmpty(wrkMastExecute)){
continue;
}
@@ -4521,15 +4525,13 @@
log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
return false;
}
-
- if (basJar.getJarMode()!=1 && basJar.getJarMode()!=0){
+ if (basJar.getJarMode()!=2){
return false;
}
//鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂�� Other宸﹂棬鍏抽棴
- if (jarProtocol.isAutoing() && !jarProtocol.isRightDoor() && jarProtocol.jarErr==0
- && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0
- && !jarOtherProtocol.isLeftDoor() && jarOtherProtocol.leftDoorOpen==0 && jarOtherProtocol.leftDoorClose==0){
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
if (jarProtocol.statusType == JarStatusType.IDLE || jarProtocol.statusType == JarStatusType.MOVING){
BasJarMast basJarMast = new BasJarMast(basJar, wrkMast, jarLocDigit);
basJarMast.setJarEnterStaNo(staNo);//鍏ョ~鍖栫綈绔欑偣
@@ -4545,35 +4547,35 @@
}
/**
- * Jar浠诲姟瀹屾垚 //鏈畬鎴�
+ * Jar浠诲姟瀹屾垚 //瀹屾垚
*/
- public synchronized boolean jarMastGenerateComplete(JarSlave jarSlave) {
+ public synchronized boolean jarMastGenerateComplete() {
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;
- }
-
- 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 (jarProtocol.isAutoing() && !jarProtocol.isRightDoor() && jarProtocol.jarErr==0 && !jarOtherProtocol.isLeftDoor() && jarOtherProtocol.jarErr==0){
-
+ 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){
+ BasJarMast jarMastByWrkNo = basJarMastService.getJarMastByWrkNo(wrkMastExecute.getWrkNo());
+ jarMastByWrkNo.setStatus(jarMastByWrkNo.getStatusComplete());
+ 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());
+ }
}
} catch (Exception e){
-// log.error("鍫嗗灈鏈哄伐浣嶄簩瀹屾垚绛夊緟纭寮傚父,鍫嗗灈鏈哄彿={},寮傚父淇℃伅={},宸ヤ綅鍙�={}",crn.getId(),e.getMessage(),2);
+ log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,寮傚父淇℃伅={}",e.getMessage());
}
return false;
}
@@ -4595,17 +4597,20 @@
default:
jarWrkMastExecuteGenerateSte(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.getWrkMastByJarIdCount(jarSlave.getId())!=0){
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
continue;
}
@@ -4670,11 +4675,14 @@
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.getWrkMastByJarIdCount(jarSlave.getId())!=0){
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
signExecute[jarSlave.getId()-5] = true;
continue;
}
@@ -4716,11 +4724,14 @@
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.getWrkMastByJarIdCount(jarSlave.getId())!=0){
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
continue;
}
@@ -4774,7 +4785,7 @@
*/
public synchronized boolean jarWrkMastExecuteGenerate1(JarSlave jarSlave,Integer sign) {
try{
- if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
return false;
}
List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
@@ -4782,15 +4793,15 @@
add(2);
}});
- //鍒ゆ柇灏忚溅鐘舵��
- if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1)){
- return false;
- }
+// //鍒ゆ柇灏忚溅鐘舵��
+// 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.getEnterStaNo())){
+ if (staStn1.getStaNo().equals(basJarMast.getJarEnterStaNo())){
staStn = staStn1;
}
}
@@ -4842,18 +4853,17 @@
//闂ㄤ綔涓� 鏃�
//鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂�� Other宸﹂棬鍏抽棴
- if (jarProtocol.isAutoing() && !jarProtocol.isRightDoor() && jarProtocol.jarErr==0
- && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0
- && !jarOtherProtocol.isLeftDoor() && jarOtherProtocol.leftDoorOpen==0 && jarOtherProtocol.leftDoorClose==0){
+ 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.getEnterRgvId(),1,1})){
+ 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.statusType == JarStatusType.WAITING3 && jarProtocol.isLeftDoor()){
+ } else if ((jarProtocol.statusType == JarStatusType.WAITING3 || jarProtocol.statusType == JarStatusType.MOVING) && jarProtocol.isLeftDoor()){
//鐢熸垚鍏ョ~鍖栫綈浠诲姟
- if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvId(),5,1})){
+ 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;
@@ -4881,7 +4891,7 @@
*/
public synchronized boolean jarWrkMastExecuteGenerate2(JarSlave jarSlave,Integer sign) {
try{
- if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
return false;
}
List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
@@ -4895,10 +4905,10 @@
if (Cools.isEmpty(basJarMastSign)){
return false;
}
- //鍒ゆ柇灏忚溅鐘舵��
- if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1)){
- return false;
- }
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1,SteStatusType.IDLE)){
+// return false;
+// }
JarSlave.RgvStn rgvStn = jarSlave.getJarInRgv().get(0);
@@ -4925,10 +4935,10 @@
//闂ㄤ綔涓� 鏃�
if (jarProtocol.isAutoing() && jarProtocol.statusType == JarStatusType.WAITING3 && jarProtocol.jarErr==0
- && !jarProtocol.isRightDoor() && jarProtocol.isLeftDoor()
+ && 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.getEnterRgvId(),2,1})){
+ 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;
@@ -4950,7 +4960,7 @@
*/
public synchronized boolean jarWrkMastExecuteGenerate3(JarSlave jarSlave,Integer sign) {
try{
- if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
return false;
}
List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
@@ -4967,10 +4977,10 @@
if (Cools.isEmpty(basJarMastSign)){
return false;
}
- //鍒ゆ柇灏忚溅鐘舵��
- if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),2)){
- return false;
- }
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),2,SteStatusType.IDLE)){
+// return false;
+// }
//鍒ゆ柇RGV鐘舵��
JarSlave.RgvStn rgvStn = jarSlave.getJarOutRgv().get(0);
@@ -4997,7 +5007,7 @@
&& !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.getOutSteId(),basJar.getOutRgvId(),3,1})){
+ 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;
@@ -5019,7 +5029,7 @@
*/
public synchronized boolean jarWrkMastExecuteGenerate4(JarSlave jarSlave,Integer sign) {
try{
- if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
return false;
}
List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
@@ -5037,10 +5047,10 @@
if (Cools.isEmpty(jarMastByJarIdMin)){
return false;
}
- //鍒ゆ柇灏忚溅鐘舵��
- if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2)){
- return false;
- }
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2,SteStatusType.IDLE)){
+// return false;
+// }
//鍒ゆ柇RGV鐘舵��
JarSlave.RgvStn rgvStn = jarSlave.getJarOutRgv().get(0);
@@ -5067,7 +5077,7 @@
&& !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.getOutSteId(),basJar.getOutRgvId(),3,1})){
+ if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByJarIdMin,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),3,1})){
log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByJarIdMin));
}
return true;
@@ -5089,7 +5099,7 @@
*/
public synchronized boolean jarWrkMastExecuteGenerate5(JarSlave jarSlave,Integer sign) {
try{
- if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){
+ if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){
return false;
}
List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
@@ -5108,10 +5118,10 @@
return false;
}
- //鍒ゆ柇灏忚溅鐘舵��
- if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2)){
- return false;
- }
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2,SteStatusType.IDLE)){
+// return false;
+// }
//鍒ゆ柇RGV鐘舵��
JarSlave.RgvStn rgvStn = jarSlave.getJarOutRgv().get(0);
@@ -5136,7 +5146,7 @@
//闂ㄤ綔涓� 鏃�
if (jarProtocol.isAutoing() && jarProtocol.jarErr==0){
//鍏宠繘鏂欓棬
- if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByJarIdMin,basJar.getBurial(),new int[]{basJar.getOutSteId(),basJar.getOutRgvId(),3,1})){
+ if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByJarIdMin,basJar.getBurial(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),3,1})){
log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByJarIdMin));
}
return true;
@@ -5154,8 +5164,11 @@
/**
* 鍒ゆ柇STE灏忚溅鐘舵�� //瀹屾垚
+ * 1锛欰闈� 杩涙枡闈�
+ * 2锛欱闈� 鍑烘枡闈�
+ * 3锛氬喎鍗存ЫB闈� 涓婅緭閫佺嚎
*/
- public synchronized boolean jarWrkMastExecuteGenerateSteStatus(Integer steNo,Integer type) {
+ public synchronized boolean jarWrkMastExecuteGenerateSteStatus(Integer steNo,Integer type,SteStatusType steStatusType) {
try{
//鍒ゆ柇灏忚溅鐘舵��
SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
@@ -5166,12 +5179,16 @@
if (steProtocol == null) {
return false;
}
- if (steProtocol.getMode() == 0) {
+ if (steProtocol.getMode() != (short)1) {
log.error(steNo + "鍙峰皬杞︾绾匡紝鏃犳硶鎿嶄綔");
return false;
}
- if (!steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
- log.error(steNo + "鍙峰皬杞︿笉鏄┖闂诧紝鏃犳硶鎿嶄綔");
+ if (steProtocol.getChargeStatus()!=0){
+ log.error(steNo + "鍙峰皬杞﹀湪鍏呯數锛岀瓑寰�....");
+ return false;
+ }
+ if (!steProtocol.getStatusType().equals(steStatusType)) {
+ log.error(steNo + "鍙峰皬杞︾姸鎬佷笉鏄�"+JSON.toJSONString(steStatusType)+"锛岀瓑寰�....");
return false;
}
switch (type){
@@ -5201,9 +5218,17 @@
}
return false;
}
- /**
- * 鍒ゆ柇RGV灏忚溅鐘舵�� //瀹屾垚
- */
+
+ /*
+ * 鍒ゆ柇RGV灏忚溅鐘舵�� //瀹屾垚
+ * RGV1;//灏忚溅鏃犺揣绌洪棽
+ * RGV2;//灏忚溅杈撻�佺嚎鍙栬揣鍒颁綅
+ * RGV3;//灏忚溅杩愯涓�
+ * RGV3;//灏忚溅杩愯涓�
+ * RGV4;//灏忚溅鏀瑰乏渚ц揣鐗╃洰鏍囩珯 鍙�1锛堝乏锛夎揣鐗�
+ * RGV5;//灏忚溅鏀瑰彸渚ц揣鐗╃洰鏍囩珯 鍙�2锛堝彸锛夎揣鐗�
+ * RGV6;//涓婁綅鏈烘竻闄ゅ钩绉昏溅璧勬枡
+ * */
public synchronized boolean jarWrkMastExecuteGenerateRgvStatus(Integer rgvNo,Integer rgvPlcId,Integer type) {
try{
//妫�娴婻GV鐘舵��
@@ -5217,6 +5242,7 @@
if (staProtocolRGV == null) {
return false;
}
+
return staProtocolRGV.rgvBoolean(type);
} catch (Exception e){
log.error("{}鍙稲GV鐘舵�佸垽鏂姸鎬佸紓甯�,寮傚父鍘熷洜={}",rgvNo,e.getMessage());
@@ -5232,7 +5258,8 @@
WrkMastExecute wrkMastExecute = new WrkMastExecute(basJarMast);
wrkMastExecute.setJarId(id);
wrkMastExecute.setSteId(digit[0]);//绌挎鏉縄D
- wrkMastExecute.setRgvId(digit[1]);//RGV ID
+ 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);
@@ -5243,34 +5270,1904 @@
}
/**
- * JarWrkMastExecute浠诲姟瀹屾垚 //鏈畬鎴�
+ * JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц //瀹屾垚
*/
- public synchronized void jarWrkMastExecuteGenerateComplete() {
- try{
-
- }catch (Exception e){
- log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
+ 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;
}
/*
- * Rgv 鍔ㄤ綔
+ * 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){
+ /*
+ * 浠诲姟绫诲瀷 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 (jarWrkMastExecuteActionExecute9(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 boolean jarRgvTake(Integer rgvNo,WrkMastExecute wrkMastExecute,Integer type){
+ 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).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;
+ }
+
+ 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.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ return true;
+ }
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层�� 杩涙枡浠叧闂渶鎵撳紑
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ 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.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(2);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ } else {
+ //鐩存帴寮�闂�/鍏抽棬
+ if (!jarDoorTake(wrkMastExecute,JarTaskModeType.OPEN_THE_DOOR)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(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.toJSON(wrkMastExecute), JSON.toJSON(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).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;
+ }
+
+ 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.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ return true;
+ }
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层�� 杩涙枡浠墦寮�闇�鍏抽棴
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
+ && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
+ 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.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(2);
+
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ } else {
+ //鐩存帴鍏抽棬
+ if (!jarDoorTake(wrkMastExecute,JarTaskModeType.CLOSE_THE_DOOR)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(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.toJSON(wrkMastExecute), JSON.toJSON(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).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;
+ }
+
+ 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.toJSON(wrkMastExecute), JSON.toJSON(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(),1,SteStatusType.IDLE)){
+ 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.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ return true;
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ } else {
+ //璋冭溅 == > endRow
+ if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(2);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(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.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+ 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;
+ }
+
+ 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.toJSON(wrkMastExecute), JSON.toJSON(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 (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){
+ return false;
+ }
+ //璋冭溅 == > 鍙栬揣
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT20.id,SteLocaType.POINT22.id,SteTaskModeType.STE_WFFH_13,false)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(5);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ } else {
+ //璋冭溅 == > endRow
+ if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(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).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;
+ }
+
+ 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.toJSON(wrkMastExecute), JSON.toJSON(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(),1,SteStatusType.IDLE)){
+ return false;
+ }
+
+ if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+
+ //璋冭溅 == > 鍙栬揣
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT21.id,SteTaskModeType.STE_WFQH_12,false)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ } else {
+ //璋冭溅 == > endRow
+ if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(2);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(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.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+ 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;
+ }
+
+ 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.toJSON(wrkMastExecute), JSON.toJSON(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 (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){
+ return false;
+ }
+ //璋冭溅 == > 鍙栬揣
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT21.id,SteTaskModeType.STE_WFQH_12,false)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ } else {
+ //璋冭溅 == > endRow
+ if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(2);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(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.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+ 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;
+ }
+
+ 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.toJSON(wrkMastExecute), JSON.toJSON(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()
+ ){
+
+ if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocolOther.getJarNo())){
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (wrkMastExecute.getIoType()==7){ //7 B=>C
+ if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+ //璋冭溅 == > 绉诲姩
+ if (jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT26.id,SteTaskModeType.STE_WFQH_12,false)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE)){
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(4);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ }
+ } else { //8 C=>B
+ if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE)){
+ //璋冭溅 == > 绉诲姩
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT26.id,SteLocaType.POINT23.id,SteTaskModeType.STE_WFQH_12,false)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(4);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ }
+ }
+
+ } else {
+ //璋冭溅 == > endRow
+ if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(2);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(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).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;
+// }
+
+ 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.toJSON(wrkMastExecute), JSON.toJSON(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)){
+ //璋冭溅 == > 鍙栬揣
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT26.id,SteLocaType.POINT24.id,SteTaskModeType.STE_WFQH_12,false)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},鍐峰嵈妲芥暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(basJar),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(1);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},鍐峰嵈妲芥暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(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).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)){
+ // 涓嬪彂绔欑偣淇℃伅
+ staProtocol.setWorkNo(wrkMastExecute.getWrkNo().intValue());
+ staProtocol.setStaNo(staProtocol.getStaNo());
+ 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.toJSON(wrkMastExecute), JSON.toJSON(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.getWrkMastExecuteByJarNo(wrkMastExecute.getJarId());
+ 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;
+ }
+
+ 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.toJSON(wrkMastExecute), JSON.toJSON(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 (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (wrkMastExecute.getIoType()==10){//10锛欰=>B
+ if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){
+ //璋冭溅 == > 绉诲姩
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT20.id,SteLocaType.POINT23.id,SteTaskModeType.STE_WFQH_12,false)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(4);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ }
+ } else {//11:B=>A
+ if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+ //璋冭溅 == > 绉诲姩
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT20.id,SteTaskModeType.STE_WFQH_12,false)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(3);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(4);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ }
+ }
+
+ } else {
+ //璋冭溅 == > endRow
+ if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(2);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("纭寲缃怞ar鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
+ wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(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;
+ }
+
+ /*
+ * 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(Integer steNo,WrkMastExecute wrkMastExecute,Integer type){
+ public synchronized boolean jarSteTake(WrkMastExecute wrkMastExecute,Integer startLoad,Integer endLoad,SteTaskModeType steTaskModeType,boolean complete){
+ 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(wrkMastExecute.getJarId().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(Integer jarNo,WrkMastExecute wrkMastExecute,Integer type){
+ 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:
+ case 5:
+ case 9:
+ if (jarWrkMastExecuteGenerateSteComplete(sign)){
+ break;
+ }
+ case 2:
+ case 6:
+ case 10:
+ if (jarWrkMastExecuteGenerateJarComplete(sign)){
+ break;
+ }
+ case 3:
+ case 7:
+ case 11:
+ if (jarWrkMastExecuteGenerateRgvComplete1(sign)){
+ break;
+ }
+ case 4:
+ case 8:
+ case 12:
+ if (jarWrkMastExecuteGenerateRgvComplete2(sign)){
+ break;
+ }
+ default:
+ return;
+ }
+ }catch (Exception e){
+ log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+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)){
+//
+// }
+ WrkMastExecute wrkMastExecute = wrkMastExecuteService.getWrkMastExecuteByWrkNo(steProtocol.getTaskNo().longValue());
+ 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.WAITING2)){
+ //ste浠诲姟瀹屾垚
+ if (jarSteTake(wrkMastExecute,null,null,null,true)){
+ 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;
+ }
+ 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)){
+ 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;
+ }
+ return false;
+ 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)){
+ 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;
+ }
+ return false;
+ 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)){
+ 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);
+ return true;
+ }
+ default: return false;
+ }
+ }
+ }
+ }
+ return true;
+ }catch (Exception e){
+ log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+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)){
+ 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)){
+ 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("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+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;
+ }
+ }
+ return true;
+ }catch (Exception e){
+ log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+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;
+ }
+ Integer integer = wrkMastExecuteService.selectNoStart(steSlave.getId());
+ if (integer!=0){
+ continue;
+ }
+
+ try{
+ if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),1,SteStatusType.IDLE)){
+ List<WrkMastExecute> wrkMastExecutes = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 5, null);
+ if (wrkMastExecutes.isEmpty()){
+ List<WrkMastExecute> wrkMastExecutesB = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 6, null);
+ List<WrkMastExecute> wrkMastExecutesC = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 9, null);
+
+ 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)){
+ List<WrkMastExecute> wrkMastExecutes = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 6, null);
+ if (wrkMastExecutes.isEmpty()){
+ List<WrkMastExecute> wrkMastExecutesA = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 5, null);
+ List<WrkMastExecute> wrkMastExecutesC = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 9, null);
+ 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)){
+ List<WrkMastExecute> wrkMastExecutes = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 9, null);
+ if (wrkMastExecutes.isEmpty()){
+ List<WrkMastExecute> wrkMastExecutesB = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 9, null);
+ List<WrkMastExecute> wrkMastExecutesA = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 6, null);
+ 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;
}
--
Gitblit v1.9.1