From 9dcde5b27b70a4b0c0885347af5405eb2d1ef089 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期五, 12 十二月 2025 17:00:54 +0800
Subject: [PATCH] 修改前端状态显示变更,保持前端实时更新
---
mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/DeviceConfigServiceImpl.java | 110 +++++++++++++++++++++++++++++++++++-------------------
1 files changed, 71 insertions(+), 39 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..6f5b2b3 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,10 +135,7 @@
// 璁惧绫诲瀷杩囨护
if (deviceType != null && !deviceType.trim().isEmpty()) {
- String convertedDeviceType = convertDeviceTypeFromString(deviceType);
- if (convertedDeviceType != null) {
- wrapper.eq(DeviceConfig::getDeviceType, convertedDeviceType);
- }
+ wrapper.eq(DeviceConfig::getDeviceType, deviceType.trim());
}
// 璁惧鐘舵�佽繃婊�
@@ -214,7 +212,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());
@@ -311,29 +309,6 @@
}
}
- /**
- * 瀛楃涓茶浆鎹负璁惧绫诲瀷
- */
- private String convertDeviceTypeFromString(String deviceType) {
- if (deviceType == null) return null;
-
- switch (deviceType.trim().toLowerCase()) {
- case "load_vehicle":
- case "涓婂ぇ杞�":
- case "1":
- return DeviceConfig.DeviceType.LOAD_VEHICLE;
- case "large_glass":
- case "澶х悊鐗�":
- case "2":
- return DeviceConfig.DeviceType.LARGE_GLASS;
- case "glass_storage":
- case "鐜荤拑瀛樺偍":
- case "3":
- return DeviceConfig.DeviceType.GLASS_STORAGE;
- default:
- return null;
- }
- }
/**
* 瀛楃涓茶浆鎹负鐘舵��
@@ -623,12 +598,9 @@
}
// 璁惧绫诲瀷杩囨护
- if (deviceType != null && !deviceType.trim().isEmpty()) {
- String convertedDeviceType = convertDeviceTypeFromString(deviceType);
- if (convertedDeviceType != null) {
- wrapper.eq(DeviceConfig::getDeviceType, convertedDeviceType);
- }
- }
+ if (deviceType != null && !deviceType.trim().isEmpty()) {
+ wrapper.eq(DeviceConfig::getDeviceType, deviceType.trim());
+ }
// 璁惧鐘舵�佽繃婊�
if (deviceStatus != null && !deviceStatus.trim().isEmpty()) {
@@ -656,12 +628,42 @@
@Override
public List<String> getAllDeviceTypes() {
- List<String> deviceTypes = new ArrayList<>();
- deviceTypes.add("PLC璁惧");
- deviceTypes.add("浼犳劅鍣ㄨ澶�");
- deviceTypes.add("鎵ц鍣ㄨ澶�");
- deviceTypes.add("浜烘満鐣岄潰璁惧");
+ try {
+ // 浠庢暟鎹簱涓煡璇㈡墍鏈夊凡瀛樺湪鐨勮澶囩被鍨嬶紙鍘婚噸锛�
+ LambdaQueryWrapper<DeviceConfig> wrapper = new LambdaQueryWrapper<>();
+ wrapper.select(DeviceConfig::getDeviceType);
+ wrapper.eq(DeviceConfig::getIsDeleted, 0);
+ wrapper.isNotNull(DeviceConfig::getDeviceType);
+ wrapper.ne(DeviceConfig::getDeviceType, "");
+
+ List<DeviceConfig> devices = list(wrapper);
+ List<String> deviceTypes = devices.stream()
+ .map(DeviceConfig::getDeviceType)
+ .filter(Objects::nonNull)
+ .filter(type -> !type.trim().isEmpty())
+ .distinct()
+ .sorted()
+ .collect(Collectors.toList());
+
+ // 濡傛灉鏁版嵁搴撲腑娌℃湁璁惧绫诲瀷锛岃繑鍥為粯璁ょ被鍨�
+ if (deviceTypes.isEmpty()) {
+ deviceTypes.add(DeviceConfig.DeviceType.LOAD_VEHICLE);
+ deviceTypes.add(DeviceConfig.DeviceType.LARGE_GLASS);
+ deviceTypes.add(DeviceConfig.DeviceType.WORKSTATION_SCANNER);
+ deviceTypes.add(DeviceConfig.DeviceType.WORKSTATION_TRANSFER);
+ }
+
return deviceTypes;
+ } catch (Exception e) {
+ log.error("鑾峰彇璁惧绫诲瀷鍒楄〃澶辫触", e);
+ // 寮傚父鏃惰繑鍥為粯璁ょ被鍨�
+ List<String> defaultTypes = new ArrayList<>();
+ defaultTypes.add(DeviceConfig.DeviceType.LOAD_VEHICLE);
+ defaultTypes.add(DeviceConfig.DeviceType.LARGE_GLASS);
+ defaultTypes.add(DeviceConfig.DeviceType.WORKSTATION_SCANNER);
+ defaultTypes.add(DeviceConfig.DeviceType.WORKSTATION_TRANSFER);
+ return defaultTypes;
+ }
}
@Override
@@ -771,4 +773,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