Browse Source

教师考勤调整报错解决

dzx 9 months ago
parent
commit
5c3c6a0769

+ 16 - 12
src/main/java/com/xjrsoft/module/attendance/controller/TeacherStatisticsController.java

@@ -118,29 +118,29 @@ public class TeacherStatisticsController {
                 AttendanceRuleDetailsUserVo detailsUserVo = teacherTodyRuleByUserId.get(record.getUserId());
                 if(dto.getTimePeriod() == 1){
                     startTime = queryDate.atTime(5, 0, 0);
-                    if(detailsUserVo.getAmStartTime() != null){
+                    if(detailsUserVo != null && detailsUserVo.getAmStartTime() != null){
                         startTime = queryDate.atTime(detailsUserVo.getAmStartTime());
                     }
                     endTime = queryDate.atTime(12, 0, 0);
-                    if(detailsUserVo.getAmEndTime() != null){
+                    if(detailsUserVo != null && detailsUserVo.getAmEndTime() != null){
                         endTime = queryDate.atTime(detailsUserVo.getAmEndTime());
                     }
                 }else if(dto.getTimePeriod() == 2){
                     startTime = queryDate.atTime(12, 0, 0);
-                    if(detailsUserVo.getPmStartTime() != null){
+                    if(detailsUserVo != null && detailsUserVo.getPmStartTime() != null){
                         startTime = queryDate.atTime(detailsUserVo.getPmStartTime());
                     }
                     endTime = queryDate.atTime(18, 0, 0);
-                    if(detailsUserVo.getPmEndTime() != null){
+                    if(detailsUserVo != null && detailsUserVo.getPmEndTime() != null){
                         endTime = queryDate.atTime(detailsUserVo.getPmEndTime());
                     }
                 }else{
                     startTime = queryDate.atTime(0, 0, 0);
-                    if(detailsUserVo.getEveningStartTime() != null){
+                    if(detailsUserVo != null && detailsUserVo.getEveningStartTime() != null){
                         startTime = queryDate.atTime(detailsUserVo.getEveningStartTime());
                     }
                     endTime = queryDate.atTime(23, 59, 59);
-                    if(detailsUserVo.getEveningEndTime() != null){
+                    if(detailsUserVo != null && detailsUserVo.getEveningEndTime() != null){
                         endTime = queryDate.atTime(detailsUserVo.getEveningEndTime());
                     }
                 }
@@ -169,14 +169,18 @@ public class TeacherStatisticsController {
                             .eq(TeacherOutInRecord::getStatus, 1)
                             .eq(TeacherOutInRecord::getUserId, record.getUserId())
                             .orderByAsc(TeacherOutInRecord::getRecordTime)
-            );
-                TeacherOutInRecord outInRecord = outInRecords.get(0);
-                if(outInRecord != null){
-                    record.setRecordTime(outInRecord.getRecordTime());
-                    record.setStatus(outInRecord.getAttendanceStatus());
-                }else{
+                );
+                if(!outInRecords.isEmpty()){
+                    TeacherOutInRecord outInRecord = outInRecords.get(0);
+                    if(outInRecord != null){
+                        record.setRecordTime(outInRecord.getRecordTime());
+                        record.setStatus(outInRecord.getAttendanceStatus());
+                    }
+                }
+                if(record.getStatus() == null){
                     record.setStatus("缺勤");
                 }
+
             }
         }
         PageOutput<TeacherStatisticsPageVo> pageOutput = ConventPage.getPageOutput(voIPage, TeacherStatisticsPageVo.class);

+ 1 - 1
src/main/resources/mapper/attendance/AttendanceRuleDetailsMapper.xml

@@ -33,7 +33,7 @@
         INNER JOIN attendance_rule_details t2 ON t1.id = t2.attendance_rule_category_id
         INNER JOIN attendance_user_relation t3 ON t1.id = t3.attendance_rule_category_id
         INNER JOIN xjr_user t4 ON t3.user_id = t4.id
-        INNER JOIN base_student t5 ON t4.id = t5.user_id
+        INNER JOIN base_teacher t5 ON t4.id = t5.user_id
         WHERE t1.delete_mark = 0 AND t2.delete_mark = 0 AND NOW() BETWEEN start_date AND end_date
         AND t2.date_type = #{dayOfWeek}
         <if test="userIds != null and !userIds.isEmpty()">

+ 5 - 0
src/test/java/com/xjrsoft/module/personnel/controller/StundentFaceProcessControllerTest.java

@@ -24,6 +24,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.charset.Charset;
+import java.util.Base64;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -102,6 +103,10 @@ class StundentFaceProcessControllerTest {
 
         imageBytes = ImageUtil.compressUnderSize(imageBytes, 204800);
 
+        String base64String = Base64.getEncoder().encodeToString(imageBytes);
+        System.out.println("-----------------------------------------------------");
+        System.out.println(base64String);
+
         File file = new File("C:\\Users\\14263\\Downloads\\2023级剩余学籍找\\20240607-194930-压缩.jpg");
         try (FileOutputStream fos = new FileOutputStream(file)) {
             fos.write(imageBytes);