//package com.njcn.system.timer.tasks;
//
//import cn.hutool.core.date.DateUtil;
//import cn.hutool.core.util.StrUtil;
//import com.njcn.common.pojo.constant.BizParamConstant;
//import com.njcn.prepare.harmonic.api.specialanalysis.SpecialAnalysisFeignClient;
//import com.njcn.prepare.harmonic.pojo.param.LineParam;
//import com.njcn.system.timer.TimerTaskRunner;
//import lombok.RequiredArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Component;
//
//import java.text.SimpleDateFormat;
//import java.time.LocalDateTime;
//import java.util.Calendar;
//import java.util.Date;
//import java.util.Objects;
//
///**
// * 类的介绍：
// *
// * @author xuyang
// * @version 1.0.0
// * @createTime 2023/12/20 14:15
// */
//@Component
//@RequiredArgsConstructor
//@Slf4j
//public class specialAnalysisIndexOverviewTaskRunner implements TimerTaskRunner {
//
//    private final SpecialAnalysisFeignClient specialAnalysisFeignClient;
//
//    @Override
//    public void action(String date) {
//        log.info(LocalDateTime.now()+"专项分析-指标总览开始执行");
//        LineParam lineParam = new LineParam();
//        lineParam.setType(Integer.valueOf(BizParamConstant.STAT_BIZ_MONTH));
//        lineParam.setDataDate(this.prepareTimeDeal(BizParamConstant.STAT_BIZ_MONTH));
//        this.commDefineDate(BizParamConstant.STAT_BIZ_MONTH,lineParam);
//        specialAnalysisFeignClient.hanlder(lineParam);
//    }
//
//    public String prepareTimeDeal(String command) {
//        if (StrUtil.isBlank(command)) {
//            log.error(LocalDateTime.now() + "xxl调度任务参数未设置");
//            return null;
//        }
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//        Calendar calendar = Calendar.getInstance();
//        if (Objects.equals(BizParamConstant.STAT_BIZ_DAY, command)) {
//            calendar.add(Calendar.DAY_OF_MONTH, -1);
//        } else if (Objects.equals(BizParamConstant.STAT_BIZ_MONTH, command)) {
//            calendar.set(Calendar.DAY_OF_MONTH, 1);
//        } else if (Objects.equals(BizParamConstant.STAT_BIZ_QUARTER, command)) {
//            int nowMonth = calendar.get(Calendar.MONTH);
//            calendar.set(Calendar.MONTH, nowMonth - (nowMonth % 3));
//            calendar.set(Calendar.DAY_OF_MONTH, 1);
//            calendar.set(Calendar.HOUR_OF_DAY, 0);
//            calendar.set(Calendar.MINUTE, 0);
//            calendar.set(Calendar.SECOND, 0);
//            calendar.set(Calendar.MILLISECOND, 0);
//        } else if (Objects.equals(BizParamConstant.STAT_BIZ_YEAR, command)) {
//            calendar.set(Calendar.DAY_OF_YEAR, 1);
//        }
//        log.info("job调度时间:" + sdf.format(calendar.getTime()));
//        return sdf.format(calendar.getTime());
//    }
//
//    /**
//     * 根据xxl-job的参数，生成一个任务的起始时间和结束时间
//     *
//     * @author cdf
//     * @date 2023/9/20
//     */
//    public void commDefineDate(String command, LineParam lineParam) {
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        String begin;
//        String end;
//        Calendar calendar = Calendar.getInstance();
//        calendar.add(Calendar.DAY_OF_MONTH, -1);
//        Date temDate = calendar.getTime();
//        switch (command) {
//            case BizParamConstant.STAT_BIZ_DAY:
//                begin = sdf.format(DateUtil.beginOfDay(temDate));
//                end = sdf.format(DateUtil.endOfDay(temDate));
//                break;
//            case BizParamConstant.STAT_BIZ_WEEK:
//                begin = sdf.format(DateUtil.beginOfWeek(temDate));
//                end = sdf.format(DateUtil.endOfWeek(temDate));
//                break;
//            case BizParamConstant.STAT_BIZ_MONTH:
//                begin = sdf.format(DateUtil.beginOfMonth(temDate));
//                end = sdf.format(DateUtil.endOfMonth(temDate));
//                break;
//            case BizParamConstant.STAT_BIZ_QUARTER:
//                begin = sdf.format(DateUtil.beginOfQuarter(temDate));
//                end = sdf.format(DateUtil.endOfQuarter(temDate));
//                break;
//            case BizParamConstant.STAT_BIZ_YEAR:
//                begin = sdf.format(DateUtil.beginOfYear(temDate));
//                end = sdf.format(DateUtil.endOfYear(temDate));
//                break;
//            default:
//                begin = sdf.format(DateUtil.beginOfDay(temDate));
//                end = sdf.format(DateUtil.endOfDay(temDate));
//                break;
//        }
//        lineParam.setBeginTime(begin);
//        lineParam.setEndTime(end);
//        lineParam.setDataDate(begin.substring(0, 10));
//    }
//
//}
