Explorar o código

学生考勤调整

dzx hai 1 ano
pai
achega
a64c9eb698

+ 9 - 3
src/main/java/com/xjrsoft/module/attendance/controller/StudentStatisticsController.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.enums.ArchivesStatusEnum;
+import com.xjrsoft.common.enums.OutInStatusEnum;
 import com.xjrsoft.common.enums.StudyStatusEnum;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
@@ -49,6 +50,7 @@ import java.time.temporal.ChronoUnit;
 import java.time.temporal.TemporalAdjusters;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -125,16 +127,19 @@ public class StudentStatisticsController {
                 }
                 record.setLeaveCount(leaveCount);
                 int actualCount = 0;
+                Set<Long> userIds = new HashSet<>();
                 for (StudentOutInRecordVo outInRecordVo : notStayMap.get(record.getId())) {
-                    if(outInRecordVo.getStatus() == 1){
-                        actualCount ++;
+                    if(userIds.contains(outInRecordVo.getUserId())){
+                        continue;
                     }
+                    actualCount ++;
+                    userIds.add(outInRecordVo.getUserId());
                 }
                 record.setActualCount(actualCount);
 
                 Integer lateCount = 0, playTruantCount = 0;
                 for (StudentOutInRecordVo outInRecord : notStayMap.get(record.getId())) {
-                    if(outInRecord.getStatus() == 0){
+                    if(userIds.contains(outInRecord.getUserId())){
                         continue;
                     }
                     if("迟到".equals(outInRecord.getAttendanceStatus())){
@@ -142,6 +147,7 @@ public class StudentStatisticsController {
                     }else if("旷课".equals(outInRecord.getAttendanceStatus())){
                         playTruantCount ++;
                     }
+                    userIds.add(outInRecord.getUserId());
                 }
                 record.setPlayTruantCount(playTruantCount);
                 record.setLateCount(lateCount);

+ 1 - 1
src/main/java/com/xjrsoft/module/outint/mapper/StudentOutInRecordMapper.java

@@ -27,5 +27,5 @@ public interface StudentOutInRecordMapper extends MPJBaseMapper<StudentOutInReco
 
     List<StudentOutInRecordVo> getStayList(@Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime);
 
-    List<StudentOutInRecordVo> getList(@Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime);
+    List<StudentOutInRecordVo> getList(@Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime, @Param("status")Integer status);
 }

+ 2 - 1
src/main/java/com/xjrsoft/module/outint/service/impl/StudentOutInRecordServiceImpl.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.outint.service.impl;
 
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.common.enums.OutInStatusEnum;
 import com.xjrsoft.module.outint.entity.StudentOutInRecord;
 import com.xjrsoft.module.outint.mapper.StudentOutInRecordMapper;
 import com.xjrsoft.module.outint.service.IStudentOutInRecordService;
@@ -84,7 +85,7 @@ public class StudentOutInRecordServiceImpl extends MPJBaseServiceImpl<StudentOut
 
     @Override
     public Map<Long, List<StudentOutInRecordVo>> getList(LocalDateTime startTime, LocalDateTime endTime, List<Long> classIds) {
-        List<StudentOutInRecordVo> notStayList = this.baseMapper.getList(startTime, endTime);
+        List<StudentOutInRecordVo> notStayList = this.baseMapper.getList(startTime, endTime, OutInStatusEnum.enter.getCode());
         Map<Long, List<StudentOutInRecordVo>> result = new HashMap<>();
         for (Long classId : classIds) {
             List<StudentOutInRecordVo> dataList = new ArrayList<>();

+ 1 - 1
src/main/resources/mapper/outin/StudentOutInRecordMapper.xml

@@ -37,7 +37,7 @@
     <select id="getList" resultType="com.xjrsoft.module.outint.vo.StudentOutInRecordVo">
         SELECT t1.* FROM student_out_in_record t1
         INNER JOIN base_student_school_roll t2 ON t1.user_id = t2.user_id
-        WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
+        WHERE t1.delete_mark = 0 AND t2.delete_mark = 0 and t1.status = #{status}
         AND t1.record_time BETWEEN #{startTime} AND #{endTime}
         order by t1.record_time
     </select>