From e76f0739e647fe8a7e0e2618914e2faff554b1b7 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期一, 17 十一月 2025 17:33:23 +0800
Subject: [PATCH] 解决冲突

---
 mes-processes/mes-plcSend/src/main/java/com/mes/service/impl/PlcTestTaskServiceImpl.java |  211 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 211 insertions(+), 0 deletions(-)

diff --git a/mes-processes/mes-plcSend/src/main/java/com/mes/service/impl/PlcTestTaskServiceImpl.java b/mes-processes/mes-plcSend/src/main/java/com/mes/service/impl/PlcTestTaskServiceImpl.java
new file mode 100644
index 0000000..c1b5f21
--- /dev/null
+++ b/mes-processes/mes-plcSend/src/main/java/com/mes/service/impl/PlcTestTaskServiceImpl.java
@@ -0,0 +1,211 @@
+package com.mes.service.impl;
+
+import com.mes.entity.PlcTestTask;
+import com.mes.mapper.PlcTestTaskMapper;
+import com.mes.service.PlcTestTaskService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * PLC娴嬭瘯浠诲姟鏈嶅姟瀹炵幇绫�
+ * 
+ * @author huang
+ * @date 2025/11/04
+ */
+@Slf4j
+@Service
+public class PlcTestTaskServiceImpl implements PlcTestTaskService {
+    
+    @Autowired
+    private PlcTestTaskMapper plcTestTaskMapper;
+    
+    /**
+     * 鍒涘缓鏂颁换鍔�
+     */
+    @Override
+    public PlcTestTask createTask(PlcTestTask task) {
+        try {
+            if (task == null) {
+                throw new RuntimeException("鍒涘缓浠诲姟澶辫触锛歵ask瀵硅薄涓嶈兘涓虹┖");
+            }
+            
+            if (!StringUtils.hasText(task.getProjectId())) {
+                throw new RuntimeException("鍒涘缓浠诲姟澶辫触锛歱rojectId涓嶈兘涓虹┖");
+            }
+            
+            // 涓�浜涘繀涓婂瓧娈靛簲涓�娆¤缃�
+            if (!StringUtils.hasText(task.getModule())) {
+                task.setModule("default");
+            }
+            
+            if (!StringUtils.hasText(task.getOperationMode())) {
+                task.setOperationMode("MANUAL");
+            }
+            if (!StringUtils.hasText(task.getStatus())) {
+                task.setStatus("PENDING");
+            }
+            
+            if (task.getStartTime() == null) {
+                task.setStartTime(new Date());
+            }
+            
+            if (task.getCreatedAt() == null) {
+                task.setCreatedAt(new Date());
+            }
+            
+            if (task.getUpdatedAt() == null) {
+                task.setUpdatedAt(new Date());
+            }
+            
+            log.info("鍗冲皢鎻掑叆浠诲姟锛歱rojectId={}, module={}, status={}", 
+                task.getProjectId(), task.getModule(), task.getStatus());
+            
+            int insertCount = plcTestTaskMapper.insert(task);
+            
+            if (insertCount <= 0) {
+                throw new RuntimeException("鍒涘缓浠诲姟澶辫触锛氭暟鎹簱鎻掑叆杩斿洖0琛�");
+            }
+            
+            log.info("鍒涘缓PLC娴嬭瘯浠诲姟鎴愬姛锛宨d: {}, projectId: {}", task.getId(), task.getProjectId());
+            return task;
+        } catch (Exception e) {
+            log.error("鍒涘缓PLC娴嬭瘯浠诲姟澶辫触", e);
+            throw new RuntimeException("鍒涘缓PLC娴嬭瘯浠诲姟澶辫触: " + e.getMessage(), e);
+        }
+    }
+    
+    /**
+     * 鏍规嵁id鏌ヨ浠诲姟
+     */
+    @Override
+    public PlcTestTask getTaskById(Long id) {
+        if (id == null) {
+            log.warn("鏌ヨ浠诲姟澶辫触锛歩d涓嶈兘涓虹┖");
+            return null;
+        }
+        try {
+            return plcTestTaskMapper.selectById(id);
+        } catch (Exception e) {
+            log.error("鏌ヨ浠诲姟澶辫触锛宨d: {}", id, e);
+            return null;
+        }
+    }
+    
+    /**
+     * 鏌ヨ椤圭洰鐨勬墍鏈変换鍔�
+     */
+    @Override
+    public List<PlcTestTask> getTasksByProjectId(String projectId) {
+        try {
+            if (!StringUtils.hasText(projectId)) {
+                log.warn("鏌ヨ浠诲姟澶辫触锛歱rojectId涓虹┖");
+                return null;
+            }
+            
+            List<PlcTestTask> tasks = plcTestTaskMapper.selectRunningTasks(projectId);
+            log.debug("鏌ヨ椤圭洰[{}]鐨勪换鍔★紝鍏眥}鏉�", projectId, tasks != null ? tasks.size() : 0);
+            return tasks;
+        } catch (Exception e) {
+            log.error("鏌ヨ椤圭洰浠诲姟澶辫触锛宲rojectId: {}", projectId, e);
+            throw new RuntimeException("鏌ヨ椤圭洰浠诲姟澶辫触", e);
+        }
+    }
+    
+    /**
+     * 鏌ヨ椤圭洰鐨勮繍琛屼腑浠诲姟
+     */
+    @Override
+    public List<PlcTestTask> getRunningTasks(String projectId) {
+        try {
+            if (!StringUtils.hasText(projectId)) {
+                log.warn("鏌ヨ杩愯涓换鍔″け璐ワ細projectId涓虹┖");
+                return null;
+            }
+            
+            List<PlcTestTask> tasks = plcTestTaskMapper.selectRunningTasks(projectId);
+            log.debug("鏌ヨ椤圭洰[{}]鐨勮繍琛屼腑浠诲姟锛屽叡{}鏉�", projectId, tasks != null ? tasks.size() : 0);
+            return tasks;
+        } catch (Exception e) {
+            log.error("鏌ヨ杩愯涓换鍔″け璐ワ紝projectId: {}", projectId, e);
+            throw new RuntimeException("鏌ヨ杩愯涓换鍔″け璐�", e);
+        }
+    }
+    
+    /**
+     * 鏇存柊浠诲姟鐘舵��
+     */
+    @Override
+    public boolean updateTaskStatus(Long id, String status) {
+        if (id == null || !StringUtils.hasText(status)) {
+            log.warn("鏇存柊浠诲姟鐘舵�佸け璐ワ細id鎴杝tatus涓嶈兘涓虹┖");
+            return false;
+        }
+        try {
+            PlcTestTask task = new PlcTestTask();
+            task.setId(id);
+            task.setStatus(status);
+            task.setUpdatedAt(new Date());
+            
+            int result = plcTestTaskMapper.updateById(task);
+            log.info("鏇存柊浠诲姟鐘舵�佹垚鍔燂紝id: {}, status: {}", id, status);
+            return result > 0;
+        } catch (Exception e) {
+            log.error("鏇存柊浠诲姟鐘舵�佸け璐ワ紝id: {}, status: {}", id, status, e);
+            return false;
+        }
+    }
+    
+    /**
+     * 浠诲姟瀹屾垚
+     */
+    @Override
+    public boolean completeTask(Long id, String status, Integer duration, String result, String errorMessage) {
+        if (id == null || !StringUtils.hasText(status)) {
+            log.warn("瀹屾垚浠诲姟澶辫触锛歩d鎴杝tatus涓嶈兘涓虹┖");
+            return false;
+        }
+        try {
+            PlcTestTask task = new PlcTestTask();
+            task.setId(id);
+            task.setStatus(status);
+            task.setDuration(duration);
+            task.setResult(result);
+            task.setErrorMessage(errorMessage);
+            task.setEndTime(new Date());
+            task.setUpdatedAt(new Date());
+            
+            int updateResult = plcTestTaskMapper.updateById(task);
+            log.info("瀹屾垚浠诲姟鎴愬姛锛宨d: {}, status: {}", id, status);
+            return updateResult > 0;
+        } catch (Exception e) {
+            log.error("瀹屾垚浠诲姟澶辫触锛宨d: {}, status: {}", id, status, e);
+            return false;
+        }
+    }
+    
+    /**
+     * 鍒犻櫎浠诲姟
+     */
+    @Override
+    public boolean deleteTask(Long id) {
+        if (id == null) {
+            log.warn("鍒犻櫎浠诲姟澶辫触锛歩d涓嶈兘涓虹┖");
+            return false;
+        }
+        try {
+            int result = plcTestTaskMapper.deleteById(id);
+            log.info("鍒犻櫎浠诲姟鎴愬姛锛宨d: {}", id);
+            return result > 0;
+        } catch (Exception e) {
+            log.error("鍒犻櫎浠诲姟澶辫触锛宨d: {}", id, e);
+            return false;
+        }
+    }
+    
+    
+}

--
Gitblit v1.8.0