1.0.30 优化编码规则生成逻辑

dev
yinq 1 month ago
parent 5cc423f97d
commit 16ee5b8d01

@ -170,7 +170,7 @@ public class SysCodeRuleServiceImpl implements ISysCodeRuleService {
String dateToStr = null; String dateToStr = null;
if (sysCodeRule.getRenewFlag().equals(SysConstants.SYS_RENEW_FLAG_DAY)) { if (sysCodeRule.getRenewFlag().equals(SysConstants.SYS_RENEW_FLAG_DAY)) {
//每日更新 //每日更新
dateToStr = DateUtils.parseDateToStr(ruleTemplate, new Date()); dateToStr = formatRuleTemplate(ruleTemplate);
code.append(dateToStr); code.append(dateToStr);
// 如果 nextCode 不包含 dateToStr说明是新的日期 // 如果 nextCode 不包含 dateToStr说明是新的日期
if (nextCode == null || !nextCode.contains(dateToStr)) { if (nextCode == null || !nextCode.contains(dateToStr)) {
@ -181,7 +181,7 @@ public class SysCodeRuleServiceImpl implements ISysCodeRuleService {
return sysCodeRule; return sysCodeRule;
} }
} else if (sysCodeRule.getRenewFlag().equals(SysConstants.SYS_RENEW_FLAG_NO) && ruleTemplate != null) { } else if (sysCodeRule.getRenewFlag().equals(SysConstants.SYS_RENEW_FLAG_NO) && ruleTemplate != null) {
dateToStr = DateUtils.parseDateToStr(ruleTemplate, new Date()); dateToStr = formatRuleTemplate(ruleTemplate);
code.append(dateToStr); code.append(dateToStr);
} }
long seq = 1L; long seq = 1L;
@ -197,6 +197,34 @@ public class SysCodeRuleServiceImpl implements ISysCodeRuleService {
return sysCodeRule; return sysCodeRule;
} }
/**
* yyyyyyyyMMyyyyMMdd
*
* @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) { public static String formatSequence(Long sequenceLength, Long seq) {
String seqStr = String.valueOf(seq); String seqStr = String.valueOf(seq);
if (seqStr.length() >= sequenceLength) { if (seqStr.length() >= sequenceLength) {

Loading…
Cancel
Save