| | |
| | | package com.gs.dingtalk.task; |
| | | |
| | | |
| | | import com.gs.dingtalk.service.QwCheckinDayDataService; |
| | | import com.gs.dingtalk.service.QwHardwareCheckinDataService; |
| | | import com.gs.dingtalk.service.SendDingtalkService; |
| | | import com.gs.dingtalk.service.VwCjScSjTsBbService; |
| | | import lombok.RequiredArgsConstructor; |
| | |
| | | |
| | | private final VwCjScSjTsBbService vwCjScSjTsBbService; |
| | | |
| | | private final QwCheckinDayDataService qwCheckinDayDataService; |
| | | |
| | | private final QwHardwareCheckinDataService qwHardwareCheckinDataService; |
| | | |
| | | private final AtomicBoolean exportTaskRunning = new AtomicBoolean(false); |
| | | |
| | | private final AtomicBoolean checkinDayDataTaskRunning = new AtomicBoolean(false); |
| | | |
| | | private final AtomicBoolean hardwareCheckinTaskRunning = new AtomicBoolean(false); |
| | | |
| | | // /** |
| | | // * 每两分钟执行一次 |
| | |
| | | exportTaskRunning.set(false); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 每天早上7:30执行 |
| | | * 同步前一天的企业微信打卡日报数据到数据库 |
| | | */ |
| | | @Async("taskExecutor") |
| | | @Scheduled(cron = "0 30 7 * * ?") |
| | | public void syncCheckinDayDataTask() { |
| | | if (!checkinDayDataTaskRunning.compareAndSet(false, true)) { |
| | | log.warn("打卡日报数据同步任务正在执行中,跳过本次执行"); |
| | | return; |
| | | } |
| | | |
| | | try { |
| | | log.info("开始执行打卡日报数据同步任务(同步昨天数据)"); |
| | | int insertCount = qwCheckinDayDataService.syncYesterdayDayData(); |
| | | log.info("打卡日报数据同步任务执行成功,新增记录数: {}", insertCount); |
| | | } catch (Exception e) { |
| | | log.error("打卡日报数据同步任务执行异常", e); |
| | | } finally { |
| | | checkinDayDataTaskRunning.set(false); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 每天早上7:35执行(稍晚于打卡日报同步任务) |
| | | * 同步前一天的企业微信设备打卡数据到数据库 |
| | | */ |
| | | @Async("taskExecutor") |
| | | @Scheduled(cron = "0 35 7 * * ?") |
| | | public void syncHardwareCheckinDataTask() { |
| | | if (!hardwareCheckinTaskRunning.compareAndSet(false, true)) { |
| | | log.warn("设备打卡数据同步任务正在执行中,跳过本次执行"); |
| | | return; |
| | | } |
| | | |
| | | try { |
| | | log.info("开始执行设备打卡数据同步任务(同步昨天数据)"); |
| | | int insertCount = qwHardwareCheckinDataService.syncYesterdayHardwareData(); |
| | | log.info("设备打卡数据同步任务执行成功,新增记录数: {}", insertCount); |
| | | } catch (Exception e) { |
| | | log.error("设备打卡数据同步任务执行异常", e); |
| | | } finally { |
| | | hardwareCheckinTaskRunning.set(false); |
| | | } |
| | | } |
| | | } |