From 2cebd39fd1514c991da647f08124e18a0b02abe9 Mon Sep 17 00:00:00 2001
From: lsh <lsh123456>
Date: 星期三, 26 六月 2024 15:19:44 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java | 15
src/main/java/com/zy/core/thread/JarThread.java | 3
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 1226 +++++++++++++++++++++++++++++++++++++++++++-
src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java | 10
src/main/resources/mapper/BasJarMastMapper.xml | 8
src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java | 5
src/main/java/com/zy/asrs/service/BasJarMastService.java | 2
src/main/resources/mapper/WrkMastExecuteMapper.xml | 46 +
src/main/java/com/zy/asrs/entity/WrkMastExecute.java | 15
src/main/java/com/zy/core/model/protocol/StaProtocol.java | 4
src/main/java/com/zy/core/model/command/SteCommand.java | 3
src/main/java/com/zy/core/thread/SteThread.java | 5
src/main/java/com/zy/core/model/protocol/SteProtocol.java | 4
src/main/java/com/zy/asrs/service/WrkMastExecuteService.java | 6
src/main/java/com/zy/core/enums/SlaveType.java | 3
src/main/java/com/zy/core/MainProcess.java | 9
src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java | 4
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 159 +++++
src/main/java/com/zy/asrs/utils/SteAndJarUtil.java | 68 ++
src/main/java/com/zy/core/enums/SteStatusType.java | 7
20 files changed, 1,529 insertions(+), 73 deletions(-)
diff --git a/src/main/java/com/zy/asrs/entity/WrkMastExecute.java b/src/main/java/com/zy/asrs/entity/WrkMastExecute.java
index ab3248a..895f5bf 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMastExecute.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMastExecute.java
@@ -102,6 +102,13 @@
private Integer rgvId;
/**
+ * RGV
+ */
+ @ApiModelProperty(value= "RGV")
+ @TableField("rgv_end_id")
+ private Integer rgvEndId;
+
+ /**
* 浣滀笟鏃堕棿
*/
@ApiModelProperty(value= "浣滀笟鏃堕棿")
@@ -134,6 +141,14 @@
/**
* 宸ヤ綔鐘舵��
+ * 0:鍒濆 wrk_type
+ * 1锛歊GV灏忚溅閬胯銆�2锛氶伩璁╁畬鎴愩��3锛氬紑闂ㄤ腑銆�4锛氬紑闂ㄥ畬鎴愩��5锛氭洿鏂板畬鎴� //io_type = 1銆�3
+ * 1锛歊GV灏忚溅閬胯銆�2锛氶伩璁╁畬鎴愩��3锛氬叧闂ㄤ腑銆�4锛氬叧闂ㄥ畬鎴愩��5锛氭洿鏂板畬鎴� //io_type = 2銆�4
+ * 1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歳gv鍙栬揣銆�4锛歳gv鍙栬揣瀹屾垚銆�5锛歋te绌挎鐗堝叆纭寲缃愩��6锛氬叆缃愬畬鎴愩��7锛氭洿鏂板畬鎴� //io_type = 5
+ * 1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堝彇璐с��4锛氬彇璐у畬鎴愮瓑寰呬笅涓�姝ャ��5锛歋te绌挎鐗堟斁璐ц嚦鍐峰嵈姹犮��6锛氭斁璐у畬鎴愩��7锛氭洿鏂板畬鎴� //io_type = 6
+ * 1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堢Щ鍔ㄤ腑銆�4锛氱Щ鍔ㄥ畬鎴愩��5锛氭洿鏂板畬鎴� //io_type = 7銆�8
+ * 1锛歋te绌挎鐗堝彇鏀捐揣涓��2锛氭斁璐у畬鎴愮瓑寰呬笅涓�姝ャ��3锛氳緭閫佺嚎浠诲姟涓嬪彂瀹屾垚銆�4锛氭洿鏂板畬鎴� //io_type = 9
+ * 1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堢Щ鍔ㄤ腑銆�4锛氱Щ鍔ㄥ畬鎴愩��5锛氭洿鏂板畬鎴� //io_type = 10銆�11
*/
@ApiModelProperty(value= "宸ヤ綔鐘舵��")
@TableField("wrk_sts")
diff --git a/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java b/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java
index 23ed3a8..d2c7770 100644
--- a/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/BasJarMastMapper.java
@@ -6,6 +6,7 @@
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
+import java.util.Date;
import java.util.List;
@Mapper
@@ -26,4 +27,7 @@
Integer selectJarMastOperationByStatusList(@Param("jarId") Integer jarId,@Param("statusList") List<Integer> statusList);
+ Integer updateStatus(@Param("jarId") Integer jarId, @Param("status") Integer status, @Param("statusUpdate") Integer statusUpdate);
+
+
}
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
index ba97d72..a87b6de 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
@@ -16,11 +16,15 @@
List<WrkMastExecute> getWrkMastByJarId(@Param("jarId") Integer jarId);
- List<WrkMastExecute> sselectWrkMastExecuteByType(@Param("type") Integer type);
+ List<WrkMastExecute> selectWrkMastExecuteByType(@Param("type") Integer type);
- List<WrkMastExecute> sselectWrkMastExecuteByTypeAndIoTyper(@Param("type")Integer type,@Param("ioType")Integer ioType);
+ List<WrkMastExecute> selectWrkMastExecuteByTypeAndIoTyperAndWrkType(@Param("type")Integer type,@Param("ioType")Integer ioType,@Param("wrkType")Integer wrkType);
+
+ List<WrkMastExecute> selectWrkMastExecuteByWrk(@Param("type")Integer type,@Param("ioType")Integer ioType,
+ @Param("wrkType")Integer wrkType,@Param("steNo")Integer steNo,
+ @Param("jarNo")Integer jarNo,@Param("rgvNo")Integer rgvNo);
- Integer getWrkMastByJarIdCount(@Param("jarId") Integer jarId);
+ Integer getWrkMastExecuteByJarIdCount(@Param("jarId") Integer jarId);
}
diff --git a/src/main/java/com/zy/asrs/service/BasJarMastService.java b/src/main/java/com/zy/asrs/service/BasJarMastService.java
index b128dfa..924f6af 100644
--- a/src/main/java/com/zy/asrs/service/BasJarMastService.java
+++ b/src/main/java/com/zy/asrs/service/BasJarMastService.java
@@ -33,4 +33,6 @@
Integer selectJarMastOperation(Integer jarId,Integer type);
+ Integer updateStatus(Integer jarId,Integer status,Integer statusUpdate);
+
}
diff --git a/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java b/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
index 50bd6ef..ada23c3 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
@@ -11,9 +11,11 @@
List<WrkMastExecute> getWrkMastExecuteByJarNo(Integer jarId);
- List<WrkMastExecute> sselectWrkMastExecuteByType(Integer type);
+ List<WrkMastExecute> selectWrkMastExecuteByType(Integer type);
- List<WrkMastExecute> sselectWrkMastExecuteByTypeAndIoTyper(Integer type,Integer ioType);
+ List<WrkMastExecute> selectWrkMastExecuteByTypeAndIoTyperAndWrkType(Integer type,Integer ioType,Integer wrkType);
+
+ List<WrkMastExecute> selectWrkMastExecuteByWrk(WrkMastExecute wrkMastExecute);
Integer getWrkMastExecuteByJarIdCount(Integer jarId);
diff --git a/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java
index ee80b66..d0f5819 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasJarMastServiceImpl.java
@@ -204,4 +204,9 @@
return this.baseMapper.selectJarMastOperationByStatusList(jarId,statusList);
}
+ @Override
+ public Integer updateStatus(Integer jarId,Integer status,Integer statusUpdate) {
+ return this.baseMapper.updateStatus(jarId,status,statusUpdate);
+ }
+
}
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 788004e..6f1a206 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4414,7 +4414,7 @@
}
/**
- * Jar浠诲姟鍒涘缓 //瀹屾垚
+ * Jar浠诲姟鍒涘缓 鍒濆 //瀹屾垚
*/
public synchronized void jarMastGenerate() {
for (JarSlave jarSlave : slaveProperties.getJar()) {
@@ -4528,9 +4528,8 @@
}
//鑷姩銆佺┖闂层�佸彸闂ㄥ叧闂�� 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);//鍏ョ~鍖栫綈绔欑偣
@@ -4790,7 +4789,7 @@
}});
//鍒ゆ柇灏忚溅鐘舵��
- if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1)){
+ if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1,SteStatusType.IDLE)){
return false;
}
@@ -4903,7 +4902,7 @@
return false;
}
//鍒ゆ柇灏忚溅鐘舵��
- if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1)){
+ if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),1,SteStatusType.IDLE)){
return false;
}
@@ -4932,7 +4931,7 @@
//闂ㄤ綔涓� 鏃�
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.getEnterRgvNo(),2,1})){
@@ -4975,7 +4974,7 @@
return false;
}
//鍒ゆ柇灏忚溅鐘舵��
- if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),2)){
+ if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarInSte().get(0).getSteNo(),2,SteStatusType.IDLE)){
return false;
}
@@ -5045,7 +5044,7 @@
return false;
}
//鍒ゆ柇灏忚溅鐘舵��
- if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2)){
+ if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2,SteStatusType.IDLE)){
return false;
}
@@ -5116,7 +5115,7 @@
}
//鍒ゆ柇灏忚溅鐘舵��
- if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2)){
+ if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2,SteStatusType.IDLE)){
return false;
}
@@ -5165,7 +5164,7 @@
* 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);
@@ -5176,12 +5175,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){
@@ -5251,7 +5254,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);
@@ -5267,7 +5271,7 @@
* */
public synchronized void jarWrkMastExecuteAction(Integer sign) {
try{
- List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.sselectWrkMastExecuteByTypeAndIoTyper(0, 0);
+ List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, null,0);
for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
/*
* 浠诲姟绫诲瀷 0: 鏈煡
@@ -5279,20 +5283,45 @@
* 10锛欰=>B 11:B=>A
* */
switch (wrkMastExecute.getIoType()){
- case 1:
- jarWrkMastExecuteActionExecute1(wrkMastExecute,sign);
+ case 1://1: 寮�杩涙枡闂�
+ case 3://3: 寮�鍑烘枡闂�
+ if (jarWrkMastExecuteActionExecute1(wrkMastExecute,sign)){
+ break;
+ }
+ return;
case 2:
- case 3:
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:
- case 12:
- case 13:
+ if (jarWrkMastExecuteActionExecute10(wrkMastExecute,sign)){
+ break;
+ }
+ return;
}
}
} catch (Exception e){
@@ -5302,19 +5331,8 @@
}
/**
- * JarWrkMastExecute浠诲姟瀹屾垚 //鏈畬鎴�
- */
- public synchronized void jarWrkMastExecuteGenerateComplete() {
- try{
-
- }catch (Exception e){
- log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
- }
- }
-
- /**
- * JarWrkMastExecute浠诲姟鍒涘缓==>涓嬪彂 //鏈畬鎴�
- * 寮�杩涙枡闂�
+ * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+ * 1銆�3寮�杩涙枡闂�
* 浠诲姟涓嬪彂
*/
public synchronized boolean jarWrkMastExecuteActionExecute1(WrkMastExecute wrkMastExecute,Integer sign) {
@@ -5340,10 +5358,10 @@
return false;
}
- //鍒ゆ柇灏忚溅鐘舵��
- if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
- return false;
- }
+// //鍒ゆ柇灏忚溅鐘舵��
+// if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1)){
+// return false;
+// }
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
if (staProtocolRGV == null) {
@@ -5354,25 +5372,827 @@
if (staProtocolRGV == null) {
return false;
}
- if (staProtocolRGV.rgvBoolean(1)){
+ 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 (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
- //绉昏蛋 == > 2
- } else {
- //鐩存帴寮�闂�
+ 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(1);
+ 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.selectByJarNo(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, 1);
+ 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(1);
+
+ 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.selectByJarNo(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, 1);
+ 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 (jarRgvGetTake(wrkMastExecute
+ ,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarEnterStaNo())==1
+ ,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarEnterStaNo())==2)){
+ log.error("骞宠 杞GV鍛戒护涓嬪彂澶辫触锛宺gv鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},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(1);
+ 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 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.selectByJarNo(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, 1);
+ 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(1);
+ 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锛氱┛姊溅杩涘喎鍗存Ы\8锛氱┛姊溅绂诲紑鍐峰嵈妲�
+ * 浠诲姟涓嬪彂
+ */
+ 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.selectByJarNo(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.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, 1);
+ 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){
+ 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 {
+ 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(1);
+ 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.selectByJarNo(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, 1);
+ 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浠诲姟==>涓嬪彂 //瀹屾垚
+ * 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.selectByJarNo(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, 1);
+ 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){
+ 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 {
+ 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(1);
+ 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());
}
@@ -5380,9 +6200,9 @@
}
/*
- * Rgv 鍔ㄤ綔
+ * Rgv 鍔ㄤ綔 绉诲姩
* */
- public synchronized boolean jarRgvTake(WrkMastExecute wrkMastExecute,Integer endRow){
+ public synchronized boolean jarRgvMoveTake(WrkMastExecute wrkMastExecute,Integer endRow){
try {
StaProtocol staProtocol = new StaProtocol();
staProtocol.setSiteId(wrkMastExecute.getRgvId());
@@ -5400,6 +6220,27 @@
}
/*
+ * 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;
+ }
+
+ /*
* Ste 鍔ㄤ綔
* */
public synchronized boolean jarSteTake(WrkMastExecute wrkMastExecute,Integer startLoad,Integer endLoad,SteTaskModeType steTaskModeType,boolean complete){
@@ -5410,6 +6251,7 @@
steCommand.setEndLoad(endLoad);
steCommand.setTaskModeType(steTaskModeType);
steCommand.setComplete(complete);
+ 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;
@@ -5440,4 +6282,298 @@
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);
+ }
+ }
+ }
+ 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 (wrkMastExecute.getWrkSts()==3){//==>4
+ //1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堝彇璐с��4锛氬彇璐у畬鎴愮瓑寰呬笅涓�姝ャ��5锛歋te绌挎鐗堟斁璐ц嚦鍐峰嵈姹犮��6锛氭斁璐у畬鎴愩��7锛氭洿鏂板畬鎴� //io_type = 6
+ //ste浠诲姟绛夊緟瀹屾垚
+ if (steProtocol.statusType.equals(SteStatusType.WAITING)){
+ //ste浠诲姟瀹屾垚
+ if (jarSteTake(wrkMastExecute,null,null,null,true)){
+ wrkMastExecute.setWrkSts(6);
+ if (wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+ }
+ }
+ }
+ log.error("绌挎杞te鍛戒护涓嬪彂澶辫触===>涓嬪彂寮傚父锛宩ar鍙�={},浠诲姟鏁版嵁={},绌挎杞︽暟鎹�={},sign={}",
+ wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(steProtocol),sign);
+ return true;
+ }
+ 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);
+ }
+ }
+ }
+ 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);
+ }
+ }
+ }
+ 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()) {
+ // 鑾峰彇纭寲缃愪俊鎭�
+ 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() ){
+ 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);
+ }
+ }
+ }
+ return true;
+ }catch (Exception e){
+ log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟瀹屾垚 ===>RGV绉诲姩 //瀹屾垚
+ */
+ public synchronized boolean jarWrkMastExecuteGenerateRgvComplete1(Integer sign) {
+ try{
+ WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
+ wrkMastExecuteSou.setWrkType(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.setWrkType(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;
+ }
+
+ 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(4);
+ 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;
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java
index 072b583..d540eb7 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java
@@ -22,17 +22,22 @@
}
@Override
- public List<WrkMastExecute> sselectWrkMastExecuteByType(Integer type) {
- return this.baseMapper.sselectWrkMastExecuteByType(type);
+ public List<WrkMastExecute> selectWrkMastExecuteByType(Integer type) {
+ return this.baseMapper.selectWrkMastExecuteByType(type);
}
@Override
- public List<WrkMastExecute> sselectWrkMastExecuteByTypeAndIoTyper(Integer type,Integer ioType) {
- return this.baseMapper.sselectWrkMastExecuteByTypeAndIoTyper(type,ioType);
+ public List<WrkMastExecute> selectWrkMastExecuteByTypeAndIoTyperAndWrkType(Integer type,Integer ioType,Integer wrkType) {
+ return this.baseMapper.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(type,ioType,wrkType);
+ }
+
+ @Override
+ public List<WrkMastExecute> selectWrkMastExecuteByWrk(WrkMastExecute wrkMastExecute) {
+ return this.baseMapper.selectWrkMastExecuteByWrk(wrkMastExecute.getType(),wrkMastExecute.getIoType(),wrkMastExecute.getWrkType(),wrkMastExecute.getSteId(),wrkMastExecute.getJarId(),wrkMastExecute.getRgvId());
}
@Override
public Integer getWrkMastExecuteByJarIdCount(Integer jarId) {
- return this.baseMapper.getWrkMastByJarIdCount(jarId);
+ return this.baseMapper.getWrkMastExecuteByJarIdCount(jarId);
}
}
diff --git a/src/main/java/com/zy/asrs/utils/SteAndJarUtil.java b/src/main/java/com/zy/asrs/utils/SteAndJarUtil.java
index 91eb37b..22d1cfa 100644
--- a/src/main/java/com/zy/asrs/utils/SteAndJarUtil.java
+++ b/src/main/java/com/zy/asrs/utils/SteAndJarUtil.java
@@ -11,6 +11,74 @@
return (steNowRow==(short) 1 && (jarNo == 2 || jarNo == 4)) || (steNowRow==(short)3 && (jarNo == 1 || jarNo == 3));
}
+ /**
+ * RGV浣嶇疆姝e鑾峰彇
+ */
+ public static Integer getRgvJarNowRow(Integer jarNo){
+ switch (jarNo){
+ case 1:
+ case 3:
+ return 3;
+ case 2:
+ case 4:
+ case 5:
+ case 6:
+ return 1;
+ }
+ return 2;
+ }
+
+ /**
+ * RGV浣嶇疆姝e鑾峰彇
+ */
+ public static boolean getRgvJarNowRow(Integer staNo,short nowRow){
+ switch (staNo){
+ case 615:
+ case 622:
+ case 628:
+ case 627:
+ return nowRow==(short) 1;
+ case 612:
+ case 619:
+ return nowRow==(short) 2;
+ }
+ return false;
+ }
+
+ /**
+ * RGV浣嶇疆姝e鑾峰彇
+ */
+ public static Integer getRgvStaRow(Integer staNo){
+ switch (staNo){
+ case 615:
+ case 622:
+ case 628:
+ case 627:
+ return 1;
+ case 612:
+ case 619:
+ return 2;
+ }
+ return 0;
+ }
+
+ /**
+ * 鑾峰彇姝e鍐峰嵈妲界~鍖栫綈
+ */
+ public static Integer getRgvJarNo(Integer jarNo){
+ switch (jarNo){
+ case 1:
+ case 2:
+ return 2;
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ return 4;
+ }
+ return 0;
+ }
+
public static void main(String[] args) {
}
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 399f0e7..a0ff888 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -90,19 +90,18 @@
mainService.storeEmptyPltLarge();
// 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
mainService.ledExecute();
- // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
+ // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
mainService.ledReset();
/************************************JAR璋冨害************************************/
+ //JarWrkMastExecute浠诲姟瀹屾垚
+ mainService.jarWrkMastExecuteGenerateComplete(k);
//JarWrkMastExecute浠诲姟鍒涘缓 //纭寲缃�
mainService.jarWrkMastExecuteGenerate(k);
-
+ //JarWrkMastExecute浠诲姟鎵ц
mainService.jarWrkMastExecuteAction(k);
//Jar浠诲姟鍒涘缓 //瀹屾垚
mainService.jarMastGenerate();
-
-
-
/************************************JAR璋冨害************************************/
diff --git a/src/main/java/com/zy/core/enums/SlaveType.java b/src/main/java/com/zy/core/enums/SlaveType.java
index 2896dc6..8372df4 100644
--- a/src/main/java/com/zy/core/enums/SlaveType.java
+++ b/src/main/java/com/zy/core/enums/SlaveType.java
@@ -10,7 +10,8 @@
Car,
Rgv,
Ste,
- Jar
+ Jar,
+ JarB
;
public static SlaveType findInstance(String s){
diff --git a/src/main/java/com/zy/core/enums/SteStatusType.java b/src/main/java/com/zy/core/enums/SteStatusType.java
index c757c52..129e005 100644
--- a/src/main/java/com/zy/core/enums/SteStatusType.java
+++ b/src/main/java/com/zy/core/enums/SteStatusType.java
@@ -2,11 +2,14 @@
public enum SteStatusType {
+ OFF_LINE(-1, "鏈煡"),
IDLE(0, "绌洪棽"),
MOVING(1, "浣滀笟涓�"),
- SOS(2, "鎶ヨ"),
+ SOS(2, "鍋滄涓�"),
+ SOS2(3, "鎶ヨ锛氭晠闅滀腑"),
+ SOS3(4, "澶嶄綅涓�"),
WAITING(10, "绛夊緟纭"),
- OFF_LINE(-1, "鏈煡"),
+ WAITING2(11, "鏈夌墿寰呬綔涓�"),
OTHER(100, "鍏跺畠"),
;
diff --git a/src/main/java/com/zy/core/model/command/SteCommand.java b/src/main/java/com/zy/core/model/command/SteCommand.java
index 365370e..58471f3 100644
--- a/src/main/java/com/zy/core/model/command/SteCommand.java
+++ b/src/main/java/com/zy/core/model/command/SteCommand.java
@@ -32,6 +32,9 @@
//
@JSONField(serialize = false)
private SteTaskModeType taskModeType;
+
+ private Short jarNo;
+
//
// // 璧峰璁惧鍙�
// private Short startSsbm;
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index 9fd2f8f..b353b8d 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -83,8 +83,8 @@
private boolean RGV1;//灏忚溅鏃犺揣绌洪棽
private boolean RGV2;//灏忚溅杈撻�佺嚎鍙栬揣鍒颁綅
private boolean RGV3;//灏忚溅杩愯涓�
- private boolean RGV4;//灏忚溅鏀瑰乏渚ц揣鐗╃洰鏍囩珯 鍙�1锛堝乏锛夎揣鐗�
- private boolean RGV5;//灏忚溅鏀瑰彸渚ц揣鐗╃洰鏍囩珯 鍙�2锛堝彸锛夎揣鐗�
+ private boolean RGV4;//灏忚溅鏀瑰乏渚ц揣鐗╃洰鏍囩珯 鍙�1锛堝乏锛夎揣鐗� 锛堥潰鏈濆叆鏂欏彛锛�
+ private boolean RGV5;//灏忚溅鏀瑰彸渚ц揣鐗╃洰鏍囩珯 鍙�2锛堝彸锛夎揣鐗� 锛堥潰鏈濆叆鏂欏彛锛�
private boolean RGV6;//涓婁綅鏈烘竻闄ゅ钩绉昏溅璧勬枡
public BasDevp toSqlModel(){
diff --git a/src/main/java/com/zy/core/model/protocol/SteProtocol.java b/src/main/java/com/zy/core/model/protocol/SteProtocol.java
index 4986894..f9734cf 100644
--- a/src/main/java/com/zy/core/model/protocol/SteProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/SteProtocol.java
@@ -33,7 +33,9 @@
IDLE(0, "绌洪棽"),
MOVING(1, "浣滀笟涓�"),
SOS(2, "鎶ヨ"),
- WAITING(3, "浠诲姟瀹屾垚绛夊緟WCS纭"),
+ WAITING(10, "绛夊緟纭"),
+ OFF_LINE(-1, "鏈煡"),
+ OTHER(100, "鍏跺畠"),
*/
public Short status;
diff --git a/src/main/java/com/zy/core/thread/JarThread.java b/src/main/java/com/zy/core/thread/JarThread.java
index 311d53d..9471b80 100644
--- a/src/main/java/com/zy/core/thread/JarThread.java
+++ b/src/main/java/com/zy/core/thread/JarThread.java
@@ -118,6 +118,9 @@
*/
private void readStatus(){
try {
+ if (slave.getId()>4){
+ return;
+ }
OperateResultExOne<byte[]> result = siemensS7Net.Read("V300", (short) 26);
if (result.IsSuccess) {
if (null == jarProtocol) {
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index cd891bc..3850d4e 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -313,8 +313,8 @@
staProtocol.setRGV1(status[0]); // 鑷姩
staProtocol.setRGV2(status[1]); // 鏈夌墿
staProtocol.setRGV3(status[2]); // 鍙叆
- staProtocol.setRGV4(status[3]);// 鍙嚭
- staProtocol.setRGV5(status[4]); // 绌烘澘淇″彿
+ staProtocol.setRGV4(status[3]);//
+ staProtocol.setRGV5(status[4]); //
staProtocol.setRGV6(status[5]); // 婊℃墭鐩�
}
}
@@ -541,30 +541,148 @@
/**
* 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
*/
+ private void write10(StaProtocol staProtocol) throws InterruptedException {
+ if (null == staProtocol) {
+ return;
+ }
+ boolean rgv4 = staProtocol.isRGV4();
+ boolean rgv5 = staProtocol.isRGV5();
+ OperateResult result1 = null;
+ OperateResult result2 = null;
+ String resultV1 = "";
+ String resultV2 = "";
+ switch (staProtocol.getSiteId()){
+ case 623:
+ resultV1 = "1804";
+ resultV2 = "1804";
+ break;
+ case 624:
+ resultV1 = "1810";
+ resultV2 = "1810";
+ break;
+ case 625:
+ resultV1 = "1816";
+ resultV2 = "1816";
+ break;
+ case 626:
+ resultV1 = "1822";
+ resultV2 = "1822";
+ break;
+ default:
+ return;
+ }
+ result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4);
+ //纭寲缃愪换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+ try {
+ Thread.sleep(200);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ int writeCount = 1;
+ do {
+ try{
+ if(!result1.IsSuccess){
+ log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+ result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4);
+ Thread.sleep(100);
+ writeCount++;
+ continue;
+ }
+ OperateResultExOne<byte[]> resultRead1 = siemensS7Net.Read(resultV1, (short) 2);
+ if (resultRead1.IsSuccess) {
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRead1.Content, 0, 1);
+ boolean status1 = status[rgv4? 4:3];
+ if (status1 == rgv4?rgv5:rgv4){
+ break;
+ } else {
+ log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+ result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4);
+ Thread.sleep(100);
+ writeCount++;
+ continue;
+ }
+ } else {
+ log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+ result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4);
+ Thread.sleep(100);
+ writeCount++;
+ continue;
+ }
+ }catch (Exception e){
+ log.error("鍐欏叆RGV鏁版嵁鍚庡洖璇诲嚭閿�,寮傚父锛�"+e);
+ }
+ writeCount++;
+ } while (writeCount<6);
+
+ result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5);
+ writeCount = 1;
+ do {
+ try{
+ if(!result2.IsSuccess){
+ log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+ result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5);
+ Thread.sleep(100);
+ writeCount++;
+ continue;
+ }
+ OperateResultExOne<byte[]> resultRead2 = siemensS7Net.Read(resultV2, (short) 1);
+ if (resultRead2.IsSuccess) {
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRead2.Content, 0, 1);
+ boolean status1 = status[rgv4? 3:4];
+ if (status1 == rgv4?rgv4:rgv5){
+ break;
+ } else {
+ log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+ result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5);
+ Thread.sleep(100);
+ writeCount++;
+ continue;
+ }
+ } else {
+ log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+ result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5);
+ Thread.sleep(100);
+ writeCount++;
+ continue;
+ }
+ }catch (Exception e){
+ log.error("鍐欏叆RGV鏁版嵁鍚庡洖璇诲嚭閿�,寮傚父锛�"+e);
+ }
+ writeCount++;
+ } while (writeCount<6);
+ }
private void write9(StaProtocol staProtocol) throws InterruptedException {
if (null == staProtocol) {
return;
}
short resultS1 = staProtocol.getEndRow();
OperateResult result1 = null;
+ OperateResult result2 = null;
String resultV1 = "";
+ String resultV2 = "";
switch (staProtocol.getSiteId()){
case 623:
resultV1 = "1800";
+ resultV2 = "1812";
break;
case 624:
resultV1 = "1806";
+ resultV2 = "1818";
break;
case 625:
resultV1 = "1812";
+ resultV2 = "1800";
break;
case 626:
resultV1 = "1818";
+ resultV2 = "1806";
break;
default:
return;
}
result1 = siemensS7Net.Write(resultV1, resultS1);
+ result2 = siemensS7Net.Write(resultV2, resultS1);
//纭寲缃愪换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
try {
Thread.sleep(200);
@@ -585,7 +703,7 @@
OperateResultExOne<byte[]> resultRead1 = siemensS7Net.Read(resultV1, (short) 2);
if (resultRead1.IsSuccess) {
short transInt16 = siemensS7Net.getByteTransform().TransInt16(resultRead1.Content, 0);
- if (transInt16 == resultS1 || transInt16 == (short) 2 || transInt16 == (short) 3){
+ if (transInt16 == resultS1){
break;
} else {
log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
@@ -607,6 +725,41 @@
writeCount++;
} while (writeCount<6);
+ writeCount = 1;
+ do {
+ try{
+ if(!result2.IsSuccess){
+ log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+ result2 = siemensS7Net.Write(resultV2, resultS1);
+ Thread.sleep(100);
+ writeCount++;
+ continue;
+ }
+ OperateResultExOne<byte[]> resultRead2 = siemensS7Net.Read(resultV2, (short) 2);
+ if (resultRead2.IsSuccess) {
+ short transInt16 = siemensS7Net.getByteTransform().TransInt16(resultRead2.Content, 0);
+ if (transInt16 == resultS1){
+ break;
+ } else {
+ log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+ result2 = siemensS7Net.Write(resultV2, resultS1);
+ Thread.sleep(100);
+ writeCount++;
+ continue;
+ }
+ } else {
+ log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
+ result2 = siemensS7Net.Write(resultV2, resultS1);
+ Thread.sleep(100);
+ writeCount++;
+ continue;
+ }
+ }catch (Exception e){
+ log.error("鍐欏叆RGV鏁版嵁鍚庡洖璇诲嚭閿�,寮傚父锛�"+e);
+ }
+ writeCount++;
+ } while (writeCount<6);
+
if (!result1.IsSuccess) {
staProtocol = station.get(staProtocol.getSiteId());
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
diff --git a/src/main/java/com/zy/core/thread/SteThread.java b/src/main/java/com/zy/core/thread/SteThread.java
index 41ef4d8..4483c28 100644
--- a/src/main/java/com/zy/core/thread/SteThread.java
+++ b/src/main/java/com/zy/core/thread/SteThread.java
@@ -226,7 +226,7 @@
siemensS7Net.Write("DB100.12", (short) 0);//璧峰鐐逛綅
siemensS7Net.Write("DB100.14", (short) 0);//鐩殑鐐逛綅
siemensS7Net.Write("DB100.16.0", false);//浠诲姟寮�濮嬬‘璁や綅
- siemensS7Net.Write("DB100.16.1", false);//浠诲姟瀹屾垚纭
+// siemensS7Net.Write("DB100.18", (short) 0);//纭寲缃愬彿
// 1.浠诲姟鍙�
OperateResult result0 = siemensS7Net.Write("DB100.2", command.getTaskNo().shortValue());
try {
@@ -240,8 +240,9 @@
OperateResult result1 = siemensS7Net.Write("DB100.4", command.getTaskMode());
OperateResult result2 = siemensS7Net.Write("DB100.12", (short) command.getStartLoad().shortValue());//璧峰鐐逛綅
OperateResult result3 = siemensS7Net.Write("DB100.14", (short) command.getEndLoad().shortValue());//鐩殑鐐逛綅
+ OperateResult result4 = siemensS7Net.Write("DB100.18", (short) command.getJarNo());//鐩殑鐐逛綅
// 3.纭寮�濮嬩换鍔�
- if (result0.IsSuccess && result1.IsSuccess && result2.IsSuccess && result3.IsSuccess) {
+ if (result0.IsSuccess && result1.IsSuccess && result2.IsSuccess && result3.IsSuccess && result4.IsSuccess) {
result = siemensS7Net.Write("DB100.16.0", true);
try {
diff --git a/src/main/resources/mapper/BasJarMastMapper.xml b/src/main/resources/mapper/BasJarMastMapper.xml
index dd70c8b..9eab836 100644
--- a/src/main/resources/mapper/BasJarMastMapper.xml
+++ b/src/main/resources/mapper/BasJarMastMapper.xml
@@ -101,4 +101,12 @@
order by jar_loc_digit desc
</select>
+ <update id="updateStatus">
+ update asr_bas_jar_mast
+ set status = #{statusUpdate}
+ where 1=1
+ and jar_id = #{jarId}
+ and status = #{status}
+ </update>
+
</mapper>
diff --git a/src/main/resources/mapper/WrkMastExecuteMapper.xml b/src/main/resources/mapper/WrkMastExecuteMapper.xml
index ca69ed5..2e3950d 100644
--- a/src/main/resources/mapper/WrkMastExecuteMapper.xml
+++ b/src/main/resources/mapper/WrkMastExecuteMapper.xml
@@ -22,8 +22,39 @@
<result column="wrk_sts" property="wrkSts" />
<result column="io_type" property="ioType" />
<result column="type" property="type" />
+ <result column="rgv_end_id" property="rgvEndId" />
</resultMap>
+
+ <sql id="batchSeq">
+ <if test="type != null">
+ and type = #{type}
+ </if>
+ <if test="ioType != null">
+ and io_type = #{ioType}
+ </if>
+ <if test="wrkType != null">
+ and wrk_type = #{wrkType}
+ </if>
+ <if test="steNo != null">
+ and ste_id = #{steNo}
+ </if>
+ <if test="jarNo != null">
+ and jar_id = #{jarNo}
+ </if>
+ <if test="rgvNo != null">
+ and rgv_id = #{rgvNo}
+ </if>
+ <!-- <choose>-->
+ <!-- <when test="type != null and type != ''">-->
+ <!-- and type = #{type}-->
+ <!-- </when>-->
+ <!-- <otherwise>-->
+ <!-- and (type IS NULL OR type = '')-->
+ <!-- </otherwise>-->
+ <!-- </choose>-->
+
+ </sql>
<select id="getWrkMastExecuteByWrkNo" resultMap="BaseResultMap">
select top 1 * from jar_wrk_mast_execute
@@ -37,14 +68,25 @@
and jar_id = #{jarId}
</select>
- <select id="sselectWrkMastExecuteByType" resultMap="BaseResultMap">
+ <select id="selectWrkMastExecuteByType" resultMap="BaseResultMap">
select * from jar_wrk_mast_execute
where 1=1
and type = #{type}
- and io_type = #{iotype}
and wrk_type = 0;
</select>
+ <select id="selectWrkMastExecuteByTypeAndIoTyperAndWrkType" resultMap="BaseResultMap">
+ select * from jar_wrk_mast_execute
+ where 1=1
+ <include refid="batchSeq"></include>
+ </select>
+
+ <select id="selectWrkMastExecuteByWrk" resultMap="BaseResultMap">
+ select * from jar_wrk_mast_execute
+ where 1=1
+ <include refid="batchSeq"></include>
+ </select>
+
<select id="getWrkMastExecuteByJarIdCount" resultType="Integer">
select count(1) from jar_wrk_mast_execute
where 1=1
--
Gitblit v1.9.1