调度移植

This commit is contained in:
2023-12-08 11:44:23 +08:00
parent 2f19b720ba
commit dd12255974
3 changed files with 151 additions and 1 deletions

View File

@@ -0,0 +1,113 @@
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.newalgorithm.PmsStatisticsSpecialMonitorFeignClient;
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/08 11:23
*/
@Component
@RequiredArgsConstructor
@Slf4j
public class pmsStatisticsSpecialMonitorTaskRunner implements TimerTaskRunner {
private final PmsStatisticsSpecialMonitorFeignClient pmsStatisticsSpecialMonitorFeignClient;
@Override
public void action() {
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);
pmsStatisticsSpecialMonitorFeignClient.pmsStatisticsSpecialMonitorHandler(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));
}
}

View File

@@ -0,0 +1,32 @@
package com.njcn.system.timer.tasks;
import com.njcn.process.api.SupvStatisticReportMFeignClient;
import com.njcn.system.timer.TimerTaskRunner;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
* 类的介绍:第二技术监督月上送报告统计-定时任务
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/12/08 11:35
*/
@Component
@RequiredArgsConstructor
@Slf4j
public class statisticReportTaskRunner implements TimerTaskRunner {
private final SupvStatisticReportMFeignClient supvStatisticReportMFeignClient;
@Override
public void action() {
log.info(LocalDateTime.now()+"技术监督计划问题月报统计调用成功");
LocalDate yesterday = LocalDate.now().plusDays(-1);
supvStatisticReportMFeignClient.statisticReport(yesterday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
}
}