package com.storlead.user.task;

import com.storlead.user.service.IUserService;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.text.ParseException;

/**
 * 定时同步OA 公司/分公司/部门/岗位/用户/及企业微信id及头像数据到本系统
 * <p>
 * 开发一个任务类 继承 BaseTask 或实现 Job 接口 重写 execute 方法即可
 * 然后在管理后台或者 调用/task/add url 添加 jobName=包完全限定名 比如本类为com.storlead.management.job.TestJob
 * http://localhost:8101/sp-user/task/add?jobName=com.storlead.centre.user.web.job.TestJob&jobGroup=testGroup&cronExpression=0/5%20*%20*%20*%20*%20?&jobDescription=test
 *
 * @author blank
 * @since 2021-6-15 下午 3:35
 * @see NoArgsConstructor https://www.cnblogs.com/zhuwenjoyce/p/11186209.html 必须要有public修饰的无参构造函数
 * @see DisallowConcurrentExecution 表示不允许并发执行 下一次执行会等待上一次任务执行完成之后 才执行
 */
@Slf4j
@Component
public class SyncOaTask {

    @Resource
    private IUserService userService;
//
//    /**
//     * 定时上午七点同步OA 公司/分公司/岗位/人力资源数据到本系统
//     *
//     * @author YPZ
//     * @date 2022-2-23
//     */
//    @Scheduled(cron ="0 0 7 * * ? ")
////    @Scheduled(cron ="40 03 17 30 6 *")
//    public void syncProject() throws ParseException {
//        long startTime = System.currentTimeMillis();
//        log.info("oa company dept job user sync task starting ----");
//        try {
//            userService.syncOa();
//        } catch (Exception e) {
//            log.error(e.getMessage());
//        }
//        long endTime = System.currentTimeMillis();
//        long timeSpend = endTime - startTime;
//        log.info("oa company dept job user sync task done ----{} ms or {} s", timeSpend ,timeSpend/ 1000);
//    }
}
