Files
daohuaxiang/src/com/seeyon/apps/src_dingding/task/DingdingTask.java

128 lines
4.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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<String, String> 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<String, String> parameters = new HashMap<String, String>();
QuartzHolder.newQuartzJob(jobName, new Date(), delta, jobBeanId, parameters);
} else {
Map<String, String> parameters = new HashMap<String, String>();
// 设置时间
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;
// }
}