From 7c790c248c137a2fa5525bf66ed04c25043cded7 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期三, 03 十二月 2025 09:32:19 +0800
Subject: [PATCH] feat:用户附加同步
---
ruoyi-system/src/main/java/com/ruoyi/system/utils/TaskCodeGenerator.java | 61 ++++++++++++++++++++++++++++--
1 files changed, 56 insertions(+), 5 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..46b9d27 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,26 +15,75 @@
@Component
public class TaskCodeGenerator {
+ @Autowired
+ private SysTaskMapper sysTaskMapper;
+
/**
- * 鐢熸垚浠诲姟缂栧彿
- * 鏍煎紡锛歍ASK + YYYYMMDD + 4浣嶅簭鍙�
+ * 鐢熸垚浠诲姟缂栧彿锛堜娇鐢ㄩ粯璁ゅ墠缂�锛�
+ * 鏍煎紡锛歍 + YYYYMMDD + 4浣嶅簭鍙�
*
* @return 浠诲姟缂栧彿
+ * @deprecated 寤鸿浣跨敤 {@link #generateTaskCode(String)} 鎸囧畾鍗曟嵁绫诲瀷鍓嶇紑
*/
+ @Deprecated
public String generateTaskCode() {
+ return generateTaskCode("T");
+ }
+
+ /**
+ * 鐢熸垚浠诲姟缂栧彿
+ * 鏍煎紡锛氬崟鎹被鍨嬪墠缂� + YYYYMMDD + 4浣嶅簭鍙�
+ *
+ * @param serviceOrdClass 鍗曟嵁绫诲瀷锛堝锛欱F銆丣Z绛夛級
+ * @return 浠诲姟缂栧彿
+ */
+ public String generateTaskCode(String serviceOrdClass) {
String dateStr = DateUtils.dateTimeNow("yyyyMMdd");
- return "TASK" + dateStr + "0001";
+ return generateTaskCode(serviceOrdClass, dateStr);
}
/**
* 鏍规嵁鏃ユ湡鐢熸垚浠诲姟缂栧彿
*
+ * @param serviceOrdClass 鍗曟嵁绫诲瀷锛堝锛欱F銆丣Z绛夛級
* @param date 鏃ユ湡
* @return 浠诲姟缂栧彿
*/
- public String generateTaskCode(Date date) {
+ public String generateTaskCode(String serviceOrdClass, Date date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String dateStr = sdf.format(date);
- return "TASK" + dateStr + "0001";
+ return generateTaskCode(serviceOrdClass, dateStr);
+ }
+
+ /**
+ * 鏍规嵁鏃ユ湡瀛楃涓茬敓鎴愪换鍔$紪鍙�
+ *
+ * @param serviceOrdClass 鍗曟嵁绫诲瀷锛堝锛欱F銆丣Z绛夛級
+ * @param dateStr 鏃ユ湡瀛楃涓诧紙鏍煎紡锛歽yyyMMdd锛�
+ * @return 浠诲姟缂栧彿
+ */
+ private String generateTaskCode(String serviceOrdClass, String dateStr) {
+ // 纭繚鍗曟嵁绫诲瀷鍓嶇紑涓嶄负绌猴紝榛樿浣跨敤"T"
+ String prefix = (serviceOrdClass != null && !serviceOrdClass.trim().isEmpty())
+ ? serviceOrdClass.trim() : "T";
+
+ String datePrefix = prefix + 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