From 0aec881174d2e6094adb9f173133ffda2da424d5 Mon Sep 17 00:00:00 2001
From: L <L@132>
Date: 星期二, 20 一月 2026 14:46:36 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 80 +++++++++++++++++++++++++++++++++++++---
1 files changed, 74 insertions(+), 6 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 cf2b3a9..52e7a36 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2043,6 +2043,16 @@
}
return null;
}
+ public TaskWrk deviceDetectionGetWrkNo(RgvSlave.RgvStn inSta) {
+
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inSta.getDevpPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+ if (staProtocol == null || Cools.isEmpty(staProtocol.getWorkNo())) {
+ return null;
+ }
+ TaskWrk taskWrk = taskWrkService.selectByWrkNo(staProtocol.getWorkNo());
+ return taskWrk;
+ }
public boolean deviceDetection(RgvSlave.RgvStn inSta,Integer rgvNo) {
ArrayList<Integer> arrayList = new ArrayList<Integer>() {{
add(1009);
@@ -2122,10 +2132,12 @@
}
List<TaskWrk> taskWrkList = new ArrayList<>();
List<Integer> staList = new ArrayList<>();
+ List<String> taskNoList = taskStartRepel();
for (RgvSlave.RgvStn inSta : rgvSlave.getRgvInSta()) {
TaskWrk taskWrk = deviceDetection(inSta);
if (taskWrk != null) {
if (taskWrk.getWrkNo().toString().equals(taskNoNow)) continue;
+ if (!taskNoList.contains(taskWrk.getWrkNo().toString())) continue;
taskWrkList.add(taskWrk);
staList.add(inSta.getStaNo());
}
@@ -2157,9 +2169,10 @@
if (rgvOtherIDLEOther(rgvSlave)){
if (!rgvOtherIDLE(rgvSlave,staList.get(0))){
System.out.println("绌洪棽灏辫繎璺宠繃==="+rgvSlave.getId()+"===");
- RgvErrCache.updateRgvErr(rgvSlave.getId(),staList.get(0)+"绌洪棽灏辫繎璺宠繃");
-
- sign=true;
+ if (itSmall){
+ RgvErrCache.updateRgvErr(rgvSlave.getId(),staList.get(0)+"绌洪棽灏辫繎璺宠繃");
+ sign=true;
+ }
}
}
if (sign){
@@ -2238,9 +2251,10 @@
if (rgvOtherIDLEOther2(rgvSlave)){
if (!rgvOtherIDLE2(rgvSlave,staList.get(0))){
System.out.println("杩愯灏辫繎璺宠繃==="+rgvSlave.getId()+"===");
- RgvErrCache.updateRgvErr(rgvSlave.getId(),staList.get(0)+"杩愯灏辫繎璺宠繃");
-
- sign=true;
+ if (itSmall){
+ RgvErrCache.updateRgvErr(rgvSlave.getId(),staList.get(0)+"杩愯灏辫繎璺宠繃");
+ sign=true;
+ }
}
}
if (sign){
@@ -2443,6 +2457,60 @@
}
}
+ public List<String> taskStartRepel() {
+ ArrayList<String> arrayListOld = new ArrayList<>();
+ ArrayList<String> arrayListNew = new ArrayList<>();
+ ArrayList<Integer> arrayListAllP = new ArrayList<>();
+ ArrayList<Long[]> arrayListAll = new ArrayList<>();
+ for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
+ try{
+ String taskNoNow = rgvOtherTaskWrk(rgvSlave);
+ if (!arrayListOld.contains(taskNoNow)){
+ arrayListOld.add(taskNoNow);
+ }
+ } catch (Exception e) {
+ }
+ }
+ for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
+ if (rgvDetection(rgvSlave)) {
+ for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) {
+ TaskWrk taskWrk = deviceDetectionGetWrkNo(rgvStn);
+ if (taskWrk != null) {
+ if (!arrayListAllP.contains(taskWrk.getWrkNo())) {
+ arrayListAllP.add(taskWrk.getWrkNo());
+ BasDevpPosition basDevpPositionSta = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStn.getStaNo()));
+ BasDevpPosition basDevpPositionEnd = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint())));
+ Long[] longList = {taskWrk.getWrkNo().longValue(),basDevpPositionSta.getPlcPosition(),basDevpPositionEnd.getPlcPosition()};
+ arrayListAll.add(longList);
+ }
+ }
+ }
+ }
+ }
+ List<Long[]> crossingPathsW = TrackUtils.findCrossingPathsW(arrayListAll);
+ List<Long> wrkNoList = new ArrayList<>();
+ List<Long> signWrk = new ArrayList<>();
+ for (Long[] longList : crossingPathsW) {
+ if (!wrkNoList.contains(longList[0]) && !signWrk.contains(longList[0])) {
+ if (!wrkNoList.contains(longList[1]) && !signWrk.contains(longList[1])) {
+ wrkNoList.add(longList[0]);
+ }
+ }
+ signWrk.add(longList[0]);
+ signWrk.add(longList[1]);
+ }
+ for (Integer str : arrayListAllP) {
+ if (!signWrk.contains(str.longValue())) {
+ arrayListNew.add(str.toString());
+ }
+ }
+ for (Long wrk : wrkNoList) {
+ arrayListNew.add(wrk.toString());
+ }
+
+ return arrayListNew;
+ }
+
//鑾峰彇璧风偣涓庣粓鐐瑰璞�
public RgvSlave.RgvStn getRgvStnNow(RgvSlave rgvSlave, Integer staNo) {
for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) {
--
Gitblit v1.9.1