From 1fed5e7bab3a8f6b9adbfcd3695e14a03d47677f Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期五, 31 十月 2025 09:52:35 +0800
Subject: [PATCH] 更新代码
---
mes-processes/mes-plcSend/src/main/java/com/mes/controller/PlcTestWriteController.java | 383 ++++++++++++------------------------------------------
1 files changed, 84 insertions(+), 299 deletions(-)
diff --git a/mes-processes/mes-plcSend/src/main/java/com/mes/controller/PlcTestWriteController.java b/mes-processes/mes-plcSend/src/main/java/com/mes/controller/PlcTestWriteController.java
index 3c93ff3..e2c2566 100644
--- a/mes-processes/mes-plcSend/src/main/java/com/mes/controller/PlcTestWriteController.java
+++ b/mes-processes/mes-plcSend/src/main/java/com/mes/controller/PlcTestWriteController.java
@@ -1,343 +1,128 @@
package com.mes.controller;
import com.mes.entity.PlcBaseData;
-import com.mes.service.PlcAutoTestService;
import com.mes.service.PlcTestWriteService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.Map;
/**
* PLC娴嬭瘯鍐欏叆鎺у埗鍣�
- * 涓哄墠绔彁渚涙ā鎷烶LC鍐欏叆鎿嶄綔鐨勬帴鍙�
+ * 鎻愪緵PLC娴嬭瘯鍐欏叆鐩稿叧鐨凙PI鎺ュ彛
*
- * @author zhoush
+ * @author huang
* @date 2025/10/29
*/
@Slf4j
@RestController
-@RequestMapping("/plcTest/write")
+@RequestMapping("/api/plc/test")
+@Api(tags = "PLC娴嬭瘯鍐欏叆鎺ュ彛")
public class PlcTestWriteController {
@Resource
private PlcTestWriteService plcTestWriteService;
-
- @Resource
- private PlcAutoTestService plcAutoTestService;
- /**
- * 妯℃嫙PLC鍙戦�佽姹傚瓧
- */
- @PostMapping("/request")
- public Map<String, Object> simulateRequest(@RequestBody(required = false) Map<String, Object> params) {
- Map<String, Object> result = new HashMap<>();
-
- try {
- boolean success;
- if (params != null && params.containsKey("dbBlock")) {
- String dbBlock = (String) params.get("dbBlock");
- int beginIndex = (int) params.getOrDefault("beginIndex", 0);
- success = plcTestWriteService.simulatePlcRequest(dbBlock, beginIndex);
- } else {
- success = plcTestWriteService.simulatePlcRequest();
- }
-
- result.put("success", success);
- result.put("message", success ? "PLC璇锋眰瀛楀彂閫佹垚鍔�" : "鍙戦�佸け璐�");
-
- // 杩斿洖褰撳墠鐘舵��
- PlcBaseData status = plcTestWriteService.readPlcStatus();
- result.put("currentStatus", status);
-
- } catch (Exception e) {
- log.error("妯℃嫙PLC璇锋眰寮傚父", e);
- result.put("success", false);
- result.put("message", "鎿嶄綔澶辫触: " + e.getMessage());
+ @PostMapping("/simulate/request")
+ @ApiOperation("妯℃嫙PLC鍙戦�佽姹傚瓧锛堣Е鍙慚ES浠诲姟涓嬪彂锛�")
+ public boolean simulatePlcRequest(
+ @ApiParam(value = "椤圭洰鏍囪瘑锛屽vertical銆乭orizontal绛夛紝涓嶆寚瀹氬垯浣跨敤榛樿椤圭洰", example = "vertical")
+ @RequestParam(required = false) String projectId) {
+ if (projectId != null && !projectId.trim().isEmpty()) {
+ return plcTestWriteService.simulatePlcRequest(projectId.trim());
+ } else {
+ return plcTestWriteService.simulatePlcRequest();
}
-
- return result;
}
- /**
- * 妯℃嫙PLC浠诲姟瀹屾垚姹囨姤
- */
- @PostMapping("/report")
- public Map<String, Object> simulateReport(@RequestBody(required = false) Map<String, Object> params) {
- Map<String, Object> result = new HashMap<>();
-
- try {
- boolean success;
- if (params != null && params.containsKey("dbBlock")) {
- String dbBlock = (String) params.get("dbBlock");
- int beginIndex = (int) params.getOrDefault("beginIndex", 0);
- success = plcTestWriteService.simulatePlcReport(dbBlock, beginIndex);
- } else {
- success = plcTestWriteService.simulatePlcReport();
- }
-
- result.put("success", success);
- result.put("message", success ? "PLC浠诲姟姹囨姤鎴愬姛" : "姹囨姤澶辫触");
-
- PlcBaseData status = plcTestWriteService.readPlcStatus();
- result.put("currentStatus", status);
-
- } catch (Exception e) {
- log.error("妯℃嫙涓婄墖PLC姹囨姤寮傚父", e);
- result.put("success", false);
- result.put("message", "鎿嶄綔澶辫触: " + e.getMessage());
+ @PostMapping("/simulate/report")
+ @ApiOperation("妯℃嫙PLC浠诲姟瀹屾垚姹囨姤")
+ public boolean simulatePlcReport(
+ @ApiParam(value = "椤圭洰鏍囪瘑锛屽vertical銆乭orizontal绛夛紝涓嶆寚瀹氬垯浣跨敤榛樿椤圭洰", example = "vertical")
+ @RequestParam(required = false) String projectId) {
+ if (projectId != null && !projectId.trim().isEmpty()) {
+ return plcTestWriteService.simulatePlcReport(projectId.trim());
+ } else {
+ return plcTestWriteService.simulatePlcReport();
}
-
- return result;
}
- /**
- * 妯℃嫙PLC鑱旀満鐘舵��
- */
- @PostMapping("/online")
- public Map<String, Object> simulateOnline(@RequestBody Map<String, Object> params) {
- Map<String, Object> result = new HashMap<>();
-
- try {
- int onlineState = (int) params.getOrDefault("onlineState", 1);
- boolean success;
-
- if (params.containsKey("dbBlock")) {
- String dbBlock = (String) params.get("dbBlock");
- int beginIndex = (int) params.getOrDefault("beginIndex", 0);
- success = plcTestWriteService.simulateOnlineStatus(onlineState, dbBlock, beginIndex);
- } else {
- success = plcTestWriteService.simulateOnlineStatus(onlineState);
- }
-
- result.put("success", success);
- result.put("message", success ? "PLC鑱旀満鐘舵�佽缃垚鍔�: " + onlineState : "璁剧疆澶辫触");
-
- PlcBaseData status = plcTestWriteService.readPlcStatus();
- result.put("currentStatus", status);
-
- } catch (Exception e) {
- log.error("妯℃嫙PLC鑱旀満鐘舵�佸紓甯�", e);
- result.put("success", false);
- result.put("message", "鎿嶄綔澶辫触: " + e.getMessage());
+ @PostMapping("/simulate/online")
+ @ApiOperation("妯℃嫙PLC鍙戦�佽仈鏈虹姸鎬�")
+ public boolean simulateOnlineStatus(
+ @ApiParam(value = "鑱旀満鐘舵�侊細1-鑱旀満锛�0-鑴辨満", required = true, example = "1")
+ @RequestParam int onlineState,
+ @ApiParam(value = "椤圭洰鏍囪瘑锛屽vertical銆乭orizontal绛夛紝涓嶆寚瀹氬垯浣跨敤榛樿椤圭洰", example = "vertical")
+ @RequestParam(required = false) String projectId) {
+ if (projectId != null && !projectId.trim().isEmpty()) {
+ return plcTestWriteService.simulateOnlineStatus(onlineState, projectId.trim());
+ } else {
+ return plcTestWriteService.simulateOnlineStatus(onlineState);
}
-
- return result;
}
- /**
- * 閲嶇疆PLC鐘舵��
- */
@PostMapping("/reset")
- public Map<String, Object> resetPlc(@RequestBody(required = false) Map<String, Object> params) {
- Map<String, Object> result = new HashMap<>();
-
- try {
- boolean success;
- if (params != null && params.containsKey("dbBlock")) {
- String dbBlock = (String) params.get("dbBlock");
- int beginIndex = (int) params.getOrDefault("beginIndex", 0);
- success = plcTestWriteService.resetPlc(dbBlock, beginIndex);
- } else {
- success = plcTestWriteService.resetPlc();
- }
-
- result.put("success", success);
- result.put("message", success ? "PLC鐘舵�侀噸缃垚鍔�" : "閲嶇疆澶辫触");
-
- PlcBaseData status = plcTestWriteService.readPlcStatus();
- result.put("currentStatus", status);
-
- } catch (Exception e) {
- log.error("閲嶇疆涓婄墖PLC鐘舵�佸紓甯�", e);
- result.put("success", false);
- result.put("message", "鎿嶄綔澶辫触: " + e.getMessage());
+ @ApiOperation("閲嶇疆PLC鎵�鏈夌姸鎬�")
+ public boolean resetPlc(
+ @ApiParam(value = "椤圭洰鏍囪瘑锛屽vertical銆乭orizontal绛夛紝涓嶆寚瀹氬垯浣跨敤榛樿椤圭洰", example = "vertical")
+ @RequestParam(required = false) String projectId) {
+ if (projectId != null && !projectId.trim().isEmpty()) {
+ return plcTestWriteService.resetPlc(projectId.trim());
+ } else {
+ return plcTestWriteService.resetPlc();
}
-
- return result;
}
- /**
- * 璇诲彇PLC褰撳墠鐘舵��
- */
@GetMapping("/status")
- public Map<String, Object> getPlcStatus(@RequestParam(required = false) String dbBlock,
- @RequestParam(required = false, defaultValue = "0") Integer beginIndex) {
- Map<String, Object> result = new HashMap<>();
-
- try {
- PlcBaseData status;
- if (dbBlock != null) {
- status = plcTestWriteService.readPlcStatus(dbBlock, beginIndex);
- } else {
- status = plcTestWriteService.readPlcStatus();
- }
-
- result.put("success", true);
- result.put("data", status);
- result.put("message", "鑾峰彇涓婄墖PLC鐘舵�佹垚鍔�");
-
- } catch (Exception e) {
- log.error("璇诲彇涓婄墖PLC鐘舵�佸紓甯�", e);
- result.put("success", false);
- result.put("message", "鑾峰彇鐘舵�佸け璐�: " + e.getMessage());
+ @ApiOperation("璇诲彇PLC褰撳墠鐘舵��")
+ public PlcBaseData readPlcStatus(
+ @ApiParam(value = "椤圭洰鏍囪瘑锛屽vertical銆乭orizontal绛夛紝涓嶆寚瀹氬垯浣跨敤榛樿椤圭洰", example = "vertical")
+ @RequestParam(required = false) String projectId) {
+ if (projectId != null && !projectId.trim().isEmpty()) {
+ return plcTestWriteService.readPlcStatus(projectId.trim());
+ } else {
+ return plcTestWriteService.readPlcStatus();
}
-
- return result;
}
- /**
- * 鎵归噺娴嬭瘯 - 妯℃嫙瀹屾暣浠诲姟娴佺▼
- */
- @PostMapping("/batch/test")
- public Map<String, Object> batchTest(@RequestBody Map<String, Object> params) {
- Map<String, Object> result = new HashMap<>();
-
+ @PostMapping("/current-project")
+ @ApiOperation("璁剧疆褰撳墠椤圭洰鏍囪瘑")
+ public boolean setCurrentProjectId(
+ @ApiParam(value = "椤圭洰鏍囪瘑锛屽vertical銆乭orizontal绛�", required = true, example = "vertical")
+ @RequestParam String projectId) {
try {
- String protocolType = (String) params.get("protocolType");
- int taskCount = (int) params.getOrDefault("taskCount", 1);
-
- log.info("寮�濮嬫壒閲忔祴璇曪紝鍗忚绫诲瀷: {}, 浠诲姟鏁伴噺: {}", protocolType, taskCount);
-
- // 妯℃嫙瀹屾暣鐨勪换鍔℃祦绋�
- for (int i = 1; i <= taskCount; i++) {
- log.info("鎵ц绗瑊}涓换鍔�", i);
-
- if ("load".equals(protocolType)) {
- // 娴佺▼
- plcTestWriteService.simulatePlcRequest(); // 鍙戦�佽姹�
- // 绛夊緟MES鍝嶅簲
- Thread.sleep(1000);
- plcTestWriteService.simulatePlcReport(); // 浠诲姟瀹屾垚
-
- } else if ("raw".equals(protocolType)) {
- // 娴佺▼
- plcTestWriteService.simulatePlcRequest(); // 鍙戦�佽姹�
- // 绛夊緟MES鍝嶅簲
- Thread.sleep(1000);
- plcTestWriteService.simulatePlcReport(); // 浠诲姟瀹屾垚
- }
-
- // 浠诲姟闂撮殧
- if (i < taskCount) {
- Thread.sleep(2000);
- }
+ plcTestWriteService.setCurrentProjectId(projectId.trim());
+ return true;
+ } catch (Exception e) {
+ log.error("璁剧疆褰撳墠椤圭洰鏍囪瘑澶辫触", e);
+ return false;
+ }
+ }
+
+ @GetMapping("/current-project")
+ @ApiOperation("鑾峰彇褰撳墠椤圭洰鏍囪瘑")
+ public String getCurrentProjectId() {
+ return plcTestWriteService.getCurrentProjectId();
+ }
+
+ @PostMapping("/cache/clear")
+ @ApiOperation("娓呴櫎S7Serializer缂撳瓨")
+ public boolean clearSerializerCache(
+ @ApiParam(value = "椤圭洰鏍囪瘑锛屽vertical銆乭orizontal绛夛紝涓嶆寚瀹氬垯娓呴櫎鎵�鏈夌紦瀛�", example = "vertical")
+ @RequestParam(required = false) String projectId) {
+ try {
+ if (projectId != null && !projectId.trim().isEmpty()) {
+ plcTestWriteService.clearSerializerCache(projectId.trim());
+ } else {
+ plcTestWriteService.clearAllSerializerCache();
}
-
- result.put("success", true);
- result.put("message", "鎵归噺娴嬭瘯瀹屾垚锛屽叡鎵ц" + taskCount + "涓换鍔�");
-
+ return true;
} catch (Exception e) {
- log.error("鎵归噺娴嬭瘯寮傚父", e);
- result.put("success", false);
- result.put("message", "鎵归噺娴嬭瘯澶辫触: " + e.getMessage());
+ log.error("娓呴櫎S7Serializer缂撳瓨澶辫触", e);
+ return false;
}
-
- return result;
- }
-
- /**
- * 璁剧疆DB鍧楀湴鍧�
- */
- @PostMapping("/dbBlock")
- public Map<String, Object> setDbBlock(@RequestBody Map<String, Object> params) {
- Map<String, Object> result = new HashMap<>();
-
- try {
- String dbBlock = (String) params.get("dbBlock");
- plcTestWriteService.setCurrentDbBlock(dbBlock);
- result.put("success", true);
- result.put("message", "DB鍧楀湴鍧�璁剧疆鎴愬姛: " + dbBlock);
- } catch (Exception e) {
- log.error("璁剧疆DB鍧楀湴鍧�寮傚父", e);
- result.put("success", false);
- result.put("message", "璁剧疆DB鍧楀湴鍧�澶辫触: " + e.getMessage());
- }
-
- return result;
- }
-
- /**
- * 鑾峰彇褰撳墠DB鍧楀湴鍧�
- */
- @GetMapping("/dbBlock")
- public Map<String, Object> getDbBlock() {
- Map<String, Object> result = new HashMap<>();
-
- try {
- String dbBlock = plcTestWriteService.getCurrentDbBlock();
- result.put("success", true);
- result.put("data", dbBlock);
- result.put("message", "鑾峰彇DB鍧楀湴鍧�鎴愬姛");
- } catch (Exception e) {
- log.error("鑾峰彇DB鍧楀湴鍧�寮傚父", e);
- result.put("success", false);
- result.put("message", "鑾峰彇DB鍧楀湴鍧�澶辫触: " + e.getMessage());
- }
-
- return result;
- }
-
- /**
- * 鍚敤鑷姩娴嬭瘯妯″紡
- */
- @PostMapping("/auto/enable")
- public Map<String, Object> enableAutoTest() {
- Map<String, Object> result = new HashMap<>();
-
- try {
- plcAutoTestService.enableAutoTest();
- result.put("success", true);
- result.put("message", "鑷姩娴嬭瘯妯″紡宸插惎鐢�");
- } catch (Exception e) {
- log.error("鍚敤鑷姩娴嬭瘯妯″紡寮傚父", e);
- result.put("success", false);
- result.put("message", "鍚敤鑷姩娴嬭瘯妯″紡澶辫触: " + e.getMessage());
- }
-
- return result;
- }
-
- /**
- * 绂佺敤鑷姩娴嬭瘯妯″紡
- */
- @PostMapping("/auto/disable")
- public Map<String, Object> disableAutoTest() {
- Map<String, Object> result = new HashMap<>();
-
- try {
- plcAutoTestService.disableAutoTest();
- result.put("success", true);
- result.put("message", "鑷姩娴嬭瘯妯″紡宸茬鐢�");
- } catch (Exception e) {
- log.error("绂佺敤鑷姩娴嬭瘯妯″紡寮傚父", e);
- result.put("success", false);
- result.put("message", "绂佺敤鑷姩娴嬭瘯妯″紡澶辫触: " + e.getMessage());
- }
-
- return result;
- }
-
- /**
- * 鑾峰彇鑷姩娴嬭瘯妯″紡鐘舵��
- */
- @GetMapping("/auto/status")
- public Map<String, Object> getAutoTestStatus() {
- Map<String, Object> result = new HashMap<>();
-
- try {
- boolean isEnabled = plcAutoTestService.isAutoTestEnabled();
- result.put("success", true);
- result.put("data", isEnabled);
- result.put("message", "鑾峰彇鑷姩娴嬭瘯妯″紡鐘舵�佹垚鍔�");
- } catch (Exception e) {
- log.error("鑾峰彇鑷姩娴嬭瘯妯″紡鐘舵�佸紓甯�", e);
- result.put("success", false);
- result.put("message", "鑾峰彇鑷姩娴嬭瘯妯″紡鐘舵�佸け璐�: " + e.getMessage());
- }
-
- return result;
}
}
\ No newline at end of file
--
Gitblit v1.8.0