Kaynağa Gözat

考勤调整

dzx 1 yıl önce
ebeveyn
işleme
647267b977

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

@@ -88,7 +88,7 @@ public class StatisticsController {
             List<TeacherOutInRecord> outInRecords = teacherOutInRecordService.list(
                     new QueryWrapper<TeacherOutInRecord>().lambda()
                             .between(TeacherOutInRecord::getRecordTime, startTime, endTime)
-                            .eq(TeacherOutInRecord::getStatus, 0)
+                            .eq(TeacherOutInRecord::getStatus, 1)
             );
             //实到人数
             statisticsVo.setActualCount(Long.valueOf(outInRecords.size()));
@@ -154,7 +154,7 @@ public class StatisticsController {
             List<StudentOutInRecord> outInRecords = studentOutInRecordService.list(
                     new QueryWrapper<StudentOutInRecord>().lambda()
                             .between(StudentOutInRecord::getRecordTime, startTime, endTime)
-                            .eq(StudentOutInRecord::getStatus, 0)
+                            .eq(StudentOutInRecord::getStatus, 1)
             );
             //实到人数
             statisticsVo.setActualCount(Long.valueOf(outInRecords.size()));

+ 6 - 12
src/main/java/com/xjrsoft/module/attendance/controller/StudentStatisticsController.java

@@ -21,6 +21,7 @@ import com.xjrsoft.module.organization.service.IUserService;
 import com.xjrsoft.module.outint.entity.StudentOutInRecord;
 import com.xjrsoft.module.outint.service.IStudentOutInRecordService;
 import com.xjrsoft.module.outint.vo.StudentOutInRecordVo;
+import com.xjrsoft.module.student.entity.BaseStudentFamily;
 import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
 import com.xjrsoft.module.student.entity.StudentLeave;
 import com.xjrsoft.module.student.service.IStudentLeaveService;
@@ -93,9 +94,7 @@ public class StudentStatisticsController {
             LocalDateTime lastSundayEnd = endTime.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)).plusDays(-1);
 
             //查询每个班的走读生实到人数
-            Map<Long, List<StudentOutInRecordVo>> notStayMap = studentOutInRecordService.getNotStayList(startTime, endTime, classIds);
-            //查询住校生的实到情况
-            Map<Long, List<StudentOutInRecordVo>> stayMap = studentOutInRecordService.getStayList(lastSundayStart, lastSundayEnd, classIds);
+            Map<Long, List<StudentOutInRecordVo>> notStayMap = studentOutInRecordService.getList(startTime, endTime, classIds);
 
             //查询各班的请假人数
             Map<Long, Integer> classLeaveCount = studentLeaveService.getClassLeaveCount(startTime, endTime);
@@ -106,7 +105,7 @@ public class StudentStatisticsController {
                     leaveCount = classLeaveCount.get(record.getId());
                 }
                 record.setLeaveCount(leaveCount);
-                record.setActualCount(notStayMap.get(record.getId()).size() + stayMap.get(record.getId()).size());
+                record.setActualCount(notStayMap.get(record.getId()).size());
 
                 Integer lateCount = 0;
                 for (StudentOutInRecordVo outInRecord : notStayMap.get(record.getId())) {
@@ -117,14 +116,6 @@ public class StudentStatisticsController {
                         lateCount ++;
                     }
                 }
-                for (StudentOutInRecordVo outInRecord : stayMap.get(record.getId())) {
-                    if(outInRecord.getStatus() == 0){
-                        continue;
-                    }
-                    if("迟到".equals(outInRecord.getAttendanceStatus())){
-                        lateCount ++;
-                    }
-                }
                 record.setLateCount(lateCount);
 
                 //最后通过总人数-实到人数-请假人数计算出缺勤人数
@@ -153,12 +144,15 @@ public class StudentStatisticsController {
                 .selectAs(BaseClass::getName, StudentStatisticsPageVo::getClassName)
                 .select("t3.name", StudentStatisticsPageVo::getTeacherName)
                 .selectAs(User::getName, StudentStatisticsPageVo::getStudentName)
+                .selectAs(User::getMobile, StudentStatisticsPageVo::getMobile)
                 .selectAs(User::getId, StudentStatisticsPageVo::getUserId)
+                .selectAs(BaseStudentFamily::getTelephone, StudentStatisticsPageVo::getGuardianPhone)
                 .selectAs(DictionaryDetail::getName, StudentStatisticsPageVo::getStduyStatusCn)
                 .selectAs(User::getCredentialNumber, StudentStatisticsPageVo::getCredentialNumber)
                 .innerJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, User::getId)
                 .innerJoin(BaseClass.class, BaseClass::getId, BaseStudentSchoolRoll::getClassId)
                 .leftJoin(User.class, User::getId, BaseClass::getTeacherId)
+                .leftJoin(BaseStudentFamily.class, BaseStudentFamily::getUserId, User::getId)
                 .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, BaseStudentSchoolRoll::getStduyStatus);
         IPage<StudentStatisticsPageVo> voIPage = xjrUserService.selectJoinListPage(ConventPage.getPage(dto), StudentStatisticsPageVo.class, queryUser);
 

+ 6 - 0
src/main/java/com/xjrsoft/module/attendance/vo/StudentStatisticsPageVo.java

@@ -37,4 +37,10 @@ public class StudentStatisticsPageVo {
 
     @ApiModelProperty("考勤时间")
     private LocalDateTime recordTime;
+
+    @ApiModelProperty("手机号")
+    private String mobile;
+
+    @ApiModelProperty("监护人电话")
+    private String guardianPhone;
 }

+ 2 - 2
src/main/java/com/xjrsoft/module/hikvision/util/Out_In_RecordUtil.java

@@ -151,7 +151,7 @@ public class Out_In_RecordUtil {
                             .withMinute(ruleDetails.getPmEndTime().getMinute())
                             .withSecond(ruleDetails.getPmEndTime().getSecond());
                 }
-                if(status == 1){//出
+                if(status == 0){//出
                     if(recordTime.isBefore(amEndTime) && recordTime.isAfter(amStartTime)){
                         attendanceStatus = "早退";
                     }else if(recordTime.isBefore(pmEndTime) && recordTime.isAfter(pmStartTime)){
@@ -213,7 +213,7 @@ public class Out_In_RecordUtil {
                             .withMinute(ruleDetails.getEveningEndTime().getMinute())
                             .withSecond(ruleDetails.getEveningEndTime().getSecond());
                 }
-                if(status == 1){//出
+                if(status == 0){//出
                     if(recordTime.isBefore(amEndTime) && recordTime.isAfter(amStartTime)){
                         attendanceStatus = "早退";
                     }else if(recordTime.isBefore(pmEndTime) && recordTime.isAfter(pmStartTime)){

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

@@ -26,4 +26,6 @@ public interface StudentOutInRecordMapper extends MPJBaseMapper<StudentOutInReco
     List<StudentOutInRecordVo> getNotStayList(@Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime);
 
     List<StudentOutInRecordVo> getStayList(@Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime);
+
+    List<StudentOutInRecordVo> getList(@Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime);
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/outint/service/IStudentOutInRecordService.java

@@ -39,4 +39,7 @@ public interface IStudentOutInRecordService extends MPJBaseService<StudentOutInR
      * @return
      */
     Map<Long, List<StudentOutInRecordVo>> getStayList(LocalDateTime startTime, LocalDateTime endTime, List<Long> classIds);
+
+
+    Map<Long, List<StudentOutInRecordVo>> getList(LocalDateTime startTime, LocalDateTime endTime, List<Long> classIds);
 }

+ 18 - 0
src/main/java/com/xjrsoft/module/outint/service/impl/StudentOutInRecordServiceImpl.java

@@ -81,4 +81,22 @@ public class StudentOutInRecordServiceImpl extends MPJBaseServiceImpl<StudentOut
 
         return result;
     }
+
+    @Override
+    public Map<Long, List<StudentOutInRecordVo>> getList(LocalDateTime startTime, LocalDateTime endTime, List<Long> classIds) {
+        List<StudentOutInRecordVo> notStayList = this.baseMapper.getList(startTime, endTime);
+        Map<Long, List<StudentOutInRecordVo>> result = new HashMap<>();
+        for (Long classId : classIds) {
+            List<StudentOutInRecordVo> dataList = new ArrayList<>();
+            for (StudentOutInRecordVo recordVo : notStayList) {
+                if(!classId.equals(recordVo.getClassId())){
+                    continue;
+                }
+                dataList.add(recordVo);
+            }
+            result.put(classId, dataList);
+        }
+
+        return result;
+    }
 }

+ 6 - 0
src/main/resources/mapper/outin/StudentOutInRecordMapper.xml

@@ -34,4 +34,10 @@
         AND t2.stduy_status = 'FB3001'
         AND t1.record_time BETWEEN #{startTime} AND #{endTime}
     </select>
+    <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 t1.status = 0 AND t2.delete_mark = 0
+        AND t1.record_time BETWEEN #{startTime} AND #{endTime}
+    </select>
 </mapper>