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