From 62a079a15b46925283581f6caaf631b5a4558927 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期三, 24 九月 2025 11:00:10 +0800
Subject: [PATCH] feat: 初始化app

---
 ruoyi-system/src/main/java/com/ruoyi/system/utils/TaskCodeGenerator.java |   36 ++++++++++++++++++++++++++++++++++--
 1 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/utils/TaskCodeGenerator.java b/ruoyi-system/src/main/java/com/ruoyi/system/utils/TaskCodeGenerator.java
index 6f73f74..22c5c72 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/utils/TaskCodeGenerator.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/utils/TaskCodeGenerator.java
@@ -2,8 +2,10 @@
 
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.system.mapper.SysTaskMapper;
 
 /**
  * 浠诲姟缂栧彿鐢熸垚鍣�
@@ -13,6 +15,9 @@
 @Component
 public class TaskCodeGenerator {
     
+    @Autowired
+    private SysTaskMapper sysTaskMapper;
+    
     /**
      * 鐢熸垚浠诲姟缂栧彿
      * 鏍煎紡锛歍ASK + YYYYMMDD + 4浣嶅簭鍙�
@@ -21,7 +26,7 @@
      */
     public String generateTaskCode() {
         String dateStr = DateUtils.dateTimeNow("yyyyMMdd");
-        return "TASK" + dateStr + "0001";
+        return generateTaskCode(dateStr);
     }
     
     /**
@@ -33,6 +38,33 @@
     public String generateTaskCode(Date date) {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
         String dateStr = sdf.format(date);
-        return "TASK" + dateStr + "0001";
+        return generateTaskCode(dateStr);
+    }
+    
+    /**
+     * 鏍规嵁鏃ユ湡瀛楃涓茬敓鎴愪换鍔$紪鍙�
+     * 
+     * @param dateStr 鏃ユ湡瀛楃涓诧紙鏍煎紡锛歽yyyMMdd锛�
+     * @return 浠诲姟缂栧彿
+     */
+    private String generateTaskCode(String dateStr) {
+        String datePrefix = "TASK" + dateStr;
+        
+        // 鏌ヨ褰撴棩鏈�澶х紪鍙�
+        String maxTaskCode = sysTaskMapper.selectMaxTaskCodeByDatePrefix(datePrefix);
+        
+        int sequence = 1;
+        if (maxTaskCode != null && maxTaskCode.startsWith(datePrefix)) {
+            // 鎻愬彇搴忓彿閮ㄥ垎
+            String sequenceStr = maxTaskCode.substring(datePrefix.length());
+            try {
+                sequence = Integer.parseInt(sequenceStr) + 1;
+            } catch (NumberFormatException e) {
+                sequence = 1;
+            }
+        }
+        
+        // 鏍煎紡鍖栦负4浣嶅簭鍙�
+        return datePrefix + String.format("%04d", sequence);
     }
 }

--
Gitblit v1.9.1