Forráskód Böngészése

考勤人数统计调整

dzx 7 hónapja
szülő
commit
b56566da56

+ 7 - 8
src/main/java/com/xjrsoft/module/attendance/controller/StatisticsController.java

@@ -13,6 +13,7 @@ import com.xjrsoft.common.annotation.XjrLog;
 import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.enums.OutInStatusEnum;
 import com.xjrsoft.common.enums.StudyStatusEnum;
+import com.xjrsoft.common.model.result.R;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.attendance.dto.AttendanceStatisticDto;
@@ -135,6 +136,7 @@ public class StatisticsController {
                         .ge(AttendanceRuleCategory::getEndDate, LocalDate.now())
         );
         if(!ruleCategories.isEmpty()){
+            //查询所有需要考勤的人
             BaseTeacherPageDto teacherPageDto = new BaseTeacherPageDto();
             List<Long> userIds = new ArrayList<>();
             List<Long> deptIds = new ArrayList<>();
@@ -151,18 +153,16 @@ public class StatisticsController {
                     }
                 }
             }
-            if(dto.getDeptId() == null){
-                teacherPageDto.setDeptIds(deptIds);
-            }else{
-                deptIds = new ArrayList<>();
-                deptIds.add(dto.getDeptId());
-            }
+            teacherPageDto.setDeptIds(deptIds);
             List<XjrUserPageVo> attendanceTeacherList = teacherbaseManagerService.getList(teacherPageDto);
 
             teacherPageDto = new BaseTeacherPageDto();
             teacherPageDto.setUserIds(userIds);
             attendanceTeacherList.addAll(teacherbaseManagerService.getList(teacherPageDto));
+            //将所有需要考勤的人的id存入set集合
+            Set<String> attendanceUserIdSet = attendanceTeacherList.stream().map(XjrUserPageVo::getId).collect(Collectors.toSet());
 
+            //查询所有人
             teacherPageDto = new BaseTeacherPageDto();
             if(dto.getDeptId() != null){
                 List<Long> dtoDeptIds = new ArrayList<>();
@@ -171,8 +171,7 @@ public class StatisticsController {
             }
 
             List<XjrUserPageVo> allTeacherList = teacherbaseManagerService.getList(teacherPageDto);
-
-            statisticsVo.setNotAttendanceCount(allTeacherList.size() - attendanceTeacherList.size());
+            statisticsVo.setNotAttendanceCount(allTeacherList.stream().filter(x -> !attendanceUserIdSet.contains(x.getId())).collect(Collectors.toList()).size());
         }