Browse Source

考勤统计调整

dzx 7 months ago
parent
commit
cea2d9aa6c

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

@@ -132,4 +132,7 @@ public class AttendanceStatistics implements Serializable {
     @EntityMapping(thisField = "id", joinField = "attendanceStatisticsId")
     private List<AttendanceStatisticsRecord> attendanceStatisticsRecordList;
 
+    @ApiModelProperty("备注")
+    private String remarks;
+
 }

+ 13 - 21
src/main/java/com/xjrsoft/module/attendance/service/impl/AttendanceStatisticsServiceImpl.java

@@ -89,24 +89,15 @@ public class AttendanceStatisticsServiceImpl extends MPJBaseServiceImpl<Attendan
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean add(AddAttendanceStatisticsDto dto) {
-        try {
-            AttendanceStatistics statistics = BeanUtil.toBean(dto, AttendanceStatistics.class);
-            statistics.setCreateDate(new Date());
-            statistics.setStatus(0);
-            statisticsMapper.insert(statistics);
-
-            //1、同步出入记录的数据
-            //2、固化考勤数据
-            refreshRecord(statistics.getId());
-            return true;
-        } catch (Exception e) {
-            Log.error(e.getMessage(), e);
-            if(e.getClass().equals(MyException.class)){
-                throw new MyException(e.getMessage());
-            }else{
-                throw new MyException("添加报错,请联系管理员");
-            }
-        }
+        AttendanceStatistics statistics = BeanUtil.toBean(dto, AttendanceStatistics.class);
+        statistics.setCreateDate(new Date());
+        statistics.setStatus(0);
+        statisticsMapper.insert(statistics);
+
+        //1、同步出入记录的数据
+        //2、固化考勤数据
+        refreshRecord(statistics.getId());
+        return true;
     }
 
     @Override
@@ -180,6 +171,8 @@ public class AttendanceStatisticsServiceImpl extends MPJBaseServiceImpl<Attendan
             statistics.setModifyDate(new Date());
             this.updateById(statistics);
 
+            String remarks = null;
+
             List<LocalDate> dateList2 = getDatesBetween(statistics.getStartDate(), statistics.getEndDate());
             LocalDateTime now = LocalDateTime.now();
             if (dateList2.contains(now.toLocalDate())) {
@@ -201,6 +194,7 @@ public class AttendanceStatisticsServiceImpl extends MPJBaseServiceImpl<Attendan
                     outInRecordUtil.GetVehicleRecord(faceImportMapper, startDateTime, endDateTime);
                 } catch (ParseException e) {
                     Log.error(e.getMessage(), e);
+                    remarks = "未能拉取海康数据,统计可能不准确";
                 }
 
                 AttendanceRecordTask recordTask = new AttendanceRecordTask();
@@ -274,9 +268,6 @@ public class AttendanceStatisticsServiceImpl extends MPJBaseServiceImpl<Attendan
             for (User user : userList) {
                 AttendanceStatisticsRecord record = new AttendanceStatisticsRecord();
                 record.setUserId(user.getId());
-                if (14954799879750L == user.getId()) {
-                    System.out.println(user.getName());
-                }
                 record.setAttendanceStatisticsId(statistics.getId());
                 Long normalCount = 0L;
                 Long leaveCount = 0L;
@@ -344,6 +335,7 @@ public class AttendanceStatisticsServiceImpl extends MPJBaseServiceImpl<Attendan
             statistics.setModifyDate(new Date());
             statistics.setPersonCount(insertList.size());
             statistics.setAttendanceDays(dateList.size());
+            statistics.setRemarks(remarks);
             this.updateById(statistics);
 
             return true;

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

@@ -76,4 +76,7 @@ public class AttendanceStatisticsPageVo {
     @ApiModelProperty("应出勤天数")
     private Integer attendanceDays;
 
+    @ApiModelProperty("备注")
+    private String remarks;
+
 }

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

@@ -5,7 +5,7 @@
 <mapper namespace="com.xjrsoft.module.attendance.mapper.AttendanceStatisticsMapper">
     <select id="getPage" parameterType="com.xjrsoft.module.attendance.dto.AttendanceStatisticsPageDto" resultType="com.xjrsoft.module.attendance.vo.AttendanceStatisticsPageVo">
         SELECT t1.id,t1.year,t1.month,t1.name,t1.start_date,t1.end_date,t2.name AS rule_name,
-        t1.person_count,t1.attendance_days, t1.status,t1.is_need_refresh,t1.time_period FROM attendance_statistics t1
+        t1.person_count,t1.attendance_days, t1.status,t1.is_need_refresh,t1.time_period,t1.remarks FROM attendance_statistics t1
         LEFT JOIN attendance_rule_category t2 ON t1.attendance_rule_category_id = t2.id
         WHERE t1.delete_mark = 0
         <if test="dto.name != null and dto.name != ''">

+ 13 - 14
src/main/resources/sqlScript/20250421_sql.sql

@@ -1,23 +1,22 @@
 ALTER TABLE professional_title ADD UNIQUE (professional_title_no);
 
-create index user_id_semester_id_index
-    on textbook_student_claim (student_user_id, base_semester_id)
-    comment '用户学期复合索引';
-
-create index class_id_semester_id_index
-    on textbook_student_claim (class_id, base_semester_id)
-    comment '班级学期复合索引';
-
-create index user_id_textbook_id_index
-    on textbook_student_claim (student_user_id, textbook_id)
-    comment '用户教材复合索引';
-
-# 上面已经在正式服运行-------------------------------------------------------------
-
+CREATE INDEX user_id_semester_id_index
+    ON textbook_student_claim (student_user_id, base_semester_id)
+    COMMENT '用户学期复合索引';
 
+CREATE INDEX class_id_semester_id_index
+    ON textbook_student_claim (class_id, base_semester_id)
+    COMMENT '班级学期复合索引';
 
+CREATE INDEX user_id_textbook_id_index
+    ON textbook_student_claim (student_user_id, textbook_id)
+    COMMENT '用户教材复合索引';
 
 ALTER TABLE base_student_school_roll
   ADD COLUMN internship_state VARCHAR (20) NULL COMMENT '实习状态(xjr_dictionary_item[internship_state])' AFTER candidate_number;
 
 UPDATE base_student_school_roll SET internship_state = 'IT_0001' WHERE archives_status = 'FB2901';
+# 上面已经在正式服运行-------------------------------------------------------------
+
+ALTER TABLE tl.attendance_statistics
+  ADD COLUMN remarks VARCHAR (500) NULL COMMENT '备注' AFTER attendance_days;