package itn.let.schdlr.service;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.annotation.Resource;
import javax.sql.DataSource;

import itn.let.mjo.pay.service.MjonPayService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Profile;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

import com.ibm.icu.util.Calendar;
import com.ibm.icu.util.GregorianCalendar;

import egovframework.rte.fdl.property.EgovPropertyService;
import itn.com.uss.olh.hpc.service.HackIpService;
import itn.com.utl.fcc.service.EgovDateUtil;
import itn.let.fax.admin.service.FaxAdmService;
import itn.let.fax.admin.service.FaxStatVO;
import itn.let.kakao.admin.kakaoAt.service.MjonKakaoAtStatVO;
import itn.let.kakao.admin.statistics.service.KakaoStatisticsService;
import itn.let.lett.service.LetterService;
import itn.let.mail.service.MailTemplateService;
import itn.let.mjo.msg.service.MjonMsgService;
import itn.let.mjo.msg.service.MjonMsgStatVO;
import itn.let.mjo.msg.service.MjonMsgVO;
import itn.let.mjo.msgdata.service.impl.MjonMsgDataDAO;
import itn.let.sts.com.StatsVO;
import itn.let.sts.cst.service.EgovConectStatsService;
import itn.let.uss.umt.service.EgovUserManageService;
import itn.let.utl.user.service.MjonNoticeSendUtil;
import net.javacrumbs.shedlock.core.LockProvider;
import net.javacrumbs.shedlock.core.SchedulerLock;
import net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateLockProvider;
import net.javacrumbs.shedlock.spring.annotation.EnableSchedulerLock;

@Profile({"!local"})
@Service("SchedulerUtil")
@EnableScheduling
@EnableSchedulerLock(defaultLockAtMostFor = "PT30S") // Scheduler Lock 사용 가능 설정 (기본 30초동안 Lock)
public class SchedulerUtil {

    private static final Logger LOGGER = LoggerFactory.getLogger(SchedulerUtil.class);

    @Resource(name = "SchdlrManageService")
    private SchdlrManageService schdlrManageService;

    @Scheduled(cron = "0 */5 * * * *")
    public void sendNumberFailNoticeScheduler() throws Exception {
        try {
            LOGGER.info(" ============= sendNumberFailNoticeScheduler START ============= ");

            schdlrManageService.sendNumberFailNoticeScheduler();

            LOGGER.info(" ============= sendNumberFailNoticeScheduler END ============= ");
        }catch(Exception ex) {
            ex.printStackTrace();
        }
    }
}
