package com.seeyon.apps.src_dingding.task; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.alibaba.fastjson.JSONObject; import com.seeyon.apps.src_dingding.service.DingdingService; import com.seeyon.ctp.common.AppContext; //import com.seeyon.apps.src_automatic.task.PushAuCardTask; //import com.seeyon.apps.src_bill_detail.manager.PushZcService; import com.seeyon.ctp.common.quartz.QuartzHolder; import com.seeyon.ctp.common.quartz.QuartzJob; import com.seeyon.ctp.util.SDFCoder; import com.seeyon.ctp.util.UUIDLong; import com.seeyon.ctp.util.json.JSONUtil; /** * 自动计算任务 */ public class DingdingTask implements QuartzJob { /** 日志管理器 */ private final static Log log = LogFactory.getLog(DingdingTask.class); /** 定义的任务插件ID */ // private static String jobBeanId="pushCardTask"; /** 定义的任务名称 */ // public static String jobName="QuartzPushCardTask"; /** 定义的任务插件ID */ private static String jobBeanId="dingdingTask"; /** 定义的任务名称 */ public static String jobName="QuartzDingdingTask"; // private PushZcService pushZcService; private volatile boolean running; private DingdingService dingdingService; public DingdingService getDingdingService() { if (dingdingService == null) { dingdingService = (DingdingService) AppContext.getBean("dingdingService"); } return dingdingService; } public void setDingdingService(DingdingService dingdingService) { this.dingdingService = dingdingService; } /** * {@inheritDoc} */ @Override public void execute(Map parameters) { if(running) { log.info("上次推送还在执行中,跳过本次数据推送"); return; } try { // 钉钉考勤组同步 getDingdingService().dingdingattendance(); // 钉钉部门同步 getDingdingService().dingdingdept(); // 钉钉人员同步 getDingdingService().dingdingmember(); // 钉钉打卡同步 getDingdingService().dingdingclockin(); // 钉钉考勤信息设置 getDingdingService().setWorkAttendance(); } catch(Exception e) { log.error("发生异常:", e); } finally { this.running = false; } } /** * interval 如果是true,则是间隔执行 */ public static void registerSyncTask(boolean interval, int our, int minute) { // jobBeanId = "pushCardTask"; // jobName = "QuartzPushCardTask"; jobBeanId = "dingdingTask"; jobName = "QuartzDingdingTask"; log.info("注册预算定时计算任务" + jobName + "..."); try { // 先删除任务 QuartzHolder.deleteQuartzJob(jobName); // 设定时间 每天同步的 // if ("aa".length() > 5) { if(interval) { int delta = (our * 60 + minute) * 60 * 1000; Map parameters = new HashMap(); QuartzHolder.newQuartzJob(jobName, new Date(), delta, jobBeanId, parameters); } else { Map parameters = new HashMap(); // 设置时间 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); // 年月日 也可以具体到时分秒如calendar.set(2015, 10, 12,11,32,52); // 每日运行,只要改动 时间即可 calendar.set(Calendar.HOUR_OF_DAY, our); calendar.set(Calendar.MINUTE, minute); calendar.set(Calendar.SECOND, 00); Date date = calendar.getTime();// date就是你需要的时间 QuartzHolder.newQuartzJobPerDay(null, jobName, date, jobBeanId, parameters); log.info("定时计算任务" + jobName + ",成功"); } } catch (Exception e) { log.error("注册定时计算任务失败", e); } } // public void setPushZcService(PushZcService pushZcService) { // this.pushZcService = pushZcService; // } }