Browse Source

考勤统计接口调整

dzx 1 year ago
parent
commit
0d38f8023b

+ 2 - 20
src/main/java/com/xjrsoft/module/attendance/controller/StatisticsController.java

@@ -6,8 +6,6 @@ import com.github.yulichang.toolkit.MPJWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.module.attendance.dto.AttendanceStatisticDto;
-import com.xjrsoft.module.attendance.service.IAttendanceRuleCategoryService;
-import com.xjrsoft.module.attendance.vo.AttendanceRuleDetailsUserVo;
 import com.xjrsoft.module.attendance.vo.TeacherStatisticsVo;
 import com.xjrsoft.module.attendance.vo.VisitorInfoVo;
 import com.xjrsoft.module.concat.service.IXjrUserService;
@@ -18,7 +16,6 @@ import com.xjrsoft.module.outint.service.IStudentOutInRecordService;
 import com.xjrsoft.module.outint.service.ITeacherOutInRecordService;
 import com.xjrsoft.module.personnel.service.IReservationSchoolService;
 import com.xjrsoft.module.student.entity.BaseStudent;
-import com.xjrsoft.module.student.entity.StudentLeave;
 import com.xjrsoft.module.student.service.IStudentLeaveService;
 import com.xjrsoft.module.teacher.entity.BaseTeacher;
 import com.xjrsoft.module.teacher.entity.XjrUser;
@@ -37,7 +34,6 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.List;
-import java.util.Map;
 
 /**
 * @title: 考勤消息设置
@@ -55,7 +51,6 @@ public class StatisticsController {
     private final IXjrUserService xjrUserService;
     private final ITeacherOutInRecordService teacherOutInRecordService;
     private final IStudentOutInRecordService studentOutInRecordService;
-    private final IAttendanceRuleCategoryService ruleCategoryService;
     private final IWfTeacherleaveService wfTeacherleaveService;
     private final IStudentLeaveService studentLeaveService;
     private final IReservationSchoolService reservationSchoolService;
@@ -102,18 +97,10 @@ public class StatisticsController {
             }
             statisticsVo.setLeaveCount(leaveCount);
 
-            //查询每个人当天的考勤规则
-            Map<Long, AttendanceRuleDetailsUserVo> allTeacherTodyRule = ruleCategoryService.getAllTeacherTodyRule(queryDate.getDayOfWeek().name());
             //通过考勤规则和实到人数信息,计算迟到的
             Long lateCount = 0L;
             for (TeacherOutInRecord outInRecord : outInRecords) {
-                AttendanceRuleDetailsUserVo ruleDetails = allTeacherTodyRule.get(outInRecord.getUserId());
-                if(ruleDetails == null){
-                    continue;
-                }
-                if(dto.getTimePeriod() == 1 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getAmStartTime()) > 0){
-                    lateCount ++;
-                }else if(dto.getTimePeriod() == 2 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getPmStartTime()) > 0){
+                if("迟到".equals(outInRecord.getAttendanceStatus())){
                     lateCount ++;
                 }
             }
@@ -172,15 +159,10 @@ public class StatisticsController {
             }
             statisticsVo.setLeaveCount(leaveCount);
 
-            //查询每个人当天的考勤规则
-            Map<Long, AttendanceRuleDetailsUserVo> allTeacherTodyRule = ruleCategoryService.getAllStudentTodyRule(queryDate.getDayOfWeek().name());
             //通过考勤规则和实到人数信息,计算迟到的
             Long lateCount = 0L;
             for (StudentOutInRecord outInRecord : outInRecords) {
-                AttendanceRuleDetailsUserVo ruleDetails = allTeacherTodyRule.get(outInRecord.getUserId());
-                if(dto.getTimePeriod() == 1 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getAmStartTime()) > 0){
-                    lateCount ++;
-                }else if(dto.getTimePeriod() == 2 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getPmStartTime()) > 0){
+                if("迟到".equals(outInRecord.getAttendanceStatus())){
                     lateCount ++;
                 }
             }

+ 7 - 55
src/main/java/com/xjrsoft/module/attendance/controller/StudentStatisticsController.java

@@ -9,8 +9,6 @@ import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.attendance.dto.AttendanceStatisticDto;
-import com.xjrsoft.module.attendance.service.IAttendanceRuleCategoryService;
-import com.xjrsoft.module.attendance.vo.AttendanceRuleDetailsUserVo;
 import com.xjrsoft.module.attendance.vo.ClassStatisticsVo;
 import com.xjrsoft.module.attendance.vo.StudentStatisticsPageVo;
 import com.xjrsoft.module.base.entity.BaseClass;
@@ -60,7 +58,6 @@ public class StudentStatisticsController {
 
     private final IUserService xjrUserService;
     private final IStudentOutInRecordService studentOutInRecordService;
-    private final IAttendanceRuleCategoryService ruleCategoryService;
     private final IStudentLeaveService studentLeaveService;
     private final IBaseClassService classService;
 
@@ -100,11 +97,6 @@ public class StudentStatisticsController {
             //查询各班的请假人数
             Map<Long, Integer> classLeaveCount = studentLeaveService.getClassLeaveCount(startTime, endTime);
 
-            //查询走读生的考勤规则
-            Map<Long, AttendanceRuleDetailsUserVo> notStayTodyRule = ruleCategoryService.getAllStudentTodyRule(queryDate.getDayOfWeek().name());
-            //查询住校生生的考勤规则
-            Map<Long, AttendanceRuleDetailsUserVo> staySundayRule = ruleCategoryService.getAllStudentTodyRule(lastSundayStart.getDayOfWeek().name());
-
             for (ClassStatisticsVo record: attendancePage.getRecords()) {
                 record.setLeaveCount(classLeaveCount.get(record.getId()));
                 record.setActualCount(notStayMap.get(record.getId()).size() + stayMap.get(record.getId()).size());
@@ -114,10 +106,7 @@ public class StudentStatisticsController {
                     if(outInRecord.getStatus() == 0){
                         continue;
                     }
-                    AttendanceRuleDetailsUserVo ruleDetails = notStayTodyRule.get(outInRecord.getUserId());
-                    if(dto.getTimePeriod() == 1 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getAmStartTime()) > 0){
-                        lateCount ++;
-                    }else if(dto.getTimePeriod() == 2 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getPmStartTime()) > 0){
+                    if("迟到".equals(outInRecord.getAttendanceStatus())){
                         lateCount ++;
                     }
                 }
@@ -125,10 +114,7 @@ public class StudentStatisticsController {
                     if(outInRecord.getStatus() == 0){
                         continue;
                     }
-                    AttendanceRuleDetailsUserVo ruleDetails = staySundayRule.get(outInRecord.getUserId());
-                    if(dto.getTimePeriod() == 1 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getAmStartTime()) > 0){
-                        lateCount ++;
-                    }else if(dto.getTimePeriod() == 2 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getPmStartTime()) > 0){
+                    if("迟到".equals(outInRecord.getAttendanceStatus())){
                         lateCount ++;
                     }
                 }
@@ -182,7 +168,6 @@ public class StudentStatisticsController {
             LocalDateTime lastSundayStart = startTime.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)).plusDays(-1);
             LocalDateTime lastSundayEnd = endTime.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)).plusDays(-1);
 
-            Map<Long, AttendanceRuleDetailsUserVo> allTodyRule = ruleCategoryService.getAllStudentTodyRule(queryDate.getDayOfWeek().name());
             //查询当前时间段存在请假的学生
             Map<Long, StudentLeave> leaveList = studentLeaveService.getLeaveList(startTime, endTime);
             //查询进入记录
@@ -200,19 +185,8 @@ public class StudentStatisticsController {
                 if(studentLeave != null){
                     record.setStatus(studentLeave.getLeaveType());
                 }else{
-                    AttendanceRuleDetailsUserVo ruleUserVo = allTodyRule.get(record.getUserId());
                     StudentOutInRecord outInRecord = outInMap.get(record.getUserId());
-                    if(ruleUserVo.getIsAllowInOutSchool() != null && ruleUserVo.getIsAllowInOutSchool() == 0){
-                        record.setStatus("不考核");
-                    }else{
-                        if(dto.getTimePeriod() == 1 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleUserVo.getAmStartTime()) > 0){
-                            record.setStatus("迟到");
-                        }else if(dto.getTimePeriod() == 2 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleUserVo.getPmStartTime()) > 0){
-                            record.setStatus("迟到");
-                        }else{
-                            record.setStatus("到校");
-                        }
-                    }
+                    record.setStatus(outInRecord.getAttendanceStatus());
                 }
             }
         }
@@ -250,11 +224,6 @@ public class StudentStatisticsController {
                 dayOfWeeks.add(startTime.plusDays(i).getDayOfWeek().name());
             }
 
-            //查询走读生的考勤规则
-            Map<String, Map<Long, AttendanceRuleDetailsUserVo>> notStayTodyRule = ruleCategoryService.getAllStudentTodyRule(dayOfWeeks);
-            //查询住校生生的考勤规则
-            Map<String, Map<Long, AttendanceRuleDetailsUserVo>> staySundayRule = ruleCategoryService.getAllStudentTodyRule(dayOfWeeks);
-
             for (ClassStatisticsVo record: attendancePage.getRecords()) {
                 record.setLeaveCount(classLeaveCount.get(record.getId()) == null ? 0:classLeaveCount.get(record.getId()));
                 record.setActualCount(notStayMap.get(record.getId()).size() + stayMap.get(record.getId()).size());
@@ -263,18 +232,12 @@ public class StudentStatisticsController {
                 Integer lateCount = 0;
                 for (String dayOfWeek : dayOfWeeks) {
                     for (StudentOutInRecordVo outInRecord : notStayMap.get(record.getId())) {
-                        AttendanceRuleDetailsUserVo ruleDetails = notStayTodyRule.get(dayOfWeek).get(outInRecord.getUserId());
-                        if(dto.getTimePeriod() == 1 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getAmStartTime()) > 0){
-                            lateCount ++;
-                        }else if(dto.getTimePeriod() == 2 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getPmStartTime()) > 0){
+                        if("迟到".equals(outInRecord.getAttendanceStatus())){
                             lateCount ++;
                         }
                     }
                     for (StudentOutInRecordVo outInRecord : stayMap.get(record.getId())) {
-                        AttendanceRuleDetailsUserVo ruleDetails = staySundayRule.get(dayOfWeek).get(outInRecord.getUserId());
-                        if(dto.getTimePeriod() == 1 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getAmStartTime()) > 0){
-                            lateCount ++;
-                        }else if(dto.getTimePeriod() == 2 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getPmStartTime()) > 0){
+                        if("迟到".equals(outInRecord.getAttendanceStatus())){
                             lateCount ++;
                         }
                     }
@@ -330,11 +293,6 @@ public class StudentStatisticsController {
             //查询各班的请假人数
             Map<Long, Integer> classLeaveCount = studentLeaveService.getClassLeaveCount(startTime, endTime);
 
-            //查询走读生的考勤规则
-            Map<Long, AttendanceRuleDetailsUserVo> notStayTodyRule = ruleCategoryService.getAllStudentTodyRule(queryDate.getDayOfWeek().name());
-            //查询住校生生的考勤规则
-            Map<Long, AttendanceRuleDetailsUserVo> staySundayRule = ruleCategoryService.getAllStudentTodyRule(lastSundayStart.getDayOfWeek().name());
-
             for (ClassStatisticsVo record: attendancePage.getRecords()) {
                 record.setLeaveCount(classLeaveCount.get(record.getId()));
                 record.setActualCount(notStayMap.get(record.getId()).size() + stayMap.get(record.getId()).size());
@@ -344,10 +302,7 @@ public class StudentStatisticsController {
                     if(outInRecord.getStatus() == 1){
                         continue;
                     }
-                    AttendanceRuleDetailsUserVo ruleDetails = notStayTodyRule.get(outInRecord.getUserId());
-                    if(dto.getTimePeriod() == 1 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getAmStartTime()) > 0){
-                        lateCount ++;
-                    }else if(dto.getTimePeriod() == 2 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getPmStartTime()) > 0){
+                    if("迟到".equals(outInRecord.getAttendanceStatus())){
                         lateCount ++;
                     }
                 }
@@ -355,10 +310,7 @@ public class StudentStatisticsController {
                     if(outInRecord.getStatus() == 1){
                         continue;
                     }
-                    AttendanceRuleDetailsUserVo ruleDetails = staySundayRule.get(outInRecord.getUserId());
-                    if(dto.getTimePeriod() == 1 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getAmStartTime()) > 0){
-                        lateCount ++;
-                    }else if(dto.getTimePeriod() == 2 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleDetails.getPmStartTime()) > 0){
+                    if("迟到".equals(outInRecord.getAttendanceStatus())){
                         lateCount ++;
                     }
                 }

+ 1 - 18
src/main/java/com/xjrsoft/module/attendance/controller/TeacherStatisticsController.java

@@ -8,14 +8,11 @@ import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.attendance.dto.AttendanceStatisticDto;
-import com.xjrsoft.module.attendance.service.IAttendanceRuleCategoryService;
-import com.xjrsoft.module.attendance.vo.AttendanceRuleDetailsUserVo;
 import com.xjrsoft.module.attendance.vo.TeacherStatisticsPageVo;
 import com.xjrsoft.module.organization.entity.User;
 import com.xjrsoft.module.organization.service.IUserService;
 import com.xjrsoft.module.outint.entity.TeacherOutInRecord;
 import com.xjrsoft.module.outint.service.ITeacherOutInRecordService;
-import com.xjrsoft.module.personnel.service.IReservationSchoolService;
 import com.xjrsoft.module.teacher.entity.BaseTeacher;
 import com.xjrsoft.module.teacher.entity.WfTeacherleave;
 import com.xjrsoft.module.teacher.service.IWfTeacherleaveService;
@@ -49,9 +46,7 @@ public class TeacherStatisticsController {
 
     private final IUserService xjrUserService;
     private final ITeacherOutInRecordService teacherOutInRecordService;
-    private final IAttendanceRuleCategoryService ruleCategoryService;
     private final IWfTeacherleaveService wfTeacherleaveService;
-    private final IReservationSchoolService reservationSchoolService;
 
 
     @GetMapping(value = "/teacher-details")
@@ -82,7 +77,6 @@ public class TeacherStatisticsController {
                 endTime = queryDate.atTime(23, 59, 59);
             }
 
-            Map<Long, AttendanceRuleDetailsUserVo> allTodyRule = ruleCategoryService.getAllTeacherTodyRule(queryDate.getDayOfWeek().name());
             //查询当前时间段存在请假的教师
             Map<Long, WfTeacherleave> leaveList = wfTeacherleaveService.getLeaveList(startTime, endTime);
             //查询进入记录
@@ -104,19 +98,8 @@ public class TeacherStatisticsController {
                 if(studentLeave != null){
                     record.setStatus(studentLeave.getLeaveType());
                 }else{
-                    AttendanceRuleDetailsUserVo ruleUserVo = allTodyRule.get(record.getUserId());
                     TeacherOutInRecord outInRecord = outInMap.get(record.getUserId());
-                    if(ruleUserVo.getIsAllowInOutSchool() != null && ruleUserVo.getIsAllowInOutSchool() == 0){
-                        record.setStatus("不考核");
-                    }else{
-                        if(dto.getTimePeriod() == 1 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleUserVo.getAmStartTime()) > 0){
-                            record.setStatus("迟到");
-                        }else if(dto.getTimePeriod() == 2 && outInRecord.getRecordTime().toLocalTime().compareTo(ruleUserVo.getPmStartTime()) > 0){
-                            record.setStatus("迟到");
-                        }else{
-                            record.setStatus("到校");
-                        }
-                    }
+                    record.setStatus(outInRecord.getAttendanceStatus());
                 }
             }
         }

+ 2 - 1
src/main/java/com/xjrsoft/module/outint/entity/CarOutInRecord.java

@@ -100,5 +100,6 @@ public class CarOutInRecord implements Serializable {
     @ApiModelProperty("车辆分类(0:固定车辆 1:临时车辆)")
     private Integer category;
 
-
+    @ApiModelProperty("考勤状态")
+    private String attendanceStatus;
 }

+ 2 - 1
src/main/java/com/xjrsoft/module/outint/entity/StudentOutInRecord.java

@@ -102,5 +102,6 @@ public class StudentOutInRecord implements Serializable {
     @ApiModelProperty("进出状态(0:进 1:出)")
     private Integer status;
 
-
+    @ApiModelProperty("考勤状态")
+    private String attendanceStatus;
 }

+ 2 - 1
src/main/java/com/xjrsoft/module/outint/entity/TeacherOutInRecord.java

@@ -91,5 +91,6 @@ public class TeacherOutInRecord implements Serializable {
     @ApiModelProperty("进出状态(0:进 1:出)")
     private Integer status;
 
-
+    @ApiModelProperty("考勤状态")
+    private String attendanceStatus;
 }

+ 2 - 1
src/main/java/com/xjrsoft/module/outint/entity/VisitorOutInRecord.java

@@ -90,5 +90,6 @@ public class VisitorOutInRecord implements Serializable {
     @ApiModelProperty("进出状态(0:进 1:出)")
     private Integer status;
 
-
+    @ApiModelProperty("考勤状态")
+    private String attendanceStatus;
 }

+ 2 - 1
src/main/java/com/xjrsoft/module/outint/vo/StudentOutInRecordVo.java

@@ -50,6 +50,7 @@ public class StudentOutInRecordVo {
     @ApiModelProperty("进出状态(0:进 1:出)")
     private Integer status;
 
-
+    @ApiModelProperty("考勤状态")
+    private String attendanceStatus;
 
 }