夏文涛 2 лет назад
Родитель
Сommit
0a76aafa12

+ 9 - 7
src/main/java/com/template/controller/ScheduleController.java

@@ -88,6 +88,8 @@ public class ScheduleController {
     @Transactional(rollbackFor = {Exception.class})
     public void autoDispatch() throws Exception {
 
+        Date dateNow = new Date();
+        String getDate = TimeExchange.getDate();
         try {
             if (scheduleConfig.getIsOpen().equals("1")) {
 
@@ -106,7 +108,7 @@ public class ScheduleController {
 //            classes.add(classData);
 
                 //当天已存在的考勤数据 判断是否重复使用
-                List<SmartAttendance> attendanceList = smartAttendanceService.queryAttendancesNoleave(TimeExchange.getStartOfDayStr(new Date()), TimeExchange.getEndOfDayStr(new Date()));
+                List<SmartAttendance> attendanceList = smartAttendanceService.queryAttendancesNoleave(TimeExchange.getStartOfDayStr(dateNow), TimeExchange.getEndOfDayStr(dateNow));
 
                 for (SmartClass data : classes) {
                     Optional<SmartGrade> oGrade = grades.stream().filter(e -> e.getId().equals(data.getGradeId())).findFirst();
@@ -122,7 +124,7 @@ public class ScheduleController {
                     AttendanceRuleListEventByClazzParam.Query query = AttendanceRuleListEventByClazzParam.Query.builder()
                             .appId(seewoConfig.getAppId())
                             .schoolUid(seewoConfig.getSchoolId())
-                            .date(TimeExchange.getDate())
+                            .date(getDate)
                             .classUid(data.getClassUid())
                             .page(1)
                             .pageSize(20)
@@ -151,8 +153,8 @@ public class ScheduleController {
                     for (AttendanceRuleListEventByClazzResult.DataItem eventId : eventItems) {
 
                         //判断考勤是否开始 用考勤事件的开始时间和当前时间判断 考勤规则开始生效了才拉取
-                        Date eventStartTime = TimeExchange.StringToDate((TimeExchange.getDate() + " " + eventId.getAttendStartTime() + ":00"), "yyyy-MM-dd HH:mm:ss");
-                        Date nowDate = new Date();
+                        Date eventStartTime = TimeExchange.StringToDate((getDate + " " + eventId.getAttendStartTime() + ":00"), "yyyy-MM-dd HH:mm:ss");
+                        Date nowDate = dateNow;
                         if (nowDate.compareTo(eventStartTime) < 0) {
                             continue;
                         }
@@ -170,7 +172,7 @@ public class ScheduleController {
                         //query
                         AttendanceServiceListAttendClassRecordsParam.Query kQuery = AttendanceServiceListAttendClassRecordsParam.Query.builder()
                                 .eventId(eventId.getRuleId())//考勤事件ID 固定写死
-                                .attendDate(TimeExchange.getDate())//考勤日期
+                                .attendDate(getDate)//考勤日期
                                 .appId(seewoConfig.getAppId())//appid
                                 .grade(oGrade != null && oGrade.isPresent() ? oGrade.get().getGradeNo() : 1)//年级序号
                                 .classUid(data.getClassUid())//班级uid 班级uid与年级序号、班级序号二选一确定具体的班级,如果都填以classUid为准
@@ -207,7 +209,7 @@ public class ScheduleController {
                                                     oldData = oldAttends.get(i);
                                                     if (newAttend.getStatus().intValue() != 6) {
                                                         boolean isUpdate = false;
-                                                        Date AttendTime = StringUtils.hasText(newAttend.getAttendTime()) ? TimeExchange.StringToDate((TimeExchange.getDate() + " " + newAttend.getAttendTime()), "yyyy-MM-dd HH:mm:ss") : TimeExchange.StringToDate((TimeExchange.getDate() + " " + eventId.getAttendEndTime() + ":00"), "yyyy-MM-dd HH:mm:ss");
+                                                        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");
                                                         if (oldData.getAttendTime().compareTo(AttendTime) != 0) {
                                                             oldData.setAttendTime(AttendTime);
                                                             isUpdate = true;
@@ -235,7 +237,7 @@ public class ScheduleController {
                                                         attendance.setClassUid(kResult.getResponseBody().getData().getClassUid());
                                                         attendance.setXwUserName(newAttend.getUserName());
                                                         attendance.setXwStudentCode(newAttend.getStudentCode());
-                                                        attendance.setAttendTime(StringUtils.hasText(newAttend.getAttendTime()) ? TimeExchange.StringToDate((TimeExchange.getDate() + " " + newAttend.getAttendTime()), "yyyy-MM-dd HH:mm:ss") : TimeExchange.StringToDate((TimeExchange.getDate() + " " + eventId.getAttendEndTime() + ":00"), "yyyy-MM-dd HH:mm:ss"));
+                                                        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());
                                                         attendances.add(attendance);

+ 2 - 2
src/main/resources/mapper/template/SmartAttendanceMapper.xml

@@ -78,7 +78,7 @@
             and sa.xw_user_name like '%' #{name} '%'
         </if>
         <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
-            and sa.attend_time &gt;= #{startTime} and sa.attend_time &lt;= #{endTime}
+            and ((sa.attend_time &gt;= #{startTime} and sa.attend_time &lt;= #{endTime}) or (sa.initiate_time &gt;= #{startTime} and sa.initiate_time &lt;= #{endTime}))
         </if>
         ORDER BY sa.create_time desc
     </select>
@@ -116,7 +116,7 @@
             and sa.xw_user_name like '%' #{name} '%'
         </if>
         <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
-            and sa.attend_time &gt;= #{startTime} and sa.attend_time &lt;= #{endTime}
+            and ((sa.attend_time &gt;= #{startTime} and sa.attend_time &lt;= #{endTime}) or (sa.initiate_time &gt;= #{startTime} and sa.initiate_time &lt;= #{endTime}))
         </if>
         ORDER BY sa.create_time desc
     </select>