Procházet zdrojové kódy

修改考勤统计

snihwxf před 1 týdnem
rodič
revize
9033cb4654

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

@@ -311,6 +311,7 @@ public class StudentStatisticsController {
                 .selectAs(StudentAttendanceStatistics::getUserId, StudentStatisticsPageVo::getUserId)
                 .selectAs(StudentAttendanceStatistics::getAttendanceStatus, StudentStatisticsPageVo::getStatus)
                 .selectAs(StudentAttendanceStatistics::getRecordTime, StudentStatisticsPageVo::getRecordTime)
+                .selectAs(StudentAttendanceStatistics::getReasonLeave, StudentStatisticsPageVo::getReasonLeave)
 
                 .select("CONCAT(LEFT(t1.mobile, 3), '****', RIGHT(t1.mobile, 4))", StudentStatisticsPageVo::getMobile)
                 .select("CONCAT(LEFT(t1.credential_number, 6), '****', RIGHT(t1.credential_number, 4))", StudentStatisticsPageVo::getCredentialNumber)
@@ -591,6 +592,7 @@ public class StudentStatisticsController {
                 .selectAs(User::getName, StudentStatisticsExcelVo::getStudentName)
                 .selectAs(StudentAttendanceStatistics::getAttendanceStatus, StudentStatisticsExcelVo::getStatus)
                 .selectAs(StudentAttendanceStatistics::getRecordTime, StudentStatisticsExcelVo::getRecordTime)
+                .selectAs(StudentAttendanceStatistics::getReasonLeave, StudentStatisticsPageVo::getReasonLeave)
 
                 .select("CONCAT(LEFT(t1.mobile, 3), '****', RIGHT(t1.mobile, 4))", StudentStatisticsExcelVo::getMobile)
                 .select("CONCAT(LEFT(t1.credential_number, 6), '****', RIGHT(t1.credential_number, 4))", StudentStatisticsExcelVo::getCredentialNumber)

+ 3 - 0
src/main/java/com/xjrsoft/module/attendance/entity/ClassAttendanceStatistics.java

@@ -139,4 +139,7 @@ public class ClassAttendanceStatistics  implements Serializable {
 
     @ApiModelProperty("考勤日期")
     private LocalDate attendanceDate;
+
+    @ApiModelProperty("实习总人数")
+    private Integer internshipCount;
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/attendance/entity/StudentAttendanceStatistics.java

@@ -86,4 +86,7 @@ public class StudentAttendanceStatistics implements Serializable {
 
     @ApiModelProperty("考勤日期")
     private LocalDate attendanceDate;
+
+    @ApiModelProperty("请假原因")
+    private String reasonLeave;
 }

+ 2 - 0
src/main/java/com/xjrsoft/module/attendance/service/impl/StudentStatisticsServiceImpl.java

@@ -133,6 +133,7 @@ public class StudentStatisticsServiceImpl  extends MPJBaseServiceImpl<StudentAtt
 
                 if (studentLeave != null) {
                     studentAttendanceStatistics.setAttendanceStatus(studentLeave.getLeaveType());
+                    studentAttendanceStatistics.setReasonLeave(studentLeave.getReason());
                 } else {
                     StudentOutInRecord outInRecord = outInMap.get(record.getUserId());
                     if (outInRecord != null) {
@@ -203,6 +204,7 @@ public class StudentStatisticsServiceImpl  extends MPJBaseServiceImpl<StudentAtt
                 classAttendanceStatistics.setNotStayCount(record.getNotStayCount());
                 classAttendanceStatistics.setTimeInterval(timePeriod);
                 classAttendanceStatistics.setAttendanceDate(queryDate);
+                classAttendanceStatistics.setInternshipCount(record.getInternshipCount());
 
                 List<StudentAttendanceStatistics> studentAttendanceStatisticsFilter = studentAttendanceStatisticsList.stream().filter(row -> Objects.equals(row.getClassId(), record.getId())).collect(Collectors.toList());
 

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

@@ -38,6 +38,11 @@ public class ClassStatisticsExcelVo {
     @ApiModelProperty("请假人数")
     private Integer leaveCount;
 
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("实习总人数")
+    @ApiModelProperty("实习总人数")
+    private Integer internshipCount;
+
     @ContentStyle(dataFormat = 49)
     @ExcelProperty("迟到人数")
     @ApiModelProperty("迟到人数")
@@ -62,4 +67,5 @@ public class ClassStatisticsExcelVo {
     @ExcelProperty("出勤率")
     @ApiModelProperty("出勤率")
     private String attendanceRate;
+
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/attendance/vo/ClassStatisticsVo.java

@@ -57,4 +57,7 @@ public class ClassStatisticsVo {
     @ApiModelProperty("未离校人数")
     private Integer wLeaveSchoolCount;
 
+    @ApiModelProperty("实习总人数")
+    private Integer internshipCount;
+
 }

+ 5 - 0
src/main/java/com/xjrsoft/module/attendance/vo/StudentStatisticsExcelVo.java

@@ -54,4 +54,9 @@ public class StudentStatisticsExcelVo {
     @ExcelProperty("监护人电话")
     @ApiModelProperty("监护人电话")
     private String guardianPhone;
+
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("请假原因")
+    @ApiModelProperty("请假原因")
+    private String reasonLeave;
 }

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

@@ -46,4 +46,7 @@ public class StudentStatisticsPageVo {
 
     @ApiModelProperty("监护人电话")
     private String guardianPhone;
+
+    @ApiModelProperty("请假原因")
+    private String reasonLeave;
 }

+ 5 - 1
src/main/resources/mapper/base/BaseClass.xml

@@ -125,7 +125,11 @@
         (SELECT COUNT(*) FROM base_student_school_roll c1
         INNER JOIN xjr_user c2 ON c1.user_id = c2.id
         WHERE c1.delete_mark = 0 AND c1.delete_mark = 0
-        AND c1.class_id = t1.id AND c1.archives_status = 'FB2901' AND c1.stduy_status = 'FB3001') AS not_stay_count FROM base_class t1
+        AND c1.class_id = t1.id AND c1.archives_status = 'FB2901' AND c1.stduy_status = 'FB3001') AS not_stay_count,
+        (SELECT COUNT(*) FROM base_student_school_roll c1
+        INNER JOIN xjr_user c2 ON c1.user_id = c2.id
+        WHERE c1.delete_mark = 0 AND c1.delete_mark = 0
+        AND c1.class_id = t1.id AND c1.archives_status = 'FB2901' AND c1.internship_state = 'IT_0002') AS internship_count FROM base_class t1
         LEFT JOIN xjr_user t2 ON t1.teacher_id = t2.id
         WHERE t1.delete_mark = 0
         <if test="dto.classId != null">

+ 5 - 1
src/main/resources/sqlScript/20251111_sql.sql

@@ -48,4 +48,8 @@ CREATE TABLE `class_attendance_statistics` (
   `record_time` DATETIME NULL COMMENT '考勤时间',
   `attendance_date` DATE NULL   COMMENT '考勤日期',
   PRIMARY KEY (`id`) USING BTREE
-) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='班级考勤统计';
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='班级考勤统计';
+
+ALTER TABLE class_attendance_statistics ADD internship_count INT DEFAULT NULL COMMENT '实习总人数';
+
+ALTER TABLE student_attendance_statistics ADD reason_leave VARCHAR(400) DEFAULT NULL COMMENT '请假原因';