From 1566e4c7604d85737ea67fe6757e71b8185fa48e Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期二, 18 十一月 2025 16:52:42 +0800
Subject: [PATCH] 添加设备管理页面,添加测试设备任务监控页面
---
mes-processes/mes-plcSend/src/main/java/com/mes/device/controller/DeviceConfigController.java | 66 ++++++++++++++++++++------------
1 files changed, 41 insertions(+), 25 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..c1f5da1 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 {
@@ -59,11 +63,23 @@
* 鏇存柊璁惧閰嶇疆
*/
@PostMapping("/devices/update")
- @Operation(summary = "鏇存柊璁惧閰嶇疆", description = "鏇存柊鎸囧畾ID鐨勮澶囬厤缃�")
+ @ApiOperation("鏇存柊璁惧閰嶇疆")
public Result<DeviceConfig> updateDevice(
@Valid @RequestBody DeviceConfigRequest request) {
try {
- DeviceConfig deviceConfig = (DeviceConfig) request.getDeviceConfig();
+ 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.getDeviceId());
boolean success = deviceConfigService.updateDevice(deviceConfig);
if (success) {
@@ -75,7 +91,7 @@
}
} catch (Exception e) {
log.error("鏇存柊璁惧閰嶇疆澶辫触", e);
- return Result.error("鏇存柊璁惧閰嶇疆澶辫触");
+ return Result.error("鏇存柊璁惧閰嶇疆澶辫触: " + e.getMessage());
}
}
@@ -83,7 +99,7 @@
* 鍒犻櫎璁惧閰嶇疆
*/
@PostMapping("/devices/delete")
- @Operation(summary = "鍒犻櫎璁惧閰嶇疆", description = "鍒犻櫎鎸囧畾ID鐨勮澶囬厤缃�")
+ @ApiOperation("鍒犻櫎璁惧閰嶇疆")
public Result<Void> deleteDevice(
@Valid @RequestBody DeviceConfigRequest request) {
try {
@@ -99,7 +115,7 @@
* 鏍规嵁ID鑾峰彇璁惧閰嶇疆
*/
@PostMapping("/devices/detail")
- @Operation(summary = "鑾峰彇璁惧閰嶇疆璇︽儏", description = "鏍规嵁ID鑾峰彇璁惧閰嶇疆鐨勮缁嗕俊鎭�")
+ @ApiOperation("鑾峰彇璁惧閰嶇疆璇︽儏")
public Result<DeviceConfig> getDeviceById(
@Valid @RequestBody DeviceConfigRequest request) {
try {
@@ -115,7 +131,7 @@
* 鍒嗛〉鏌ヨ璁惧閰嶇疆鍒楄〃
*/
@PostMapping("/devices/list")
- @Operation(summary = "鍒嗛〉鏌ヨ璁惧閰嶇疆", description = "鍒嗛〉鏌ヨ璁惧閰嶇疆鍒楄〃")
+ @ApiOperation("鍒嗛〉鏌ヨ璁惧閰嶇疆")
public Result<Page<DeviceConfigVO.DeviceInfo>> getDeviceList(
@Valid @RequestBody DeviceConfigRequest request) {
try {
@@ -137,7 +153,7 @@
* 鍚敤璁惧
*/
@PostMapping("/devices/enable")
- @Operation(summary = "鍚敤璁惧", description = "鍚敤鎸囧畾ID鐨勮澶�")
+ @ApiOperation("鍚敤璁惧")
public Result<Void> enableDevice(
@Valid @RequestBody DeviceConfigRequest request) {
try {
@@ -153,7 +169,7 @@
* 绂佺敤璁惧
*/
@PostMapping("/devices/disable")
- @Operation(summary = "绂佺敤璁惧", description = "绂佺敤鎸囧畾ID鐨勮澶�")
+ @ApiOperation("绂佺敤璁惧")
public Result<Void> disableDevice(
@Valid @RequestBody DeviceConfigRequest request) {
try {
@@ -169,7 +185,7 @@
* 鎵归噺鍚敤璁惧
*/
@PostMapping("/devices/batch-enable")
- @Operation(summary = "鎵归噺鍚敤璁惧", description = "鎵归噺鍚敤鎸囧畾ID鍒楄〃鐨勮澶�")
+ @ApiOperation("鎵归噺鍚敤璁惧")
public Result<Void> batchEnableDevices(
@Valid @RequestBody DeviceConfigRequest request) {
try {
@@ -185,7 +201,7 @@
* 鎵归噺绂佺敤璁惧
*/
@PostMapping("/devices/batch-disable")
- @Operation(summary = "鎵归噺绂佺敤璁惧", description = "鎵归噺绂佺敤鎸囧畾ID鍒楄〃鐨勮澶�")
+ @ApiOperation("鎵归噺绂佺敤璁惧")
public Result<Void> batchDisableDevices(
@Valid @RequestBody DeviceConfigRequest request) {
try {
@@ -201,9 +217,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,9 +233,9 @@
* 妫�鏌ヨ澶囩紪鐮佹槸鍚﹀凡瀛樺湪
*/
@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());
return Result.success(exists);
@@ -233,7 +249,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 +264,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 +279,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,7 +295,7 @@
* 璁惧鍋ュ悍妫�鏌�
*/
@PostMapping("/devices/health-check")
- @Operation(summary = "璁惧鍋ュ悍妫�鏌�", description = "瀵规寚瀹氳澶囪繘琛屽仴搴锋鏌�")
+ @ApiOperation("璁惧鍋ュ悍妫�鏌�")
public Result<DeviceConfigVO.HealthCheckResult> performHealthCheck(
@Valid @RequestBody DeviceConfigRequest request) {
try {
@@ -298,7 +314,7 @@
* 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;
--
Gitblit v1.8.0