From 16f4bb3c28fc85cffcc511718c903ada9fdab134 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期五, 26 十二月 2025 16:59:45 +0800
Subject: [PATCH] 调用mes导入工程参数修改,Excel表数据流程卡号一致;增加读取层号/工程号方法; 工程号一致覆盖更新

---
 mes-processes/mes-plcSend/src/main/java/com/mes/device/controller/DeviceConfigController.java |  106 +++++++++++++++++++++++++++++++----------------------
 1 files changed, 62 insertions(+), 44 deletions(-)

diff --git a/mes-processes/mes-plcSend/src/main/java/com/mes/device/controller/DeviceConfigController.java b/mes-processes/mes-plcSend/src/main/java/com/mes/device/controller/DeviceConfigController.java
index 7a57917..4369f5b 100644
--- a/mes-processes/mes-plcSend/src/main/java/com/mes/device/controller/DeviceConfigController.java
+++ b/mes-processes/mes-plcSend/src/main/java/com/mes/device/controller/DeviceConfigController.java
@@ -1,15 +1,16 @@
 package com.mes.device.controller;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.mes.device.entity.DeviceConfig;
 import com.mes.device.request.DeviceConfigRequest;
 import com.mes.device.service.DeviceConfigService;
 import com.mes.device.vo.DeviceConfigVO;
 import com.mes.device.vo.StatisticsVO;
 import com.mes.vo.Result;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -27,17 +28,20 @@
 @Slf4j
 @RestController
 @RequestMapping("device/config")
-@Tag(name = "璁惧閰嶇疆绠$悊", description = "璁惧閰嶇疆绠$悊鐩稿叧鎺ュ彛")
+@Api(tags = "璁惧閰嶇疆绠$悊")
 public class DeviceConfigController {
 
     @Autowired
     private DeviceConfigService deviceConfigService;
 
+    @Autowired
+    private ObjectMapper objectMapper;
+
     /**
      * 鍒涘缓璁惧閰嶇疆
      */
     @PostMapping("/devices")
-    @Operation(summary = "鍒涘缓璁惧閰嶇疆", description = "鍒涘缓鏂扮殑璁惧閰嶇疆")
+    @ApiOperation("鍒涘缓璁惧閰嶇疆")
     public Result<DeviceConfig> createDevice(
             @Valid @RequestBody DeviceConfig deviceConfig) {
         try {
@@ -46,9 +50,11 @@
                 // 鍒涘缓鎴愬姛鍚庯紝閲嶆柊鑾峰彇璁惧瀵硅薄
                 DeviceConfig created = deviceConfigService.getDeviceByCode(deviceConfig.getDeviceCode());
                 return Result.success(created);
-            } else {
-                return Result.error("璁惧閰嶇疆宸插瓨鍦�");
             }
+            return Result.error("璁惧閰嶇疆宸插瓨鍦�");
+        } catch (IllegalArgumentException e) {
+            log.warn("鍒涘缓璁惧閰嶇疆鍙傛暟鏍¢獙澶辫触: {}", e.getMessage());
+            return Result.error(e.getMessage());
         } catch (Exception e) {
             log.error("鍒涘缓璁惧閰嶇疆澶辫触", e);
             return Result.error("鍒涘缓璁惧閰嶇疆澶辫触");
@@ -59,23 +65,35 @@
      * 鏇存柊璁惧閰嶇疆
      */
     @PostMapping("/devices/update")
-    @Operation(summary = "鏇存柊璁惧閰嶇疆", description = "鏇存柊鎸囧畾ID鐨勮澶囬厤缃�")
+    @ApiOperation("鏇存柊璁惧閰嶇疆")
     public Result<DeviceConfig> updateDevice(
             @Valid @RequestBody DeviceConfigRequest request) {
         try {
-            DeviceConfig deviceConfig = (DeviceConfig) request.getDeviceConfig();
-            deviceConfig.setId(request.getDeviceId());
+            DeviceConfig deviceConfig;
+            Object deviceConfigObj = request.getDeviceConfig();
+            
+            // 濡傛灉 deviceConfig 鏄� Map 绫诲瀷锛圝SON 鍙嶅簭鍒楀寲鍚庣殑 LinkedHashMap锛夛紝闇�瑕佽浆鎹负 DeviceConfig
+            if (deviceConfigObj instanceof Map) {
+                deviceConfig = objectMapper.convertValue(deviceConfigObj, DeviceConfig.class);
+            } else if (deviceConfigObj instanceof DeviceConfig) {
+                deviceConfig = (DeviceConfig) deviceConfigObj;
+            } else {
+                log.error("涓嶆敮鎸佺殑 deviceConfig 绫诲瀷: {}", deviceConfigObj != null ? deviceConfigObj.getClass() : "null");
+                return Result.error("璁惧閰嶇疆鏁版嵁鏍煎紡閿欒");
+            }
+            
+            deviceConfig.setId(request.getId());
             boolean success = deviceConfigService.updateDevice(deviceConfig);
             if (success) {
                 // 鏇存柊鎴愬姛鍚庯紝閲嶆柊鑾峰彇璁惧瀵硅薄
-                DeviceConfig updated = deviceConfigService.getDeviceById(request.getDeviceId());
+                DeviceConfig updated = deviceConfigService.getDeviceById(request.getId());
                 return Result.success(updated);
             } else {
                 return Result.error("璁惧閰嶇疆涓嶅瓨鍦�");
             }
         } catch (Exception e) {
             log.error("鏇存柊璁惧閰嶇疆澶辫触", e);
-            return Result.error("鏇存柊璁惧閰嶇疆澶辫触");
+            return Result.error("鏇存柊璁惧閰嶇疆澶辫触: " + e.getMessage());
         }
     }
 
@@ -83,11 +101,11 @@
      * 鍒犻櫎璁惧閰嶇疆
      */
     @PostMapping("/devices/delete")
-    @Operation(summary = "鍒犻櫎璁惧閰嶇疆", description = "鍒犻櫎鎸囧畾ID鐨勮澶囬厤缃�")
+    @ApiOperation("鍒犻櫎璁惧閰嶇疆")
     public Result<Void> deleteDevice(
             @Valid @RequestBody DeviceConfigRequest request) {
         try {
-            deviceConfigService.deleteDevice(request.getDeviceId());
+            deviceConfigService.deleteDevice(request.getId());
             return Result.success(null);
         } catch (Exception e) {
             log.error("鍒犻櫎璁惧閰嶇疆澶辫触", e);
@@ -99,11 +117,11 @@
      * 鏍规嵁ID鑾峰彇璁惧閰嶇疆
      */
     @PostMapping("/devices/detail")
-    @Operation(summary = "鑾峰彇璁惧閰嶇疆璇︽儏", description = "鏍规嵁ID鑾峰彇璁惧閰嶇疆鐨勮缁嗕俊鎭�")
+    @ApiOperation("鑾峰彇璁惧閰嶇疆璇︽儏")
     public Result<DeviceConfig> getDeviceById(
             @Valid @RequestBody DeviceConfigRequest request) {
         try {
-            DeviceConfig device = deviceConfigService.getDeviceById(request.getDeviceId());
+            DeviceConfig device = deviceConfigService.getDeviceById(request.getId());
             return Result.success(device);
         } catch (Exception e) {
             log.error("鑾峰彇璁惧閰嶇疆澶辫触", e);
@@ -115,7 +133,7 @@
      * 鍒嗛〉鏌ヨ璁惧閰嶇疆鍒楄〃
      */
     @PostMapping("/devices/list")
-    @Operation(summary = "鍒嗛〉鏌ヨ璁惧閰嶇疆", description = "鍒嗛〉鏌ヨ璁惧閰嶇疆鍒楄〃")
+    @ApiOperation("鍒嗛〉鏌ヨ璁惧閰嶇疆")
     public Result<Page<DeviceConfigVO.DeviceInfo>> getDeviceList(
             @Valid @RequestBody DeviceConfigRequest request) {
         try {
@@ -137,11 +155,11 @@
      * 鍚敤璁惧
      */
     @PostMapping("/devices/enable")
-    @Operation(summary = "鍚敤璁惧", description = "鍚敤鎸囧畾ID鐨勮澶�")
+    @ApiOperation("鍚敤璁惧")
     public Result<Void> enableDevice(
             @Valid @RequestBody DeviceConfigRequest request) {
         try {
-            deviceConfigService.enableDevice(request.getDeviceId());
+            deviceConfigService.enableDevice(request.getId());
             return Result.success(null);
         } catch (Exception e) {
             log.error("鍚敤璁惧澶辫触", e);
@@ -153,11 +171,11 @@
      * 绂佺敤璁惧
      */
     @PostMapping("/devices/disable")
-    @Operation(summary = "绂佺敤璁惧", description = "绂佺敤鎸囧畾ID鐨勮澶�")
+    @ApiOperation("绂佺敤璁惧")
     public Result<Void> disableDevice(
             @Valid @RequestBody DeviceConfigRequest request) {
         try {
-            deviceConfigService.disableDevice(request.getDeviceId());
+            deviceConfigService.disableDevice(request.getId());
             return Result.success(null);
         } catch (Exception e) {
             log.error("绂佺敤璁惧澶辫触", e);
@@ -169,7 +187,7 @@
      * 鎵归噺鍚敤璁惧
      */
     @PostMapping("/devices/batch-enable")
-    @Operation(summary = "鎵归噺鍚敤璁惧", description = "鎵归噺鍚敤鎸囧畾ID鍒楄〃鐨勮澶�")
+    @ApiOperation("鎵归噺鍚敤璁惧")
     public Result<Void> batchEnableDevices(
             @Valid @RequestBody DeviceConfigRequest request) {
         try {
@@ -185,7 +203,7 @@
      * 鎵归噺绂佺敤璁惧
      */
     @PostMapping("/devices/batch-disable")
-    @Operation(summary = "鎵归噺绂佺敤璁惧", description = "鎵归噺绂佺敤鎸囧畾ID鍒楄〃鐨勮澶�")
+    @ApiOperation("鎵归噺绂佺敤璁惧")
     public Result<Void> batchDisableDevices(
             @Valid @RequestBody DeviceConfigRequest request) {
         try {
@@ -201,9 +219,9 @@
      * 鑾峰彇璁惧缁熻淇℃伅
      */
     @PostMapping("/statistics/devices")
-    @Operation(summary = "鑾峰彇璁惧缁熻淇℃伅", description = "鑾峰彇璁惧鐩稿叧鐨勭粺璁′俊鎭�")
+    @ApiOperation("鑾峰彇璁惧缁熻淇℃伅")
     public Result<StatisticsVO.DeviceStatistics> getDeviceStatistics(
-            @Parameter(description = "璁惧閰嶇疆璇锋眰") @RequestBody(required = false) DeviceConfigRequest request) {
+            @ApiParam("璁惧閰嶇疆璇锋眰") @RequestBody(required = false) DeviceConfigRequest request) {
         try {
             StatisticsVO.DeviceStatistics statistics = deviceConfigService.getDeviceStatistics(request != null ? request.getProjectId() : null);
             return Result.success(statistics);
@@ -217,11 +235,11 @@
      * 妫�鏌ヨ澶囩紪鐮佹槸鍚﹀凡瀛樺湪
      */
     @PostMapping("/devices/check-code")
-    @Operation(summary = "妫�鏌ヨ澶囩紪鐮�", description = "妫�鏌ヨ澶囩紪鐮佹槸鍚﹀凡瀛樺湪")
+    @ApiOperation("妫�鏌ヨ澶囩紪鐮�")
     public Result<Boolean> checkDeviceCodeExists(
-            @Parameter(description = "璁惧閰嶇疆璇锋眰") @RequestBody DeviceConfigRequest request) {
+            @ApiParam("璁惧閰嶇疆璇锋眰") @RequestBody DeviceConfigRequest request) {
         try {
-            boolean exists = deviceConfigService.isDeviceCodeExists(request.getDeviceCode(), request.getDeviceId());
+            boolean exists = deviceConfigService.isDeviceCodeExists(request.getDeviceCode(), request.getId());
             return Result.success(exists);
         } catch (Exception e) {
             log.error("妫�鏌ヨ澶囩紪鐮佸け璐�", e);
@@ -233,7 +251,7 @@
      * 鑾峰彇璁惧绫诲瀷鍒楄〃
      */
     @PostMapping("/devices/types")
-    @Operation(summary = "鑾峰彇璁惧绫诲瀷鍒楄〃", description = "鑾峰彇鎵�鏈夊彲鐢ㄧ殑璁惧绫诲瀷")
+    @ApiOperation("鑾峰彇璁惧绫诲瀷鍒楄〃")
     public Result<List<String>> getDeviceTypes(@RequestBody(required = false) Map<String, Object> request) {
         try {
             List<String> deviceTypes = deviceConfigService.getAllDeviceTypes();
@@ -248,7 +266,7 @@
      * 鑾峰彇璁惧鐘舵�佸垪琛�
      */
     @PostMapping("/devices/statuses")
-    @Operation(summary = "鑾峰彇璁惧鐘舵�佸垪琛�", description = "鑾峰彇鎵�鏈夊彲鐢ㄧ殑璁惧鐘舵��")
+    @ApiOperation("鑾峰彇璁惧鐘舵�佸垪琛�")
     public Result<List<String>> getDeviceStatuses(@RequestBody(required = false) Map<String, Object> request) {
         try {
             List<String> deviceStatuses = deviceConfigService.getAllDeviceStatuses();
@@ -263,9 +281,9 @@
      * 鑾峰彇璁惧閰嶇疆鏍戠粨鏋�
      */
     @PostMapping("/devices/tree")
-    @Operation(summary = "鑾峰彇璁惧閰嶇疆鏍戠粨鏋�", description = "鑾峰彇璁惧鍜岃澶囩粍鐨勬爲褰㈢粨鏋勬暟鎹�")
+    @ApiOperation("鑾峰彇璁惧閰嶇疆鏍戠粨鏋�")
     public Result<List<DeviceConfigVO.DeviceTreeNode>> getDeviceTree(
-            @Parameter(description = "璁惧閰嶇疆璇锋眰") @RequestBody(required = false) DeviceConfigRequest request) {
+            @ApiParam("璁惧閰嶇疆璇锋眰") @RequestBody(required = false) DeviceConfigRequest request) {
         try {
             List<DeviceConfigVO.DeviceTreeNode> treeData = deviceConfigService.getDeviceTree(request != null ? request.getProjectId() : null);
             return Result.success(treeData);
@@ -279,11 +297,11 @@
      * 璁惧鍋ュ悍妫�鏌�
      */
     @PostMapping("/devices/health-check")
-    @Operation(summary = "璁惧鍋ュ悍妫�鏌�", description = "瀵规寚瀹氳澶囪繘琛屽仴搴锋鏌�")
+    @ApiOperation("璁惧鍋ュ悍妫�鏌�")
     public Result<DeviceConfigVO.HealthCheckResult> performHealthCheck(
             @Valid @RequestBody DeviceConfigRequest request) {
         try {
-            DeviceConfigVO.HealthCheckResult result = deviceConfigService.performHealthCheck(request.getDeviceId());
+            DeviceConfigVO.HealthCheckResult result = deviceConfigService.performHealthCheck(request.getId());
             return Result.success(result);
         } catch (Exception e) {
             log.error("璁惧鍋ュ悍妫�鏌ュけ璐�", e);
@@ -294,26 +312,26 @@
     /**
      * 娴嬭瘯璁惧PLC杩炴帴
      * 鏀寔涓ょ鏂瑰紡锛�
-     * 1. 浼犲叆 deviceId锛屾牴鎹凡淇濆瓨鐨勮澶囬厤缃祴璇�
+     * 1. 浼犲叆 id锛屾牴鎹凡淇濆瓨鐨勮澶囬厤缃祴璇�
      * 2. 鐩存帴浼犲叆 plcIp / plcPort / timeout 杩涜涓�娆℃�ф祴璇�
      */
     @PostMapping("/devices/test-connection")
-    @Operation(summary = "娴嬭瘯璁惧PLC杩炴帴", description = "鏍规嵁璁惧閰嶇疆娴嬭瘯PLC杩炴帴鏄惁鍙揪")
+    @ApiOperation("娴嬭瘯璁惧PLC杩炴帴")
     public Result<String> testDeviceConnection(@RequestBody Map<String, Object> body) {
         try {
             String plcIp = null;
             Integer plcPort = null;
             Integer timeoutMs = null;
 
-            // 浼樺厛鏍规嵁 deviceId 璇诲彇宸蹭繚瀛橀厤缃�
-            Object deviceIdObj = body.get("deviceId");
-            if (deviceIdObj != null) {
-                Long deviceId = deviceIdObj instanceof Number
-                        ? ((Number) deviceIdObj).longValue()
-                        : Long.parseLong(deviceIdObj.toString());
-                DeviceConfig device = deviceConfigService.getDeviceById(deviceId);
+            // 浼樺厛鏍规嵁 id 璇诲彇宸蹭繚瀛橀厤缃�
+            Object idObj = body.get("id");
+            if (idObj != null) {
+                Long id = idObj instanceof Number
+                        ? ((Number) idObj).longValue()
+                        : Long.parseLong(idObj.toString());
+                DeviceConfig device = deviceConfigService.getDeviceById(id);
                 if (device == null) {
-                    return Result.error("璁惧涓嶅瓨鍦�: " + deviceId);
+                    return Result.error("璁惧涓嶅瓨鍦�: " + id);
                 }
                 plcIp = device.getPlcIp();
                 plcPort = device.getPlcPort();

--
Gitblit v1.8.0