Quellcode durchsuchen

考勤消息通知bug修复

dzx vor 1 Jahr
Ursprung
Commit
91b06c5d53
1 geänderte Dateien mit 13 neuen und 2 gelöschten Zeilen
  1. 13 2
      src/main/java/com/xjrsoft/module/job/AttenDanceWarnNoticeTask.java

+ 13 - 2
src/main/java/com/xjrsoft/module/job/AttenDanceWarnNoticeTask.java

@@ -74,6 +74,10 @@ public class AttenDanceWarnNoticeTask {
 
         //查询今天所有的考勤规则
         List<AttendanceRuleDetails> ruleDetailsList = categoryService.getTodayRules();
+        if(ruleDetailsList.isEmpty()){
+            log.info("未能查询出规则,不进行推送");
+            return;
+        }
         Map<Long, AttendanceRuleDetails> ruleDetailsMap = new HashMap<>();
         for (AttendanceRuleDetails ruleDetail : ruleDetailsList) {
             ruleDetailsMap.put(ruleDetail.getAttendanceRuleCategoryId(), ruleDetail);
@@ -111,15 +115,19 @@ public class AttenDanceWarnNoticeTask {
         }
         //未查询到数据
         String dayOfWeek = now.getDayOfWeek().name();
-        if(holidayDate == null || "SUNDAY".equals(dayOfWeek) || "SATURDAY".equals(dayOfWeek)){
+        if("SUNDAY".equals(dayOfWeek) || "SATURDAY".equals(dayOfWeek)){
             log.info("非工作日,不需要提醒");
             return;
         }
 
         //获取最近的时间
         LocalDateTime recentlyTime = getRecentlyTime(ruleDetailsList, now);
+        if(recentlyTime == null){
+            log.info("未到时间,不进行推送");
+            return;
+        }
         long minute = Math.abs(ChronoUnit.MINUTES.between(now, recentlyTime));
-        if(minute >= 1){
+        if(now.isBefore(recentlyTime) && minute >= 1){
             log.info("未到时间,不进行推送");
             return;
         }
@@ -142,6 +150,9 @@ public class AttenDanceWarnNoticeTask {
         List<XjrUser> userList = getUserList(allTodyRule.keySet());
         for (XjrUser xjrUser : userList) {
             AttendanceRuleDetails ruleDetails = allTodyRule.get(xjrUser.getId());
+            if(ruleDetails == null){
+                continue;
+            }
             Integer status = ruleDetailsJudgeMap.get(ruleDetails.getId());
             if(status == 0){
                 continue;