1.单位标数据质量算法兼容修改

This commit is contained in:
wr
2023-09-26 17:38:39 +08:00
parent 904a94fe83
commit 94779ce822
23 changed files with 687 additions and 430 deletions

View File

@@ -0,0 +1,67 @@
package com.njcn.executor.handler;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.executor.utils.CommonExecutorUtils;
import com.njcn.prepare.harmonic.api.newalgorithm.ROperatingIndexFeignClient;
import com.njcn.prepare.harmonic.pojo.param.PrimaryGridParam;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
/**
* @Description: 单位监测指标数据质量
* @return: null
* @Author: wr
* @Date: 2023/9/26 13:41
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class ROperatingIndexJob {
private final ROperatingIndexFeignClient rOperatingIndexFeignClient;
@XxlJob("rOperatingIndexDay")
public void rOperatingMonitorDay(){
log.info(LocalDateTime.now()+"单位监测指标数据质量_日表(主网,数据中心)------------------------");
PrimaryGridParam primaryGridParam=new PrimaryGridParam();
primaryGridParam.setDataSource(1);
primaryGridParam.setDataDate(CommonExecutorUtils.prepareTimeDeal(BizParamConstant.STAT_BIZ_DAY));
CommonExecutorUtils.commDefineDateObj(BizParamConstant.STAT_BIZ_DAY,primaryGridParam);
rOperatingIndexFeignClient.primaryGridDataHanlder(primaryGridParam);
}
@XxlJob("rOperatingIndexMonth")
public void rOperatingIndexMonth(){
log.info(LocalDateTime.now()+"单位监测指标数据质量_月表(主网,数据中心)------------------------");
PrimaryGridParam primaryGridParam=new PrimaryGridParam();
primaryGridParam.setDataSource(1);
primaryGridParam.setDataDate(CommonExecutorUtils.prepareTimeDeal(BizParamConstant.STAT_BIZ_MONTH));
CommonExecutorUtils.commDefineDateObj(BizParamConstant.STAT_BIZ_MONTH,primaryGridParam);
rOperatingIndexFeignClient.primaryGridDataHanlder(primaryGridParam);
}
@XxlJob("rOperatingIndexQuarter")
public void rOperatingIndexQuarter(){
log.info(LocalDateTime.now()+"单位监测指标数据质量_季表(主网,数据中心)------------------------");
PrimaryGridParam primaryGridParam=new PrimaryGridParam();
primaryGridParam.setDataSource(1);
primaryGridParam.setDataDate(CommonExecutorUtils.prepareTimeDeal(BizParamConstant.STAT_BIZ_QUARTER));
CommonExecutorUtils.commDefineDateObj(BizParamConstant.STAT_BIZ_QUARTER,primaryGridParam);
rOperatingIndexFeignClient.primaryGridDataHanlder(primaryGridParam);
}
@XxlJob("rOperatingIndexYear")
public void rOperatingIndexYear(){
log.info(LocalDateTime.now()+"单位监测指标数据质量_月表(主网,数据中心)------------------------");
PrimaryGridParam primaryGridParam=new PrimaryGridParam();
primaryGridParam.setDataSource(1);
primaryGridParam.setDataDate(CommonExecutorUtils.prepareTimeDeal(BizParamConstant.STAT_BIZ_YEAR));
CommonExecutorUtils.commDefineDateObj(BizParamConstant.STAT_BIZ_YEAR,primaryGridParam);
rOperatingIndexFeignClient.primaryGridDataHanlder(primaryGridParam);
}
}

View File

@@ -6,6 +6,7 @@ import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.prepare.harmonic.pojo.param.LineParam;
import lombok.extern.slf4j.Slf4j;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Calendar;
@@ -21,37 +22,47 @@ import java.util.Objects;
@Slf4j
public class CommonExecutorUtils {
public static String prepareTimeDeal(String command){
if(StrUtil.isBlank(command)){
log.error(LocalDateTime.now()+"xxl调度任务参数未设置");
public static 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();
calendar.add(Calendar.DAY_OF_MONTH,-1);
if (Objects.equals(BizParamConstant.STAT_BIZ_DAY,command)){
calendar.add(Calendar.DAY_OF_MONTH,-1);
} else if (Objects.equals(BizParamConstant.STAT_BIZ_MONTH,command)){
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()));
log.info("job调度时间:" + sdf.format(calendar.getTime()));
return sdf.format(calendar.getTime());
}
/**
* 根据xxl-job的参数生成一个任务的起始时间和结束时间
*
* @author cdf
* @date 2023/9/20
*/
public static void commDefineDate(String command,LineParam lineParam){
public static 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);
calendar.add(Calendar.DAY_OF_MONTH, -1);
Date temDate = calendar.getTime();
switch (command){
switch (command) {
case BizParamConstant.STAT_BIZ_DAY:
begin = sdf.format(DateUtil.beginOfDay(temDate));
end = sdf.format(DateUtil.endOfDay(temDate));
@@ -79,9 +90,55 @@ public class CommonExecutorUtils {
}
lineParam.setBeginTime(begin);
lineParam.setEndTime(end);
lineParam.setDataDate(begin.substring(0,10));
lineParam.setDataDate(begin.substring(0, 10));
}
public static void commDefineDateObj(String command, Object param) {
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;
}
try {
Field beginTime = param.getClass().getDeclaredField("beginTime");
beginTime.setAccessible(true);
beginTime.set(param, begin);
Field endTime = param.getClass().getDeclaredField("endTime");
endTime.setAccessible(true);
endTime.set(param, end);
} catch (Exception e) {
log.error(LocalDateTime.now() + "时间属性反射异常: " + e);
}
}
}