From 2c86a8bd60deed0dd0e044bad6fb83f75d19a332 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 26 十月 2025 15:05:50 +0800
Subject: [PATCH] Merge branch 'feature-task'
---
ruoyi-system/src/main/java/com/ruoyi/system/utils/TaskCodeGenerator.java | 70 +++++++++++++++++++++++++++++++++++
1 files changed, 70 insertions(+), 0 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
new file mode 100644
index 0000000..22c5c72
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/utils/TaskCodeGenerator.java
@@ -0,0 +1,70 @@
+package com.ruoyi.system.utils;
+
+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;
+
+/**
+ * 浠诲姟缂栧彿鐢熸垚鍣�
+ *
+ * @author ruoyi
+ */
+@Component
+public class TaskCodeGenerator {
+
+ @Autowired
+ private SysTaskMapper sysTaskMapper;
+
+ /**
+ * 鐢熸垚浠诲姟缂栧彿
+ * 鏍煎紡锛歍ASK + YYYYMMDD + 4浣嶅簭鍙�
+ *
+ * @return 浠诲姟缂栧彿
+ */
+ public String generateTaskCode() {
+ String dateStr = DateUtils.dateTimeNow("yyyyMMdd");
+ return generateTaskCode(dateStr);
+ }
+
+ /**
+ * 鏍规嵁鏃ユ湡鐢熸垚浠诲姟缂栧彿
+ *
+ * @param date 鏃ユ湡
+ * @return 浠诲姟缂栧彿
+ */
+ public String generateTaskCode(Date date) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+ String dateStr = sdf.format(date);
+ 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