diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/job/ReplaceImplementationDateMsgJob.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/job/ReplaceImplementationDateMsgJob.java index d5209a0a..8899c33d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/job/ReplaceImplementationDateMsgJob.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/job/ReplaceImplementationDateMsgJob.java @@ -49,23 +49,35 @@ public class ReplaceImplementationDateMsgJob implements Job { private void sendEsStandardMsg() { List allExpireStandardNumberList = new ArrayList<>(); - // 获取所有已经到了外部标准 + // 获取所有已经到了标准 List standardList = esService.list(); if (standardList.isEmpty()) { log.info("没有需要更新的标准"); return; } Map standardMap = - standardList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getId, es -> es)); + standardList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, es -> es)); + + // 获取今天0点 + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + Date todayMidnight = cal.getTime(); + + // 获取明天0点 + cal.add(Calendar.DAY_OF_YEAR, 1); + Date tomorrowMidnight = cal.getTime(); + // 根据新认证车实施日期筛选出已经到期的标准 for (LawsEnterpriseStandard es : standardList) { Date implementationDate = es.getImplementationDate(); if (implementationDate == null) { continue; } - // 判断当前时间是否大于实施日期且实施日期没到后一天 - if (implementationDate.getTime() <= System.currentTimeMillis() && - implementationDate.before(new Date(implementationDate.getTime() + 24 * 60 * 60 * 1000))) { + // 判断实施日期大于今天0点小于明天0点 + if (implementationDate.equals(todayMidnight) && implementationDate.before(tomorrowMidnight)) { allExpireStandardNumberList.add(es.getStandardNumber()); } } @@ -101,6 +113,8 @@ public class ReplaceImplementationDateMsgJob implements Job { Set userIdList = new HashSet<>(); // 拼接发送人员 for (String standard : replacedStandardNumberList) { + // 如果有书名号的话只取书名号前的内容 + standard = standard.split("《")[0]; LawsEnterpriseStandard replaceStandard = standardMap.get(standard); // 被代替标准的主起草人,责任人,收藏标准的人员 userIdList.add(replaceStandard.getMainDraftingUser()); @@ -177,6 +191,8 @@ public class ReplaceImplementationDateMsgJob implements Job { Set userIdList = new HashSet<>(); // 拼接发送人员 for (String standard : replacedStandardNumberList) { + // 如果有书名号的话只取书名号前的内容 + standard = standard.split("《")[0]; LawsDomesticStandard replaceStandard = standardMap.get(standard); // 被代替标准的主起草人,责任人,收藏标准的人员 userIdList.add(replaceStandard.getResponsibleUser());