夏文涛 6 месяцев назад
Родитель
Сommit
64e90892d6
1 измененных файлов с 43 добавлено и 58 удалено
  1. 43 58
      src/main/java/com/template/controller/ScheduleController.java

+ 43 - 58
src/main/java/com/template/controller/ScheduleController.java

@@ -88,13 +88,11 @@ public class ScheduleController {
     @Transactional(rollbackFor = {Exception.class})
     public void autoDispatch() throws Exception {
 
-        logger.info("1");
+        logger.info("执行希沃考勤拉取");
         Date dateNow = new Date();
-        logger.info("2");
         String getDate = TimeExchange.getDate();
         try {
             if (scheduleConfig.getIsOpen().equals("1")) {
-                logger.info("3");
                 List<SmartAttendance> attendances = new ArrayList<>();
                 List<Integer> deleteAttendances = new ArrayList<>();
                 //判断当前月份是九月前还是九月后 九月前就不包括本年
@@ -111,46 +109,42 @@ public class ScheduleController {
                     gradeNames.add((yearNow.intValue() - 2) + "级");
                     gradeNames.add((yearNow.intValue() - 3) + "级");
                 }
-                logger.info("4");
                 List<Integer> gradeIs = new ArrayList<>();
                 List<String> gradeIds = new ArrayList<>();
                 List<SmartGrade> grades = smartGradeService.getSmartGrades(gradeNames);
-                logger.info("5");
+
                 for (SmartGrade data : grades) {
-                    gradeIds.add(data.getId()+"");
+                    gradeIds.add(data.getId() + "");
                     gradeIs.add(data.getId());
                 }
                 List<SmartUser> students = smartUserService.queryStudentsByGrade(gradeIds);
-                logger.info("6");
+
 //            SmartUser studentData = smartUserService.getSmartById(1088);
 //            students.add(studentData);
 
                 //循环班级的classUid
                 List<SmartClass> classes = smartClassService.getSmartClasssByGrade(gradeIs);
-                logger.info("7");
 
 //            SmartClass classData = smartClassService.getSmartClassById(204);
 //            classes.add(classData);
 
                 //当天已存在的考勤数据 判断是否重复使用
                 List<SmartAttendance> attendanceList = smartAttendanceService.queryAttendancesNoleave(TimeExchange.getStartOfDayStr(dateNow), TimeExchange.getEndOfDayStr(dateNow));
-                logger.info("8");
+
                 for (SmartClass data : classes) {
-                    logger.info("循环1");
                     Optional<SmartGrade> oGrade = grades.stream().filter(e -> e.getId().equals(data.getGradeId())).findFirst();
-                    logger.info("循环2");
                     //region 获取考勤事件ID
                     //初始化客户端
                     SeewoClient seewoClient = new DefaultSeewoClient(new Account(seewoConfig.getAppId(), seewoConfig.getAppSecret()));
-                    logger.info("循环3");
+
                     AttendanceRuleListEventByClazzParam param = new AttendanceRuleListEventByClazzParam();
-                    logger.info("循环4");
+
                     //响应体,MimeType为 application/json
                     AttendanceRuleListEventByClazzParam.RequestBody requestBody = AttendanceRuleListEventByClazzParam.RequestBody.builder()
                             .build();
-                    logger.info("循环5");
+
                     param.setRequestBody(requestBody);
-                    logger.info("循环6");
+
                     //query
                     AttendanceRuleListEventByClazzParam.Query query = AttendanceRuleListEventByClazzParam.Query.builder()
                             .appId(seewoConfig.getAppId())
@@ -160,11 +154,11 @@ public class ScheduleController {
                             .page(1)
                             .pageSize(20)
                             .build();
-                    logger.info("循环7");
+
                     requestBody.setQuery(query);
-                    logger.info("循环8");
+
                     AttendanceRuleListEventByClazzRequest request = new AttendanceRuleListEventByClazzRequest(param);
-                    logger.info("循环9");
+
                     // 该接口需要数据权限,请将授权资源id替换至下方,请妥善保管好授权资源id,避免泄露
                     // permissionId位置: 控制台 -> 应用详情 -> 我申请的 -> 已通过的接口 -> 调用范围 -> 审批信息 中查看授权资源的「学校id」或「区域id」
                     request.setPermissionId("");
@@ -176,19 +170,19 @@ public class ScheduleController {
 
                     //考勤事件ID
                     List<AttendanceRuleListEventByClazzResult.DataItem> eventItems = new ArrayList<>();
-                    logger.info("循环10");
+
                     if (result != null && result.getResponseBody().getCode().equals("000000")) {
-                        logger.info("循环11");
+
                         if (result.getResponseBody().getData() != null) {
-                            logger.info("循环12");
+
                             eventItems = result.getResponseBody().getData();
-                            logger.info("循环13");
+
                         }
                     }
                     //endregion
 
                     for (AttendanceRuleListEventByClazzResult.DataItem eventId : eventItems) {
-                        logger.info("循环14");
+
                         //判断考勤是否开始 用考勤事件的开始时间和当前时间判断 考勤规则开始生效了才拉取
                         Date eventStartTime = TimeExchange.StringToDate((getDate + " " + eventId.getAttendStartTime() + ":00"), "yyyy-MM-dd HH:mm:ss");
                         Date nowDate = dateNow;
@@ -196,20 +190,18 @@ public class ScheduleController {
                             continue;
                         }
 
-                        logger.info("循环15");
                         /**
                          * 定时获取考勤
                          */
                         //初始化客户端
                         //SeewoClient seewoClient = new DefaultSeewoClient(new Account(seewoConfig.getAppId(), seewoConfig.getAppSecret()));
                         AttendanceServiceListAttendClassRecordsParam kParam = new AttendanceServiceListAttendClassRecordsParam();
-                        logger.info("循环16");
                         //响应体,MimeType为 application/json
                         AttendanceServiceListAttendClassRecordsParam.RequestBody kRequestBody = AttendanceServiceListAttendClassRecordsParam.RequestBody.builder()
                                 .build();
-                        logger.info("循环17");
+
                         kParam.setRequestBody(kRequestBody);
-                        logger.info("循环18");
+
                         //query
                         AttendanceServiceListAttendClassRecordsParam.Query kQuery = AttendanceServiceListAttendClassRecordsParam.Query.builder()
                                 .eventId(eventId.getRuleId())//考勤事件ID 固定写死
@@ -220,11 +212,10 @@ public class ScheduleController {
                                 .schoolUid(seewoConfig.getSchoolId())//学校uid
                                 .attendType(1)//考勤类型 时间考勤(默认):1  课程考勤:2
                                 .build();
-                        logger.info("循环19");
                         kRequestBody.setQuery(kQuery);
-                        logger.info("循环20");
+
                         kParam.setRequestBody(kRequestBody);
-                        logger.info("循环21");
+
                         AttendanceServiceListAttendClassRecordsRequest kRequest = new AttendanceServiceListAttendClassRecordsRequest(kParam);
                         logger.info("入参1:" + kRequest);
                         //如果想要调用沙箱环境,请通过设置 request 对象的 serverUrl 属性,如:
@@ -234,70 +225,67 @@ public class ScheduleController {
                         logger.info("出参1:" + kResult);
 
                         if (kResult != null && kResult.getResponseBody().getCode().equals("000000")) {
-                            logger.info("循环22");
+
                             List<AttendanceServiceListAttendClassRecordsResult.RecordsItem> items = kResult.getResponseBody().getData().getRecords();
-                            logger.info("循环23");
+
                             if (students != null && students.size() > 0 && items != null && items.size() > 0) {
-                                logger.info("循环24");
+
                                 List<String> uids = items.stream().map(AttendanceServiceListAttendClassRecordsResult.RecordsItem::getUserUid).distinct().collect(Collectors.toList());
-                                logger.info("循环25");
+
                                 for (String uid : uids) {
-                                    logger.info("uid"+uid);
-                                    if(!org.springframework.util.StringUtils.hasText(uid)){
-                                        logger.info("循环25.5");
+
+                                    if (!org.springframework.util.StringUtils.hasText(uid)) {
                                         continue;
                                     }
-                                    logger.info("循环26");
+
                                     Optional<SmartUser> student = students.stream().filter(e -> e.getXwStudentUid().equals(uid)).findFirst();
-                                    logger.info("循环27");
+
                                     if (student != null && student.isPresent()) {
-                                        logger.info("循环28");
+
                                         List<SmartAttendance> oldAttends = attendanceList.stream().filter(e -> e.getUserId().equals(student.get().getId())
                                                 && e.getRuleId() != null && e.getRuleId().equals(eventId.getRuleId())).collect(Collectors.toList());
-                                        logger.info("循环29");
+
                                         List<AttendanceServiceListAttendClassRecordsResult.RecordsItem> newAttends = items.stream().filter(e -> e.getUserUid().equals(student.get().getXwStudentUid())).collect(Collectors.toList());
-                                        logger.info("循环30");
+
                                         if (newAttends != null && newAttends.size() > 0) {
                                             int i = 0;
                                             for (AttendanceServiceListAttendClassRecordsResult.RecordsItem newAttend : newAttends) {
-                                                logger.info("循环31");
+
                                                 if (oldAttends.size() > i) {
-                                                    logger.info("循环32");
+
                                                     SmartAttendance oldData = new SmartAttendance();
-                                                    logger.info("循环33");
+
                                                     oldData = oldAttends.get(i);
-                                                    logger.info("循环34");
+
                                                     if (newAttend.getStatus().intValue() != 6) {
-                                                        logger.info("循环35");
+
                                                         boolean isUpdate = false;
                                                         Date AttendTime = StringUtils.hasText(newAttend.getAttendTime()) ? TimeExchange.StringToDate((getDate + " " + newAttend.getAttendTime()), "yyyy-MM-dd HH:mm:ss") : TimeExchange.StringToDate((getDate + " " + eventId.getAttendEndTime() + ":00"), "yyyy-MM-dd HH:mm:ss");
-                                                        logger.info("循环36");
+
                                                         if (oldData.getAttendTime().compareTo(AttendTime) != 0) {
                                                             oldData.setAttendTime(AttendTime);
                                                             isUpdate = true;
                                                         }
-                                                        logger.info("循环37");
+
                                                         if (newAttend.getStatus().intValue() != oldData.getStatus()) {
                                                             oldData.setStatus(newAttend.getStatus());
                                                             isUpdate = true;
                                                         }
-                                                        logger.info("循环38");
+
                                                         if (!eventId.getRuleId().equals(oldData.getRuleId())) {
                                                             oldData.setRuleId(eventId.getRuleId());
                                                             isUpdate = true;
                                                         }
-                                                        logger.info("循环39");
+
                                                         if (isUpdate) {
                                                             attendances.add(oldData);
                                                         }
-                                                        logger.info("循环40");
+
                                                     } else {
                                                         deleteAttendances.add(oldData.getId());
                                                     }
                                                 } else {
-                                                    logger.info("循环41");
                                                     if (newAttend.getStatus().intValue() != 6) {//请假数据不通过考勤接口拿 因为考勤给的请假数据没有请假原因和请假时长
-                                                        logger.info("循环42");
                                                         SmartAttendance attendance = new SmartAttendance();
                                                         attendance.setUserId(student.get().getId());
                                                         attendance.setUserUid(newAttend.getUserUid());
@@ -308,9 +296,7 @@ public class ScheduleController {
                                                         attendance.setAttendTime(StringUtils.hasText(newAttend.getAttendTime()) ? TimeExchange.StringToDate((getDate + " " + newAttend.getAttendTime()), "yyyy-MM-dd HH:mm:ss") : TimeExchange.StringToDate((getDate + " " + eventId.getAttendEndTime() + ":00"), "yyyy-MM-dd HH:mm:ss"));
                                                         attendance.setStatus(newAttend.getStatus());
                                                         attendance.setRuleId(eventId.getRuleId());
-                                                        logger.info("循环43");
                                                         attendances.add(attendance);
-                                                        logger.info("循环44");
                                                     }
                                                 }
                                                 i++;
@@ -331,8 +317,7 @@ public class ScheduleController {
                     smartAttendanceService.deleteDatasByids(deleteAttendances);
                 }
             }
-        } catch (
-                Exception e) {
+        } catch (Exception e) {
             logger.info("考勤定时任务失败:" + e.getMessage());
             throw new Exception("考勤定时任务失败" + e.getMessage());
         }