From 7c264be282c33feedbd4478f7e674ebac8fd55db Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期六, 21 三月 2026 15:39:22 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 14 +++++--
src/main/java/com/zy/core/model/protocol/RgvProtocol.java | 60 ++++++++++++++++++++----------
src/main/resources/mapper/WrkMastStaMapper.xml | 8 ++--
3 files changed, 54 insertions(+), 28 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 9658c7c..8242f56 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -285,6 +285,9 @@
staProtocolNew.setSiteId(staProtocol.getSiteId());
devpThread.setPakMk(staProtocol.getSiteId(), false);
staProtocolNew.setBarcode(barcode);
+ if(!staProtocolNew.isLoading()){
+ continue;
+ }
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocolNew));
if (ledThread != null) {
News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯");
@@ -1098,14 +1101,17 @@
}
}
}
- if(staProtocolIn.getWorkNo() != null && staProtocolIn.getStaNo() != 4001){
+ WrkMast wrkMastIn= wrkMastMapper.selectByWrkNo(staProtocolIn.getWorkNo());
+ if(wrkMastIn == null){
+ continue;
+ }
+ if(staProtocolIn.getWorkNo() != null && wrkMastIn.getStaNo() != 4001){
WrkMast wrkMastCrn = wrkMastMapper.selectByWrkNo(staProtocolIn.getWorkNo());
if(wrkMastCrn!=null){
if(wrkMastCrn.getCrnNo() == 3 ){
continue;
}
}
- WrkMast wrkMastIn = wrkMastMapper.selectByWrkNo(staProtocolIn.getWorkNo());
WrkMast wrkMast = wrkMastMapper.selectByWrkNo(9996);
if(wrkMastIn == null){
continue;
@@ -5604,7 +5610,7 @@
}
// 鍒ゆ柇閲嶅宸ヤ綔妗�
- List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("task_no", staProtocol.getWorkNo()));
+ List<BasAgvMast> basAgvMastList = basAgvMastService.selectList(new EntityWrapper<BasAgvMast>().eq("task_no", wrkMast.getWrkNo()));
if (!basAgvMastList.isEmpty()) {
wrkMast.setTakeNone("2");
wrkMastMapper.updateById(wrkMast);
@@ -5732,7 +5738,7 @@
}
List<LocMast> locMastList = locMastService.selectList(new EntityWrapper<LocMast>().eq("barcode", barcode));
if (!locMastList.isEmpty()) {
-// News.info("{}鍙风珯鐐规潯鐮佷俊鎭噸澶嶏細{}", outStaAgv.getStaNo(), barcode);
+ News.info("{}鍙风珯鐐规潯鐮佷俊鎭噸澶嶏細{}", outStaAgv.getStaNo(), barcode);
continue;
}
// 浠诲姟鐢熸垚鍖� --------------------------------------------------------------------------
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 ac5bec5..e92e36b 100644
--- a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
@@ -430,8 +430,30 @@
return map.get(RgvPos);
}
+ // 涓婁竴娆′綅缃紙鐢ㄤ簬闃茶烦鍙橈級
+ private Integer lastRgvPos1 = null;
+ private Integer lastRgvPos2 = null;
+
+ // ================= 鍏叡鏂规硶 =================
+ private Integer getClosestSite(int rgvPos, Map<Integer, Integer> posMap, int tolerance) {
+ int minDiff = Integer.MAX_VALUE;
+ Integer result = 0;
+
+ for (Map.Entry<Integer, Integer> entry : posMap.entrySet()) {
+ int diff = Math.abs(rgvPos - entry.getValue());
+ if (diff < minDiff) {
+ minDiff = diff;
+ result = entry.getKey();
+ }
+ }
+
+ // 鈿狅笍 涓嶅啀杩斿洖0锛屽己鍒惰繑鍥炴渶杩戠偣
+ return result;
+ }
+
+ // ================= RGV1 =================
public Integer getRgvPosI1() {
- // key: 绔欑偣鍙� value: 鍩哄噯鐗╃悊浣嶇疆
+
Map<Integer, Integer> posMap = new HashMap<>();
posMap.put(1004, 6534);
posMap.put(1007, 33634);
@@ -444,22 +466,21 @@
posMap.put(1031, 288194);
posMap.put(1035, 314954);
+ int tolerance = 500;
-
- int tolerance = 200; // 鍏佽璇樊鑼冨洿
-
- for (Map.Entry<Integer, Integer> entry : posMap.entrySet()) {
- int site = entry.getKey();
- int basePos = entry.getValue();
- if (Math.abs(RgvPos - basePos) <= tolerance) {
- return site;
- }
+ // ========= 寮傚父淇濇姢 =========
+ if (RgvPos < 0 || RgvPos > 400000) {
+ return 0;
}
- return 0; // 娌″尮閰嶅埌绔欑偣
+ lastRgvPos1 = RgvPos;
+
+ return getClosestSite(RgvPos, posMap, tolerance);
}
+
+ // ================= RGV2 =================
public Integer getRgvPosI2() {
- // key: 绔欑偣鍙� value: 鍩哄噯鐗╃悊浣嶇疆
+
Map<Integer, Integer> posMap = new HashMap<>();
posMap.put(2030, 314954);
posMap.put(2027, 288094);
@@ -471,17 +492,16 @@
posMap.put(2009, 75174);
posMap.put(2006, 33748);
posMap.put(2003, 6449);
- int tolerance = 500; // 鍏佽璇樊鑼冨洿
- for (Map.Entry<Integer, Integer> entry : posMap.entrySet()) {
- int site = entry.getKey();
- int basePos = entry.getValue();
- if (Math.abs(RgvPos - basePos) <= tolerance) {
- return site;
- }
+ int tolerance = 500;
+
+ // ========= 寮傚父淇濇姢 =========
+ if (RgvPos < 0 || RgvPos > 400000) {
+ return 0;
}
+ lastRgvPos2 = RgvPos;
- return 0; // 娌″尮閰嶅埌绔欑偣
+ return getClosestSite(RgvPos, posMap, tolerance);
}
diff --git a/src/main/resources/mapper/WrkMastStaMapper.xml b/src/main/resources/mapper/WrkMastStaMapper.xml
index 9250187..f3f9e3c 100644
--- a/src/main/resources/mapper/WrkMastStaMapper.xml
+++ b/src/main/resources/mapper/WrkMastStaMapper.xml
@@ -40,10 +40,10 @@
</select>
<select id="selectByWrkNoPut" resultMap="BaseResultMap">
- select top 1 * from asr_wrk_mast_sta
- where 1=1
- and wrk_no = #{workNo}
- and wrk_sts = 1
+ select top 1 *
+ from asr_wrk_mast_sta WITH (ROWLOCK, READPAST)
+ where wrk_no = #{workNo}
+ and wrk_sts = 1
</select>
<!-- <select id="selectNoInterfere" resultMap="BaseResultMap">-->
--
Gitblit v1.9.1