From 1dacf2305187f5c2fb44f03b6b754c46cb73ba25 Mon Sep 17 00:00:00 2001
From: L <L@132>
Date: 星期四, 19 三月 2026 08:53:59 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 89 +++++++++++++++++++++++++++++++++++++++-----
1 files changed, 79 insertions(+), 10 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 dd643fe..e6e8827 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -100,7 +100,7 @@
public synchronized int[][] getStePositionNearby(Integer siteNo) {
try {
List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position", true));
- if (basDevpPositions.isEmpty()) {
+ if (basDevpPositions == null || basDevpPositions.isEmpty()) {
log.error("鑾峰彇鎵�鏈夌珯鐐逛俊鎭紓甯�");
return null;
}
@@ -114,8 +114,11 @@
List<List<Long>> rgvPositionList = new ArrayList<>();
for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+ if (rgvThread == null) {
+ continue;
+ }
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
+ if (rgvProtocol == null || rgvProtocol.getRgvNo() == null || rgvProtocol.getRgvPos() == null) {
continue;
}
List<Long> rgvPosition = new ArrayList<>();
@@ -123,17 +126,31 @@
rgvPosition.add(rgvProtocol.getRgvPos());
rgvPositionList.add(rgvPosition);
}
+ if (rgvPositionList.isEmpty()) {
+ return null;
+ }
Integer rgvNo = SortTheExecutionOfTheCarUtil.LatelyAndGreaterThan(rgvPositionList, sitePosition, perimeter);
if (rgvNo == -1) {
log.info("鏇存柊灏忚溅鎺掑簭淇℃伅寮傚父={}", rgvNo);
return null;
}
- List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<BasCircularShuttle>().eq("status", 0).orderBy("rgv_id", true));
+ List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<BasCircularShuttle>().orderBy("rgv_id", true));
+ if (basCircularShuttleList == null || basCircularShuttleList.isEmpty()) {
+ return null;
+ }
int[][] ints = new int[basCircularShuttleList.size()][2];
for (BasCircularShuttle basCircularShuttle : basCircularShuttleList) {
+ if (basCircularShuttle == null || basCircularShuttle.getRgvNo() == null || basCircularShuttle.getRgvId() == null) {
+ continue;
+ }
+ if (basCircularShuttle.getRgvNo() < 1 || basCircularShuttle.getRgvNo() > basCircularShuttleList.size()) {
+ continue;
+ }
ints[basCircularShuttle.getRgvNo() - 1] = new int[]{basCircularShuttle.getRgvNo(), basCircularShuttle.getRgvId()};
}
- if (basCircularShuttleList.get(0).getRgvNo().equals(rgvNo)) {
+ if (basCircularShuttleList.get(0) != null
+ && basCircularShuttleList.get(0).getRgvNo() != null
+ && basCircularShuttleList.get(0).getRgvNo().equals(rgvNo)) {
return ints;
}
// String[] oldList = new String[ints.length];
@@ -145,7 +162,7 @@
} catch (Exception e) {
- log.error("鑷姩鏇存柊灏忚溅鎺掑簭淇℃伅澶辫触锛屽紓甯革細" + e);
+ log.error("鑷姩鏇存柊灏忚溅鎺掑簭淇℃伅澶辫触(getStePositionNearby), siteNo={}", siteNo, e);
}
return null;
@@ -159,12 +176,23 @@
boolean sign = false;
Integer rgvNo = 0;
List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<BasCircularShuttle>().orderBy("rgv_id", true));
+ if (basCircularShuttleList == null || basCircularShuttleList.isEmpty()) {
+ return;
+ }
for (BasCircularShuttle basCircularShuttle : basCircularShuttleList) {
+ if (basCircularShuttle == null || basCircularShuttle.getRgvNo() == null) {
+ sign = true;
+ continue;
+ }
if (basCircularShuttle.getStatus() != 0){
sign = true;
continue;
}
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basCircularShuttle.getRgvNo());
+ if (rgvThread == null) {
+ sign = true;
+ continue;
+ }
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
if (rgvProtocol == null) {
sign = true;
@@ -178,6 +206,12 @@
if (sign && rgvNo != 0) {
int[][] ints = new int[basCircularShuttleList.size()][2];
for (BasCircularShuttle basCircularShuttle : basCircularShuttleList) {
+ if (basCircularShuttle == null || basCircularShuttle.getRgvNo() == null || basCircularShuttle.getRgvId() == null) {
+ continue;
+ }
+ if (basCircularShuttle.getRgvNo() < 1 || basCircularShuttle.getRgvNo() > basCircularShuttleList.size()) {
+ continue;
+ }
ints[basCircularShuttle.getRgvNo() - 1] = new int[]{basCircularShuttle.getRgvNo(), basCircularShuttle.getRgvId()};
}
// String[] oldList = new String[ints.length];
@@ -192,14 +226,23 @@
// log.info("鏇存柊灏忚溅鎺掑簭淇℃伅锛氬師濮嬪皬杞﹀彿rgvNo={},灏忚溅閲嶆柊鎺掑簭淇℃伅={},灏忚溅鍘熷鎺掑簭淇℃伅={}",rgvNo,Arrays.toString(newList),Arrays.toString(oldList));
for (BasCircularShuttle basCircularShuttle : basCircularShuttleList) {
+ if (basCircularShuttle == null || basCircularShuttle.getRgvNo() == null) {
+ continue;
+ }
+ if (basCircularShuttle.getRgvNo() < 1 || basCircularShuttle.getRgvNo() > rgvList.length) {
+ continue;
+ }
int[] rgv = rgvList[basCircularShuttle.getRgvNo() - 1];
+ if (rgv == null || rgv.length < 2) {
+ continue;
+ }
basCircularShuttle.setRgvId(rgv[1]);
basCircularShuttleService.updateById(basCircularShuttle);
}
}
} catch (Exception e) {
- log.error("鑷姩鏇存柊灏忚溅鎺掑簭淇℃伅澶辫触锛屽紓甯革細" + e);
+ log.error("鑷姩鏇存柊灏忚溅鎺掑簭淇℃伅澶辫触(updateStePosition)", e);
}
}
@@ -219,13 +262,22 @@
}
BasCircularShuttle basCircularShuttle = basCircularShuttleService.selectOne(new EntityWrapper<BasCircularShuttle>().eq("rgv_id", 1));
+ if (basCircularShuttle == null || basCircularShuttle.getRgvNo() == null) {
+ return;
+ }
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basCircularShuttle.getRgvNo());
+ if (rgvThread == null) {
+ return;
+ }
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
+ if (rgvProtocol == null || rgvProtocol.getRgvPos() == null) {
return;
}
List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position", true));
List<BasDevpPosition> basDevpPositionDevRegion = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("dev_region", true));
+ if (basDevpPositions == null || basDevpPositions.isEmpty() || basDevpPositionDevRegion == null || basDevpPositionDevRegion.isEmpty()) {
+ return;
+ }
Integer devNo = SortTheExecutionOfTheCarUtil.LatelyAndLessThan(basDevpPositions, rgvProtocol.getRgvPos(), perimeter);
BasDevpPosition[] basDevpPositionsList = SortTheExecutionOfTheCarUtil.devpNoSort(basDevpPositions, devNo);
BasDevpPosition[] basDevpPositionsListUN = SortTheExecutionOfTheCarUtil.devpNoSortUN(basDevpPositionsList);
@@ -355,14 +407,20 @@
}
BasCircularShuttle basCircularShuttle = basCircularShuttleService.selectOne(new EntityWrapper<BasCircularShuttle>().eq("rgv_no", rgvNo));
+ if (basCircularShuttle == null) {
+ continue;
+ }
if (basCircularShuttle.getStatus() != 0){
continue ;
}
long rgvId = basCircularShuttle.getRgvId();
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basCircularShuttle.getRgvNo());
+ if (rgvThread == null) {
+ continue;
+ }
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
+ if (rgvProtocol == null || rgvProtocol.getRgvNo() == null || rgvProtocol.getRgvPos() == null) {
continue;
}
@@ -377,6 +435,9 @@
&& rgvProtocol.getRgvPosInt() != 0
&& rgvProtocol.getAlarm() == 0) {
BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("dev_no", wrkMast.getSourceStaNo()));
+ if (basDevpPosition == null || basDevpPosition.getPlcPosition() == null) {
+ continue;
+ }
if (basDevpPosition.getPlcPosition()>rgvProtocol.getRgvPos()){
if (basDevpPosition.getPlcPosition()-rgvProtocol.getRgvPos()>taskRunPerimeter){
if (!rgvNoM.contains(rgvProtocol.getRgvNo())){
@@ -479,6 +540,9 @@
continue;
}
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ if (rgvThread == null) {
+ continue;
+ }
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
if (rgvProtocol == null) {
continue;
@@ -507,6 +571,9 @@
for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
try {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+ if (rgvThread == null) {
+ continue;
+ }
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
if (rgvProtocol == null) {
continue;
@@ -596,6 +663,9 @@
for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
try {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+ if (rgvThread == null) {
+ continue;
+ }
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
if (rgvProtocol == null) {
continue;
@@ -636,10 +706,9 @@
Date now = new Date();
wrkMast.setWrkSts(1L);
- wrkMast.setRgvNo(null);
+ wrkMast.setRgvNo(0);
wrkMast.setAppeTime(now);
wrkMast.setLogErrTime(now);
- wrkMast.setRgvNo(null);
wrkMast.setLogErrMemo("RGV鐢宠鍙栨秷浠诲姟锛孯GV鍙�={"+rgvProtocol.getRgvNo()+"}锛屽彇娑堟椂闂达細"+now);
--
Gitblit v1.9.1