From fe3046d5707dfcfced679f63de8541541e581ba4 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期四, 09 一月 2025 16:44:46 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 409 +++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 347 insertions(+), 62 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 36228bf..17f1f20 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -105,6 +105,9 @@
@Value("${wms.url}")
private String wmsUrl;
+ @Value("${wms.rgvOpen}")
+ private boolean rgvOpen;
+
/**
* 缁勬墭
* 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
@@ -427,9 +430,10 @@
// // 鍏ュ嚭搴撴ā寮忓垽鏂�
// if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && staProtocol.getWorkNo()!=0) {
// WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
- WrkMast wrkMast = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"7");
+// WrkMast wrkMast = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"7");
+ WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo());
if (wrkMast == null) {
// 鏃犳嫞鏂欐暟鎹�
continue;
@@ -482,7 +486,7 @@
staProtocol.setStaNo(dto.getStaNo());
devpThread.setPakMk(staProtocol.getSiteId(), false);
// ledThread.errorReset();
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(5, staProtocol));
if (!result) {
log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
}
@@ -1291,7 +1295,7 @@
continue;
}
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
- && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
+ && staDetl.getCanining() != null && staDetl.getCanining().equals("Y") && staDetl.getWrkNo().equals(wrkMast.getWrkNo())) {
flag = true;
}
if (!flag) {
@@ -2318,6 +2322,7 @@
param.setIoType(10);
param.setSourceStaNo(122);
param.setLocType1((short)1);
+ param.setRgvNo(rgvProtocol.getRgvNo());
String response = new HttpHandler.Builder()
.setUri(wmsUrl)
.setPath("/rpc/pakin/empty/loc/v1")
@@ -2363,7 +2368,8 @@
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
// 鍛戒护闆嗗悎
List<LedCommand> commands = new ArrayList<>();
- // 宸ヤ綔妗i泦鍚�
+ String orderNo = null;
+ // 宸ヤ綔妗i泦鍚�
List<WrkMast> wrkMasts = new ArrayList<>();
for (Integer staNo : led.getStaArr()) {
// 鑾峰彇鍙夎溅绔欑偣
@@ -2423,7 +2429,13 @@
// ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
- wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl)));
+ if (Cools.isEmpty(wrkDetls)){
+ continue;
+ }
+ Integer count1 = wrkDetlService.count1();
+ Integer count2 = wrkDetlService.count2(wrkDetls.get(0).getOrderNo());
+ Integer count3 = wrkDetlService.count3();
+ wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl,count1,count2,count3)));
}
commands.add(ledCommand);
}
@@ -3318,7 +3330,7 @@
wrkMast.setSheetNo("5");
wrkMastMapper.updateById(wrkMast);
- boolean result4 = MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol147));
+ boolean result4 = MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol147));
}
}
@@ -3342,6 +3354,14 @@
continue;
}
if (basDevp135.getReportSign()!=0){
+ continue;
+ }
+ BasDevp basDevp121 = basDevpService.selectById(121);
+ if (basDevp121.getReportSign()!=0){
+ continue;
+ }
+ BasDevp basDevp120 = basDevpService.selectById(120);
+ if (basDevp120.getReportSign()!=0){
continue;
}
WrkMast wrkMast131 = wrkMastMapper.selectWrkMastUnstackingOne202Two(131);
@@ -3368,6 +3388,26 @@
}
if (!staProtocol.isLoading()){
+ continue;
+ }
+ StaProtocol staProtocol120 = devpThread.getStation().get(120);
+ if (staProtocol120 == null) {
+ continue;
+ } else {
+ staProtocol120 = staProtocol120.clone();
+ }
+
+ if (staProtocol120.isLoading()){
+ continue;
+ }
+ StaProtocol staProtocol121 = devpThread.getStation().get(121);
+ if (staProtocol121 == null) {
+ continue;
+ } else {
+ staProtocol121 = staProtocol121.clone();
+ }
+
+ if (staProtocol121.isLoading()){
continue;
}
// if (!staProtocol.getWorkNo().equals(wrkMast131.getWrkNo())){
@@ -3451,8 +3491,13 @@
WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
if (!Cools.isEmpty(wrkMast) && wrkMastSta.getWrkType()!=5){
Thread.sleep(200);
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
continue;
}
@@ -3588,20 +3633,20 @@
switch (sign){
//鎵ц灏忚溅璐х墿鎼繍浠诲姟
case 1:
- signWork = rgvRunWrkMastFullSta();
+ signWork = rgvRunWrkMastFullSta(rgvSlave);
break;
//鎵ц灏忚溅绌烘澘鎼繍浠诲姟
case 2://鏀�//鎷嗙洏
- signWork = rgvRunWrkMastEmptyStaPut();
+ signWork = rgvRunWrkMastEmptyStaPut(rgvSlave);
break;
case 3://婊℃斁
- signWork = rgvRunWrkMastEmptyStaPutFull();
+ signWork = rgvRunWrkMastEmptyStaPutFull(rgvSlave);
break;
case 4://鍙栧彔鐩�
- signWork = rgvRunWrkMastEmptyStaTake();
+ signWork = rgvRunWrkMastEmptyStaTake(rgvSlave);
break;
case 5:////婊″彇
- signWork = rgvRunWrkMastEmptyStaTakeFull();
+ signWork = rgvRunWrkMastEmptyStaTakeFull(rgvSlave);
break;
case 6:////鎻愬崌
// signWork = qwe();
@@ -3612,19 +3657,19 @@
for (int signCount = 1;!signWork && signCount<7;signCount++){
switch (signCount){
case 1://鎵ц灏忚溅璐х墿鎼繍浠诲姟
- signWork = rgvRunWrkMastFullSta();
+ signWork = rgvRunWrkMastFullSta(rgvSlave);
break;
case 2://鏀�//鎷嗙洏
- signWork = rgvRunWrkMastEmptyStaPut();
+ signWork = rgvRunWrkMastEmptyStaPut(rgvSlave);
break;
case 3://婊℃斁
- signWork = rgvRunWrkMastEmptyStaPutFull();
+ signWork = rgvRunWrkMastEmptyStaPutFull(rgvSlave);
break;
case 4://鍙栧彔鐩�
- signWork = rgvRunWrkMastEmptyStaTake();
+ signWork = rgvRunWrkMastEmptyStaTake(rgvSlave);
break;
case 5:////婊″彇
- signWork = rgvRunWrkMastEmptyStaTakeFull();
+ signWork = rgvRunWrkMastEmptyStaTakeFull(rgvSlave);
break;
case 6:////鎻愬崌
// signWork = rgvRunWrkMastEmptyStaPut();
@@ -3633,6 +3678,8 @@
break;
}
}
+ }else {
+ continue;
}
if (!rgvIoExecuteSign){
rgvIoExecuteSign = signWork;
@@ -3651,18 +3698,18 @@
/**
* 鎵ц灏忚溅鎼繍浠诲姟
*/
- public synchronized boolean rgvRunWrkMastFullSta() {
+ public synchronized boolean rgvRunWrkMastFullSta(RgvSlave rgvSlave) {
try{
- for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
if (rgvProtocol == null) {
- continue;
+ return false;
}
BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
if (basRgv == null) {
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
- continue;
+ return false;
}
// 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
@@ -3676,7 +3723,7 @@
BasRgvMap basRgvMap = basRgvMapMapper.selectById(basRgv.getRgvNo());
if (basRgvMap == null) {
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
- continue;
+ return false;
}
List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
@@ -3686,9 +3733,56 @@
continue;
}
BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaEnd());
- if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y")){
+ if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y") || basDevp.getWrkNo()!=0){
continue;
}
+ if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
+ if (basDevp.getLoadingSuper().equals("Y")){
+ continue;
+ }
+ }
+ if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
+ if (!basDevp.getEmptyMk().equals("Y")){
+ continue;
+ }
+ }
+ Date date = new Date();
+
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
+ if (staProtocol == null) {
+ log.info(date+"鍙栨斁浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta);
+ continue;
+ }
+ if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo() != 0){
+ continue;
+ }
+ if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
+ if (staProtocol.isLoadingSuper()){
+ continue;
+ }
+ }
+ if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
+ if (!staProtocol.isEmptyMk()){
+ continue;
+ }
+ }
+ BasDevp basDevpS = basDevpService.selectById(wrkMastSta.getStaStart());
+ if (!basDevpS.getAutoing().equals("Y") || !basDevpS.getLoading().equals("Y") || basDevpS.getWrkNo()!=wrkMastSta.getWrkNo().intValue()){
+ continue;
+ }
+ StaProtocol staProtocols = devpThread.getStation().get(basDevpS.getDevNo());
+ if (staProtocols == null) {
+ log.info(date+"鍙栨斁浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta);
+ continue;
+ }
+ if (!staProtocols.isAutoing() || !staProtocols.isLoading() || staProtocols.getWorkNo() != wrkMastSta.getWrkNo().intValue()){
+ continue;
+ }
+
+
+ log.info(date+"鍙栨斁浠诲姟涓嬪彂锛氬皬杞﹀伐浣滄。锛�"+wrkMastSta);
+ log.info(date+"鍙栨斁浠诲姟涓嬪彂锛氱洰鏍囩珯鐘舵�侊細"+basDevp);
boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta);
if (sign){
boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd());
@@ -3709,7 +3803,7 @@
break;
}
}
- }
+// }
}catch (Exception e){
log.error("3875琛屾墽琛屽皬杞︽惉杩愪换鍔′笅鍙戝け璐�");
log.error("3875琛�"+e);
@@ -3719,18 +3813,18 @@
/**
* 鎵ц灏忚溅鎼繍浠诲姟//鎷嗙洏
*/
- public synchronized boolean rgvRunWrkMastEmptyStaPut() {//鎷嗙洏
+ public synchronized boolean rgvRunWrkMastEmptyStaPut(RgvSlave rgvSlave) {//鎷嗙洏
try{
- for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
if (rgvProtocol == null) {
- continue;
+ return false;
}
BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
if (basRgv == null) {
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
- continue;
+ return false;
}
// 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤//鎷嗙洏
@@ -3744,7 +3838,7 @@
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
if (basRgvMap == null) {
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
- continue;
+ return false;
}
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿
@@ -3756,9 +3850,43 @@
boolean sign = false;
if ( wrkMastSta.getStaEnd()!=0){//鏀�
BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaEnd());
- if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y")){
+ if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y") || basDevp.getWrkNo()!=0){
continue;
}
+ if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
+ if (basDevp.getLoadingSuper().equals("Y")){
+ continue;
+ }
+ }
+ if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
+ if (!basDevp.getEmptyMk().equals("Y")){
+ continue;
+ }
+ }
+ Date date = new Date();
+
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
+ if (staProtocol == null) {
+ log.info(date+"鎷嗙洏浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta);
+ continue;
+ }
+ if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo() != 0){
+ continue;
+ }
+ if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
+ if (staProtocol.isLoadingSuper()){
+ continue;
+ }
+ }
+ if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
+ if (!staProtocol.isEmptyMk()){
+ continue;
+ }
+ }
+
+ log.info(date+"鎷嗙洏浠诲姟涓嬪彂锛氬皬杞﹀伐浣滄。锛�"+wrkMastSta);
+ log.info(date+"鎷嗙洏浠诲姟涓嬪彂锛氱洰鏍囩珯鐘舵�侊細"+basDevp);
sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鎷嗙洏
}else {
continue;
@@ -3782,7 +3910,7 @@
break;
}
}
- }
+// }
}catch (Exception e){
log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
log.error("3933琛�"+e);
@@ -3793,18 +3921,18 @@
/**
* 鎵ц灏忚溅鎼繍浠诲姟
*/
- public synchronized boolean rgvRunWrkMastEmptyStaPutFull() {//婊℃斁
+ public synchronized boolean rgvRunWrkMastEmptyStaPutFull(RgvSlave rgvSlave) {//婊℃斁
try{
- for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
if (rgvProtocol == null) {
- continue;
+ return false;
}
BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
if (basRgv == null) {
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
- continue;
+ return false;
}
// 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
@@ -3818,7 +3946,7 @@
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
if (basRgvMap == null) {
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
- continue;
+ return false;
}
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿
@@ -3830,9 +3958,43 @@
boolean sign = false;
if ( wrkMastSta.getStaEnd()!=0){//婊℃斁
BasDevp basDevp = basDevpService.selectById(wrkMastSta.getStaEnd());
- if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y")){
+ if (!basDevp.getAutoing().equals("Y") || basDevp.getLoading().equals("Y") || basDevp.getWrkNo()!=0){
continue;
}
+ if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
+ if (basDevp.getLoadingSuper().equals("Y")){
+ continue;
+ }
+ }
+ if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
+ if (!basDevp.getEmptyMk().equals("Y")){
+ continue;
+ }
+ }
+ Date date = new Date();
+
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
+ if (staProtocol == null) {
+ log.info(date+"婊℃斁浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta);
+ continue;
+ }
+ if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo() != 0){
+ continue;
+ }
+ if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){
+ if (staProtocol.isLoadingSuper()){
+ continue;
+ }
+ }
+ if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
+ if (!staProtocol.isEmptyMk()){
+ continue;
+ }
+ }
+
+ log.info(date+"婊℃斁浠诲姟涓嬪彂锛氬皬杞﹀伐浣滄。锛�"+wrkMastSta);
+ log.info(date+"婊℃斁浠诲姟涓嬪彂锛氱洰鏍囩珯鐘舵�侊細"+basDevp);
sign = rgvPutEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
}else {
continue;
@@ -3856,7 +4018,7 @@
break;
}
}
- }
+// }
}catch (Exception e){
log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
log.error("3933琛�"+e);
@@ -3864,18 +4026,18 @@
return false;
}
- public synchronized boolean rgvRunWrkMastEmptyStaTake() {//鍙犵洏
+ public synchronized boolean rgvRunWrkMastEmptyStaTake(RgvSlave rgvSlave) {//鍙犵洏
try{
- for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
if (rgvProtocol == null) {
- continue;
+ return false;
}
BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
if (basRgv == null) {
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
- continue;
+ return false;
}
// 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
@@ -3889,7 +4051,7 @@
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
if (basRgvMap == null) {
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
- continue;
+ return false;
}
List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
@@ -3904,6 +4066,30 @@
if (!basDevp.getAutoing().equals("Y") || !basDevp.getLoading().equals("Y")){
continue;
}
+ if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
+ if (!basDevp.getEmptyMk().equals("Y")){
+ continue;
+ }
+ }
+ Date date = new Date();
+
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
+ if (staProtocol == null) {
+ log.info(date+"鍙犵洏浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta);
+ continue;
+ }
+ if (!staProtocol.isAutoing() || !staProtocol.isLoading()){
+ continue;
+ }
+ if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){
+ if (!staProtocol.isEmptyMk()){
+ continue;
+ }
+ }
+
+ log.info(date+"鍙犵洏浠诲姟涓嬪彂锛氬皬杞﹀伐浣滄。锛�"+wrkMastSta);
+ log.info(date+"鍙犵洏浠诲姟涓嬪彂锛氱洰鏍囩珯鐘舵�侊細"+basDevp);
sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鍙犵洏
}else {
continue;
@@ -3927,7 +4113,7 @@
break;
}
}
- }
+// }
}catch (Exception e){
log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触");
log.error("3989琛�"+e);
@@ -3935,18 +4121,18 @@
return false;
}
- public synchronized boolean rgvRunWrkMastEmptyStaTakeFull() {//婊″彇
+ public synchronized boolean rgvRunWrkMastEmptyStaTakeFull(RgvSlave rgvSlave) {//婊″彇
try{
- for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
if (rgvProtocol == null) {
- continue;
+ return false;
}
BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
if (basRgv == null) {
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
- continue;
+ return false;
}
// 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
@@ -3960,11 +4146,18 @@
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
if (basRgvMap == null) {
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
- continue;
+ return false;
}
List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
+ WrkMast wrkMast = wrkMastMapper.selectBy122ManQu(122,110,15L);
+ if (!Cools.isEmpty(wrkMast)){
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(wrkMast.getWrkNo().longValue());
+ if (!Cools.isEmpty(wrkMastSta) && wrkMastSta.getType()==2 && wrkMastSta.getWrkType()==5 ){
+ wrkMastStaList.add(wrkMastSta);
+ }
+ }
for (WrkMastSta wrkMastSta : wrkMastStaList){
if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=5){// 2:绌烘澘 || 宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 5锛氭弧鍙� 6锛氭弧鏀�
continue;
@@ -3975,6 +4168,20 @@
if (!basDevp.getAutoing().equals("Y") || !basDevp.getLoading().equals("Y")){
continue;
}
+ Date date = new Date();
+
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
+ if (staProtocol == null) {
+ log.info(date+"婊″彇浠诲姟涓嬪彂锛氭湭鏌ヨ鍒扮珯鐐逛俊鎭細"+wrkMastSta);
+ continue;
+ }
+ if (!staProtocol.isAutoing() || staProtocol.isLoading()){
+ continue;
+ }
+
+ log.info(date+"婊″彇浠诲姟涓嬪彂锛氬皬杞﹀伐浣滄。锛�"+wrkMastSta);
+ log.info(date+"婊″彇浠诲姟涓嬪彂锛氱洰鏍囩珯鐘舵�侊細"+basDevp);
sign = rgvTakeEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
}else {
continue;
@@ -3998,7 +4205,7 @@
break;
}
}
- }
+// }
}catch (Exception e){
log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触");
log.error("3989琛�"+e);
@@ -4011,10 +4218,17 @@
* */
public synchronized void rgvRunWrkMastEmptyStaAvoidance() {
try{
- Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔�
- if (integer==0){
+// Integer integer = wrkMastStaMapper.selectAllWrkStsCount(null,0);//鏌ヨ鐘舵�佷负0鐨勪换鍔�
+// if (integer==0){
+// return;
+// }
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectAllWrkStsCountWrkMastSta(null, 0);
+ if (Cools.isEmpty(wrkMastSta)){
return;
}
+ boolean signRgv = true;
+ boolean signRgv1 = true;
+ boolean signRgv2 = true;
for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
@@ -4036,19 +4250,85 @@
&& rgvProtocol.getStatusType1() == RgvStatusType.IDLE
&& rgvProtocol.getStatusType2() == RgvStatusType.IDLE
) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){
+ if (rgvProtocol.getRgvNo()!=1){
+ if (!rgvProtocol.getRgvPosI().equals(120) && !rgvProtocol.getRgvPosI().equals(110)){
+ continue;
+ }
+ rgvAvoidanceXY(rgvProtocol.getRgvNo());
+// return;
continue;
}
- if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){
- continue;
- } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){
+ if (!rgvProtocol.getRgvPosI().equals(110) && !rgvProtocol.getRgvPosI().equals(108) && !rgvProtocol.getRgvPosI().equals(119)){
continue;
}
+ Integer count108Y = wrkMastStaMapper.selectAllWrkCount108Y();
+ if (count108Y!=0){
+ continue;
+ }
+// Integer count108 = wrkMastStaMapper.selectAllWrkCount108();
+// if (count108!=0){
+// continue;
+// }
rgvAvoidanceXY(rgvProtocol.getRgvNo());
- rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
+ continue;
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMap.getRgvNo(), basRgvMap.getEndRoute()); //鑾峰彇鍚堝苟骞叉秹椤�
+// List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(),fallMerge);
+// List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route ,route);
+// if (!wrkMastStaList.isEmpty()){
+// log.info("灏忚溅瀛樺湪鍙墽琛屼换鍔★紝璺宠繃閬胯锛侊紒4214");
+// return;
+// }
+// if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){
+//// if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),RouteUtils.RouteIndexFarMas(rgvProtocol.getRgvNo(),rgvRunSta[rgvProtocol.getRgvNo()-1]),rgvProtocol.getRgvNo())){
+//// if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),rgvRunSta[rgvProtocol.getRgvNo()-1],rgvProtocol.getRgvNo())){
+// if (rgvProtocol.getRgvNo()==1){
+// signRgv1 = false;
+// }else {
+// signRgv2 = false;
+// }
+// }
+// if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){
+// signRgv1 = false;
+// continue;
+// } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){
+// signRgv2 = false;
+// continue;
+// }
+ }else {
+ signRgv = false;
+ break;
}
}
+// if (signRgv && (signRgv1 || signRgv2)){
+// for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+// if (rgvProtocol == null) {
+// continue;
+// }
+//
+// // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅涓�鏃犵墿//rgv鍙敤
+// if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+// && rgvProtocol.getModeType() == RgvModeType.AUTO
+// && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+// && rgvProtocol.getTaskNo1()==0
+// && rgvProtocol.getTaskNo2()==0
+// && rgvProtocol.getStatusType1() == RgvStatusType.IDLE
+// && rgvProtocol.getStatusType2() == RgvStatusType.IDLE
+// ) {
+// if (rgvProtocol.getRgvNo()==1 && (rgvProtocol.getRgvPosI().equals(101) || rgvProtocol.getRgvPosI().equals(102) )){
+// continue;
+// } else if (rgvProtocol.getRgvNo()==2 && (rgvProtocol.getRgvPosI().equals(116) || rgvProtocol.getRgvPosI().equals(117) ) ){
+// continue;
+// }
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// rgvAvoidanceXY(rgvProtocol.getRgvNo());
+// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
+//
+// }
+// }
+// }
}catch (Exception e){
log.error("4109琛屾墽琛屽皬杞﹀垵濮嬪寲浠诲姟涓嬪彂澶辫触");
log.error("4109琛�"+e);
@@ -4104,7 +4384,7 @@
rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙�
rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐�
//basRgvMap.getLockStartRoute().shortValue()
- rgvCommand.setSourceStaNo1( (short)101);
+ rgvCommand.setSourceStaNo1( (short)104);
rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
//step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
@@ -4126,7 +4406,7 @@
rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
rgvCommand.setTaskNo2((short)32222); // 宸ヤ綅2宸ヤ綔鍙�
rgvCommand.setTaskMode2(RgvTaskModeType.X_MOVE); // 宸ヤ綅2浠诲姟妯″紡: 鍥炲師鐐�
- rgvCommand.setSourceStaNo2((short)117);
+ rgvCommand.setSourceStaNo2((short)114);
rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭
if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
//step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
@@ -4343,11 +4623,15 @@
* 灏忚溅鍦板浘鏇存柊 鏇存柊閿�
* */
public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd){
+ if (rgvOpen){
+ return true;
+ }
// List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute());
//鏇存柊褰撳墠灏忚溅閿�
try{
Integer farCurrentStaNo = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getNowRoute(), staStart, staEnd, basRgvMapCurrent.getLockStartRoute());//鑾峰彇鏈�杩滅珯鐐�
+// Integer farCurrentStaNo = RouteUtils.RouteIndexFarMas(staEnd, staStart, staEnd, basRgvMapCurrent.getLockStartRoute());//鑾峰彇鏈�杩滅珯鐐�
Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getRgvNo(), farCurrentStaNo); //鑾峰彇鍚堝苟骞叉秹椤�
basRgvMapCurrent.setLockEndRoute(fallMerge);
basRgvMapMapper.updateById(basRgvMapCurrent);
@@ -4357,7 +4641,8 @@
BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther);
List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute());
Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�
- basRgvMapOther.setEndRoute(lockEndRoute);
+ Integer lockEndRouteL = RouteUtils.RouteIndexFarMasL(rgvNoOther, lockEndRoute);//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�
+ basRgvMapOther.setEndRoute(lockEndRouteL);
basRgvMapMapper.updateById(basRgvMapOther);
return true;
}catch (Exception e){
--
Gitblit v1.9.1