From cfee9013159152736fcf74011abcf8ff1108ffbb Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期日, 23 六月 2024 19:38:55 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 744 +++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 642 insertions(+), 102 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 c323c3b..c8ff8f9 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,6 +6,7 @@
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.entity.*;
import com.zy.asrs.mapper.*;
@@ -33,10 +34,7 @@
import com.zy.core.model.command.LedCommand;
import com.zy.core.model.command.RgvCommand;
import com.zy.core.model.cpmmandParam.CrnCommandParam;
-import com.zy.core.model.protocol.CrnProtocol;
-import com.zy.core.model.protocol.JarProtocol;
-import com.zy.core.model.protocol.RgvProtocol;
-import com.zy.core.model.protocol.StaProtocol;
+import com.zy.core.model.protocol.*;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.*;
import lombok.extern.slf4j.Slf4j;
@@ -4438,7 +4436,6 @@
break;
}
if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),3)!=0){
-// log.error("{}鍙峰皬杞�",jarSlave.getJarOtherId());
break;
}
if (basJarMastService.getJarMastByJarIdCount(jarSlave.getId())>=14){
@@ -4582,100 +4579,665 @@
}
/**
- * JarWrkMastExecute浠诲姟鍒涘缓 //鏈畬鎴�
- * 寮�闂ㄣ�佸叆纭寲缃�
+ * JarWrkMastExecute浠诲姟鍒涘缓 //瀹屾垚
*/
- public synchronized void jarWrkMastExecuteGenerate() {
+ 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);//灏忚溅绉诲姩
+ }
+ } catch (Exception e){
+
+ }
+
+ }
+
+ 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){
continue;
}
- List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
- add(0);
- add(2);
- }});
- for (BasJarMast basJarMast : basJarMastList){
- // 鑾峰彇纭寲缃愪俊鎭�
- JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
- JarProtocol jarProtocol = jarThread.getJarProtocol();
- if (jarProtocol == null) {
- break;
- }
- if (jarProtocol.modeType != JarModeType.AUTO){
- break;
- }
- JarThread jarOtherThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getJarOtherId());
- JarProtocol jarOtherProtocol = jarOtherThread.getJarProtocol();
- if (jarOtherProtocol == null) {
- break;
- }
+ // 鑾峰彇纭寲缃愪俊鎭�
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ continue;
+ }
+ 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;
// }
- BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
- if (Cools.isEmpty(basJar)){
- log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
- break;
- }
-
- //闂ㄤ綔涓� 鏃�
- //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂�� 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.statusType == JarStatusType.IDLE && !jarProtocol.isLeftDoor() && basJarMast.getStatus()==0){
- //鐢熸垚寮�闂ㄤ换鍔� OpenTheDoor
- if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvId(),1,1})){
- log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
+ 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;//寮�闂ㄤ换鍔� 鐢熸垚鍏ョ~鍖栫綈浠诲姟
}
- return;
- } else if (jarProtocol.statusType == JarStatusType.MOVING && jarProtocol.isLeftDoor()){
- //鐢熸垚鍏ョ~鍖栫綈浠诲姟
- if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvId(),5,1})){
- log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
+ case 2:
+ if (jarWrkMastExecuteGenerate2(jarSlave,sign)){
+ signExecute[i] = true;
+ break;//鍏宠繘鏂欓棬
}
- return;
- } else if (jarProtocol.statusType == JarStatusType.IDLE && jarProtocol.isLeftDoor()){
- log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬬~鍖栫綈绌洪棽浣嗘槸闂ㄦ湭鍏�===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
- }
+ case 3:
+ if (jarWrkMastExecuteGenerate3(jarSlave,sign)){
+ signExecute[i] = true;
+ break;//寮�鍑烘枡闂�
+ }
+ case 4:
+ if (jarWrkMastExecuteGenerate4(jarSlave,sign)){
+ signExecute[i] = true;
+ break;//鍑虹~鍖栫綈 ===銆� 鍏ュ喎鍗存Ы
+ }
}
- break;
}
} 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()) {
+ try{
+ if (signExecute[jarSlave.getId()-5]){
+ continue;
+ }
+ if (wrkMastExecuteService.getWrkMastByJarIdCount(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;
+ }
+
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ continue;
+ }
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂�� Other宸﹂棬鍏抽棴
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==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;
+ }
+
+ public synchronized boolean[] jarWrkMastExecuteGenerateSte(boolean[] signExecute,Integer sign) {
+ for (JarSlave jarSlave : slaveProperties.getJar()) {
+ try{
+ if (signExecute[jarSlave.getId()-5]){
+ continue;
+ }
+ if (wrkMastExecuteService.getWrkMastByJarIdCount(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;
+ }
+
+ 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浠诲姟鍒涘缓===>鎵ц //鏈畬鎴�
+ * JarWrkMastExecute浠诲姟鍒涘缓 //瀹屾垚
+ * 寮�闂ㄤ换鍔�
+ * 鐢熸垚鍏ョ~鍖栫綈浠诲姟
*/
- public synchronized boolean jarWrkMastExecuteGenerateExecute(BasJar basJar,BasJarMast basJarMast,int[] digit) {
+ public synchronized boolean jarWrkMastExecuteGenerate1(JarSlave jarSlave,Integer sign) {
try{
- WrkMastExecute wrkMastExecute = new WrkMastExecute(basJarMast);
- wrkMastExecute.setJarId(digit[3]==2? basJar.getBurial():basJar.getJarNo());
- wrkMastExecute.setSteId(digit[0]);//绌挎鏉縄D
- wrkMastExecute.setRgvId(digit[1]);//RGV ID
- wrkMastExecute.setIoType(digit[2]);//浠诲姟绫诲瀷 0: 鏈煡 1: 寮�杩涙枡闂� 2: 鍏宠繘鏂欓棬 3: 寮�鍑烘枡闂� 4: 鍏冲嚭鏂欓棬 5: 鍏ョ~鍖栫綈 6: 鍏ュ喎鍗存Ы 7: 绌挎杞﹁繘鍐峰嵈妲� 8: 绌挎杞︾寮�鍐峰嵈妲� 9: 鍑哄喎鍗存Ы
- wrkMastExecute.setType(digit[3]);//璁惧 0: 鏈煡 1: 纭寲缃� 2: 鍐峰嵈妲� 3: 纭寲缃�==>鍐峰嵈妲�
- return wrkMastExecuteService.insert(wrkMastExecute);
- }catch (Exception e){
- log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+ if (wrkMastExecuteService.getWrkMastByJarIdCount(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)){
+ return false;
+ }
+
+ for (BasJarMast basJarMast : basJarMastList){
+ JarSlave.StaStn staStn = null;
+ for (JarSlave.StaStn staStn1 : jarSlave.getJarInSta()){
+ if (staStn1.getStaNo().equals(basJarMast.getEnterStaNo())){
+ 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;
+ }
+
+ 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;
+ }
+
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂�� 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.isLeftDoor() && basJarMast.getStatus()==0){
+ //鐢熸垚寮�闂ㄤ换鍔� OpenTheDoor
+ if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvId(),1,1})){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
+ }
+ return true;
+ } else if (jarProtocol.statusType == JarStatusType.WAITING3 && jarProtocol.isLeftDoor()){
+ //鐢熸垚鍏ョ~鍖栫綈浠诲姟
+ if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvId(),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;
}
- /*
- * 寮�闂ㄤ换鍔″垱寤�
- * */
- public synchronized boolean jarWrkMastExecuteGenerate2(){
+ /**
+ * JarWrkMastExecute浠诲姟鍒涘缓 //瀹屾垚
+ * 鍏宠繘鏂欓棬
+ */
+ public synchronized boolean jarWrkMastExecuteGenerate2(JarSlave jarSlave,Integer sign) {
try{
+ if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){
+ return false;
+ }
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
+ add(4);
+ }});
+ if (basJarMastList.size() != 7){
+ return false;
+ }
+ BasJarMast basJarMastSign = basJarMastList.get(0);
+ if (Cools.isEmpty(basJarMastSign)){
+ return false;
+ }
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1)){
+ 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;
+ }
+
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+ if (basJar.getJarCount()!=7){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧搴撳瓨鏁板紓甯革紒锛侊紒搴撳瓨寰呭叆鏁帮細{}",jarProtocol.getJarNo(),basJar.getJarCount());
+ return false;
+ }
+
+ //闂ㄤ綔涓� 鏃�
+ if (jarProtocol.isAutoing() && jarProtocol.statusType == JarStatusType.WAITING3 && 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.getEnterRgvId(),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("{}鍙风~鍖栫綈OpenTheDoorGenerate==銆婮arWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",null,e.getMessage());
+ log.error("{}鍙风~鍖栫綈JarWrkMastExecute浠诲姟鍒涘缓寮傚父,寮傚父鍘熷洜={}",jarSlave.getId(),e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟鍒涘缓 //瀹屾垚
+ * 寮�鍑烘枡闂�
+ */
+ public synchronized boolean jarWrkMastExecuteGenerate3(JarSlave jarSlave,Integer sign) {
+ try{
+ if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){
+ return false;
+ }
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
+ add(6);
+ }});
+ if (basJarMastList.size() != 7){
+ return false;
+ }
+ if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),5)!=0){
+ return false;
+ }
+
+ BasJarMast basJarMastSign = basJarMastList.get(0);
+ if (Cools.isEmpty(basJarMastSign)){
+ return false;
+ }
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),2)){
+ 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;
+ }
+
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ 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.getOutSteId(),basJar.getOutRgvId(),3,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 jarWrkMastExecuteGenerate4(JarSlave jarSlave,Integer sign) {
+ try{
+ if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){
+ return false;
+ }
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
+ add(8);
+ }});
+ if (basJarMastList.isEmpty()){
+ return false;
+ }
+
+ if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),4)!=0){
+ return false;
+ }
+
+ BasJarMast jarMastByJarIdMin = basJarMastService.getJarMastByJarIdMax(jarSlave.getId(),8,8);
+ if (Cools.isEmpty(jarMastByJarIdMin)){
+ return false;
+ }
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2)){
+ 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;
+ }
+
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+
+ //闂ㄤ綔涓� 鏃�
+ if (jarProtocol.isAutoing() && jarProtocol.statusType == JarStatusType.WAITING4 && 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.getOutSteId(),basJar.getOutRgvId(),3,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;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟鍒涘缓 //瀹屾垚
+ * 鍐峰嵈瀹屾垚涓婅緭閫佺嚎
+ */
+ public synchronized boolean jarWrkMastExecuteGenerate5(JarSlave jarSlave,Integer sign) {
+ try{
+ if (wrkMastExecuteService.getWrkMastByJarIdCount(jarSlave.getId())!=0){
+ return false;
+ }
+ List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
+ add(14);//鍐峰嵈瀹屾垚
+ }});
+ if (basJarMastList.isEmpty()){
+ return false;
+ }
+
+ if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),7)!=0){
+ return false;
+ }
+
+ BasJarMast jarMastByJarIdMin = basJarMastService.getJarMastByJarIdMin(jarSlave.getId(),14,14);
+ if (Cools.isEmpty(jarMastByJarIdMin)){
+ return false;
+ }
+
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2)){
+ 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;
+ }
+
+ BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+ return false;
+ }
+
+ //闂ㄤ綔涓� 鏃�
+ if (jarProtocol.isAutoing() && jarProtocol.jarErr==0){
+ //鍏宠繘鏂欓棬
+ if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByJarIdMin,basJar.getBurial(),new int[]{basJar.getOutSteId(),basJar.getOutRgvId(),3,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灏忚溅鐘舵�� //瀹屾垚
+ */
+ public synchronized boolean jarWrkMastExecuteGenerateSteStatus(Integer steNo,Integer type) {
+ 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() == 0) {
+ log.error(steNo + "鍙峰皬杞︾绾匡紝鏃犳硶鎿嶄綔");
+ return false;
+ }
+ if (!steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
+ log.error(steNo + "鍙峰皬杞︿笉鏄┖闂诧紝鏃犳硶鎿嶄綔");
+ 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灏忚溅鐘舵�� //瀹屾垚
+ */
+ 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(digit[1]);//RGV ID
+ 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;
}
@@ -4691,47 +5253,25 @@
}
}
+ /*
+ * Rgv 鍔ㄤ綔
+ * */
+ public synchronized boolean jarRgvTake(Integer rgvNo,WrkMastExecute wrkMastExecute,Integer type){
+ return false;
+ }
/*
- * Rgv 绉诲姩
+ * Ste 鍔ㄤ綔
* */
- public synchronized boolean jarRgvTake2(Integer rgvId,BasJarMast basJarMast){
+ public synchronized boolean jarSteTake(Integer steNo,WrkMastExecute wrkMastExecute,Integer type){
return false;
}
+
/*
- * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 婊″彇
+ * Jar 鍔ㄤ綔
* */
- public synchronized boolean jarRgvTake3(Integer rgvId,BasJarMast basJarMast){
+ public synchronized boolean jarDoorTake(Integer jarNo,WrkMastExecute wrkMastExecute,Integer type){
return false;
}
- /*
- * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 婊″彇
- * */
- public synchronized boolean jarRgvTake4(Integer rgvId,BasJarMast basJarMast){
- return false;
- }
- /*
- * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 婊″彇
- * */
- public synchronized boolean jarRgvTake5(Integer rgvId,BasJarMast basJarMast){
- return false;
- }
- /*
- * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 婊″彇
- * */
- public synchronized boolean jarRgvTake6(Integer rgvId,BasJarMast basJarMast){
- return false;
- }
- /*
- * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 婊″彇
- * */
- public synchronized boolean jarRgvTake7(Integer rgvId,BasJarMast basJarMast){
- return false;
- }
- /*
- * 绌挎鏉跨Щ鍔�
- * */
- public synchronized boolean jarRgvTake8(Integer rgvId,BasJarMast basJarMast){
- return false;
- }
+
}
--
Gitblit v1.9.1