From 1b9f41e12e3ee8ac8bbc388eab7585300bdab75a Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期二, 27 五月 2025 16:57:35 +0800
Subject: [PATCH] #ZH
---
src/main/java/com/zy/asrs/controller/SiteController.java | 2
src/main/java/com/zy/core/model/protocol/RgvErrProtocol.java | 16 ++
src/main/java/com/zy/asrs/controller/RgvController.java | 18 ++
src/main/java/com/zy/asrs/controller/OpenController.java | 15 +
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 78 +++++++++
src/main/java/com/zy/core/cache/RgvErrCache.java | 102 ++++++++++++
src/main/java/com/zy/core/cache/CrnErrCache.java | 101 ++++++++++++
src/main/java/com/zy/asrs/controller/CrnController.java | 1
src/main/java/com/zy/core/DevpThread.java | 1
pom.xml | 12
src/main/java/com/zy/core/model/protocol/CrnProtocol.java | 1
src/main/webapp/views/deviceOperate/rgvOperate.html | 4
src/main/java/com/zy/core/model/protocol/StaProtocol.java | 1
src/main/java/com/zy/core/thread/RgvThread.java | 62 +++++++
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 9 +
src/main/webapp/views/deviceOperate/devpOperate.html | 8 +
src/main/java/com/zy/core/model/protocol/CrnErrProtocol.java | 16 ++
src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java | 2
src/main/java/com/zy/core/model/protocol/RgvProtocol.java | 1
src/main/webapp/views/deviceOperate/crnOperate.html | 4
src/main/java/com/zy/asrs/domain/vo/CrnListVo.java | 1
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 11 +
22 files changed, 445 insertions(+), 21 deletions(-)
diff --git a/pom.xml b/pom.xml
index bf09a9c..2b6fe46 100644
--- a/pom.xml
+++ b/pom.xml
@@ -61,12 +61,12 @@
<!-- </dependency>-->
<!-- 鏄惧紡鎺掗櫎slf4j-simple -->
-<!-- <dependency>-->
-<!-- <groupId>org.slf4j</groupId>-->
-<!-- <artifactId>slf4j-simple</artifactId>-->
-<!-- <version>1.7.30</version>-->
-<!-- <scope>provided</scope> <!– 鎴栫洿鎺ュ垹闄よ渚濊禆 –>-->
-<!-- </dependency>-->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.30</version>
+ <scope>provided</scope> <!-- 鎴栫洿鎺ュ垹闄よ渚濊禆 -->
+ </dependency>
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver8</artifactId>
diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index cd1ae7f..4a7dc85 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -303,6 +303,7 @@
}
}
vo.setLaneNo(crnProtocol.getLaneNo()); //
+ vo.setErrorCrn(crnProtocol.getErrCrn()); //
vo.setXspeed(crnProtocol.getXSpeed()); // 璧拌閫熷害锛坢/min)
vo.setYspeed(crnProtocol.getYSpeed()); // 鍗囬檷閫熷害锛坢/min)
vo.setZspeed(crnProtocol.getZSpeed()); // 鍙夌墮閫熷害锛坢/min)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index ee44e22..33e41cb 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -551,13 +551,14 @@
basRgvWmsParam.setStatusType(rgvStatus.getStatusType().desc);
basRgvWmsParam.setSteNo(rgvSlave.getId());
basRgvWmsParam.setSteErr(rgvStatus.getAlarm().longValue());
- try{
- BasRgvErr basRgvErr = basRgvErrService.selectById((long)rgvStatus.getAlarm$());
-
- basRgvWmsParam.setSteErrM(basRgvErr.getErrName());
- } catch (Exception e){
- basRgvWmsParam.setSteErrM("鏈煡寮傚父");
- }
+ basRgvWmsParam.setSteErrM(rgvStatus.getAlarmM());
+// try{
+// BasRgvErr basRgvErr = basRgvErrService.selectById((long)rgvStatus.getAlarm$());
+//
+// basRgvWmsParam.setSteErrM(basRgvErr.getErrName());
+// } catch (Exception e){
+// basRgvWmsParam.setSteErrM("鏈煡寮傚父");
+// }
if (rgvStatus.getMode()!=1){
basRgvWmsParam.setSteErr(999L);
basRgvWmsParam.setSteErrM("闈炶嚜鍔紒锛侊紒");
diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index b76d1f2..112568f 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -2,9 +2,11 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
+import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.entity.BasDevpPosition;
import com.zy.asrs.service.BasDevpPositionService;
+import com.zy.core.cache.RgvErrCache;
import com.zy.core.cache.RgvStatusCache;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.cache.TaskProtocolCache;
@@ -46,6 +48,7 @@
map2.put("rgvPos", rgvProtocol.getRgvPos());
map2.put("rgvPosDestination", rgvProtocol.getRgvPosDestination());
map2.put("loaded", rgvProtocol.getLoaded().equals((short)-1)? "鏈煡":rgvProtocol.getLoaded()==1? "鏈夌墿":"鏃犵墿");
+ map2.put("errorRgv", RgvErrCache.getErrorDev(rgvProtocol.getRgvNo()));
res.add(map2);
}
return R.ok().add(res);
@@ -113,6 +116,9 @@
}
if (rgvPosDestination == null || rgvPosDestination == 0){
BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut));
+ if (Cools.isEmpty(basDevpPosition)){
+ return R.error("鐩爣绔欑偣涓嶅瓨鍦�");
+ }
rgvPosDestination = basDevpPosition.getPlcPosition();
}
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
@@ -168,6 +174,9 @@
}
BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut));
+ if (Cools.isEmpty(basDevpPosition)){
+ return R.error("鐩爣绔欑偣涓嶅瓨鍦�");
+ }
//鎵ц
issuedPut.setTaskNo(Long.valueOf(taskNo));
issuedPut.setTaskStatus(3);
@@ -210,6 +219,9 @@
}
BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoTake));
+ if (Cools.isEmpty(basDevpPosition)){
+ return R.error("鍙栬揣绔欑偣涓嶅瓨鍦�");
+ }
//鎵ц
issuedTake.setTaskNo(Long.valueOf(taskNo));
issuedTake.setTaskStatus(2);
@@ -257,6 +269,9 @@
}
BasDevpPosition basDevpPositionTake = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoTake));
+ if (Cools.isEmpty(basDevpPositionTake)){
+ return R.error("鍙栬揣绔欑偣涓嶅瓨鍦�");
+ }
//鎵ц
issuedTake.setTaskNo(Long.valueOf(taskNo));
issuedTake.setTaskStatus(2);
@@ -268,6 +283,9 @@
issuedTake.setDirection(basDevpPositionTake.getRgvSign()==1);
BasDevpPosition basDevpPositionPut = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut));
+ if (Cools.isEmpty(basDevpPositionPut)){
+ return R.error("鐩爣绔欑偣涓嶅瓨鍦�");
+ }
//鎵ц
issuedPut.setTaskNo(Long.valueOf(taskNo));
issuedPut.setTaskStatus(3);
diff --git a/src/main/java/com/zy/asrs/controller/SiteController.java b/src/main/java/com/zy/asrs/controller/SiteController.java
index cdb066b..076c199 100644
--- a/src/main/java/com/zy/asrs/controller/SiteController.java
+++ b/src/main/java/com/zy/asrs/controller/SiteController.java
@@ -113,6 +113,8 @@
vo.setStaNo(staProtocol.getStaNo()); // 鐩爣绔�
// vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "浣�" : "楂�"); //楂樹綆搴撲綅
vo.setLocType1(devp.getDevNo()==102 ? "楂�" : "浣�");
+ vo.setWeight(staProtocol.getGrossWt().toString());
+ vo.setErrorDev(staProtocol.getErrorDev());
}
return R.ok().add(list);
}
diff --git a/src/main/java/com/zy/asrs/domain/vo/CrnListVo.java b/src/main/java/com/zy/asrs/domain/vo/CrnListVo.java
index bff0249..fe895e9 100644
--- a/src/main/java/com/zy/asrs/domain/vo/CrnListVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/CrnListVo.java
@@ -112,6 +112,7 @@
// 鍙嚭
private String outEnable;
+ private String errorCrn;
public void setXspeed(Float xspeed) {
this.xspeed = Utils.scale(xspeed);
diff --git a/src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java b/src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java
index 4fa183e..df7b847 100644
--- a/src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java
@@ -37,5 +37,7 @@
//楂樹綆搴撲綅
private String locType1 = "-";
+ private String weight = "-";
+ private String errorDev = "-";
private String car = "-";
}
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 7ab88ac..585322f 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -128,7 +128,7 @@
// 灏哄妫�娴嬪紓甯�
boolean back = false;
- String errMsg = "";
+ String errMsg = "-";
if (staProtocol.getGrossWt()>=600){
errMsg = "瓒呴噸";
back = true;
@@ -177,6 +177,7 @@
staProtocol.setWorkNo(9999);
staProtocol.setStaNo(inSta.getBackSta());
devpThread.setPakMk(staProtocol.getSiteId(), false);
+ devpThread.setErrorDev(staProtocol.getSiteId(), errMsg);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo));
if (taskWrk != null) {
@@ -217,6 +218,7 @@
staProtocol.setWorkNo(taskWrk1.getWrkNo());
staProtocol.setStaNo(staProtocol.getSiteId());
devpThread.setPakMkWalk(staProtocol.getSiteId(), false);
+ devpThread.setErrorDev(staProtocol.getSiteId(), errMsg);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
}
}
@@ -252,6 +254,7 @@
staProtocol.setStaNo(inSta.getBackSta());
devpThread.setPakMk(staProtocol.getSiteId(), false);
devpThread.setPakMkWalk(staProtocol.getSiteId(), false);
+ devpThread.setErrorDev(staProtocol.getSiteId(), e.getMessage());
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
continue;
}
@@ -270,6 +273,8 @@
if (!Cools.isEmpty(jsonObject.getInteger("code")) && jsonObject.getInteger("code").equals(200)) {
try {
devpThread.setPakMk(staProtocol.getSiteId(), false);
+ devpThread.setErrorDev(staProtocol.getSiteId(), "涓婃姤鎴愬姛绛夊緟浠诲姟");
+
} catch (Exception e) {
// 閫�鍥�
log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + errMsg);
@@ -278,9 +283,18 @@
staProtocol.setWorkNo(9999);
staProtocol.setStaNo(inSta.getBackSta());
devpThread.setPakMk(staProtocol.getSiteId(), false);
+ devpThread.setErrorDev(staProtocol.getSiteId(), "涓婃姤鎴愬姛閿佸畾澶辫触");
+
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
}
+ } else {
+ // 閫�鍥�
+ staProtocol.setWorkNo(9999);
+ staProtocol.setStaNo(inSta.getBackSta());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ devpThread.setErrorDev(staProtocol.getSiteId(), jsonObject.getString("msg"));
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
}
} else {
// 閫�鍥�
@@ -289,6 +303,7 @@
staProtocol.setWorkNo(9999);
staProtocol.setStaNo(inSta.getBackSta());
devpThread.setPakMk(staProtocol.getSiteId(), false);
+ devpThread.setErrorDev(staProtocol.getSiteId(), "鎵爜鍏ュ簱鎵爜澶辫触锛侊紒锛佹壂鐮佸�硷細"+barcode);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo));
if (taskWrk != null) {
@@ -558,6 +573,7 @@
staProtocol.setWorkNo(taskWrk1.getWrkNo());
staProtocol.setStaNo(BarcodeUtils.getStaNo(staProtocol.getSiteId()));
devpThread.setPakMkWalk(staProtocol.getSiteId(), false);
+ devpThread.setErrorDev(staProtocol.getSiteId(), "-");
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
Date now = new Date();
@@ -721,8 +737,19 @@
crnProtocol.setLastIo("O");
}
}
+ } else {
+ if (crnProtocol.getModeType() == CrnModeType.AUTO && crnProtocol.getStatusType() == CrnStatusType.IDLE){
+ if (crnProtocol.getTaskNo() != 0){
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "宸ヤ綔鍙蜂笉涓�0");
+ }
+ if (crnProtocol.getLoaded() != 0){
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "杞借揣鍙版湁鐗�");
+ }
+ if (crnProtocol.getForkPos() != 0){
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "璐у弶浣嶇疆涓嶅湪涓綅");
+ }
+ }
}
-
}
}
@@ -765,12 +792,20 @@
}
// 鍫嗗灈鏈烘帶鍒惰繃婊�
- if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE)) {
+ devpThread.setErrorDev(staProtocol.getSiteId(), "鍫嗗灈鏈洪潪绌洪棽");
+ continue;
+ }
+ if (crnProtocol.getTaskNo() != 0) {
+ devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄伐浣滃彿涓嶄负0");
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "宸ヤ綔鍙蜂笉涓�0");
continue;
}
// 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
if (taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo()) != null) {
+ devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄瓨鍦ㄥ悐杞︿换鍔�");
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄瓨鍦ㄦ墽琛屼腑鍚婅溅浠诲姟");
continue;
}
@@ -832,9 +867,15 @@
// crnCommand.setCommand((short) 1);
if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) {
log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
+ devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "杩愯鍛戒护涓嬪彂澶辫触");
+
throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
} else {
try {
+ devpThread.setErrorDev(staProtocol.getSiteId(), "-");
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "-");
+
taskWrkService.updateById(taskWrk);
} catch (Exception e) {
log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
@@ -923,12 +964,21 @@
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
// 鍫嗗灈鏈烘帶鍒惰繃婊�
- if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
- break;
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE)) {
+ devpThread.setErrorDev(staProtocol.getSiteId(), "鍫嗗灈鏈洪潪绌洪棽");
+ continue;
+ }
+ if (crnProtocol.getTaskNo() != 0) {
+ devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄伐浣滃彿涓嶄负0");
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "宸ヤ綔鍙蜂笉涓�0");
+
+ continue;
}
// 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
if (taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo()) != null) {
+ devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄瓨鍦ㄥ悐杞︿换鍔�");
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄瓨鍦ㄦ墽琛屼腑鍚婅溅浠诲姟");
break;
}
@@ -947,6 +997,8 @@
command.setCommand((short) 1);
if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command))) {
log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屽贩閬�={}锛屼换鍔℃暟鎹�={}", slave.getId(), taskWrk.getCrnNo(), JSON.toJSON(command));
+ devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "杩愯鍛戒护涓嬪彂澶辫触");
throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
} else {
try {
@@ -956,6 +1008,9 @@
taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);
taskWrk.setModiTime(now);
taskWrk.setExecuteTime(now);
+ devpThread.setErrorDev(staProtocol.getSiteId(), "-");
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "-");
+
if (taskWrkMapper.updateById(taskWrk) == 0) {
log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
}
@@ -994,6 +1049,19 @@
// throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
}
}
+ } else {
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "-");
+ if (staProtocol.isAutoing()){
+ if (staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")){
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鑳藉嚭锛氭湭鎵撳紑");
+ }
+ if (staProtocol.getWorkNo() == 0){
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "宸ヤ綔鍙蜂笉涓�0");
+ }
+ if (staProtocol.isOutEnable()){
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "娌℃湁鍙嚭");
+ }
+ }
}
}
}
diff --git a/src/main/java/com/zy/core/DevpThread.java b/src/main/java/com/zy/core/DevpThread.java
index ecdfafc..5e9e167 100644
--- a/src/main/java/com/zy/core/DevpThread.java
+++ b/src/main/java/com/zy/core/DevpThread.java
@@ -11,5 +11,6 @@
void setPakMk(Integer siteId, boolean pakMk);
void setPakMkWalk(Integer siteId, boolean pakMkWalk);
void setGrossWt(Integer siteId, Double grossWt);
+ void setErrorDev(Integer siteId, String msgErr);
}
diff --git a/src/main/java/com/zy/core/cache/CrnErrCache.java b/src/main/java/com/zy/core/cache/CrnErrCache.java
new file mode 100644
index 0000000..f1af02f
--- /dev/null
+++ b/src/main/java/com/zy/core/cache/CrnErrCache.java
@@ -0,0 +1,101 @@
+package com.zy.core.cache;
+
+import com.zy.core.model.protocol.CrnErrProtocol;
+import com.zy.core.model.protocol.RgvErrProtocol;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * Created by IX on 2025/02/21
+ */
+public class CrnErrCache {
+ // 鏈湴缂撳瓨锛岄敭涓� currentPosition锛屽�间负 DeviceStatus
+ private static final ConcurrentHashMap<Integer, CrnErrProtocol> cache = new ConcurrentHashMap<>();
+
+ /**
+ * 鏇存柊璁惧鐘舵��
+ */
+ public static void updateCrnStatus(CrnErrProtocol status) {
+ try {
+ cache.put(status.getCrnNo(), status);
+ } finally {
+ }
+ }
+
+
+ /**
+ * 鏇存柊璁惧鐘舵��
+ */
+ public static void updateCrnErr(Integer crnNo,String error) {
+ try {
+ CrnErrProtocol crnErrProtocol = cache.get(crnNo);
+ if (crnErrProtocol == null){
+ crnErrProtocol = new CrnErrProtocol();
+ crnErrProtocol.setCrnNo(crnNo);
+ }
+ if (!crnErrProtocol.getError().equals(error)){
+ crnErrProtocol.setError(error);
+ cache.put(crnErrProtocol.getCrnNo(), crnErrProtocol);
+ }
+ } finally {
+ }
+ }
+
+
+ /**
+ * 鏇存柊璁惧鐘舵��
+ */
+ public static void updateCrnErr(Integer crnNo) {
+ try {
+ CrnErrProtocol crnErrProtocol = cache.get(crnNo);
+ if (crnErrProtocol == null){
+ crnErrProtocol = new CrnErrProtocol();
+ crnErrProtocol.setCrnNo(crnNo);
+ }
+ if (!crnErrProtocol.getError().equals("-")){
+ crnErrProtocol.setError("-");
+ cache.put(crnErrProtocol.getCrnNo(), crnErrProtocol);
+ }
+ } finally {
+ }
+ }
+
+
+
+
+ /**
+ * 鏇存柊璁惧鐘舵��
+ */
+ public static String getErrorCrn(Integer crnNo) {
+ try {
+ CrnErrProtocol crnErrProtocol = cache.get(crnNo);
+ if (crnErrProtocol == null){
+ crnErrProtocol = new CrnErrProtocol();
+ crnErrProtocol.setCrnNo(crnNo);
+ }
+ return crnErrProtocol.getError();
+ } finally {
+ }
+ }
+
+ /**
+ * 鑾峰彇璁惧鐘舵��
+ */
+ public static CrnErrProtocol getCrnStatus(Integer crnNo) {
+ try {
+ return cache.get(crnNo);
+ } finally {
+ }
+ }
+
+ /**
+ * 鑾峰彇鎵�鏈夎澶囩姸鎬�
+ */
+ public static ConcurrentHashMap<Integer, CrnErrProtocol> getAllCrnStatus() {
+ try {
+ return new ConcurrentHashMap<>(cache); // 杩斿洖鍓湰
+ } finally {
+ }
+ }
+
+}
diff --git a/src/main/java/com/zy/core/cache/RgvErrCache.java b/src/main/java/com/zy/core/cache/RgvErrCache.java
new file mode 100644
index 0000000..c8ce8f9
--- /dev/null
+++ b/src/main/java/com/zy/core/cache/RgvErrCache.java
@@ -0,0 +1,102 @@
+package com.zy.core.cache;
+
+import com.core.common.Cools;
+import com.zy.core.model.protocol.RgvErrProtocol;
+import com.zy.core.model.protocol.RgvRunProtocol;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * Created by IX on 2025/02/21
+ */
+public class RgvErrCache {
+ // 鏈湴缂撳瓨锛岄敭涓� currentPosition锛屽�间负 DeviceStatus
+ private static final ConcurrentHashMap<Integer, RgvErrProtocol> cache = new ConcurrentHashMap<>();
+
+ /**
+ * 鏇存柊璁惧鐘舵��
+ */
+ public static void updateRgvStatus(RgvErrProtocol status) {
+ try {
+ cache.put(status.getRgvNo(), status);
+ } finally {
+ }
+ }
+
+
+ /**
+ * 鏇存柊璁惧鐘舵��
+ */
+ public static void updateRgvErr(Integer rgvNo,String error) {
+ try {
+ RgvErrProtocol rgvErrProtocol = cache.get(rgvNo);
+ if (rgvErrProtocol == null){
+ rgvErrProtocol = new RgvErrProtocol();
+ rgvErrProtocol.setRgvNo(rgvNo);
+ }
+ if (!rgvErrProtocol.getError().equals(error)){
+ rgvErrProtocol.setError(error);
+ cache.put(rgvErrProtocol.getRgvNo(), rgvErrProtocol);
+ }
+ } finally {
+ }
+ }
+
+
+ /**
+ * 鏇存柊璁惧鐘舵��
+ */
+ public static void updateRgvErr(Integer rgvNo) {
+ try {
+ RgvErrProtocol rgvErrProtocol = cache.get(rgvNo);
+ if (rgvErrProtocol == null){
+ rgvErrProtocol = new RgvErrProtocol();
+ rgvErrProtocol.setRgvNo(rgvNo);
+ }
+ if (!rgvErrProtocol.getError().equals("-")){
+ rgvErrProtocol.setError("-");
+ cache.put(rgvErrProtocol.getRgvNo(), rgvErrProtocol);
+ }
+ } finally {
+ }
+ }
+
+
+
+
+ /**
+ * 鏇存柊璁惧鐘舵��
+ */
+ public static String getErrorDev(Integer rgvNo) {
+ try {
+ RgvErrProtocol rgvErrProtocol = cache.get(rgvNo);
+ if (rgvErrProtocol == null){
+ rgvErrProtocol = new RgvErrProtocol();
+ rgvErrProtocol.setRgvNo(rgvNo);
+ }
+ return rgvErrProtocol.getError();
+ } finally {
+ }
+ }
+
+ /**
+ * 鑾峰彇璁惧鐘舵��
+ */
+ public static RgvErrProtocol getRgvStatus(Integer rgvNo) {
+ try {
+ return cache.get(rgvNo);
+ } finally {
+ }
+ }
+
+ /**
+ * 鑾峰彇鎵�鏈夎澶囩姸鎬�
+ */
+ public static ConcurrentHashMap<Integer, RgvErrProtocol> getAllRgvStatus() {
+ try {
+ return new ConcurrentHashMap<>(cache); // 杩斿洖鍓湰
+ } finally {
+ }
+ }
+
+}
diff --git a/src/main/java/com/zy/core/model/protocol/CrnErrProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnErrProtocol.java
new file mode 100644
index 0000000..0b9b845
--- /dev/null
+++ b/src/main/java/com/zy/core/model/protocol/CrnErrProtocol.java
@@ -0,0 +1,16 @@
+package com.zy.core.model.protocol;
+
+import lombok.Data;
+
+/**
+ * Created by IX on 2025/02/21
+ */
+@Data
+public class CrnErrProtocol {
+
+ private Integer crnNo;
+
+ public String error = "-";
+
+ public CrnErrProtocol(){}
+}
diff --git a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
index 36cad3c..1def4c8 100644
--- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -197,6 +197,7 @@
* 鍫嗗灈鏈虹疮璁″崌闄嶆椂闀縣
*/
public Float yDuration;
+ public String errCrn;
public void setMode(Short mode) {
this.mode = mode;
diff --git a/src/main/java/com/zy/core/model/protocol/RgvErrProtocol.java b/src/main/java/com/zy/core/model/protocol/RgvErrProtocol.java
new file mode 100644
index 0000000..b72d9c0
--- /dev/null
+++ b/src/main/java/com/zy/core/model/protocol/RgvErrProtocol.java
@@ -0,0 +1,16 @@
+package com.zy.core.model.protocol;
+
+import lombok.Data;
+
+/**
+ * Created by IX on 2025/02/21
+ */
+@Data
+public class RgvErrProtocol {
+
+ private Integer rgvNo;
+
+ public String error = "-";
+
+ public RgvErrProtocol(){}
+}
diff --git a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
index 15c7135..e69ba54 100644
--- a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
@@ -116,6 +116,7 @@
// 鍏夌數寮傚父
private boolean err6;
+ private String errorRgv;
public void setMode(Short mode) {
this.mode = mode;
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 9dee92a..252d523 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -86,6 +86,7 @@
//鎸囦护ID
private Integer commandId;
private Double grossWt = 0D;
+ private String errorDev = "-";
public BasDevp toSqlModel(){
BasDevp basDevp = new BasDevp();
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 879779c..8cf35c2 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -53,6 +53,7 @@
private Long trackBenchmark = 1L;
// # 閬胯璺濈
private Long avoidDistance = 5000L;
+ private String errorRgv = "-";
/**
* 宸ヤ綅1澶嶄綅淇″彿
@@ -290,6 +291,7 @@
while (true) {
RgvRunProtocol rgvRun = RgvRunCache.getRgvRun();
if (!rgvRun.getRgvNo().equals(slave.getId())){
+
continue;
}
try {
@@ -307,6 +309,7 @@
rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
rgvRun.setRgvNo(slave.getOtherId());
RgvRunCache.updateRgvStatus(rgvRun);
+ RgvErrCache.updateRgvErr(slave.getId(),errorRgv);
continue;
}
@@ -327,6 +330,7 @@
rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
rgvRun.setRgvNo(slave.getOtherId());
RgvRunCache.updateRgvStatus(rgvRun);
+ RgvErrCache.updateRgvErr(slave.getId(),"灏忚溅鎺㈢墿鐗╃姸鎬佸紓甯�");
continue;
}
if (rgvTaskProtocol.getAvoid() != 0) {
@@ -337,6 +341,7 @@
issued.setTaskStatus(1);
issued.setDirection(true);
write(issued);
+ RgvErrCache.updateRgvErr(slave.getId());
rgvTaskProtocol.setAvoid(0);
// try{Thread.sleep(50L);} catch (Exception e){}
@@ -358,21 +363,25 @@
if (rgvOtherStatusEnable()) {
//鍙︿竴鍙拌溅鏄惁鍏佽姝ゅ彴杞︽墽琛�
if (!otherRgvAvoid(taskProtocol.getTargetPosition())) {
+ RgvErrCache.updateRgvErr(slave.getId(),errorRgv);
break;
}
}
if (taskProtocol.getTargetPosition()<=rgvProtocol.getRgvPos()+50
&& taskProtocol.getTargetPosition()>=rgvProtocol.getRgvPos()-50){
taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection());
+ RgvErrCache.updateRgvErr(slave.getId());
break;
} else {
TaskProtocol issued = new TaskProtocol(taskProtocol,true);
write(issued);
+ RgvErrCache.updateRgvErr(slave.getId());
taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection());
break;
}
}
}
+ RgvErrCache.updateRgvErr(slave.getId());
} else {
for (TaskProtocol taskProtocol : allTakeTaskProtocol) {
if (taskProtocol.getIsRunning() == 1) {//鍑嗗涓嬪彂
@@ -380,6 +389,7 @@
if (rgvOtherStatusEnable()) {
//鍙︿竴鍙拌溅鏄惁鍏佽姝ゅ彴杞︽墽琛�
if (!otherRgvAvoid(taskProtocol.getTargetPosition())) {
+ RgvErrCache.updateRgvErr(slave.getId(),errorRgv);
break;
}
}
@@ -389,32 +399,38 @@
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, taskProtocol.getTargetPositionStaNoPlcId());
StaProtocol staProtocol = devpThread.getStation().get(taskProtocol.getTargetPositionStaNo());
if (staProtocol == null ) {
+ RgvErrCache.updateRgvErr(slave.getId(),"鏈煡鍒板皬杞︿綔涓氱珯"+staProtocol.getStaNo()+"绔欑偣");
break;
}
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (!staProtocol.isAutoing() || staProtocol.isLoading()
){
+ RgvErrCache.updateRgvErr(slave.getId(),"灏忚溅绛夊緟"+staProtocol.getStaNo()+"绔欑偣灏辩华");
break;
}
} else if (taskProtocol.getTaskStatus()==2){
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, taskProtocol.getTargetPositionStaNoPlcId());
StaProtocol staProtocol = devpThread.getStation().get(taskProtocol.getTargetPositionStaNo());
if (staProtocol == null ) {
+ RgvErrCache.updateRgvErr(slave.getId(),"鏈煡鍒板皬杞︿綔涓氱珯"+staProtocol.getStaNo()+"绔欑偣");
break;
}
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (!staProtocol.isAutoing() || !staProtocol.isLoading() || staProtocol.getWorkNo()==0
){
+ RgvErrCache.updateRgvErr(slave.getId(),"灏忚溅绛夊緟"+staProtocol.getStaNo()+"绔欑偣灏辩华");
break;
}
}
TaskProtocol issued = new TaskProtocol(taskProtocol);
write(issued);
+ RgvErrCache.updateRgvErr(slave.getId());
taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection());
break;
} else {
TaskProtocol issued = new TaskProtocol(taskProtocol,true);
write(issued);
+ RgvErrCache.updateRgvErr(slave.getId());
break;
}
}
@@ -465,10 +481,25 @@
RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId());
if (rgvProtocol == null || rgvTaskProtocol == null) {
+ errorRgv = slave.getId()+"鍙峰皬杞﹁繛鎺ュけ璐�";
return false;
}
- if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 || rgvProtocol.getRgvPosDestination() == 0L
- || ((!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) {
+ if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO)) {
+ errorRgv = slave.getId()+"鍙峰皬杞﹂潪鑷姩";
+ return false;
+ }
+ if (rgvProtocol.getRgvPos().equals(0L)
+ || rgvTaskProtocol.getAvoid() == -1
+ || rgvProtocol.getRgvPosDestination() == 0L) {
+ errorRgv = slave.getId()+"鍙峰皬杞︾姸鎬佸紓甯�";
+ return false;
+ }
+ if (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM)) {
+ errorRgv = slave.getId()+"鍙峰皬杞﹂潪绌洪棽";
+ return false;
+ }
+ if ( (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM)) {
+ errorRgv = slave.getId()+"鍙峰皬杞﹀瓨鍦ㄨ繍琛岀洰鏍囧�硷紝闇�瑕佸浣嶏紒锛侊紒";
return false;
}
RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId());
@@ -477,10 +508,12 @@
// "rgvTaskProtocolOther:"+slave.getOtherId()+"sign:"+rgvTaskProtocolOther.isSignRun()+"/n");
if (rgvProtocolOther == null) {
+ errorRgv = slave.getOtherId()+"鍙峰皬杞﹁繛鎺ュけ璐�";
return false;
}
if (rgvProtocolOther.statusEnable) {
if (!rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) || rgvProtocolOther.getRgvPos().equals(0L) || rgvTaskProtocolOther.getAvoid() == -1 || rgvProtocolOther.getRgvPosDestination() == 0L) {
+ errorRgv = slave.getOtherId()+"鍙峰皬杞︾姸鎬佸紓甯�";
return false;
}
}
@@ -536,6 +569,7 @@
long avoid = rgvProtocolOther.getRgvPos() - rgvProtocolOther.getCarBodyJiaoMing() - avoidDistance - rgvProtocol.getCarBodyKunPeng();
if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
try{
DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -559,12 +593,15 @@
}
}
if (signNowPosRun){
+ errorRgv = slave.getOtherId()+"鍙稲GV绛夊緟浣滀笟...";
return false;
}
}
long avoid = targetPosition + rgvProtocol.getCarBodyKunPeng() + avoidDistance + rgvProtocolOther.getCarBodyJiaoMing();
if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) {
log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
+
try{
DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -591,6 +628,8 @@
long avoid = targetPosition + rgvProtocol.getCarBodyKunPeng() + avoidDistance + rgvProtocolOther.getCarBodyJiaoMing();
if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) {
log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
+
try{
DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -618,6 +657,8 @@
long avoid = rgvProtocolOther.getRgvPos() - rgvProtocolOther.getCarBodyJiaoMing() - avoidDistance - rgvProtocol.getCarBodyKunPeng();
if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
+
try{
DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -635,6 +676,8 @@
RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
return false;
}
+ errorRgv = slave.getOtherId()+"鍙稲GV褰卞搷锛岀瓑寰呬腑...";
+
return false;
}
} else {
@@ -671,6 +714,8 @@
long avoid = rgvProtocolOther.getRgvPos() + rgvProtocolOther.getCarBodyKunPeng() + avoidDistance + rgvProtocol.getCarBodyJiaoMing();
if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) {
log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
+
try{
DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -694,12 +739,15 @@
}
}
if (signNowPosRun){
+ errorRgv = slave.getOtherId()+"鍙稲GV绛夊緟浣滀笟...";
return false;
}
}
long avoid = targetPosition - rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng();
if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
+
try{
DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -726,6 +774,8 @@
long avoid = targetPosition - rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng();
if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
+
try{
DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -754,6 +804,8 @@
long avoid = rgvProtocolOther.getRgvPos() + rgvProtocolOther.getCarBodyKunPeng() + avoidDistance + rgvProtocol.getCarBodyJiaoMing();
if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) {
log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿";
+
try{
DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿");
@@ -771,6 +823,7 @@
RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
return false;
}
+ errorRgv = slave.getOtherId()+"鍙稲GV绛夊緟涓�...";
return false;
}
} else {
@@ -781,6 +834,8 @@
}
}
}
+
+ errorRgv = slave.getOtherId()+"鍙稲GV褰卞搷锛岀瓑寰呬腑...";
return false;
}
@@ -918,6 +973,9 @@
// }
// }
// }
+ if (rgvProtocol.getAlarm$()!=0){
+ RgvErrCache.updateRgvErr(slave.getId(),rgvProtocol.getAlarmM());
+ }
try {
// 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 676afa7..51f727f 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -13,6 +13,7 @@
import com.zy.asrs.service.BasCrnOptService;
import com.zy.asrs.service.BasCrnpService;
import com.zy.core.CrnThread;
+import com.zy.core.cache.CrnErrCache;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.enums.CrnStatusType;
@@ -243,6 +244,8 @@
log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
return false;
}
+ CrnErrCache.updateCrnErr(slave.getId(), "-");
+
// convertRow(command);
command.setCrnNo(slave.getId());
short[] array = new short[10];
@@ -276,6 +279,8 @@
if (!command.getTaskNo().equals(one.getTaskNo())
){
i++;
+ CrnErrCache.updateCrnErr(slave.getId(), "鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�");
+
log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}]>>>>閲嶅啓[{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), i,JSON.toJSON(command),JSON.toJSON(one));
result = siemensNet.Write("DB100.0", array);
}else{
@@ -297,6 +302,8 @@
if (transInt16 != commandFinish){
log.info("涓嬪彂DB100.18 鍥炶澶辫触" + "commandFinish:"+commandFinish);
log.info("涓嬪彂DB100.18 鍥炶澶辫触" + "array:"+ JSON.toJSONString(array));
+ CrnErrCache.updateCrnErr(slave.getId(), "涓嬪彂DB100.18 鍥炶澶辫触");
+
result = siemensNet.Write("DB100.18", commandFinish);
signFinish++;
}else {
@@ -339,6 +346,8 @@
} else {
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ CrnErrCache.updateCrnErr(slave.getId(), "鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触");
+
return false;
}
}
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index fdf1b1c..eb6e729 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -460,6 +460,17 @@
}
}
+ /**
+ * 璁剧疆鍏ュ簱鏍囪
+ */
+ @Override
+ public void setErrorDev(Integer siteId, String msgErr) {
+ StaProtocol staProtocol = station.get(siteId);
+ if (null != staProtocol) {
+ staProtocol.setErrorDev(msgErr);
+ }
+ }
+
@Override
public void close() {
siemensS7Net.ConnectClose();
diff --git a/src/main/webapp/views/deviceOperate/crnOperate.html b/src/main/webapp/views/deviceOperate/crnOperate.html
index f32bc2f..8406daf 100644
--- a/src/main/webapp/views/deviceOperate/crnOperate.html
+++ b/src/main/webapp/views/deviceOperate/crnOperate.html
@@ -28,6 +28,8 @@
</el-table-column>
<el-table-column property="deviceStatus" label="璁惧鐘舵��">
</el-table-column>
+ <el-table-column property="errorCrn" label="寮傚父鎻愮ず">
+ </el-table-column>
</el-table>
</div>
@@ -166,6 +168,8 @@
</el-descriptions-item>
<el-descriptions-item label="鍗囬檷鏃堕暱(H)">{{ tableData[currentIndex].yduration }}
</el-descriptions-item>
+ <el-descriptions-item label="寮傚父鎻愮ず">{{ tableData[currentIndex].errorCrn }}
+ </el-descriptions-item>
</el-descriptions>
</div>
</div>
diff --git a/src/main/webapp/views/deviceOperate/devpOperate.html b/src/main/webapp/views/deviceOperate/devpOperate.html
index 7565bc4..724416e 100644
--- a/src/main/webapp/views/deviceOperate/devpOperate.html
+++ b/src/main/webapp/views/deviceOperate/devpOperate.html
@@ -24,6 +24,10 @@
</el-table-column>
<el-table-column property="pakMk" label="鍏ュ簱鏍囪">
</el-table-column>
+ <el-table-column property="weight" label="绉伴噸">
+ </el-table-column>
+ <el-table-column property="errorDev" label="寮傚父鎻愮ず">
+ </el-table-column>
</el-table>
</div>
@@ -93,6 +97,10 @@
</el-descriptions-item>
<el-descriptions-item label="楂樹綆搴撲綅">{{ tableData[currentIndex].locType1 }}
</el-descriptions-item>
+ <el-descriptions-item label="閲嶉噺">{{ tableData[currentIndex].weight }}
+ </el-descriptions-item>
+ <el-descriptions-item label="寮傚父鎻愮ず">{{ tableData[currentIndex].errorDev }}
+ </el-descriptions-item>
</el-descriptions>
</div>
</div>
diff --git a/src/main/webapp/views/deviceOperate/rgvOperate.html b/src/main/webapp/views/deviceOperate/rgvOperate.html
index 2a7ef09..fe04738 100644
--- a/src/main/webapp/views/deviceOperate/rgvOperate.html
+++ b/src/main/webapp/views/deviceOperate/rgvOperate.html
@@ -28,7 +28,9 @@
</el-table-column>
<el-table-column property="rgvPosDestination" label="鐩爣瀹氫綅缃�">
</el-table-column>
- <el-table-column property="loaded" label="鏈夌墿">
+ <el-table-column property="loaded" label="鎺㈢墿">
+ </el-table-column>
+ <el-table-column property="errorRgv" label="鎻愮ず">
</el-table-column>
</el-table>
</div>
--
Gitblit v1.9.1