fix: 实施日期发消息重复发送问题
This commit is contained in:
+21
-5
@@ -49,23 +49,35 @@ public class ReplaceImplementationDateMsgJob implements Job {
|
||||
|
||||
private void sendEsStandardMsg() {
|
||||
List<String> allExpireStandardNumberList = new ArrayList<>();
|
||||
// 获取所有已经到了外部标准
|
||||
// 获取所有已经到了标准
|
||||
List<LawsEnterpriseStandard> standardList = esService.list();
|
||||
if (standardList.isEmpty()) {
|
||||
log.info("没有需要更新的标准");
|
||||
return;
|
||||
}
|
||||
Map<String, LawsEnterpriseStandard> 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<String> 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<String> userIdList = new HashSet<>();
|
||||
// 拼接发送人员
|
||||
for (String standard : replacedStandardNumberList) {
|
||||
// 如果有书名号的话只取书名号前的内容
|
||||
standard = standard.split("《")[0];
|
||||
LawsDomesticStandard replaceStandard = standardMap.get(standard);
|
||||
// 被代替标准的主起草人,责任人,收藏标准的人员
|
||||
userIdList.add(replaceStandard.getResponsibleUser());
|
||||
|
||||
Reference in New Issue
Block a user