Sfoglia il codice sorgente

定时任务 每天晚上1点定时同步前一天的数据

fancy 5 anni fa
parent
commit
e51aaf4ca4

+ 4 - 0
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/ThisApplication.java

@@ -3,7 +3,9 @@ package com.x.attendance.assemble.control;
 import com.x.attendance.assemble.control.processor.monitor.MonitorFileDataOpt;
 import com.x.attendance.assemble.control.processor.thread.DataProcessThreadFactory;
 import com.x.attendance.assemble.control.schedule.AttendanceStatisticTask;
+import com.x.attendance.assemble.control.schedule.DingdingAttendanceSyncScheduleTask;
 import com.x.attendance.assemble.control.schedule.MobileRecordAnalyseTask;
+import com.x.attendance.assemble.control.schedule.QywxAttendanceSyncScheduleTask;
 import com.x.attendance.assemble.control.service.AttendanceSettingService;
 import com.x.base.core.project.Context;
 import com.x.base.core.project.config.Config;
@@ -27,9 +29,11 @@ public class ThisApplication {
 			context.schedule(MobileRecordAnalyseTask.class, "0 0/10 * * * ?");
 			if (BooleanUtils.isTrue(Config.dingding().getAttendanceSyncEnable())) {
 				dingdingQueue.start();
+				context.schedule(DingdingAttendanceSyncScheduleTask.class, "0 0 1 * * ?");
 			}
 			if (BooleanUtils.isTrue(Config.qiyeweixin().getAttendanceSyncEnable())) {
 				qywxQueue.start();
+				context.schedule(QywxAttendanceSyncScheduleTask.class, "0 0 1 * * ?");
 			}
 		} catch (Exception e) {
 			e.printStackTrace();

+ 48 - 0
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/schedule/DingdingAttendanceSyncScheduleTask.java

@@ -0,0 +1,48 @@
+package com.x.attendance.assemble.control.schedule;
+
+import com.x.attendance.assemble.control.ThisApplication;
+import com.x.attendance.entity.DingdingQywxSyncRecord;
+import com.x.base.core.container.EntityManagerContainer;
+import com.x.base.core.container.factory.EntityManagerContainerFactory;
+import com.x.base.core.project.logger.Logger;
+import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.schedule.AbstractJob;
+import com.x.base.core.project.tools.DateTools;
+import org.quartz.JobExecutionContext;
+
+import java.util.Date;
+
+/**
+ * 钉钉考勤结果同步的定时器
+ * 每天晚上1点同步前一天的结果
+ * Created by fancyLou on 2020-03-26.
+ * Copyright © 2020 O2. All rights reserved.
+ */
+public class DingdingAttendanceSyncScheduleTask extends AbstractJob {
+
+    private static final Logger logger = LoggerFactory.getLogger(DingdingAttendanceSyncScheduleTask.class);
+
+    @Override
+    public void schedule(JobExecutionContext jobExecutionContext) throws Exception {
+        try ( EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+            logger.info("开始同步钉钉考勤打卡结果。。。。。。。。。。。。。。。。。。。。。");
+            //前一天 0点到23点
+            Date from = new Date();
+            from = DateTools.addDay(from, -1);
+            from = DateTools.floorDate(from, null);
+            String toDay = DateTools.format(from, DateTools.format_yyyyMMdd);
+            Date to = DateTools.parse(toDay+" 23:59:59");
+
+            DingdingQywxSyncRecord record = new DingdingQywxSyncRecord();
+            record.setDateFrom(from.getTime());
+            record.setDateTo(to.getTime());
+            record.setStartTime(new Date());
+            record.setType(DingdingQywxSyncRecord.syncType_dingding);
+            record.setStatus(DingdingQywxSyncRecord.status_loading);
+            emc.beginTransaction(DingdingQywxSyncRecord.class);
+            emc.persist(record);
+            emc.commit();
+            ThisApplication.dingdingQueue.send(record);
+        }
+    }
+}

+ 47 - 0
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/schedule/QywxAttendanceSyncScheduleTask.java

@@ -0,0 +1,47 @@
+package com.x.attendance.assemble.control.schedule;
+
+import com.x.attendance.assemble.control.ThisApplication;
+import com.x.attendance.entity.DingdingQywxSyncRecord;
+import com.x.base.core.container.EntityManagerContainer;
+import com.x.base.core.container.factory.EntityManagerContainerFactory;
+import com.x.base.core.project.logger.Logger;
+import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.schedule.AbstractJob;
+import com.x.base.core.project.tools.DateTools;
+import org.quartz.JobExecutionContext;
+
+import java.util.Date;
+
+/**
+ * 企业微信考勤同步定时器
+ * 每天晚上1点同步前一天的考勤数据
+ * Created by fancyLou on 2020-03-26.
+ * Copyright © 2020 O2. All rights reserved.
+ */
+public class QywxAttendanceSyncScheduleTask extends AbstractJob {
+
+    private static final Logger logger = LoggerFactory.getLogger(QywxAttendanceSyncScheduleTask.class);
+
+    @Override
+    public void schedule(JobExecutionContext jobExecutionContext) throws Exception {
+        try ( EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+            logger.info("开始同步企业微信考勤打卡结果。。。。。。。。。。。。。。。。。。。。。");
+            //前一天 0点到23点
+            Date from = new Date();
+            from = DateTools.addDay(from, -1);
+            from = DateTools.floorDate(from, null);
+            String toDay = DateTools.format(from, DateTools.format_yyyyMMdd);
+            Date to = DateTools.parse(toDay+" 23:59:59");
+            DingdingQywxSyncRecord record = new DingdingQywxSyncRecord();
+            record.setDateFrom(from.getTime());
+            record.setDateTo(to.getTime());
+            record.setStartTime(new Date());
+            record.setType(DingdingQywxSyncRecord.syncType_qywx);
+            record.setStatus(DingdingQywxSyncRecord.status_loading);
+            emc.beginTransaction(DingdingQywxSyncRecord.class);
+            emc.persist(record);
+            emc.commit();
+            ThisApplication.qywxQueue.send(record);
+        }
+    }
+}