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