fix: 外标实施日期发消息重复发送问题

This commit is contained in:
2024-08-05 10:12:31 +08:00
parent 52f40f9597
commit ee560147bc
@@ -147,15 +147,26 @@ public class ReplaceImplementationDateMsgJob implements Job {
}
Map<String, LawsDomesticStandard> standardMap =
standardList.stream().collect(Collectors.toMap(LawsDomesticStandard::getId, 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 (LawsDomesticStandard 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());
}
}