Browse Source

完整日期如果切换成其他类型,应该把流水号后缀取消勾选

master
han\hanst 1 week ago
parent
commit
b07bb2a526
  1. 12
      src/main/java/com/gaotao/modules/base/service/Impl/LabelDataProcessorServiceImpl.java
  2. 5
      src/main/java/com/gaotao/modules/base/service/Impl/ReportLabelListServiceImpl.java

12
src/main/java/com/gaotao/modules/base/service/Impl/LabelDataProcessorServiceImpl.java

@ -834,6 +834,11 @@ public class LabelDataProcessorServiceImpl implements LabelDataProcessorService
if (!"text".equals(element.getType()) || !"date".equals(element.getDataType())) {
return false;
}
// 流水号后缀只属于完整日期。提取方式为空按完整日期兼容旧模板;周别等类型即使残留勾选也不再追加。
String extractType = StringUtils.trimToEmpty(element.getDateExtractType());
if (StringUtils.isNotBlank(extractType) && !"full".equalsIgnoreCase(extractType)) {
return false;
}
return StringUtils.equalsAnyIgnoreCase(StringUtils.trimToEmpty(element.getShowSerialNumber()), "true", "y", "1");
}
@ -1358,9 +1363,10 @@ public class LabelDataProcessorServiceImpl implements LabelDataProcessorService
try {
java.time.LocalDate yearStartDate = java.time.LocalDate.of(date.getYear(), 1, 1);
long daysBetween = java.time.temporal.ChronoUnit.DAYS.between(yearStartDate, date);
// 周别展示为年份后两位 + 两位周号,例如 2026 年第 3 周输出 2603
String yearSuffix = String.format("%02d", date.getYear() % 100);
if (daysBetween <= 0) {
return "01" + yearSuffix;
return yearSuffix + "01";
}
int firstDayOfWeek = 0; // 默认周日为第一天
@ -1384,11 +1390,11 @@ public class LabelDataProcessorServiceImpl implements LabelDataProcessorService
weekNumber = (int) ((daysBetween - daysToNextWeekStart) / 7) + 2;
}
int normalizedWeekNumber = Math.max(1, weekNumber);
return String.format("%02d", normalizedWeekNumber) + yearSuffix;
return yearSuffix + String.format("%02d", normalizedWeekNumber);
} catch (Exception e) {
log.error("周数计算失败: date={}, firstDayOfWeek={}", date, firstDayOfWeekStr);
return "01" + String.format("%02d", date.getYear() % 100);
return String.format("%02d", date.getYear() % 100) + "01";
}
}

5
src/main/java/com/gaotao/modules/base/service/Impl/ReportLabelListServiceImpl.java

@ -1107,6 +1107,11 @@ public class ReportLabelListServiceImpl extends ServiceImpl<ReportLabelListMappe
if (!"text".equals(element.getType()) || !"date".equals(element.getDataType())) {
return false;
}
// 与设计器一致:只有完整日期保留流水号后缀。切走后即使前端还没保存,也不再按日期流水号生成内容项。
String extractType = StringUtils.trimToEmpty(element.getDateExtractType());
if (StringUtils.isNotBlank(extractType) && !"full".equalsIgnoreCase(extractType)) {
return false;
}
return StringUtils.equalsAnyIgnoreCase(StringUtils.trimToEmpty(element.getShowSerialNumber()), "true", "y", "1");
}

Loading…
Cancel
Save