From 19f59c243e8df97c8b9fd9dba4e758be8235d68b Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期二, 25 十一月 2025 17:02:54 +0800
Subject: [PATCH] 添加卧转立扫码、卧转立、大车、大理片笼基础任务流转逻辑
---
mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/DeviceConfigServiceImpl.java | 81 ++++++++++++++++++++++++++++++++--------
1 files changed, 65 insertions(+), 16 deletions(-)
diff --git a/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/DeviceConfigServiceImpl.java b/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/DeviceConfigServiceImpl.java
index 55a9693..292bd8f 100644
--- a/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/DeviceConfigServiceImpl.java
+++ b/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/DeviceConfigServiceImpl.java
@@ -27,6 +27,7 @@
public class DeviceConfigServiceImpl extends ServiceImpl<DeviceConfigMapper, DeviceConfig> implements DeviceConfigService {
private final ObjectMapper objectMapper = new ObjectMapper();
+ private static final TypeReference<Map<String, Object>> MAP_TYPE = new TypeReference<Map<String, Object>>() {};
@Override
public boolean createDevice(DeviceConfig deviceConfig) {
@@ -134,9 +135,9 @@
// 璁惧绫诲瀷杩囨护
if (deviceType != null && !deviceType.trim().isEmpty()) {
- String convertedDeviceType = convertDeviceTypeFromString(deviceType);
- if (convertedDeviceType != null) {
- wrapper.eq(DeviceConfig::getDeviceType, convertedDeviceType);
+ List<String> convertedDeviceTypes = convertDeviceTypeFromString(deviceType);
+ if (convertedDeviceTypes != null && !convertedDeviceTypes.isEmpty()) {
+ wrapper.in(DeviceConfig::getDeviceType, convertedDeviceTypes);
}
}
@@ -214,7 +215,7 @@
vo.setStatus(getStatusName(device.getStatus()));
vo.setDeviceStatus(convertStatusToCode(device.getStatus()));
vo.setDescription(device.getDescription());
- vo.setLocation("榛樿浣嶇疆"); // TODO: 浠庢墿灞曞弬鏁版垨鍏宠仈琛ㄤ腑鑾峰彇
+ vo.setLocation(extractLocationFromDevice(device));
vo.setCreatedTime(device.getCreatedTime());
vo.setUpdatedTime(device.getUpdatedTime());
vo.setProjectId(device.getProjectId());
@@ -314,24 +315,42 @@
/**
* 瀛楃涓茶浆鎹负璁惧绫诲瀷
*/
- private String convertDeviceTypeFromString(String deviceType) {
- if (deviceType == null) return null;
+ private List<String> convertDeviceTypeFromString(String deviceType) {
+ if (deviceType == null) {
+ return Collections.emptyList();
+ }
- switch (deviceType.trim().toLowerCase()) {
+ String normalized = deviceType.trim().toLowerCase();
+ switch (normalized) {
case "load_vehicle":
case "涓婂ぇ杞�":
+ case "涓婂ぇ杞﹁澶�":
+ case "澶ц溅璁惧":
case "1":
- return DeviceConfig.DeviceType.LOAD_VEHICLE;
+ return Arrays.asList(
+ DeviceConfig.DeviceType.LOAD_VEHICLE,
+ "澶ц溅璁惧"
+ );
case "large_glass":
case "澶х悊鐗�":
+ case "澶х悊鐗囩":
case "2":
- return DeviceConfig.DeviceType.LARGE_GLASS;
+ return Arrays.asList(
+ DeviceConfig.DeviceType.LARGE_GLASS,
+ "澶х悊鐗囩"
+ );
case "glass_storage":
case "鐜荤拑瀛樺偍":
+ case "鍗у紡缂撳瓨":
+ case "鐜荤拑瀛樺偍璁惧":
case "3":
- return DeviceConfig.DeviceType.GLASS_STORAGE;
+ return Arrays.asList(
+ DeviceConfig.DeviceType.GLASS_STORAGE,
+ "鍗у紡缂撳瓨",
+ "鐜荤拑瀛樺偍璁惧"
+ );
default:
- return null;
+ return Collections.emptyList();
}
}
@@ -623,12 +642,12 @@
}
// 璁惧绫诲瀷杩囨护
- if (deviceType != null && !deviceType.trim().isEmpty()) {
- String convertedDeviceType = convertDeviceTypeFromString(deviceType);
- if (convertedDeviceType != null) {
- wrapper.eq(DeviceConfig::getDeviceType, convertedDeviceType);
- }
+ if (deviceType != null && !deviceType.trim().isEmpty()) {
+ List<String> convertedDeviceTypes = convertDeviceTypeFromString(deviceType);
+ if (convertedDeviceTypes != null && !convertedDeviceTypes.isEmpty()) {
+ wrapper.in(DeviceConfig::getDeviceType, convertedDeviceTypes);
}
+ }
// 璁惧鐘舵�佽繃婊�
if (deviceStatus != null && !deviceStatus.trim().isEmpty()) {
@@ -771,4 +790,34 @@
return new ArrayList<>();
}
}
+
+ /**
+ * 浠庤澶囨墿灞曞弬鏁颁腑鎻愬彇浣嶇疆淇℃伅
+ */
+ private String extractLocationFromDevice(DeviceConfig device) {
+ if (device == null) {
+ return "榛樿浣嶇疆";
+ }
+ try {
+ // 浼樺厛浠巈xtraParams涓幏鍙�
+ if (device.getExtraParams() != null && !device.getExtraParams().trim().isEmpty()) {
+ Map<String, Object> extraParams = objectMapper.readValue(device.getExtraParams(), MAP_TYPE);
+ Object location = extraParams.get("location");
+ if (location != null) {
+ return String.valueOf(location);
+ }
+ }
+ // 浠巆onfigJson涓幏鍙�
+ if (device.getConfigJson() != null && !device.getConfigJson().trim().isEmpty()) {
+ Map<String, Object> configJson = objectMapper.readValue(device.getConfigJson(), MAP_TYPE);
+ Object location = configJson.get("location");
+ if (location != null) {
+ return String.valueOf(location);
+ }
+ }
+ } catch (Exception e) {
+ log.warn("瑙f瀽璁惧浣嶇疆淇℃伅澶辫触, deviceId={}", device.getId(), e);
+ }
+ return "榛樿浣嶇疆";
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0