From 720e0926fa1c94b952c26e111206c5d6e1ed5ba2 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期二, 21 四月 2026 15:59:49 +0800
Subject: [PATCH] Merge branch 'master' of http://47.97.1.152:5880/r/zy-wcs-master
---
src/main/java/com/zy/core/network/real/ZyStationV5RealConnect.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 56 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/core/network/real/ZyStationV4RealConnect.java b/src/main/java/com/zy/core/network/real/ZyStationV5RealConnect.java
similarity index 90%
rename from src/main/java/com/zy/core/network/real/ZyStationV4RealConnect.java
rename to src/main/java/com/zy/core/network/real/ZyStationV5RealConnect.java
index 31ba8b4..b118520 100644
--- a/src/main/java/com/zy/core/network/real/ZyStationV4RealConnect.java
+++ b/src/main/java/com/zy/core/network/real/ZyStationV5RealConnect.java
@@ -30,13 +30,15 @@
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
* 杈撻�佺珯鐪熷疄杩炴帴锛圥LC锛�
*/
@Slf4j
-public class ZyStationV4RealConnect implements ZyStationConnectApi {
+public class ZyStationV5RealConnect implements ZyStationConnectApi {
private static final int TASK_AREA_LENGTH = 48;
private static final int TASK_AREA_SLOT_SIZE = 12;
@@ -72,11 +74,12 @@
private List<ZyStationStatusEntity> statusList;
private List<StationObjModel> barcodeOriginList;
private List<StationObjModel> inStationOriginList;
+ private Map<Integer, Integer> inStationBarcodeStationMap;
private SiemensS7Net siemensNet;
private DeviceConfig deviceConfig;
private RedisUtil redisUtil;
- public ZyStationV4RealConnect(DeviceConfig deviceConfig, RedisUtil redisUtil) {
+ public ZyStationV5RealConnect(DeviceConfig deviceConfig, RedisUtil redisUtil) {
this.deviceConfig = deviceConfig;
this.redisUtil = redisUtil;
}
@@ -130,6 +133,7 @@
}
barcodeOriginList = basDevp.getBarcodeStationList$();
inStationOriginList = sortStationObjModelsByStationId(basDevp.getInStationList$());
+ inStationBarcodeStationMap = buildInStationBarcodeStationMap(inStationOriginList);
}
if (siemensNet == null) {
@@ -271,6 +275,7 @@
}
Integer ioMode = normalizeIoMode((int) siemensNet.getByteTransform().TransInt16(result6.Content, i * 2));
inStationEntity.setIoMode(ioMode);
+ syncBarcodeStationIoMode(inStationEntity.getStationId(), ioMode);
}
}
@@ -423,6 +428,30 @@
return null;
}
+ private void syncBarcodeStationIoMode(Integer inStationId, Integer ioMode) {
+ Integer barcodeStationId = findBarcodeStationIdByInStationId(inStationBarcodeStationMap, inStationId);
+ if (barcodeStationId == null) {
+ return;
+ }
+ ZyStationStatusEntity barcodeStationEntity = findStatusEntityByStationId(barcodeStationId);
+ if (barcodeStationEntity == null) {
+ return;
+ }
+ barcodeStationEntity.setIoMode(ioMode);
+ }
+
+ private ZyStationStatusEntity findStatusEntityByStationId(Integer stationId) {
+ if (stationId == null) {
+ return null;
+ }
+ for (ZyStationStatusEntity zyStationStatusEntity : statusList) {
+ if (zyStationStatusEntity.getStationId().equals(stationId)) {
+ return zyStationStatusEntity;
+ }
+ }
+ return null;
+ }
+
private int getTaskWriteIdx(int stationIdx, Integer taskWriteIdx) {
int useIdx = -1;
if (stationIdx < 0 || taskWriteIdx == null || taskWriteIdx <= 0) {
@@ -535,6 +564,31 @@
return stationObjModels;
}
+ static Map<Integer, Integer> buildInStationBarcodeStationMap(List<StationObjModel> inStationOriginList) {
+ Map<Integer, Integer> map = new HashMap<>();
+ if (inStationOriginList == null) {
+ return map;
+ }
+ for (StationObjModel inStation : inStationOriginList) {
+ if (inStation == null || inStation.getStationId() == null) {
+ continue;
+ }
+ StationObjModel barcodeStation = inStation.getBarcodeStation();
+ if (barcodeStation == null || barcodeStation.getStationId() == null) {
+ continue;
+ }
+ map.put(inStation.getStationId(), barcodeStation.getStationId());
+ }
+ return map;
+ }
+
+ static Integer findBarcodeStationIdByInStationId(Map<Integer, Integer> inStationBarcodeStationMap, Integer inStationId) {
+ if (inStationBarcodeStationMap == null || inStationId == null) {
+ return null;
+ }
+ return inStationBarcodeStationMap.get(inStationId);
+ }
+
private static void appendConveyorCommonAlarmMessages(StringBuilder sb, boolean[] status, int startIdx) {
if (status == null) {
return;
--
Gitblit v1.9.1