From dc0de44ac3d5b977115087d4af566a53c9736232 Mon Sep 17 00:00:00 2001 From: fl <3098731433@qq.com> Date: Fri, 3 Jan 2025 14:12:06 +0800 Subject: [PATCH] =?UTF-8?q?20250103=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/att/dao/AttSourceDataDao.java | 4 + .../com/bonus/system/att/tasks/AttTasks.java | 38 +- .../mapper/att/AttDetailByMonthMapper.xml | 20 +- .../mapper/att/AttSourceDataMapper.xml | 494 +++++++++--------- .../mapper/att/AttendanceDetailsMapper.xml | 15 +- 5 files changed, 297 insertions(+), 274 deletions(-) diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttSourceDataDao.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttSourceDataDao.java index 4ee4f0e..71f6c62 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttSourceDataDao.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/AttSourceDataDao.java @@ -142,6 +142,8 @@ public interface AttSourceDataDao { */ List getSourceAttNoInOutData(); + void updateHisData(String date); + void delHisData(String date); /** @@ -156,4 +158,6 @@ public interface AttSourceDataDao { * @param longBreakRecords */ void insertWorkAbnormal(List longBreakRecords); + + int getFirstAttendanceData(String date); } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/AttTasks.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/AttTasks.java index 8f9104d..61d405f 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/AttTasks.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/AttTasks.java @@ -60,7 +60,7 @@ public class AttTasks { private volatile boolean executed = false; // 标志位,表示任务是否已经执行过 // @Scheduled(cron = "0 0/10 * * * ?") - @Scheduled(initialDelay = 60000, fixedDelay = 60000 * 10) +// @Scheduled(initialDelay = 60000, fixedDelay = 60000 * 10) @Async public void getAttTasks() { log.info("--------考勤定时器开启------"); @@ -72,7 +72,7 @@ public class AttTasks { /** * 历史考勤数据 */ -// @Scheduled(initialDelay = 60000 * 4,fixedDelay = 60000 * 30) + @Scheduled(initialDelay = 6000 * 4,fixedDelay = 60000 * 30) @Async public void getHisAttTasks() { log.info("--------考勤定时器开启------"); @@ -80,22 +80,11 @@ public class AttTasks { return; // 如果任务已经执行过,直接返回 } executed = true; // 设置标志位,表示任务已经执行过 -// String startDate = "2024-11-01"; -// String endDate = "2024-11-05"; -// List dateList = getStrDateListBetween(startDate, endDate); - List dateList = new ArrayList<>(); - dateList.add("2024-11-02"); - dateList.add("2024-11-03"); - dateList.add("2024-11-09"); - dateList.add("2024-11-10"); - dateList.add("2024-11-16"); - dateList.add("2024-11-17"); - dateList.add("2024-11-23"); - dateList.add("2024-11-24"); - dateList.add("2024-11-30"); - dateList.add("2024-12-01"); - dateList.add("2024-12-07"); - dateList.add("2024-12-08"); + String startDate = "2024-12-26"; + String endDate = "2024-12-26"; + List dateList = getStrDateListBetween(startDate, endDate); +// List dateList = new ArrayList<>(); +// dateList.add("2024-10-18"); hisAttPush(dateList); log.info("--------考勤定时器完毕------"); } @@ -132,7 +121,13 @@ public class AttTasks { private void delHisData(String date) { - attSourceDataDao.delHisData(date); + //查询基础数据是否完备 + int i = attSourceDataDao.getFirstAttendanceData(date); + if(i > 0){ + attSourceDataDao.updateHisData(date); + }else{ + attSourceDataDao.delHisData(date); + } } @@ -144,7 +139,7 @@ public class AttTasks { */ private void pushAttData(String pushDate, int pushType) { //获取黔送云的考勤数据 - getQsyAttendanceData(pushDate, pushType); +// getQsyAttendanceData(pushDate, pushType); //获取考勤机中的考勤数据 getMachineAttendanceData(pushDate, pushType); // //查出每一个考勤组的应出勤天数以及考勤组的规则 @@ -289,6 +284,9 @@ public class AttTasks { */ private void threadLeaveData(LeaveBean c, String pushDate) { //1.将请假区间变成日期集合 +// if(c.getUserId() == 879L){ +// System.out.println("徐军"); +// } List dateList = getStrDateListBetween(c.getLeaveStartDate(), c.getLeaveEndDate()); if (!dateList.isEmpty()) { dateList.forEach(v -> { diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttDetailByMonthMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttDetailByMonthMapper.xml index 321e454..6513b9f 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttDetailByMonthMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttDetailByMonthMapper.xml @@ -46,12 +46,11 @@ - select name, id_number, '0' as orgId, '0' as orgName, - attendance_date as attCurrentDay, attendance_time as attCurrentTime, - CASE attendance_type WHEN '上班' THEN 1 ELSE 2 END as attType, - '0' as attAddress, lon as attLon, lat as attLat, '1' as dataSource - from gz_cloud.fc_sup_attendance sup - where sup.attendance_date - - >= #{pushDate} - - - = #{pushDate} - - and is_wechat != 1 - + + delete + from att_source_data + where att_current_day = #{date} and data_source != 3; + delete + from att_data + where att_current_day = #{date}; + delete + from att_data_update + where att_current_day = #{date}; + - + - + - + - + - + - + - + - + - + - + - + - - \ No newline at end of file + + + + + \ No newline at end of file diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml index 18600dc..9039415 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttendanceDetailsMapper.xml @@ -5,7 +5,7 @@ SELECT adr.*, - COUNT(awa.user_id) as outCount + IF(awa.outCount is null,0,awa.outCount) as outCount FROM att_day_report adr - LEFT JOIN att_work_abnormal awa + LEFT JOIN (SELECT att_current_day,org_id,count( DISTINCT user_id) as outCount FROM att_work_abnormal GROUP BY att_current_day,org_id) awa ON awa.att_current_day = adr.att_current_day and awa.org_id = adr.org_id WHERE adr.att_current_day BETWEEN #{startDate} AND #{endDate} - GROUP BY adr.att_current_day +