|
|
|
|
@ -170,7 +170,7 @@ public class SysCodeRuleServiceImpl implements ISysCodeRuleService {
|
|
|
|
|
String dateToStr = null;
|
|
|
|
|
if (sysCodeRule.getRenewFlag().equals(SysConstants.SYS_RENEW_FLAG_DAY)) {
|
|
|
|
|
//每日更新
|
|
|
|
|
dateToStr = DateUtils.parseDateToStr(ruleTemplate, new Date());
|
|
|
|
|
dateToStr = formatRuleTemplate(ruleTemplate);
|
|
|
|
|
code.append(dateToStr);
|
|
|
|
|
// 如果 nextCode 不包含 dateToStr,说明是新的日期
|
|
|
|
|
if (nextCode == null || !nextCode.contains(dateToStr)) {
|
|
|
|
|
@ -181,7 +181,7 @@ public class SysCodeRuleServiceImpl implements ISysCodeRuleService {
|
|
|
|
|
return sysCodeRule;
|
|
|
|
|
}
|
|
|
|
|
} else if (sysCodeRule.getRenewFlag().equals(SysConstants.SYS_RENEW_FLAG_NO) && ruleTemplate != null) {
|
|
|
|
|
dateToStr = DateUtils.parseDateToStr(ruleTemplate, new Date());
|
|
|
|
|
dateToStr = formatRuleTemplate(ruleTemplate);
|
|
|
|
|
code.append(dateToStr);
|
|
|
|
|
}
|
|
|
|
|
long seq = 1L;
|
|
|
|
|
@ -197,6 +197,34 @@ public class SysCodeRuleServiceImpl implements ISysCodeRuleService {
|
|
|
|
|
return sysCodeRule;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 格式化规则模板,将日期格式模式(yyyy、yyyyMM、yyyyMMdd)替换为实际日期值,其他字符保持不变
|
|
|
|
|
*
|
|
|
|
|
* @param ruleTemplate 规则模板
|
|
|
|
|
* @return 格式化后的字符串
|
|
|
|
|
*/
|
|
|
|
|
private String formatRuleTemplate(String ruleTemplate) {
|
|
|
|
|
if (StringUtils.isBlank(ruleTemplate)) {
|
|
|
|
|
return ruleTemplate;
|
|
|
|
|
}
|
|
|
|
|
Date currentDate = new Date();
|
|
|
|
|
String result = ruleTemplate;
|
|
|
|
|
|
|
|
|
|
// 按优先级处理:yyyyMMdd > yyyyMM > yyyy
|
|
|
|
|
if (result.contains("yyyyMMdd")) {
|
|
|
|
|
String dateStr = DateUtils.parseDateToStr("yyyyMMdd", currentDate);
|
|
|
|
|
result = result.replace("yyyyMMdd", dateStr);
|
|
|
|
|
} else if (result.contains("yyyyMM")) {
|
|
|
|
|
String dateStr = DateUtils.parseDateToStr("yyyyMM", currentDate);
|
|
|
|
|
result = result.replace("yyyyMM", dateStr);
|
|
|
|
|
} else if (result.contains("yyyy")) {
|
|
|
|
|
String dateStr = DateUtils.parseDateToStr("yyyy", currentDate);
|
|
|
|
|
result = result.replace("yyyy", dateStr);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static String formatSequence(Long sequenceLength, Long seq) {
|
|
|
|
|
String seqStr = String.valueOf(seq);
|
|
|
|
|
if (seqStr.length() >= sequenceLength) {
|
|
|
|
|
|