From 451a5520586cad0b7b69505c3b15189328743f78 Mon Sep 17 00:00:00 2001
From: lsh <lsh>
Date: 星期日, 14 七月 2024 19:01:20 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java | 10 +
src/main/java/com/zy/asrs/domain/enums/WorkNoType.java | 8 +
src/main/java/com/zy/core/thread/JarThread.java | 2
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 341 ++++++++++++++++++++++++++++++++++++++++++++++--
src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java | 4
src/main/java/com/zy/asrs/service/WrkMastExecuteService.java | 4
src/main/java/com/zy/core/enums/SteTaskModeType.java | 3
src/main/java/com/zy/asrs/entity/BasJarMast.java | 18 ++
src/main/java/com/zy/core/MainProcess.java | 6
src/main/resources/mapper/WrkMastExecuteMapper.xml | 15 ++
src/main/java/com/zy/asrs/entity/WrkMastExecute.java | 1
11 files changed, 390 insertions(+), 22 deletions(-)
diff --git a/src/main/java/com/zy/asrs/domain/enums/WorkNoType.java b/src/main/java/com/zy/asrs/domain/enums/WorkNoType.java
index 4aa3911..abbd9e5 100644
--- a/src/main/java/com/zy/asrs/domain/enums/WorkNoType.java
+++ b/src/main/java/com/zy/asrs/domain/enums/WorkNoType.java
@@ -10,7 +10,11 @@
PAKIN(0),
PICK(1),
PAKOUT(2),
- OTHER(3),
+ OTHER1(3),
+ OTHER2(4),
+ OTHER3(5),
+ OTHER4(6),
+ CHARGE(7),
;
public Integer type;
@@ -39,6 +43,8 @@
return PICK.type;
case 110:
return PAKOUT.type;
+ case 7:
+ return CHARGE.type;
default:
break;
}
diff --git a/src/main/java/com/zy/asrs/entity/BasJarMast.java b/src/main/java/com/zy/asrs/entity/BasJarMast.java
index 47fa406..f81d3cb 100644
--- a/src/main/java/com/zy/asrs/entity/BasJarMast.java
+++ b/src/main/java/com/zy/asrs/entity/BasJarMast.java
@@ -195,6 +195,24 @@
this.burial = jar.getBurial();
}
+ public BasJarMast(BasJar jar) {
+ Date now = new Date();
+// this.jarEnterStaNo = jarEnterStaNo;
+ this.jarOutStaNo = jar.getStaNo();
+ this.jarId = jar.getJarNo();
+ this.jarRegin = jar.getRegion();
+ this.status = 0;
+ this.enterSteNo = jar.getEnterSteNo();
+ this.outSteId = jar.getOutSteNo();
+ this.enterRgvId = jar.getEnterRgvNo();;
+ this.outRgvId = jar.getOutRgvNo();;
+ this.ioTime = now;
+ this.modiTime = now;
+ this.appeTime = now;
+ this.jarLocDigit = jarLocDigit;
+ this.burial = jar.getBurial();
+ }
+
// BasJarMast basJarMast = new BasJarMast(
// null, // 宸ヤ綔鍙穂闈炵┖]
diff --git a/src/main/java/com/zy/asrs/entity/WrkMastExecute.java b/src/main/java/com/zy/asrs/entity/WrkMastExecute.java
index 3f57233..b71ecda 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMastExecute.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMastExecute.java
@@ -149,6 +149,7 @@
* 1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堢Щ鍔ㄤ腑銆�4锛氱Щ鍔ㄥ畬鎴愩��5锛氭洿鏂板畬鎴� //io_type = 7 B=>C 銆�8 C=>B
* 1锛歋te绌挎鐗堝彇鏀捐揣涓��2锛氭斁璐у畬鎴愮瓑寰呬笅涓�姝ャ��3锛氳緭閫佺嚎浠诲姟涓嬪彂瀹屾垚銆�4锛氭洿鏂板畬鎴� //io_type = 9 STE 鏈杈撻�佺嚎
* 1锛歊GV灏忚溅绉诲姩銆�2锛歊GV灏忚溅鍒颁綅銆�3锛歋te绌挎鐗堢Щ鍔ㄤ腑銆�4锛氱Щ鍔ㄥ畬鎴愩��5锛氭洿鏂板畬鎴� //io_type = 10銆�11
+ * 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/WrkMastExecuteMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
index 84ffe4d..4691ac7 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
@@ -12,6 +12,8 @@
@Repository
public interface WrkMastExecuteMapper extends BaseMapper<WrkMastExecute> {
+ WrkMastExecute getWrkMastExecuteByCharge(@Param("steNo") Integer steNo);
+
WrkMastExecute getWrkMastExecuteByWrkNo(@Param("wrkNo") Long wrkNo);
List<WrkMastExecute> getWrkMastExecuteByWrkNoList(@Param("wrkNo") Long wrkNo);
@@ -33,6 +35,8 @@
Integer selectMoveStart(@Param("jarRegin") Integer jarRegin);
+ Integer selectMoveStartCharge(@Param("jarRegin") Integer jarRegin);
+
WrkMastExecute selectStart(@Param("jarRegin") Integer jarRegin);
}
diff --git a/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java b/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
index ea675cd..167ad70 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastExecuteService.java
@@ -7,6 +7,8 @@
public interface WrkMastExecuteService extends IService<WrkMastExecute> {
+ WrkMastExecute getWrkMastExecuteByCharge(Integer steNo);
+
WrkMastExecute getWrkMastExecuteByWrkNo(Long wrkNo);
List<WrkMastExecute> getWrkMastExecuteByWrkNoList(Long wrkNo);
@@ -25,6 +27,8 @@
Integer selectMoveStart(Integer jarRegin);
+ Integer selectMoveStartCharge(Integer jarRegin);
+
WrkMastExecute selectStart(Integer jarRegin);
}
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 0c458be..bb8ab74 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -8,6 +8,7 @@
import com.core.common.DateUtils;
import com.core.common.R;
import com.core.exception.CoolException;
+import com.zy.asrs.domain.enums.WorkNoType;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.*;
import com.zy.asrs.service.*;
@@ -5295,7 +5296,7 @@
* 2锛欱闈� 鍑烘枡闈�
* 3锛氬喎鍗存ЫB闈� 涓婅緭閫佺嚎
*/
- public synchronized boolean jarWrkMastExecuteGenerateSteStatus(Integer steNo,Integer type,SteStatusType steStatusType) {
+ public synchronized boolean jarWrkMastExecuteGenerateSteStatus(Integer steNo,Integer type,SteStatusType steStatusType,boolean chargeSign) {
try{
//鍒ゆ柇灏忚溅鐘舵��
SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
@@ -5312,6 +5313,61 @@
}
if (steProtocol.getChargeStatus()!=0){
log.error(steNo + "鍙峰皬杞﹀湪鍏呯數锛岀瓑寰�....");
+ return false;
+ }
+ if (steProtocol.getCharge()<31.0F && chargeSign){
+ log.error(steNo + "鍙峰皬杞﹀綋鍓嶇數閲忚繃浣庯紝鍑嗗鍏呯數...褰撳墠鐢甸噺"+steProtocol.getCharge().toString());
+ return false;
+ }
+ if (!steProtocol.getStatusType().equals(steStatusType)) {
+ log.error(steNo + "鍙峰皬杞︾姸鎬佷笉鏄�"+JSON.toJSONString(steStatusType)+"锛岀瓑寰�....");
+ return false;
+ }
+ switch (type){
+ case 1:
+ if (!steProtocol.getLocaType().equals(SteLocaType.POINT20)) {
+ log.error(steNo + "鍙峰皬杞︿笉鍦ˋ闈㈠钩绉昏溅锛屾棤娉曟搷浣�");
+ return false;
+ }
+ break;
+ case 2:
+ if (!steProtocol.getLocaType().equals(SteLocaType.POINT23)) {
+ log.error(steNo + "鍙峰皬杞︿笉鍦˙闈㈠钩绉昏溅锛屾棤娉曟搷浣�");
+ return false;
+ }
+ break;
+ case 3:
+ if (!steProtocol.getLocaType().equals(SteLocaType.POINT26) && !steProtocol.getLocaType().equals(SteLocaType.POINT25)) {
+ log.error(steNo + "鍙峰皬杞︿笉鍦ㄦ按妲紹绔紝鏃犳硶鎿嶄綔");
+ return false;
+ }
+ break;
+ default: return false;
+ }
+ return true;
+ } catch (Exception e){
+ log.error("{}鍙峰皬杞︾姸鎬佸垽鏂姸鎬佸紓甯�,寮傚父鍘熷洜={}",steNo,e.getMessage());
+ }
+ return false;
+ }
+
+ public synchronized boolean jarWrkMastExecuteGenerateSteStatusCharge(Integer steNo,Integer type,SteStatusType steStatusType,boolean chargeSign) {
+ try{
+ //鍒ゆ柇灏忚溅鐘舵��
+ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
+ if (steThread == null) {
+ return false;
+ }
+ SteProtocol steProtocol = steThread.getSteProtocol();
+ if (steProtocol == null) {
+ return false;
+ }
+ if (steProtocol.getMode() != (short)1) {
+ log.error(steNo + "鍙峰皬杞︾绾匡紝鏃犳硶鎿嶄綔");
+ return false;
+ }
+ if (steProtocol.getCharge()<31.0F && chargeSign){
+ log.error(steNo + "鍙峰皬杞﹀綋鍓嶇數閲忚繃浣庯紝鍑嗗鍏呯數...褰撳墠鐢甸噺"+steProtocol.getCharge().toString());
return false;
}
if (!steProtocol.getStatusType().equals(steStatusType)) {
@@ -5387,7 +5443,7 @@
wrkMastExecute.setSteId(digit[0]);//绌挎鏉縄D
wrkMastExecute.setRgvId(basJar.getEnterRgvNo());//RGV ID enter
wrkMastExecute.setRgvEndId(basJar.getOutRgvNo());//RGV ID out
- wrkMastExecute.setIoType(digit[2]);//浠诲姟绫诲瀷 0: 鏈煡 1: 寮�杩涙枡闂� 2: 鍏宠繘鏂欓棬 3: 寮�鍑烘枡闂� 4: 鍏冲嚭鏂欓棬 5: 鍏ョ~鍖栫綈 6: 鍏ュ喎鍗存Ы 7: 绌挎杞﹁繘鍐峰嵈妲� 8: 绌挎杞︾寮�鍐峰嵈妲� 9: 鍑哄喎鍗存Ы 10锛欰=>B 11:B=>A
+ wrkMastExecute.setIoType(digit[2]);//浠诲姟绫诲瀷 0: 鏈煡 1: 寮�杩涙枡闂� 2: 鍏宠繘鏂欓棬 3: 寮�鍑烘枡闂� 4: 鍏冲嚭鏂欓棬 5: 鍏ョ~鍖栫綈 6: 鍏ュ喎鍗存Ы 7: 绌挎杞﹁繘鍐峰嵈妲� 8: 绌挎杞︾寮�鍐峰嵈妲� 9: 鍑哄喎鍗存Ы 10锛欰=>B 11:B=>A 100:灏忚溅鍏呯數浠诲姟
wrkMastExecute.setType(digit[3]);//璁惧 0: 鏈煡 1: 纭寲缃� 2: 鍐峰嵈妲� 3: 纭寲缃�==>鍐峰嵈妲�
return wrkMastExecuteService.insert(wrkMastExecute);
} catch (Exception e) {
@@ -5443,6 +5499,7 @@
* 7: 绌挎杞﹁繘鍐峰嵈妲� 8: 绌挎杞︾寮�鍐峰嵈妲�
* 9: 鍑哄喎鍗存Ы
* 10锛欰=>B 11:B=>A
+ * 100锛氬厖鐢典换鍔�
* */
log.error("JarWrkMastExecute浠诲姟鍒涘缓==>涓嬪彂===>琛�={}",5326);
switch (wrkMastExecute.getIoType()){
@@ -5482,6 +5539,11 @@
case 10:
case 11:
if (jarWrkMastExecuteActionExecute10(wrkMastExecute,sign)){
+ break;
+ }
+ continue;
+ case 100:
+ if (jarWrkMastExecuteActionExecute100(wrkMastExecute,sign)){
break;
}
continue;
@@ -5923,7 +5985,7 @@
&& jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
log.error("5:鍏ョ~鍖栫綈==>浠诲姟涓嬪彂===>琛�={}",5667);
//鍒ゆ柇灏忚溅鐘舵�� //鍏ョ~鍖栫綈灏忚溅鍙复鏃跺睆钄�
- if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){
+ if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE,true)){
return false;
}
if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
@@ -6048,7 +6110,7 @@
if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
//鍒ゆ柇灏忚溅鐘舵��
- if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){
+ if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE,true)){
return false;
}
//璋冭溅 == > 鍙栬揣
@@ -6157,7 +6219,7 @@
&& jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0){
log.error("6:鍏ュ喎鍗存Ы==>浠诲姟涓嬪彂===>琛�={}",6002);
//鍒ゆ柇灏忚溅鐘舵��
- if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+ if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE,true)){
return false;
}
@@ -6280,7 +6342,7 @@
if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
//鍒ゆ柇灏忚溅鐘舵��
- if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.WAITING2)){
+ if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.WAITING2,false)){
return false;
}
//璋冭溅 == > 鍙栬揣
@@ -6413,7 +6475,7 @@
if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocolOther.getJarNo())){
//鍒ゆ柇灏忚溅鐘舵��
if (wrkMastExecute.getIoType()==7){ //7 B=>C
- if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+ if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE,true)){
//璋冭溅 == > 绉诲姩
if (jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT26.id,SteTaskModeType.STE_MOVE_14,false,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
@@ -6425,7 +6487,7 @@
log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
}
- } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE)){
+ } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE,false)){
wrkMastExecute.setWrkType(1);
wrkMastExecute.setWrkSts(4);
if (!wrkMastExecuteService.updateById(wrkMastExecute)){
@@ -6434,7 +6496,7 @@
}
}
} else { //8 C=>B
- if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE)){
+ if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE,false)){
//璋冭溅 == > 绉诲姩
if (!jarSteTake(wrkMastExecute,SteLocaType.POINT26.id,SteLocaType.POINT23.id,SteTaskModeType.STE_MOVE_14,false,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){
log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
@@ -6446,7 +6508,7 @@
log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
}
- } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+ } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE,false)){
wrkMastExecute.setWrkType(1);
wrkMastExecute.setWrkSts(4);
if (!wrkMastExecuteService.updateById(wrkMastExecute)){
@@ -6576,7 +6638,7 @@
// && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0
// ){
//鍒ゆ柇灏忚溅鐘舵��
- if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE)){
+ if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),3,SteStatusType.IDLE,true)){
log.error("9锛氬嚭鍐峰嵈妲�==>浠诲姟涓嬪彂===>琛�={}",6410);
//璋冭溅 == > 鍙栬揣
@@ -6634,7 +6696,7 @@
}
//鍒ゆ柇STE灏忚溅鐘舵��
- if (jarWrkMastExecuteGenerateSteStatus(wrkMastExecute.getSteId(),3,SteStatusType.IDLE)){
+ if (jarWrkMastExecuteGenerateSteStatus(wrkMastExecute.getSteId(),3,SteStatusType.IDLE,false)){
log.error("9锛氬嚭鍐峰嵈妲絋wo==>浠诲姟涓嬪彂===>琛�={}",6468);
// 涓嬪彂绔欑偣淇℃伅
staProtocol.setWorkNo(wrkMastExecute.getWrkNo().intValue());
@@ -6737,7 +6799,7 @@
if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocol.getJarNo())){
//鍒ゆ柇灏忚溅鐘舵��
if (wrkMastExecute.getIoType()==10){//10锛欰=>B
- if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){
+ if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE,true)){
//璋冭溅 == > 绉诲姩
if (!jarSteTake(wrkMastExecute,SteLocaType.POINT20.id,SteLocaType.POINT23.id,SteTaskModeType.STE_MOVE_14,false,wrkMastExecute.getJarId())){
log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
@@ -6749,7 +6811,7 @@
log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
}
- } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+ } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE,false)){
wrkMastExecute.setWrkType(1);
wrkMastExecute.setWrkSts(4);
if (!wrkMastExecuteService.updateById(wrkMastExecute)){
@@ -6758,7 +6820,7 @@
}
}
} else {//11:B=>A
- if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){
+ if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE,false)){
//璋冭溅 == > 绉诲姩
if (!jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT20.id,SteTaskModeType.STE_MOVE_14,false,wrkMastExecute.getJarId())){
log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
@@ -6770,7 +6832,7 @@
log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宩ar鍙�={},浠诲姟鏁版嵁={},纭寲缃愭暟鎹�={},sign={}",
wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign);
}
- } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){
+ } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE,false)){
wrkMastExecute.setWrkType(1);
wrkMastExecute.setWrkSts(4);
if (!wrkMastExecuteService.updateById(wrkMastExecute)){
@@ -6802,6 +6864,59 @@
}
} catch (Exception e){
log.error("jarWrkMastExecuteActionExecute1浠诲姟鎵ц涓嬪彂寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
+ }
+ return false;
+ }
+
+ /**
+ * JarWrkMastExecute浠诲姟==>涓嬪彂 //瀹屾垚
+ * 100锛氬厖鐢典换鍔�
+ * 浠诲姟涓嬪彂
+ */
+ public synchronized boolean jarWrkMastExecuteActionExecute100(WrkMastExecute wrkMastExecute,Integer sign) {
+ try{
+ // 鑾峰彇纭寲缃愪俊鎭�
+ BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+ return false;
+ }
+
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+ StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
+ if (staProtocolRGV == null) {
+ return false;
+ } else {
+ staProtocolRGV = staProtocolRGV.clone();
+ }
+ if (staProtocolRGV == null) {
+ return false;
+ }
+
+ if (staProtocolRGV.rgvBoolean(1) || staProtocolRGV.rgvBoolean(2)){
+ //闂ㄤ綔涓� 鏃�
+ //鑷姩銆佺┖闂层��
+ log.error("100:鍏呯數浠诲姟==>浠诲姟涓嬪彂===>琛�={}",6899);
+ //鍒ゆ柇灏忚溅鐘舵��
+ if (!jarWrkMastExecuteGenerateSteStatusCharge(basJar.getEnterSteNo(),1,SteStatusType.IDLE,false)){
+ return false;
+ }
+ //璋冭溅 == > 鍙栬揣
+ if (!jarSteTake(wrkMastExecute,SteLocaType.POINT20.id,SteLocaType.POINT20.id,SteTaskModeType.START_CHARGE,false,wrkMastExecute.getJarId())){
+ log.error("绌挎鏉縎te鍏呯數鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute));
+ }
+ wrkMastExecute.setWrkType(1);
+ wrkMastExecute.setWrkSts(99);
+ if (!wrkMastExecuteService.updateById(wrkMastExecute)){
+ log.error("绌挎鏉縎te鍏呯數鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={}",
+ wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute));
+ }
+ return true;
+ }
+ return false;
+ } catch (Exception e){
+ log.error("绌挎鏉縎te鍏呯數鍛戒护涓嬪彂澶辫触,寮傚父==銆媤rkMastExecute={},寮傚父鍘熷洜={}",wrkMastExecute,e.getMessage());
}
return false;
}
@@ -7308,7 +7423,7 @@
}
try{
- if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),1,SteStatusType.IDLE)){
+ if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),1,SteStatusType.IDLE,false)){
List<WrkMastExecute> wrkMastExecutes = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 5, null);
if (wrkMastExecutes.isEmpty()){
List<WrkMastExecute> wrkMastExecutesB = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 6, null);
@@ -7329,11 +7444,28 @@
continue;
}
}
- } else if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),2,SteStatusType.IDLE)){
+ } else if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),2,SteStatusType.IDLE,false)){
List<WrkMastExecute> wrkMastExecutes = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 6, null);
if (wrkMastExecutes.isEmpty()){
List<WrkMastExecute> wrkMastExecutesA = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 5, null);
List<WrkMastExecute> wrkMastExecutesC = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 9, null);
+ List<WrkMastExecute> wrkMastExecutes100 = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 100, null);
+ if (!wrkMastExecutes100.isEmpty()){
+ WrkMastExecute wrkMastExecute = wrkMastExecutes100.get(0);
+ BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+ return false;
+ }
+
+ BasJarMast jarMastByWrkNo = new BasJarMast(basJar);
+ jarMastByWrkNo.setWrkNo(Integer.toUnsignedLong(wrkMastExecute.getWrkNo().intValue()));//宸ヤ綔鍙�
+ //B==>A
+ if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByWrkNo,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),11,1})){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByWrkNo));
+ }
+ continue;
+ }
if (!wrkMastExecutesA.isEmpty()){
WrkMastExecute wrkMastExecute = wrkMastExecutesA.get(0);
BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
@@ -7364,11 +7496,28 @@
continue;
}
}
- } else if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),3,SteStatusType.IDLE)){
+ } else if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),3,SteStatusType.IDLE,false)){
List<WrkMastExecute> wrkMastExecutes = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 9, null);
if (wrkMastExecutes.isEmpty()){
List<WrkMastExecute> wrkMastExecutesB = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 6, null);
List<WrkMastExecute> wrkMastExecutesA = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 5, null);
+ List<WrkMastExecute> wrkMastExecutes100 = wrkMastExecuteService.selectWrkMastExecuteByTypeAndIoTyperAndWrkType(null, 100, null);
+ if (!wrkMastExecutes100.isEmpty()){
+ WrkMastExecute wrkMastExecute = wrkMastExecutes100.get(0);
+ BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
+ if (Cools.isEmpty(basJar)){
+ log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",wrkMastExecute.getJarId());
+ return false;
+ }
+
+ BasJarMast jarMastByWrkNo = new BasJarMast(basJar);
+ jarMastByWrkNo.setWrkNo(Integer.toUnsignedLong(wrkMastExecute.getWrkNo().intValue()));//宸ヤ綔鍙�
+ //C==>B
+ if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByWrkNo,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),8,1})){
+ log.error("JarWrkMastExecute浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByWrkNo));
+ }
+ continue;
+ }
if (!wrkMastExecutesB.isEmpty() || !wrkMastExecutesA.isEmpty()){
WrkMastExecute wrkMastExecute = !wrkMastExecutesB.isEmpty() ? wrkMastExecutesB.get(0) : wrkMastExecutesA.get(0);
BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
@@ -7398,5 +7547,159 @@
}
return false;
}
+ /**
+ * ste鍏呯數浠诲姟鍒涘缓 //瀹屾垚
+ */
+ public synchronized boolean jarChargeGenerate() {
+ try{
+ //80%鐢甸噺 鏃犱换鍔� 鍏呯數 >50鐢甸噺 鏈変换鍔� 鏂數
+ //30%鐢甸噺 涓嶆帴鍙栦换鍔� 鏃犺繘琛屼腑浠诲姟 鍏呯數 >50鐢甸噺 鏈変换鍔� 鏂數
+ for (SteSlave steSlave : slaveProperties.getSte()){
+ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steSlave.getId());
+ if (steThread == null) {
+ continue;
+ }
+ SteProtocol steProtocol = steThread.getSteProtocol();
+ if (steProtocol == null || steProtocol.getChargeStatus()!=0) {
+ continue;
+ }
+ WrkMastExecute wrkMastExecuteByCharge = wrkMastExecuteService.getWrkMastExecuteByCharge(steSlave.getId());
+ if (!Cools.isEmpty(wrkMastExecuteByCharge)){
+ continue;
+ }
+
+ if (steProtocol.getCharge()<30.0F){
+ if (wrkMastExecuteService.selectMoveStartCharge(steSlave.getId())!=0){
+ continue;
+ }
+ } else if (steProtocol.getCharge()<80.0F){
+ if (wrkMastExecuteService.selectNoStart(steSlave.getId())!=0){
+ continue;
+ }
+ if (wrkMastExecuteService.selectMoveStart(steSlave.getId())!=0){
+ continue;
+ }
+ }
+
+ try{
+ boolean jarIDLESign = false;
+ if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),1,SteStatusType.IDLE,false)){
+ //鐢熸垚鍏呯數浠诲姟
+ //A
+ BasJar basJar = basJarMapper.selectById(steSlave.getId()==1? 1:3);
+ int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(7));//鍏呯數宸ヤ綔鍙�
+ BasJarMast basJarMast = new BasJarMast(basJar);
+ basJarMast.setWrkNo(Integer.toUnsignedLong(workNo));//宸ヤ綔鍙�
+ if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),100,1})){
+ log.error("JarWrkMastExecute鍏呯數浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
+ }
+ continue;
+ } else if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),2,SteStatusType.IDLE,false)){
+ jarIDLESign =true;
+ } else if (jarWrkMastExecuteGenerateSteStatus(steSlave.getId(),3,SteStatusType.IDLE,false)){
+ jarIDLESign =true;
+ }
+ if (jarIDLESign){
+ //鐢熸垚鍏呯數浠诲姟
+ //C==>A
+ BasJar basJar = null;
+ List<BasJar> basJarList = basJarMapper.selectList(new EntityWrapper<BasJar>().eq("region", steSlave.getId()));
+ for (BasJar basJarNow : basJarList){
+ // 鑾峰彇纭寲缃愪俊鎭�0.0
+ JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, basJarNow.getJarNo());
+ JarProtocol jarProtocol = jarThread.getJarProtocol();
+ if (jarProtocol == null) {
+ continue;
+ }
+ if (jarProtocol.modeType != JarModeType.AUTO){
+ continue;
+ }
+ if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+ continue;
+ }
+ if (jarProtocol.getJarTemperature()>50){
+ continue;
+ }
+ if (jarProtocol.leftDoorOpen != 0 || jarProtocol.rightDoorOpen != 0){
+ continue;
+ }
+ basJar = basJarNow;
+ break;
+ }
+ if (basJar == null){
+ continue;
+ }
+ int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(7));//鍏呯數宸ヤ綔鍙�
+ BasJarMast basJarMast = new BasJarMast(basJar);
+ basJarMast.setWrkNo(Integer.toUnsignedLong(workNo));//宸ヤ綔鍙�
+ if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),100,1})){
+ log.error("JarWrkMastExecute鍏呯數浠诲姟鍒涘缓===>鎵ц寮傚父===銆嬪紓甯告暟鎹細BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
+ }
+ }
+ }catch (Exception e){
+ log.error("鍏呯數浠诲姟鍒涘缓寮傚父,steProtocol={},寮傚父淇℃伅={}",JSON.toJSONString(steProtocol),e.getMessage());
+ }
+ }
+ } catch (Exception e){
+ log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,寮傚父淇℃伅={}",e.getMessage());
+ }
+ return false;
+ }
+ /**
+ * Ste鍏呯數浠诲姟瀹屾垚 //瀹屾垚
+ */
+ public synchronized boolean jarChargeComplete() {
+ try{
+ //80%鐢甸噺 鏃犱换鍔� 鍏呯數 >50鐢甸噺 鏈変换鍔� 鏂數
+ //30%鐢甸噺 涓嶆帴鍙栦换鍔� 鏃犺繘琛屼腑浠诲姟 鍏呯數 >50鐢甸噺 鏈変换鍔� 鏂數
+ for (SteSlave steSlave : slaveProperties.getSte()){
+ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steSlave.getId());
+ if (steThread == null) {
+ continue;
+ }
+ SteProtocol steProtocol = steThread.getSteProtocol();
+ if (steProtocol == null || steProtocol.getChargeStatus()!=1) {
+ continue;
+ }
+ WrkMastExecute wrkMastExecuteByCharge = wrkMastExecuteService.getWrkMastExecuteByCharge(steSlave.getId());
+ if (!Cools.isEmpty(wrkMastExecuteByCharge)){
+ continue;
+ }
+
+ if (steProtocol.getCharge()>50.0F){
+ if (wrkMastExecuteService.selectNoStart(steSlave.getId())==0){
+ if (wrkMastExecuteService.selectMoveStart(steSlave.getId())==0){
+ continue;
+ }
+ }
+ } else if (steProtocol.getCharge()>95.0F || steProtocol.getFullCharge()){
+ } else {
+ continue;
+ }
+
+ try{
+ if (jarWrkMastExecuteGenerateSteStatusCharge(steSlave.getId(),1,SteStatusType.MOVING,true)){
+ //瀹屾垚鍏呯數浠诲姟
+ //璋冭溅 == > 鏂紑鍏呯數
+ if (!jarSteTake(wrkMastExecuteByCharge,SteLocaType.POINT20.id,SteLocaType.POINT20.id,SteTaskModeType.CLOSE_CHARGE,false,wrkMastExecuteByCharge.getJarId())){
+ log.error("绌挎鏉縎te鍛戒护涓嬪彂澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={}",
+ wrkMastExecuteByCharge.getSteId(), JSON.toJSONString(wrkMastExecuteByCharge));
+ }
+ wrkMastExecuteByCharge.setWrkType(2);
+ wrkMastExecuteByCharge.setWrkSts(100);
+ if (!wrkMastExecuteService.updateById(wrkMastExecuteByCharge)){
+ log.error("鍏呯數浠诲姟瀹屾垚鍛戒护涓嬪彂澶辫触===>鏇存柊wrkMastExecute澶辫触锛宻te鍙�={},浠诲姟鏁版嵁={}",
+ wrkMastExecuteByCharge.getSteId(), JSON.toJSONString(wrkMastExecuteByCharge));
+ }
+ }
+ }catch (Exception e){
+ log.error("鍏呯數浠诲姟瀹屾垚寮傚父,steProtocol={},寮傚父淇℃伅={}",JSON.toJSONString(steProtocol),e.getMessage());
+ }
+ }
+ } catch (Exception e){
+ log.error("纭寲鍖哄煙鍒嗘浠诲姟瀹屾垚寮傚父,寮傚父淇℃伅={}",e.getMessage());
+ }
+ return false;
+ }
}
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 811bbd5..352cd63 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java
@@ -12,6 +12,11 @@
public class WrkMastExecuteServiceImpl extends ServiceImpl<WrkMastExecuteMapper, WrkMastExecute> implements WrkMastExecuteService {
@Override
+ public WrkMastExecute getWrkMastExecuteByCharge(Integer steNo) {
+ return this.baseMapper.getWrkMastExecuteByCharge(steNo);
+ }
+
+ @Override
public WrkMastExecute getWrkMastExecuteByWrkNo(Long wrkNo) {
return this.baseMapper.getWrkMastExecuteByWrkNo(wrkNo);
}
@@ -57,6 +62,11 @@
}
@Override
+ public Integer selectMoveStartCharge(Integer jarRegin) {
+ return this.baseMapper.selectMoveStartCharge(jarRegin);
+ }
+
+ @Override
public WrkMastExecute selectStart(Integer jarRegin) {
return this.baseMapper.selectStart(jarRegin);
}
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 23c4895..84155f8 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -102,6 +102,8 @@
mainService.ledReset();
/************************************JAR璋冨害************************************/
+ //Jar鍏呯數浠诲姟瀹屾垚
+ mainService.jarChargeComplete();
//JarWrkMastExecute浠诲姟瀹屾垚
mainService.jarWrkMastExecuteGenerateComplete(k);
//JarWrkMastExecute浠诲姟鍒涘缓 //纭寲缃�
@@ -112,6 +114,10 @@
mainService.jarMastGenerate();
//Jar浠诲姟瀹屾垚
mainService.jarMastGenerateComplete();
+ //Jar鍏呯數浠诲姟鍒涘缓
+ mainService.jarChargeGenerate();
+
+
diff --git a/src/main/java/com/zy/core/enums/SteTaskModeType.java b/src/main/java/com/zy/core/enums/SteTaskModeType.java
index 6d8bf48..db4eace 100644
--- a/src/main/java/com/zy/core/enums/SteTaskModeType.java
+++ b/src/main/java/com/zy/core/enums/SteTaskModeType.java
@@ -29,7 +29,8 @@
STE_WFQH_12(12,"寰�杩斿彇璐�"),
STE_WFFH_13(13,"寰�杩旀斁璐�"),
STE_MOVE_14(14,"绉诲姩"),
-// CLOSE_CHARGE(17, "鏂紑鍏呯數"), // 鏂紑鍏呯數
+ START_CHARGE(16, "寮�濮嬪厖鐢�"), // 寮�濮嬪厖鐢�
+ CLOSE_CHARGE(17, "鏂紑鍏呯數"), // 鏂紑鍏呯數
;
public Integer id;
diff --git a/src/main/java/com/zy/core/thread/JarThread.java b/src/main/java/com/zy/core/thread/JarThread.java
index 729dc64..faf68c1 100644
--- a/src/main/java/com/zy/core/thread/JarThread.java
+++ b/src/main/java/com/zy/core/thread/JarThread.java
@@ -169,7 +169,7 @@
jarProtocol.setMode((int)siemensS7Net.getByteTransform().TransInt16(result.Content, 12));//妯″紡
jarProtocol.setJarErr((int)siemensS7Net.getByteTransform().TransInt16(result.Content, 14));//寮傚父鐮�
jarProtocol.setStatus(siemensS7Net.getByteTransform().TransInt16(result.Content, 16));//鐘舵��
- jarProtocol.setJarTemperature((int)siemensS7Net.getByteTransform().TransInt16(result.Content, 18));//娓╁害
+ jarProtocol.setJarTemperature((int)siemensS7Net.getByteTransform().TransInt16(result.Content, 26));//娓╁害
jarProtocol.setAutoing(siemensS7Net.getByteTransform().TransInt16(result.Content, 12) == 2);//鑷姩
diff --git a/src/main/resources/mapper/WrkMastExecuteMapper.xml b/src/main/resources/mapper/WrkMastExecuteMapper.xml
index a194a43..a2c7434 100644
--- a/src/main/resources/mapper/WrkMastExecuteMapper.xml
+++ b/src/main/resources/mapper/WrkMastExecuteMapper.xml
@@ -56,6 +56,14 @@
</sql>
+ <select id="getWrkMastExecuteByCharge" resultMap="BaseResultMap">
+ select top 1 * from jar_wrk_mast_execute
+ where 1=1
+ and ste_id = #{steNo}
+ and io_type = 100
+ and wrk_type != 2
+ </select>
+
<select id="getWrkMastExecuteByWrkNo" resultMap="BaseResultMap">
select top 1 * from jar_wrk_mast_execute
where 1=1
@@ -121,6 +129,13 @@
and io_type in (7,8,10,11)
</select>
+ <select id="selectMoveStartCharge" resultType="Integer">
+ select count(1) from jar_wrk_mast_execute
+ where 1=1
+ and jar_regin = #{jarRegin}
+ and io_type in (8,11)
+ </select>
+
<select id="selectStart" resultMap="BaseResultMap">
select top 1 * from jar_wrk_mast_execute
where 1=1
--
Gitblit v1.9.1