From 366ba040d2447bacd3455299425e3166f1f992bb Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期四, 20 十一月 2025 14:38:32 +0800
Subject: [PATCH] 添加大车、大理片笼以及多设备串行/并行执行写入基础逻辑

---
 mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/DeviceConfigServiceImpl.java |   33 ++++++++++++++++++++++++++++++++-
 1 files changed, 32 insertions(+), 1 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..1488243 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) {
@@ -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());
@@ -771,4 +772,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