CVT功能

This commit is contained in:
hzj
2025-03-07 14:29:19 +08:00
parent d14e83c935
commit 7220c526ce
14 changed files with 474 additions and 4 deletions

View File

@@ -6,6 +6,7 @@ import com.njcn.prepare.harmonic.api.liteflow.fallback.LiteFlowFeignClientFallba
import com.njcn.prepare.harmonic.pojo.bo.BaseParam; import com.njcn.prepare.harmonic.pojo.bo.BaseParam;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.scheduling.annotation.Async;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@@ -23,6 +24,9 @@ public interface LiteFlowFeignClient {
@PostMapping("/measurementPointExecutor") @PostMapping("/measurementPointExecutor")
void measurementPointExecutor(@RequestBody BaseParam baseParam); void measurementPointExecutor(@RequestBody BaseParam baseParam);
@ApiOperation("监测点算法执行链(按小时执行的任务)")
@PostMapping("/measurementPointExecutorByHour")
public void measurementPointExecutorByHour(@RequestBody BaseParam baseParam);
@ApiOperation("单位监测点算法执行链") @ApiOperation("单位监测点算法执行链")
@PostMapping("/orgPointExecutor") @PostMapping("/orgPointExecutor")
void orgPointExecutor(@RequestBody BaseParam baseParam); void orgPointExecutor(@RequestBody BaseParam baseParam);

View File

@@ -28,6 +28,12 @@ public class LiteFlowFeignClientFallbackFactory implements FallbackFactory<LiteF
throw new BusinessException(finalExceptionEnum); throw new BusinessException(finalExceptionEnum);
} }
@Override
public void measurementPointExecutorByHour(BaseParam baseParam) {
log.error("{}异常,降级处理,异常为:{}", "监测点算法(按小时)执行链: ", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override @Override
public void orgPointExecutor(BaseParam baseParam) { public void orgPointExecutor(BaseParam baseParam) {
log.error("{}异常,降级处理,异常为:{}", "单位监测点算法执行链: ", throwable.toString()); log.error("{}异常,降级处理,异常为:{}", "单位监测点算法执行链: ", throwable.toString());

View File

@@ -32,15 +32,15 @@ public class BaseParam implements Serializable {
private boolean repair; private boolean repair;
@ApiModelProperty(name = "beginTime",value = "补招起始日期_yyyy-MM-dd") @ApiModelProperty(name = "beginTime",value = "补招起始日期_yyyy-MM-dd(按小时跑的任务可加时分秒)")
private String beginTime; private String beginTime;
@ApiModelProperty(name = "endTime",value = "补招截止日期_yyyy-MM-dd") @ApiModelProperty(name = "endTime",value = "补招截止日期_yyyy-MM-dd(按小时跑的任务可加时分秒)")
private String endTime; private String endTime;
@ApiModelProperty(name = "dataDate",value = "时间日期_yyyy-MM-dd") @ApiModelProperty(name = "dataDate",value = "时间日期_yyyy-MM-dd(按小时跑的任务可加时分秒)")
private String dataDate; private String dataDate;

View File

@@ -0,0 +1,53 @@
package com.njcn.prepare.harmonic.pojo.mysql;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import lombok.Data;
/**
*
* Description:
* Date: 2025/03/06 下午 2:07【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
@TableName(value = "cvt_job_log")
public class CvtJobLog {
/**
* 执行日期
*/
@TableId(value = "excute_date_time")
private LocalDateTime excuteDateTime;
/**
* 记录数
*/
@TableField(value = "`row_count`")
private Integer rowCount;
/**
* 状态0-执行中、1-成功、2-失败)
*/
@TableField(value = "`state`")
private Integer state;
@TableField(value = "update_time")
private LocalDateTime updateTime;
@TableField(value = "duration")
private Double duration;
public CvtJobLog(LocalDateTime excuteDateTime, Integer rowCount, Integer state, LocalDateTime updateTime, Double duration) {
this.excuteDateTime = excuteDateTime;
this.rowCount = rowCount;
this.state = state;
this.updateTime = updateTime;
this.duration = duration;
}
}

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.StrPool; import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@@ -140,6 +141,40 @@ public class ExecutionCenter extends BaseController {
dealResponse(calculatedParam, liteflowResponse, methodDescribe); dealResponse(calculatedParam, liteflowResponse, methodDescribe);
} }
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("监测点算法执行链(按小时执行的算法)")
@PostMapping("/measurementPointExecutorByHour")
@Async("asyncExecutor")
public void measurementPointExecutorByHour(@RequestBody BaseParam baseParam) {
String methodDescribe = getMethodDescribe("measurementPointExecutorByHour");
//手动判断参数是否合法,
CalculatedParam calculatedParam = judgeExecuteParam(baseParam);
// 测点索引
if (CollectionUtils.isEmpty(calculatedParam.getIdList())) {
calculatedParam.setIdList(commTerminalGeneralClient.getRunMonitorIds().getData());
}
LiteflowResponse liteflowResponse;
if (baseParam.isRepair()) {
//补招时,起始日期、截止日期必填
DateTime startDate = DateUtil.parse(baseParam.getBeginTime(), DatePattern.NORM_DATETIME_FORMAT);
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATETIME_FORMAT);
long betweenHour = DateUtil.between(startDate, endDate, DateUnit.HOUR);
//递增日期执行算法链
for (int i = 0; i < betweenHour; i++) {
if (i != 0) {
startDate = DateUtil.offsetHour(startDate, 1);
}
calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATETIME_FORMATTER));
liteflowResponse = flowExecutor.execute2Resp("measurement_point_hour", calculatedParam);
dealResponse(calculatedParam, liteflowResponse, methodDescribe);
}
} else {
//非补招
calculatedParam.setDataDate(DateUtil.format(DateUtil.offsetHour( DateUtil.parse(baseParam.getDataDate(), DatePattern.NORM_DATETIME_FORMAT),-1), DatePattern.NORM_DATETIME_FORMATTER));
liteflowResponse = flowExecutor.execute2Resp("measurement_point_hour", calculatedParam);
dealResponse(calculatedParam, liteflowResponse, methodDescribe);
}
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("装置算法执行链") @ApiOperation("装置算法执行链")

View File

@@ -0,0 +1,44 @@
package com.njcn.prepare.executor;
import com.njcn.prepare.harmonic.service.mysql.cvt.IDataHarmRateVCvtService;
import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.annotation.LiteflowMethod;
import com.yomahub.liteflow.core.NodeComponent;
import com.yomahub.liteflow.enums.LiteFlowMethodEnum;
import com.yomahub.liteflow.enums.NodeTypeEnum;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import javax.annotation.Resource;
/**
* @author xy
* @version 1.0.0
* @date 2025年1月16日
*/
@Slf4j
@LiteflowComponent
@RequiredArgsConstructor
public class MeasurementHourExecutor extends BaseExecutor {
@Resource
private IDataHarmRateVCvtService dataHarmRateVCvtService;
/**
* 监测点cvt转换算法()
* @author hzj
*/
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "dataHarmRateVCvt", nodeType = NodeTypeEnum.COMMON)
public boolean dataVCvtAccess(NodeComponent bindCmp) {
return isAccess(bindCmp);
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "dataHarmRateVCvt", nodeType = NodeTypeEnum.COMMON)
public void dataVCvtProcess(NodeComponent bindCmp) {
dataHarmRateVCvtService.dataHarmRateVCvtHandler(bindCmp.getRequestData());
}
}

View File

@@ -0,0 +1,18 @@
package com.njcn.prepare.harmonic.mapper.mysql;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.prepare.harmonic.pojo.mysql.CvtJobLog;
import java.time.LocalDateTime;
/**
*
* Description:
* Date: 2025/03/06 下午 2:07【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CvtJobLogMapper extends BaseMapper<CvtJobLog> {
LocalDateTime getNewTime();
}

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.prepare.harmonic.mapper.mysql.CvtJobLogMapper">
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.mysql.CvtJobLog">
<!--@mbg.generated-->
<result column="excute_date_time" jdbcType="TIMESTAMP" property="excuteDateTime" />
<result column="row_count" jdbcType="INTEGER" property="rowCount" />
<result column="state" jdbcType="TINYINT" property="state" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="duration" jdbcType="INTEGER" property="duration" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
excute_date_time, `row_count`, `state`, update_time, duration
</sql>
<select id="getNewTime" resultType="java.time.LocalDateTime">
select excute_date_time from cvt_job_log order by excute_date_time desc limit 1;
</select>
</mapper>

View File

@@ -0,0 +1,20 @@
package com.njcn.prepare.harmonic.service.mysql.cvt;
import com.njcn.prepare.harmonic.pojo.mysql.CvtJobLog;
import com.baomidou.mybatisplus.extension.service.IService;
import java.time.LocalDateTime;
/**
*
* Description:
* Date: 2025/03/06 下午 2:07【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CvtJobLogService extends IService<CvtJobLog>{
LocalDateTime getNewTime();
}

View File

@@ -0,0 +1,15 @@
package com.njcn.prepare.harmonic.service.mysql.cvt;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
* Description:
* Date: 2025/02/24 上午 9:10【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface IDataHarmRateVCvtService {
void dataHarmRateVCvtHandler(CalculatedParam requestData);
}

View File

@@ -0,0 +1,28 @@
package com.njcn.prepare.harmonic.service.mysql.cvt.impl;
import com.njcn.prepare.harmonic.mapper.mysql.CvtJobLogMapper;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.prepare.harmonic.pojo.mysql.CvtJobLog;
import com.njcn.prepare.harmonic.service.mysql.cvt.CvtJobLogService;
/**
*
* Description:
* Date: 2025/03/06 下午 2:07【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class CvtJobLogServiceImpl extends ServiceImpl<CvtJobLogMapper, CvtJobLog> implements CvtJobLogService{
@Override
public LocalDateTime getNewTime() {
return this.getBaseMapper().getNewTime();
}
}

View File

@@ -0,0 +1,187 @@
package com.njcn.prepare.harmonic.service.mysql.cvt.impl;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.njcn.device.pq.api.CvtRelationFeignClient;
import com.njcn.device.pq.pojo.dto.CvtHarmonicCorrectionFactorsDTO;
import com.njcn.influx.imapper.DataHarmRateVCvtMapper;
import com.njcn.influx.imapper.DataHarmRateVMapper;
import com.njcn.influx.pojo.po.DataHarmRateV;
import com.njcn.influx.pojo.po.DataHarmRateVCvt;
import com.njcn.influx.query.InfluxQueryWrapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.mysql.CvtJobLog;
import com.njcn.prepare.harmonic.service.mysql.cvt.CvtJobLogService;
import com.njcn.prepare.harmonic.service.mysql.cvt.IDataHarmRateVCvtService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.util.StopWatch;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* Description:
* Date: 2025/02/24 上午 9:11【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class DataHarmRateVCvtServiceImpl implements IDataHarmRateVCvtService {
private final CvtRelationFeignClient cvtRelationFeignClient;
private final DataHarmRateVMapper dataHarmRateVMapper;
private final DataHarmRateVCvtMapper dataHarmRateCvtVMapper;
private final CvtJobLogService cvtJobLogService;
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
@Override
public void dataHarmRateVCvtHandler(CalculatedParam calculatedParam) {
CvtJobLog one = cvtJobLogService.lambdaQuery()
.eq(CvtJobLog::getExcuteDateTime, calculatedParam.getDataDate())
.one();
//日志记录
//程序监听
StopWatch stopWatch = new StopWatch();
stopWatch.start();
if (Objects.nonNull(one) && (one.getState() == 1 || one.getState() == 0)) {
//当前时间段已执行或正在执行,直接跳出循环
return;
}
if (Objects.isNull(one)) {
one = new CvtJobLog(LocalDateTimeUtil.parse(calculatedParam.getDataDate(),DATE_TIME_FORMATTER), 0, 0, LocalDateTime.now(),0.0 );
cvtJobLogService.save(one);
}
try {
List idList = calculatedParam.getIdList();
DateTime beginTime1= DateUtil.beginOfHour(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATETIME_FORMAT));
InfluxQueryWrapper cvtMapper = new InfluxQueryWrapper(DataHarmRateVCvt.class);
LocalDateTime time =cvtJobLogService.getNewTime();
DateTime beginTime ;
if(Objects.nonNull(time)){
String format = LocalDateTimeUtil.format(time, DatePattern.NORM_DATETIME_PATTERN);
DateTime beginTime2 = DateUtil.beginOfHour(DateUtil.parse(format, DatePattern.NORM_DATETIME_FORMAT));
beginTime = beginTime1.isBefore(beginTime2) ? beginTime1 : beginTime2;
}else {
beginTime = beginTime1;
}
DateTime endTime = DateUtil.endOfHour(beginTime1);
cvtMapper.regular(DataHarmRateVCvt::getLineId,calculatedParam.getIdList()).between(DataHarmRateVCvt::getTime,DateUtil.format(beginTime,DATE_TIME_FORMATTER) , DateUtil.format(endTime,DATE_TIME_FORMATTER));
List<DataHarmRateVCvt> dataHarmRateVCvtList = dataHarmRateCvtVMapper.selectByQueryWrapper(cvtMapper);
List<DataHarmRateV> result = new ArrayList<>();
Map<String, List<DataHarmRateVCvt>> collect = dataHarmRateVCvtList.stream().collect(Collectors.groupingBy(DataHarmRateVCvt::getLineId));
collect.forEach((k,v)->{
CvtHarmonicCorrectionFactorsDTO cvtHarmonicCorrectionFactorsDTO = cvtRelationFeignClient.queryByLineId(k).getData();
if(Objects.nonNull(cvtHarmonicCorrectionFactorsDTO)&&
StringUtils.isNotEmpty(cvtHarmonicCorrectionFactorsDTO.getId())){
v = cvtChange(v,cvtHarmonicCorrectionFactorsDTO);
}
List<DataHarmRateV> dataVCvtDtoList = v.stream().map(temp -> {
DataHarmRateV dataHarmRateVDto = new DataHarmRateV();
BeanUtils.copyProperties(temp, dataHarmRateVDto);
return dataHarmRateVDto;
}).collect(Collectors.toList());
result.addAll(dataVCvtDtoList);
});
dataHarmRateVMapper.insertBatch(result);
stopWatch.stop();
one.setRowCount(result.size());
one.setState(1);
one.setDuration(stopWatch.getTotalTimeSeconds());
cvtJobLogService.updateById(one);
}catch (Exception exception) {
exception.printStackTrace();
one.setState(2);
one.setUpdateTime(LocalDateTime.now());
cvtJobLogService.updateById(one);
}
}
private List<DataHarmRateVCvt> cvtChange(List<DataHarmRateVCvt> v, CvtHarmonicCorrectionFactorsDTO cvtHarmonicCorrectionFactorsDTO) {
v.stream().forEach(temp->{
temp.setV2(cvtHarmonicCorrectionFactorsDTO.getH2().doubleValue()*temp.getV2());
temp.setV3(cvtHarmonicCorrectionFactorsDTO.getH3().doubleValue()*temp.getV3());
temp.setV4(cvtHarmonicCorrectionFactorsDTO.getH4().doubleValue()*temp.getV4());
temp.setV5(cvtHarmonicCorrectionFactorsDTO.getH5().doubleValue()*temp.getV5());
temp.setV6(cvtHarmonicCorrectionFactorsDTO.getH6().doubleValue()*temp.getV6());
temp.setV7(cvtHarmonicCorrectionFactorsDTO.getH7().doubleValue()*temp.getV7());
temp.setV8(cvtHarmonicCorrectionFactorsDTO.getH8().doubleValue()*temp.getV8());
temp.setV9(cvtHarmonicCorrectionFactorsDTO.getH9().doubleValue()*temp.getV9());
temp.setV10(cvtHarmonicCorrectionFactorsDTO.getH10().doubleValue()*temp.getV10());
temp.setV11(cvtHarmonicCorrectionFactorsDTO.getH11().doubleValue()*temp.getV11());
temp.setV12(cvtHarmonicCorrectionFactorsDTO.getH12().doubleValue()*temp.getV12());
temp.setV13(cvtHarmonicCorrectionFactorsDTO.getH13().doubleValue()*temp.getV13());
temp.setV14(cvtHarmonicCorrectionFactorsDTO.getH14().doubleValue()*temp.getV14());
temp.setV15(cvtHarmonicCorrectionFactorsDTO.getH15().doubleValue()*temp.getV15());
temp.setV16(cvtHarmonicCorrectionFactorsDTO.getH16().doubleValue()*temp.getV16());
temp.setV17(cvtHarmonicCorrectionFactorsDTO.getH17().doubleValue()*temp.getV17());
temp.setV18(cvtHarmonicCorrectionFactorsDTO.getH18().doubleValue()*temp.getV18());
temp.setV19(cvtHarmonicCorrectionFactorsDTO.getH19().doubleValue()*temp.getV19());
temp.setV20(cvtHarmonicCorrectionFactorsDTO.getH20().doubleValue()*temp.getV20());
temp.setV21(cvtHarmonicCorrectionFactorsDTO.getH21().doubleValue()*temp.getV21());
temp.setV22(cvtHarmonicCorrectionFactorsDTO.getH22().doubleValue()*temp.getV22());
temp.setV23(cvtHarmonicCorrectionFactorsDTO.getH23().doubleValue()*temp.getV23());
temp.setV24(cvtHarmonicCorrectionFactorsDTO.getH24().doubleValue()*temp.getV24());
temp.setV25(cvtHarmonicCorrectionFactorsDTO.getH25().doubleValue()*temp.getV25());
temp.setV26(cvtHarmonicCorrectionFactorsDTO.getH26().doubleValue()*temp.getV26());
temp.setV27(cvtHarmonicCorrectionFactorsDTO.getH27().doubleValue()*temp.getV27());
temp.setV28(cvtHarmonicCorrectionFactorsDTO.getH28().doubleValue()*temp.getV28());
temp.setV29(cvtHarmonicCorrectionFactorsDTO.getH29().doubleValue()*temp.getV29());
temp.setV30(cvtHarmonicCorrectionFactorsDTO.getH30().doubleValue()*temp.getV30());
temp.setV31(cvtHarmonicCorrectionFactorsDTO.getH31().doubleValue()*temp.getV31());
temp.setV32(cvtHarmonicCorrectionFactorsDTO.getH32().doubleValue()*temp.getV32());
temp.setV33(cvtHarmonicCorrectionFactorsDTO.getH33().doubleValue()*temp.getV33());
temp.setV34(cvtHarmonicCorrectionFactorsDTO.getH34().doubleValue()*temp.getV34());
temp.setV35(cvtHarmonicCorrectionFactorsDTO.getH35().doubleValue()*temp.getV35());
temp.setV36(cvtHarmonicCorrectionFactorsDTO.getH36().doubleValue()*temp.getV36());
temp.setV37(cvtHarmonicCorrectionFactorsDTO.getH37().doubleValue()*temp.getV37());
temp.setV38(cvtHarmonicCorrectionFactorsDTO.getH38().doubleValue()*temp.getV38());
temp.setV39(cvtHarmonicCorrectionFactorsDTO.getH39().doubleValue()*temp.getV39());
temp.setV40(cvtHarmonicCorrectionFactorsDTO.getH40().doubleValue()*temp.getV40());
temp.setV41(cvtHarmonicCorrectionFactorsDTO.getH41().doubleValue()*temp.getV41());
temp.setV42(cvtHarmonicCorrectionFactorsDTO.getH42().doubleValue()*temp.getV42());
temp.setV43(cvtHarmonicCorrectionFactorsDTO.getH43().doubleValue()*temp.getV43());
temp.setV44(cvtHarmonicCorrectionFactorsDTO.getH44().doubleValue()*temp.getV44());
temp.setV45(cvtHarmonicCorrectionFactorsDTO.getH45().doubleValue()*temp.getV45());
temp.setV46(cvtHarmonicCorrectionFactorsDTO.getH46().doubleValue()*temp.getV46());
temp.setV47(cvtHarmonicCorrectionFactorsDTO.getH47().doubleValue()*temp.getV47());
temp.setV48(cvtHarmonicCorrectionFactorsDTO.getH48().doubleValue()*temp.getV48());
temp.setV49(cvtHarmonicCorrectionFactorsDTO.getH49().doubleValue()*temp.getV49());
temp.setV50(cvtHarmonicCorrectionFactorsDTO.getH50().doubleValue()*temp.getV50());
});
return v;
}
}

View File

@@ -0,0 +1,39 @@
package com.njcn.system.timer.tasks;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.njcn.prepare.harmonic.api.liteflow.LiteFlowFeignClient;
import com.njcn.prepare.harmonic.pojo.bo.BaseParam;
import com.njcn.system.timer.TimerTaskRunner;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
/**
* 类的介绍:监测点算法执行链定时任务
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/12/6 9:35
*/
@Component
@RequiredArgsConstructor
public class MeasurementHourTaskRunner implements TimerTaskRunner {
private final LiteFlowFeignClient liteFlowFeignClient;
@Override
public void action(String date) {
BaseParam baseParam = new BaseParam();
baseParam.setFullChain(true);
baseParam.setRepair(false);
if(StrUtil.isBlank(date)){
baseParam.setDataDate(DateUtil.yesterday().toString(DatePattern.NORM_DATETIME_PATTERN));
}else {
baseParam.setDataDate(date);
}
liteFlowFeignClient.measurementPointExecutorByHour(baseParam);
}
}

View File

@@ -28,7 +28,7 @@ public class MeasurementTaskRunner implements TimerTaskRunner {
baseParam.setFullChain(true); baseParam.setFullChain(true);
baseParam.setRepair(false); baseParam.setRepair(false);
if(StrUtil.isBlank(date)){ if(StrUtil.isBlank(date)){
baseParam.setDataDate(DateUtil.yesterday().toString(DatePattern.NORM_DATE_PATTERN)); baseParam.setDataDate(DateUtil.now());
}else { }else {
baseParam.setDataDate(date); baseParam.setDataDate(date);
} }