dataV分钟数据转日表

This commit is contained in:
xy
2025-02-10 16:32:56 +08:00
parent ec2ea472b5
commit af9ead546f
27 changed files with 2197 additions and 342 deletions

View File

@@ -17,4 +17,16 @@
<maven.compiler.target>8</maven.compiler.target> <maven.compiler.target>8</maven.compiler.target>
</properties> </properties>
<dependencies>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-db</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-web</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project> </project>

View File

@@ -0,0 +1,62 @@
package com.njcn.algorithm.pojo.bo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
import java.util.Set;
/**
*
* ** 当补招表示为true时,起始时间和截止时间是必填的 **
* @author hongawen
* @version 1.0.0
* @date 2023年11月01日 16:17
*/
@Data
public class BaseParam implements Serializable {
/***
* 是否全链路执行算法
* 非全链路执行时tag集合必须非空
*/
@ApiModelProperty(name = "fullChain",value = "是否全链执行")
private boolean fullChain;
/**
* 目前仅监测点日统计存在补招功能 by yxb
* 是否补招标识,默认不补招
*/
@ApiModelProperty(name = "repair",value = "是否补招")
private boolean repair;
@ApiModelProperty(name = "beginTime",value = "补招起始日期_yyyy-MM-dd")
private String beginTime;
@ApiModelProperty(name = "endTime",value = "补招截止日期_yyyy-MM-dd")
private String endTime;
@ApiModelProperty(name = "dataDate",value = "时间日期_yyyy-MM-dd")
private String dataDate;
/***
* 需要执行的组件
* 当不需要全链路执行时通过tag名称动态指定执行某个算法组件
*/
@ApiModelProperty(name = "tagNames",value = "待执行链节点的tag集合")
private Set<String> tagNames;
/**
* 待计算的对象索引集合,监测点、设备、母线、变电站、单位等等
*/
@ApiModelProperty(name = "idList",value = "索引集合")
private List<String> idList;
}

View File

@@ -0,0 +1,51 @@
package com.njcn.algorithm.pojo.bo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
import java.util.Set;
/**
* 算法编排的计算参数
* @author hongawen
* @version 1.0.0
* @date 2023年11月03日 09:21
*/
@Data
public class CalculatedParam<T> implements Serializable {
/***
* 是否全链路执行算法
* 非全链路执行时tag集合必须非空
*/
@ApiModelProperty(name = "fullChain",value = "是否全链执行")
private boolean fullChain;
/**
* 目前仅监测点日统计存在补招功能 by yxb
* 是否补招标识,默认不补招
*/
@ApiModelProperty(name = "repair",value = "是否补招")
private boolean repair;
/**
* 日期_yyyy-MM-dd
*/
@ApiModelProperty(name = "dataDate",value = "时间日期_yyyy-MM-dd")
private String dataDate;
/***
* 需要执行的组件
* 当不需要全链路执行时通过tag名称动态指定执行某个算法组件
*/
@ApiModelProperty(name = "tagNames",value = "待执行链节点的tag集合")
private Set<String> tagNames;
/**
* 待计算的对象索引集合,监测点、设备、母线、变电站、单位下监测点等等
*/
@ApiModelProperty(name = "idList",value = "索引集合")
private List<T> idList;
}

View File

@@ -0,0 +1,40 @@
package com.njcn.algorithm.pojo.enums;
import lombok.Getter;
/**
* @author hongawen
* @version 1.0.0
* @date 2021年04月13日 10:50
*/
@Getter
public enum PrepareResponseEnum {
PREPARE_INNER_ERROR("A0801", "业务功能内部错误"),
NO_EXECUTOR_NODE("A0802", "无可执行节点"),
NO_REPAIR_DATE("A0803", "未指定补招日期"),
LIMIT_RATE_MISSING("A0804", "监测点限值缺失"),
;
private final String code;
private final String message;
PrepareResponseEnum(String code, String message) {
this.code = code;
this.message = message;
}
public static String getCodeByMsg(String msg){
for (PrepareResponseEnum userCodeEnum : PrepareResponseEnum.values()) {
if (userCodeEnum.message.equalsIgnoreCase(msg)) {
return userCodeEnum.code;
}
}
return "";
}
}

View File

@@ -0,0 +1,74 @@
package com.njcn.algorithm.pojo.enums;
import lombok.Getter;
/**
* 类的介绍:
*
* @author xuyang
* @version 1.0.0
* @createTime 2023/12/7 14:32
*/
@Getter
public enum UploadEnum {
/**
* 统计层级
*/
STATISTICAL_LEVEL_3("3",""),
STATISTICAL_LEVEL_4("4",""),
STATISTICAL_LEVEL_5("5",""),
NJCN_DEPT_LEVEL_1("1","全国"),
NJCN_DEPT_LEVEL_2("2","省级"),
NJCN_DEPT_LEVEL_3("3","市级"),
NJCN_DEPT_LEVEL_4("4","县级"),
/**
* 统计类型
*/
STATISTICAL_TYPE_01("01","年数据"),
STATISTICAL_TYPE_02("02","月数据"),
STATISTICAL_TYPE_03("03","日数据"),
/**
* 主配网标识
*/
DISTRIBUTION_FLAG_01("1","主网"),
DISTRIBUTION_FLAG_02("0","配网"),
/**
* 指标类型(01:电压 02:长时间闪变 03:三相电压不平衡 04:电压总谐波畸变率 05:各次谐波电压 06:负序电流)
*/
INDEX_TYPE_01("01","电压"),
INDEX_TYPE_02("02","长时间闪变"),
INDEX_TYPE_03("03","三相电压不平衡"),
INDEX_TYPE_04("04","电压总谐波畸变率"),
INDEX_TYPE_05("05","各次谐波电压"),
INDEX_TYPE_06("06","负序电流"),
/**
* 数据来源(01:仅在线监测 02:在线监测与现场测试)
*/
DATA_SOURCES_01("01","仅在线监测"),
DATA_SOURCES_02("02","在线监测与现场测试"),
/**
* 上送状态(0:未上送 1:已上送)
*/
UPLOAD_STATUS_0("0","未上送"),
UPLOAD_STATUS_1("1","已上送"),
;
private final String code;
private final String message;
UploadEnum(String code, String message) {
this.code = code;
this.message = message;
}
}

View File

@@ -15,28 +15,89 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>8</maven.compiler.source> <maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target> <maven.compiler.target>8</maven.compiler.target>
<org.projectlombok.version>1.18.12</org.projectlombok.version>
<org.mapstruct.version>1.4.2.Final</org.mapstruct.version>
</properties> </properties>
<dependencies> <dependencies>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-web</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>common-swagger</artifactId> <artifactId>common-swagger</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.mybatis</groupId> <groupId>com.njcn</groupId>
<artifactId>mybatis-spring</artifactId> <artifactId>common-microservice</artifactId>
<version>2.0.5</version> <version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-redis</artifactId>
<version>${project.version}</version>
</dependency>
<!--pqs-influx-->
<dependency>
<groupId>com.njcn</groupId>
<artifactId>pqs-influx</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>user-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.njcn.platform</groupId>
<artifactId>algorithm-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-device-biz</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.njcn.platform</groupId>
<artifactId>data-processing-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</dependency>
<!-- 要与mapstruct版本匹配用同一时间的版本,不然会出现各种问题 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${org.projectlombok.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-oss</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>liteflow-spring-boot-starter</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>liteflow-rule-nacos</artifactId>
<version>2.11.2</version>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@@ -1,9 +1,11 @@
package com.njcn.algorithm; package com.njcn.algorithm;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.DependsOn;
/** /**
@@ -12,6 +14,8 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@Slf4j @Slf4j
@EnableFeignClients(basePackages = "com.njcn") @EnableFeignClients(basePackages = "com.njcn")
@SpringBootApplication(scanBasePackages = "com.njcn") @SpringBootApplication(scanBasePackages = "com.njcn")
@MapperScan("com.njcn.**.mapper")
@DependsOn("proxyMapperRegister")
public class AlgorithmBootApplication { public class AlgorithmBootApplication {
public static void main(String[] args) { public static void main(String[] args) {

View File

@@ -0,0 +1,439 @@
package com.njcn.algorithm;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.StrUtil;
import com.njcn.algorithm.pojo.bo.BaseParam;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.njcn.algorithm.pojo.enums.PrepareResponseEnum;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.biz.pojo.dto.*;
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import com.njcn.web.controller.BaseController;
import com.yomahub.liteflow.core.FlowExecutor;
import com.yomahub.liteflow.flow.LiteflowResponse;
import com.yomahub.liteflow.flow.entity.CmpStep;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Async;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年11月01日 10:20
*/
@Slf4j
@Api(tags = "算法执行中心")
@RestController
@RequestMapping("/executor")
@RequiredArgsConstructor
public class ExecutionCenter extends BaseController {
private static final Logger logger = LoggerFactory.getLogger(ExecutionCenter.class);
@Resource
private CommTerminalGeneralClient commTerminalGeneralClient;
@Resource
private DeptFeignClient deptFeignClient;
@Resource
private FlowExecutor flowExecutor;
/***
* 1、校验非全链执行时tagNames节点标签集合必须为非空否则提示---无可执行节点
* 2、补招标识为true时起始日期&截止日期不可为空
* 3、算法需要的索引集合
* @author hongawen
* @date 2023/11/3 11:36
* @param baseParam 执行的基础参数
*/
private CalculatedParam judgeExecuteParam(BaseParam baseParam) {
CalculatedParam calculatedParam = new CalculatedParam();
if (!baseParam.isFullChain() && CollectionUtil.isEmpty(baseParam.getTagNames())) {
throw new BusinessException(PrepareResponseEnum.NO_EXECUTOR_NODE);
}
if (baseParam.isRepair() && StrUtil.isAllEmpty(baseParam.getBeginTime(), baseParam.getEndTime())) {
throw new BusinessException(PrepareResponseEnum.NO_REPAIR_DATE);
}
BeanUtil.copyProperties(baseParam, calculatedParam);
return calculatedParam;
}
/***
*
* @author hongawen
* @date 2023/11/7 14:44
*/
private void dealResponse(CalculatedParam calculatedParam, LiteflowResponse liteflowResponse, String methodDescribe) {
if (liteflowResponse.isSuccess()) {
logger.info("日期{}{}执行{}成功", calculatedParam.getDataDate(), methodDescribe, calculatedParam.isFullChain() ? "全链" : "指定节点:".concat(String.join(StrPool.COMMA, calculatedParam.getTagNames())));
} else {
Map<String, List<CmpStep>> executeSteps = liteflowResponse.getExecuteSteps();
CmpStep failStep = null;
for (String key : executeSteps.keySet()) {
List<CmpStep> cmpSteps = executeSteps.get(key);
cmpSteps = cmpSteps.stream().filter(cmpStep -> !cmpStep.isSuccess()).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(cmpSteps)) {
failStep = cmpSteps.get(0);
}
}
logger.error("日期{}{}执行{}失败,在执行{}失败,失败原因:{}"
, calculatedParam.getDataDate()
, methodDescribe
, calculatedParam.isFullChain() ? "全链" : "指定节点:".concat(String.join(StrPool.COMMA, calculatedParam.getTagNames()))
, failStep.getNodeId().concat(Objects.isNull(failStep.getTag()) ? "" : StrPool.DASHED.concat(failStep.getTag()))
, Objects.isNull(failStep.getException()) ? null : failStep.getException().getMessage());
}
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("监测点算法执行链")
@PostMapping("/measurementPointExecutor")
@Async("asyncExecutor")
public void measurementPointExecutor(@RequestBody BaseParam baseParam) {
String methodDescribe = getMethodDescribe("measurementPointExecutor");
//手动判断参数是否合法,
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_DATE_FORMAT);
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
//递增日期执行算法链
for (int i = 0; i < betweenDay; i++) {
if (i != 0) {
startDate = DateUtil.offsetDay(startDate, 1);
}
calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
liteflowResponse = flowExecutor.execute2Resp("measurement_point", calculatedParam);
dealResponse(calculatedParam, liteflowResponse, methodDescribe);
}
} else {
//非补招
liteflowResponse = flowExecutor.execute2Resp("measurement_point", calculatedParam);
dealResponse(calculatedParam, liteflowResponse, methodDescribe);
}
}
// @OperateInfo(info = LogEnum.BUSINESS_COMMON)
// @ApiOperation("装置算法执行链")
// @PostMapping("/deviceExecutor")
// @Async("asyncExecutor")
// public void deviceExecutor(@RequestBody BaseParam baseParam) {
// String methodDescribe = getMethodDescribe("deviceExecutor");
// //手动判断参数是否合法,
// CalculatedParam calculatedParam = judgeExecuteParam(baseParam);
// DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
// // 设备索引
// if (CollectionUtils.isEmpty(calculatedParam.getIdList())) {
// Dept data = deptFeignClient.getRootDept().getData();
// deptGetLineParam.setDeptId(data.getId());
// List<DeptGetDeviceDTO> list = commTerminalGeneralClient.deptGetDevice(deptGetLineParam).getData();
// DeptGetDeviceDTO dto = list.stream().filter(po -> Objects.equals(po.getUnitId(), data.getId())).collect(Collectors.toList()).get(0);
// List<LineDevGetDTO> devList = dto.getDeviceList();
// calculatedParam.setIdList(devList.stream().map(LineDevGetDTO::getDevId).distinct().collect(Collectors.toList()));
// }
// LiteflowResponse liteflowResponse;
// if (baseParam.isRepair()) {
// //补招时,起始日期、截止日期必填
// DateTime startDate = DateUtil.parse(baseParam.getBeginTime(), DatePattern.NORM_DATE_FORMAT);
// DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
// long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
// //递增日期执行算法链
// for (int i = 0; i < betweenDay; i++) {
// if (i != 0) {
// startDate = DateUtil.offsetDay(startDate, 1);
// }
// calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
// liteflowResponse = flowExecutor.execute2Resp("device", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
// } else {
// //非补招
// liteflowResponse = flowExecutor.execute2Resp("device", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
// }
//
// @OperateInfo(info = LogEnum.BUSINESS_COMMON)
// @ApiOperation("单位监测点算法执行链")
// @PostMapping("/orgPointExecutor")
// @Async("asyncExecutor")
// public void orgPointExecutor(@RequestBody BaseParam baseParam) {
// String methodDescribe = getMethodDescribe("OrgPointExecutor");
// //手动判断参数是否合法,
// CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = judgeExecuteParam(baseParam);
// // 测点索引
// DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
//
// if (CollectionUtils.isEmpty(calculatedParam.getIdList())) {
// Dept data = deptFeignClient.getRootDept().getData();
// deptGetLineParam.setDeptId(data.getId());
// calculatedParam.setIdList(commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData());
// }
// LiteflowResponse liteflowResponse;
// if (baseParam.isRepair()) {
// //补招时,起始日期、截止日期必填
// DateTime startDate = DateUtil.parse(baseParam.getBeginTime(), DatePattern.NORM_DATE_FORMAT);
// DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
// long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
// //递增日期执行算法链
// for (int i = 0; i < betweenDay; i++) {
// if (i != 0) {
// startDate = DateUtil.offsetDay(startDate, 1);
// }
// calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
// liteflowResponse = flowExecutor.execute2Resp("org_point", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
// } else {
// //非补招
// liteflowResponse = flowExecutor.execute2Resp("org_point", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
//
// }
//
// @OperateInfo(info = LogEnum.BUSINESS_COMMON)
// @ApiOperation("pms国网上送单位层级算法执行链")
// @PostMapping("/uploadOrgExecutor")
// @Async("asyncExecutor")
// public void uploadOrgExecutor(@RequestBody BaseParam baseParam) {
// String methodDescribe = getMethodDescribe("uploadOrgExecutor");
// //手动判断参数是否合法,
// CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = judgeExecuteParam(baseParam);
// // 测点索引
// DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
//
// if (CollectionUtils.isEmpty(calculatedParam.getIdList())) {
// Dept data = deptFeignClient.getRootDept().getData();
// deptGetLineParam.setDeptId(data.getId());
// calculatedParam.setIdList(commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData());
// }
// LiteflowResponse liteflowResponse;
// if (baseParam.isRepair()) {
// //补招时,起始日期、截止日期必填
// DateTime startDate = DateUtil.parse(baseParam.getBeginTime(), DatePattern.NORM_DATE_FORMAT);
// DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
// long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
// //递增日期执行算法链
// for (int i = 0; i < betweenDay; i++) {
// if (i != 0) {
// startDate = DateUtil.offsetDay(startDate, 1);
// }
// calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
// liteflowResponse = flowExecutor.execute2Resp("upload_org", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
// } else {
// //非补招
// liteflowResponse = flowExecutor.execute2Resp("upload_org", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
//
// }
//
// @OperateInfo(info = LogEnum.BUSINESS_COMMON)
// @ApiOperation("变电站算法执行链")
// @PostMapping("/substationExecutor")
// @Async("asyncExecutor")
// public void substationExecutor(@RequestBody BaseParam baseParam) {
// String methodDescribe = getMethodDescribe("substationExecutor");
// //手动判断参数是否合法,
// CalculatedParam<String> calculatedParam = judgeExecuteParam(baseParam);
// // 测点索引
// DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
//
// if (CollectionUtils.isEmpty(calculatedParam.getIdList())) {
// Dept data = deptFeignClient.getRootDept().getData();
// deptGetLineParam.setDeptId(data.getId());
// List<DeptGetSubStationDTO> data1 = commTerminalGeneralClient.deptSubStation(deptGetLineParam).getData();
// List<String> stationIds = new ArrayList<>();
// for (DeptGetSubStationDTO deptGetSubStationDTO : data1) {
// Collection<String> union = CollectionUtils.union(Optional.ofNullable(deptGetSubStationDTO.getStationIds()).orElse(new ArrayList<String>()),
// Optional.ofNullable(deptGetSubStationDTO.getStationIds()).orElse(new ArrayList<String>()));
// List<String> collect = union.stream().distinct().collect(Collectors.toList());
// stationIds.addAll(collect);
// }
// stationIds = stationIds.stream().distinct().collect(Collectors.toList());
// calculatedParam.setIdList(stationIds);
// }
// LiteflowResponse liteflowResponse;
// if (baseParam.isRepair()) {
// //补招时,起始日期、截止日期必填
// DateTime startDate = DateUtil.parse(baseParam.getBeginTime(), DatePattern.NORM_DATE_FORMAT);
// DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
// long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
// //递增日期执行算法链
// for (int i = 0; i < betweenDay; i++) {
// if (i != 0) {
// startDate = DateUtil.offsetDay(startDate, 1);
// }
// calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
// liteflowResponse = flowExecutor.execute2Resp("sub_station", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
// } else {
// //非补招
// liteflowResponse = flowExecutor.execute2Resp("sub_station", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
//
// }
//
// /**
// * pms dim母线电站运行情况
// *
// * @author cdf
// * @date 2023/11/17
// */
// @OperateInfo(info = LogEnum.BUSINESS_COMMON)
// @ApiOperation("pms变电站母线算法执行链")
// @PostMapping("/pmsdimexecutor")
// public void pmsDimExecutor(@RequestBody BaseParam baseParam) {
// String methodDescribe = getMethodDescribe("pmsdimexecutor");
// //手动判断参数是否合法,
// CalculatedParam<DeptGetChildrenDTO> calculatedParam = judgeExecuteParam(baseParam);
// // 测点索引
// DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
//
// if (CollectionUtils.isEmpty(calculatedParam.getIdList())) {
// Dept data = deptFeignClient.getRootDept().getData();
// deptGetLineParam.setDeptId(data.getId());
// deptGetLineParam.setSystemType(0);
// List<DeptGetChildrenDTO> dept = commTerminalGeneralClient.deptGetLineList(deptGetLineParam).getData();
// calculatedParam.setIdList(dept);
// }
// LiteflowResponse liteflowResponse;
// if (baseParam.isRepair()) {
// //补招时,起始日期、截止日期必填
// DateTime startDate = DateUtil.parse(baseParam.getBeginTime(), DatePattern.NORM_DATE_FORMAT);
// DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
// long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
// //递增日期执行算法链
// for (int i = 0; i < betweenDay; i++) {
// if (i != 0) {
// startDate = DateUtil.offsetDay(startDate, 1);
// }
// calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
// liteflowResponse = flowExecutor.execute2Resp("dim_station_busbar", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
// } else {
// //非补招
// liteflowResponse = flowExecutor.execute2Resp("dim_station_busbar", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
//
// }
//
// @OperateInfo(info = LogEnum.BUSINESS_COMMON)
// @ApiOperation("母线算法执行链(主网测点)")
// @PostMapping("/generaTrixExecutor")
// @Async("asyncExecutor")
// public void generaTrixExecutor(@RequestBody BaseParam baseParam) {
// String methodDescribe = getMethodDescribe("generaTrixExecutor");
// //手动判断参数是否合法,
// CalculatedParam<DeptGetBusBarDTO> calculatedParam = judgeExecuteParam(baseParam);
// //母线索引
// if (CollectionUtils.isEmpty(calculatedParam.getIdList())) {
// Dept dept = deptFeignClient.getRootDept().getData();
// DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
// deptGetLineParam.setDeptId(dept.getId());
// deptGetLineParam.setSystemType(0);
// List<DeptGetBusBarDTO> busBarList = commTerminalGeneralClient.deptBusBar(deptGetLineParam).getData();
// calculatedParam.setIdList(busBarList);
// }
// LiteflowResponse liteflowResponse;
// if (baseParam.isRepair()) {
// //补招时,起始日期、截止日期必填
// DateTime startDate = DateUtil.parse(baseParam.getBeginTime(), DatePattern.NORM_DATE_FORMAT);
// DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
// long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
// //递增日期执行算法链
// for (int i = 0; i < betweenDay; i++) {
// if (i != 0) {
// startDate = DateUtil.offsetDay(startDate, 1);
// }
// calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
// liteflowResponse = flowExecutor.execute2Resp("genera_trix", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
// } else {
// //非补招
// liteflowResponse = flowExecutor.execute2Resp("genera_trix", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
// }
//
// @OperateInfo(info = LogEnum.BUSINESS_COMMON)
// @ApiOperation("单位变电站算法执行链")
// @PostMapping("/orgSubStationExecutor")
// @Async("asyncExecutor")
// public void orgSubStationExecutor(@RequestBody BaseParam baseParam) {
// String methodDescribe = getMethodDescribe("orgSubStationExecutor");
// //手动判断参数是否合法,
// CalculatedParam<DeptGetSubStationDTO.Info> calculatedParam = judgeExecuteParam(baseParam);
// // 测点索引
// DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
// if (CollectionUtils.isEmpty(calculatedParam.getIdList())) {
// Dept data = deptFeignClient.getRootDept().getData();
// deptGetLineParam.setDeptId(data.getId());
// List<DeptGetSubStationDTO.Info> data1 = commTerminalGeneralClient.deptGetSubStationInfo(deptGetLineParam).getData();
// calculatedParam.setIdList(data1);
// }
// LiteflowResponse liteflowResponse;
// if (baseParam.isRepair()) {
// //补招时,起始日期、截止日期必填
// DateTime startDate = DateUtil.parse(baseParam.getBeginTime(), DatePattern.NORM_DATE_FORMAT);
// DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
// long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
// //递增日期执行算法链
// for (int i = 0; i < betweenDay; i++) {
// if (i != 0) {
// startDate = DateUtil.offsetDay(startDate, 1);
// }
// calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
// liteflowResponse = flowExecutor.execute2Resp("orgSub_station", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
// } else {
// //非补招
// liteflowResponse = flowExecutor.execute2Resp("orgSub_station", calculatedParam);
// dealResponse(calculatedParam, liteflowResponse, methodDescribe);
// }
// }
}

View File

@@ -0,0 +1,38 @@
package com.njcn.algorithm.executor;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.yomahub.liteflow.core.NodeComponent;
import java.util.Set;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年11月07日 09:02
*/
public class BaseExecutor {
/***
* 判断当前节点是否执行
* @author hongawen
* @date 2023/11/6 16:17
* @param bindCmp 执行链绑定的上下文
* @return boolean
*/
public boolean isAccess(NodeComponent bindCmp) {
String tag = bindCmp.getTag();
if (StrUtil.isBlank(tag)) {
//没有指定tag的使用node自己的名称判断
tag = bindCmp.getNodeId();
}
CalculatedParam requestData = bindCmp.getRequestData();
Set<String> tagNames = requestData.getTagNames();
if (requestData.isFullChain() || (CollectionUtil.isNotEmpty(tagNames) && tagNames.contains(tag))) {
return true;
}
return false;
}
}

View File

@@ -0,0 +1,45 @@
package com.njcn.algorithm.executor;
import com.njcn.algorithm.service.line.DayDataService;
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 MeasurementExecutor extends BaseExecutor {
@Resource
private DayDataService dayDataService;
/********************************************算法负责人:xy***********************************************************/
/**
* 算法名: 3.4.1.1-----监测点报表_日表(r_stat_data_*_d)
* @author xuyang
*/
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "dataV", nodeType = NodeTypeEnum.COMMON)
public boolean dataVToDayAccess(NodeComponent bindCmp) {
return isAccess(bindCmp);
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "dataV", nodeType = NodeTypeEnum.COMMON)
public void dataVToDayProcess(NodeComponent bindCmp) {
dayDataService.dataVHandler(bindCmp.getRequestData());
}
/********************************************算法负责人:xy结束***********************************************************/
}

View File

@@ -0,0 +1,36 @@
package com.njcn.algorithm.liteflow;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.yomahub.liteflow.core.NodeComponent;
import java.util.Set;
/**
* @author hongawen
* @version 1.0.0
* @date 2023年11月03日 14:42
*/
public abstract class NjcnNodeComponent extends NodeComponent {
/***
* 判断是否进入该节点
* 1、全链路执行时
* 2、非全链路执行但是需要执行的tag集合中包含了当前tag
*/
@Override
public boolean isAccess() {
String tag = this.getTag();
if (StrUtil.isBlank(tag)) {
//没有指定tag的使用node自己的名称判断
tag = this.getNodeId();
}
CalculatedParam requestData = this.getRequestData();
Set<String> tagNames = requestData.getTagNames();
if (requestData.isFullChain() || (CollectionUtil.isNotEmpty(tagNames) && tagNames.contains(tag))) {
return true;
}
return false;
}
}

View File

@@ -0,0 +1,19 @@
package com.njcn.algorithm.service.line;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
/**
* @author xy
*/
public interface DayDataService {
/***
* dataV转r_stat_data_v_d
* @author xuyang
* @date 2025/01/18 21:18
* @param calculatedParam 查询条件
*/
void dataVHandler(CalculatedParam calculatedParam);
}

View File

@@ -0,0 +1,216 @@
package com.njcn.algorithm.serviceimpl.line;
import cn.hutool.core.collection.CollUtil;
import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.njcn.algorithm.service.line.DayDataService;
import com.njcn.dataProcess.api.DataVFeignClient;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataVDto;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.*;
/**
* @author xy
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class DayDataServiceImpl implements DayDataService {
private static final Logger logger = LoggerFactory.getLogger(DayDataServiceImpl.class);
private final static Integer NUM = 100;
@Resource
private DataVFeignClient dataVFeignClient;
@Override
public void dataVHandler(CalculatedParam calculatedParam) {
logger.info("{},dataV表转r_stat_data_v_d开始=====》", LocalDateTime.now());
List<DataVDto> result = new ArrayList<>();
//远程接口获取分钟数据
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
//以100个监测点分片处理
List<List<String>> pendingIds = ListUtils.partition(calculatedParam.getIdList(),NUM);
pendingIds.forEach(list->{
lineParam.setLineId(list);
List<CommonMinuteDto> partList = dataVFeignClient.getBaseData(lineParam).getData();
if (CollUtil.isNotEmpty(partList)) {
partList.forEach(item->{
//相别
List<CommonMinuteDto.PhasicType> phasicTypeList = item.getPhasicTypeList();
phasicTypeList.forEach(item2->{
//数据类型
List<CommonMinuteDto.ValueType> valueTypeList = item2.getValueTypeList();
//获取平均值集合
CommonMinuteDto.ValueType valueTypes = valueTypeList.stream().filter(type-> type.getValueType().equalsIgnoreCase(InfluxDbSqlConstant.AVG_WEB)).findFirst().orElse(null);
valueTypeList.forEach(item3->{
DataVDto dto = new DataVDto();
dto.setTime(item.getTime());
dto.setLineId(item.getLineId());
dto.setPhasicType(item2.getPhasicType());
dto.setValueType(item3.getValueType());
//todo 数据清洗的功能需要讨论在哪完成
dto.setQualityFlag(0);
channelDataVHandler(item3,valueTypes,dto,true);
result.add(dto);
});
});
});
}
});
if (CollUtil.isNotEmpty(result)) {
//存储数据
dataVFeignClient.addList(result);
}
}
//指标处理
//pojo1 为正常数据集合
//pojo2 为平均值数据集合根据不同情况用来计算cp95
public void channelDataVHandler(CommonMinuteDto.ValueType pojo1, CommonMinuteDto.ValueType pojo2, DataVDto dto, boolean scheme) {
CommonMinuteDto.ValueType valueType;
if (dto.getValueType().equalsIgnoreCase(InfluxDbSqlConstant.CP95) && !scheme) {
valueType = pojo2;
} else {
valueType = pojo1;
}
//todo 按照集合排列顺序取值
dto.setFreq(getData(valueType.getValueType(),valueType.getValueList().get(0),scheme));
dto.setFreqDev(getData(valueType.getValueType(),valueType.getValueList().get(1),scheme));
dto.setRms(getData(valueType.getValueType(),valueType.getValueList().get(2),scheme));
dto.setRmsLvr(getData(valueType.getValueType(),valueType.getValueList().get(3),scheme));
dto.setVNeg(getData(valueType.getValueType(),valueType.getValueList().get(4),scheme));
dto.setVPos(getData(valueType.getValueType(),valueType.getValueList().get(5),scheme));
dto.setVThd(getData(valueType.getValueType(),valueType.getValueList().get(6),scheme));
dto.setVUnbalance(getData(valueType.getValueType(),valueType.getValueList().get(7),scheme));
dto.setVZero(getData(valueType.getValueType(),valueType.getValueList().get(8),scheme));
dto.setVlDev(getData(valueType.getValueType(),valueType.getValueList().get(9),scheme));
dto.setVuDev(getData(valueType.getValueType(),valueType.getValueList().get(10),scheme));
dto.setV1(getData(valueType.getValueType(),valueType.getValueList().get(11),scheme));
dto.setV2(getData(valueType.getValueType(),valueType.getValueList().get(12),scheme));
dto.setV3(getData(valueType.getValueType(),valueType.getValueList().get(13),scheme));
dto.setV4(getData(valueType.getValueType(),valueType.getValueList().get(14),scheme));
dto.setV5(getData(valueType.getValueType(),valueType.getValueList().get(15),scheme));
dto.setV6(getData(valueType.getValueType(),valueType.getValueList().get(16),scheme));
dto.setV7(getData(valueType.getValueType(),valueType.getValueList().get(17),scheme));
dto.setV8(getData(valueType.getValueType(),valueType.getValueList().get(18),scheme));
dto.setV9(getData(valueType.getValueType(),valueType.getValueList().get(19),scheme));
dto.setV10(getData(valueType.getValueType(),valueType.getValueList().get(20),scheme));
dto.setV11(getData(valueType.getValueType(),valueType.getValueList().get(21),scheme));
dto.setV12(getData(valueType.getValueType(),valueType.getValueList().get(22),scheme));
dto.setV13(getData(valueType.getValueType(),valueType.getValueList().get(23),scheme));
dto.setV14(getData(valueType.getValueType(),valueType.getValueList().get(24),scheme));
dto.setV15(getData(valueType.getValueType(),valueType.getValueList().get(25),scheme));
dto.setV16(getData(valueType.getValueType(),valueType.getValueList().get(26),scheme));
dto.setV17(getData(valueType.getValueType(),valueType.getValueList().get(27),scheme));
dto.setV18(getData(valueType.getValueType(),valueType.getValueList().get(28),scheme));
dto.setV19(getData(valueType.getValueType(),valueType.getValueList().get(29),scheme));
dto.setV20(getData(valueType.getValueType(),valueType.getValueList().get(30),scheme));
dto.setV21(getData(valueType.getValueType(),valueType.getValueList().get(31),scheme));
dto.setV22(getData(valueType.getValueType(),valueType.getValueList().get(32),scheme));
dto.setV23(getData(valueType.getValueType(),valueType.getValueList().get(33),scheme));
dto.setV24(getData(valueType.getValueType(),valueType.getValueList().get(34),scheme));
dto.setV25(getData(valueType.getValueType(),valueType.getValueList().get(35),scheme));
dto.setV26(getData(valueType.getValueType(),valueType.getValueList().get(36),scheme));
dto.setV27(getData(valueType.getValueType(),valueType.getValueList().get(37),scheme));
dto.setV28(getData(valueType.getValueType(),valueType.getValueList().get(38),scheme));
dto.setV29(getData(valueType.getValueType(),valueType.getValueList().get(39),scheme));
dto.setV30(getData(valueType.getValueType(),valueType.getValueList().get(40),scheme));
dto.setV31(getData(valueType.getValueType(),valueType.getValueList().get(41),scheme));
dto.setV32(getData(valueType.getValueType(),valueType.getValueList().get(42),scheme));
dto.setV33(getData(valueType.getValueType(),valueType.getValueList().get(43),scheme));
dto.setV34(getData(valueType.getValueType(),valueType.getValueList().get(44),scheme));
dto.setV35(getData(valueType.getValueType(),valueType.getValueList().get(45),scheme));
dto.setV36(getData(valueType.getValueType(),valueType.getValueList().get(46),scheme));
dto.setV37(getData(valueType.getValueType(),valueType.getValueList().get(47),scheme));
dto.setV38(getData(valueType.getValueType(),valueType.getValueList().get(48),scheme));
dto.setV39(getData(valueType.getValueType(),valueType.getValueList().get(49),scheme));
dto.setV40(getData(valueType.getValueType(),valueType.getValueList().get(50),scheme));
dto.setV41(getData(valueType.getValueType(),valueType.getValueList().get(51),scheme));
dto.setV42(getData(valueType.getValueType(),valueType.getValueList().get(52),scheme));
dto.setV43(getData(valueType.getValueType(),valueType.getValueList().get(53),scheme));
dto.setV44(getData(valueType.getValueType(),valueType.getValueList().get(54),scheme));
dto.setV45(getData(valueType.getValueType(),valueType.getValueList().get(55),scheme));
dto.setV46(getData(valueType.getValueType(),valueType.getValueList().get(56),scheme));
dto.setV47(getData(valueType.getValueType(),valueType.getValueList().get(57),scheme));
dto.setV48(getData(valueType.getValueType(),valueType.getValueList().get(58),scheme));
dto.setV49(getData(valueType.getValueType(),valueType.getValueList().get(59),scheme));
dto.setV50(getData(valueType.getValueType(),valueType.getValueList().get(60),scheme));
}
//数据类型处理
//cp95值的计算有点区别会用到cp95的集合或者平均值的集合
public Double getData(String valueType, List<Double> list, boolean scheme) {
Double result = null;
valueType = valueType.toUpperCase();
if (scheme) {
switch (valueType) {
case InfluxDbSqlConstant.MAX:
case InfluxDbSqlConstant.CP95:
Optional<Double> max = list.stream().filter(Objects::nonNull).max(Double::compare);
result = max.orElse(null);
break;
case InfluxDbSqlConstant.MIN:
Optional<Double> min = list.stream().filter(Objects::nonNull).min(Double::compare);
result = min.orElse(null);
break;
case InfluxDbSqlConstant.AVG_WEB:
OptionalDouble average = list.stream()
.filter(Objects::nonNull)
.mapToDouble(Double::doubleValue)
.average();
result = average.isPresent() ? average.getAsDouble() : null;
break;
default:
break;
}
} else {
switch (valueType) {
case InfluxDbSqlConstant.MAX:
Optional<Double> max = list.stream().filter(Objects::nonNull).max(Double::compare);
result = max.orElse(null);
break;
case InfluxDbSqlConstant.MIN:
Optional<Double> min = list.stream().filter(Objects::nonNull).min(Double::compare);
result = min.orElse(null);
break;
case InfluxDbSqlConstant.AVG_WEB:
OptionalDouble average = list.stream()
.filter(Objects::nonNull)
.mapToDouble(Double::doubleValue)
.average();
result = average.isPresent() ? average.getAsDouble() : null;
break;
case InfluxDbSqlConstant.CP95:
list.sort(Collections.reverseOrder());
int discardCount = (int) Math.ceil(list.size() * 0.05);
List<Double> remainingList = list.subList(discardCount, list.size());
result = remainingList.isEmpty() ? null : remainingList.get(0);
break;
default:
break;
}
}
return result;
}
}

View File

@@ -29,11 +29,20 @@ spring:
shared-configs: shared-configs:
- data-id: share-config.yaml - data-id: share-config.yaml
refresh: true refresh: true
- data-Id: algorithm-config.yaml - data-Id: share-config-datasource-db.yaml
refresh: true refresh: true
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
liteflow:
rule-source-ext-data-map:
serverAddr: @nacos.url@
dataId: prepare_liteflow
group: DEFAULT_GROUP
namespace: @nacos.namespace@
when-max-wait-time: 600000
print-banner: false
#项目日志的配置 #项目日志的配置
logging: logging:

View File

@@ -2,9 +2,11 @@ package com.njcn.dataProcess.api;
import com.njcn.common.pojo.constant.ServerInfo; import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.fallback.DataVFeignClientFallbackFactory; import com.njcn.dataProcess.api.fallback.DataVFeignClientFallbackFactory;
import com.njcn.dataProcess.dto.DataVDTO; import com.njcn.dataProcess.dto.DataVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataVDto;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
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;
@@ -21,10 +23,15 @@ import java.util.List;
@FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/dataV", fallbackFactory = DataVFeignClientFallbackFactory.class, contextId = "dataV") @FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/dataV", fallbackFactory = DataVFeignClientFallbackFactory.class, contextId = "dataV")
public interface DataVFeignClient { public interface DataVFeignClient {
@PostMapping("/batchInsertion") @PostMapping("/batchInsertion")
HttpResult<String> batchInsertion(@RequestBody List<DataVDTO> dataVDTOList); HttpResult<String> batchInsertion(@RequestBody List<DataVDTO> dataVDTOList);
@PostMapping("/monitoringTime") @PostMapping("/monitoringTime")
HttpResult<List<LocalDateTime>> monitoringTime(@RequestParam("lineId") String lineId, @RequestParam("localData") String localData) ; HttpResult<List<LocalDateTime>> monitoringTime(@RequestParam("lineId") String lineId, @RequestParam("localData") String localData) ;
//获取算法基础数据
@PostMapping("/getBaseData")
HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam);
//批量插入数据
@PostMapping("/addList")
HttpResult<String> addList(@RequestBody List<DataVDto> dataVDtoList);
} }

View File

@@ -5,6 +5,9 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataVFeignClient; import com.njcn.dataProcess.api.DataVFeignClient;
import com.njcn.dataProcess.dto.DataVDTO; import com.njcn.dataProcess.dto.DataVDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataVDto;
import com.njcn.dataProcess.util.DataProcessingEnumUtil; import com.njcn.dataProcess.util.DataProcessingEnumUtil;
import com.njcn.system.utils.SystemEnumUtil; import com.njcn.system.utils.SystemEnumUtil;
import feign.hystrix.FallbackFactory; import feign.hystrix.FallbackFactory;
@@ -51,6 +54,18 @@ public class DataVFeignClientFallbackFactory implements FallbackFactory<DataVFei
throw new BusinessException(finalExceptionEnum); throw new BusinessException(finalExceptionEnum);
} }
@Override
public HttpResult<List<CommonMinuteDto>> getBaseData(LineCountEvaluateParam lineParam) {
log.error("{}异常,降级处理,异常为:{}","获取算法基础数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> addList(List<DataVDto> dataVDtoList) {
log.error("{}异常,降级处理,异常为:{}","批量插入数据",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
}; };
} }
} }

View File

@@ -34,190 +34,190 @@ public class DataV {
private Instant time; private Instant time;
@Column(name = "freq") @Column(name = "freq")
private Float freq; private Double freq;
@Column(name = "freq_dev") @Column(name = "freq_dev")
private Float freqDev; private Double freqDev;
@Column(name = "quality_flag", tag = true) @Column(name = "quality_flag", tag = true)
private String qualityFlag; private String qualityFlag;
@Column(name = "rms") @Column(name = "rms")
private Float rms; private Double rms;
@Column(name = "rms_lvr") @Column(name = "rms_lvr")
private Float rmsLvr; private Double rmsLvr;
@Column(name = "vl_dev") @Column(name = "vl_dev")
private Float vlDev; private Double vlDev;
@Column(name = "vu_dev") @Column(name = "vu_dev")
private Float vuDev; private Double vuDev;
@Column(name = "v_1") @Column(name = "v_1")
private Float v1; private Double v1;
@Column(name = "v_2") @Column(name = "v_2")
private Float v2; private Double v2;
@Column(name = "v_3") @Column(name = "v_3")
private Float v3; private Double v3;
@Column(name = "v_4") @Column(name = "v_4")
private Float v4; private Double v4;
@Column(name = "v_5") @Column(name = "v_5")
private Float v5; private Double v5;
@Column(name = "v_6") @Column(name = "v_6")
private Float v6; private Double v6;
@Column(name = "v_7") @Column(name = "v_7")
private Float v7; private Double v7;
@Column(name = "v_8") @Column(name = "v_8")
private Float v8; private Double v8;
@Column(name = "v_9") @Column(name = "v_9")
private Float v9; private Double v9;
@Column(name = "v_10") @Column(name = "v_10")
private Float v10; private Double v10;
@Column(name = "v_11") @Column(name = "v_11")
private Float v11; private Double v11;
@Column(name = "v_12") @Column(name = "v_12")
private Float v12; private Double v12;
@Column(name = "v_13") @Column(name = "v_13")
private Float v13; private Double v13;
@Column(name = "v_14") @Column(name = "v_14")
private Float v14; private Double v14;
@Column(name = "v_15") @Column(name = "v_15")
private Float v15; private Double v15;
@Column(name = "v_16") @Column(name = "v_16")
private Float v16; private Double v16;
@Column(name = "v_17") @Column(name = "v_17")
private Float v17; private Double v17;
@Column(name = "v_18") @Column(name = "v_18")
private Float v18; private Double v18;
@Column(name = "v_19") @Column(name = "v_19")
private Float v19; private Double v19;
@Column(name = "v_20") @Column(name = "v_20")
private Float v20; private Double v20;
@Column(name = "v_21") @Column(name = "v_21")
private Float v21; private Double v21;
@Column(name = "v_22") @Column(name = "v_22")
private Float v22; private Double v22;
@Column(name = "v_23") @Column(name = "v_23")
private Float v23; private Double v23;
@Column(name = "v_24") @Column(name = "v_24")
private Float v24; private Double v24;
@Column(name = "v_25") @Column(name = "v_25")
private Float v25; private Double v25;
@Column(name = "v_26") @Column(name = "v_26")
private Float v26; private Double v26;
@Column(name = "v_27") @Column(name = "v_27")
private Float v27; private Double v27;
@Column(name = "v_28") @Column(name = "v_28")
private Float v28; private Double v28;
@Column(name = "v_29") @Column(name = "v_29")
private Float v29; private Double v29;
@Column(name = "v_30") @Column(name = "v_30")
private Float v30; private Double v30;
@Column(name = "v_31") @Column(name = "v_31")
private Float v31; private Double v31;
@Column(name = "v_32") @Column(name = "v_32")
private Float v32; private Double v32;
@Column(name = "v_33") @Column(name = "v_33")
private Float v33; private Double v33;
@Column(name = "v_34") @Column(name = "v_34")
private Float v34; private Double v34;
@Column(name = "v_35") @Column(name = "v_35")
private Float v35; private Double v35;
@Column(name = "v_36") @Column(name = "v_36")
private Float v36; private Double v36;
@Column(name = "v_37") @Column(name = "v_37")
private Float v37; private Double v37;
@Column(name = "v_38") @Column(name = "v_38")
private Float v38; private Double v38;
@Column(name = "v_39") @Column(name = "v_39")
private Float v39; private Double v39;
@Column(name = "v_40") @Column(name = "v_40")
private Float v40; private Double v40;
@Column(name = "v_41") @Column(name = "v_41")
private Float v41; private Double v41;
@Column(name = "v_42") @Column(name = "v_42")
private Float v42; private Double v42;
@Column(name = "v_43") @Column(name = "v_43")
private Float v43; private Double v43;
@Column(name = "v_44") @Column(name = "v_44")
private Float v44; private Double v44;
@Column(name = "v_45") @Column(name = "v_45")
private Float v45; private Double v45;
@Column(name = "v_46") @Column(name = "v_46")
private Float v46; private Double v46;
@Column(name = "v_47") @Column(name = "v_47")
private Float v47; private Double v47;
@Column(name = "v_48") @Column(name = "v_48")
private Float v48; private Double v48;
@Column(name = "v_49") @Column(name = "v_49")
private Float v49; private Double v49;
@Column(name = "v_50") @Column(name = "v_50")
private Float v50; private Double v50;
@Column(name = "v_neg") @Column(name = "v_neg")
private Float vNeg; private Double vNeg;
@Column(name = "v_pos") @Column(name = "v_pos")
private Float vPos; private Double vPos;
@Column(name = "v_thd") @Column(name = "v_thd")
private Float vThd; private Double vThd;
@Column(name = "v_unbalance") @Column(name = "v_unbalance")
private Float vUnbalance; private Double vUnbalance;
@Column(name = "v_zero") @Column(name = "v_zero")
private Float vZero; private Double vZero;
@Column(name = "line_id", tag = true) @Column(name = "line_id", tag = true)
private String lineId; private String lineId;
@@ -235,7 +235,7 @@ public class DataV {
//自定义字段 //自定义字段
@Column(name = "mean") @Column(name = "mean")
private Float mean; private Double mean;
//自定义字段 //自定义字段
@Column(name = "count") @Column(name = "count")
@@ -275,32 +275,32 @@ public class DataV {
if (valueType.equals("AVG")) { if (valueType.equals("AVG")) {
influxDBDataVA.setRmsLvr(Objects.isNull(dataV.getRmsab())?0.0f:dataV.getRmsab()); influxDBDataVA.setRmsLvr(Objects.isNull(dataV.getRmsab())?0.0:dataV.getRmsab());
influxDBDataVB.setRmsLvr(Objects.isNull(dataV.getRmsbc())?0.0f:dataV.getRmsbc()); influxDBDataVB.setRmsLvr(Objects.isNull(dataV.getRmsbc())?0.0:dataV.getRmsbc());
influxDBDataVC.setRmsLvr(Objects.isNull(dataV.getRmsca())?0.0f:dataV.getRmsca()); influxDBDataVC.setRmsLvr(Objects.isNull(dataV.getRmsca())?0.0:dataV.getRmsca());
} }
else if (valueType.equals("MAX")){ else if (valueType.equals("MAX")){
influxDBDataVA.setRmsLvr(Objects.isNull(dataV.getRmsabMax())?0.0f:dataV.getRmsabMax()); influxDBDataVA.setRmsLvr(Objects.isNull(dataV.getRmsabMax())?0.0:dataV.getRmsabMax());
influxDBDataVB.setRmsLvr(Objects.isNull(dataV.getRmsbcMax())?0.0f:dataV.getRmsbcMax()); influxDBDataVB.setRmsLvr(Objects.isNull(dataV.getRmsbcMax())?0.0:dataV.getRmsbcMax());
influxDBDataVC.setRmsLvr(Objects.isNull(dataV.getRmscaMax())?0.0f:dataV.getRmscaMax()); influxDBDataVC.setRmsLvr(Objects.isNull(dataV.getRmscaMax())?0.0:dataV.getRmscaMax());
} }
else if (valueType.equals("MIN")){ else if (valueType.equals("MIN")){
influxDBDataVA.setRmsLvr(Objects.isNull(dataV.getRmsabMin())?0.0f:dataV.getRmsabMin()); influxDBDataVA.setRmsLvr(Objects.isNull(dataV.getRmsabMin())?0.0:dataV.getRmsabMin());
influxDBDataVB.setRmsLvr(Objects.isNull(dataV.getRmsbcMin())?0.0f:dataV.getRmsbcMin()); influxDBDataVB.setRmsLvr(Objects.isNull(dataV.getRmsbcMin())?0.0:dataV.getRmsbcMin());
influxDBDataVC.setRmsLvr(Objects.isNull(dataV.getRmscaMin())?0.0f:dataV.getRmscaMin()); influxDBDataVC.setRmsLvr(Objects.isNull(dataV.getRmscaMin())?0.0:dataV.getRmscaMin());
} }
else if (valueType.equals("CP95")){ else if (valueType.equals("CP95")){
influxDBDataVA.setRmsLvr(Objects.isNull(dataV.getRmsabCp95())?0.0f:dataV.getRmsabCp95()); influxDBDataVA.setRmsLvr(Objects.isNull(dataV.getRmsabCp95())?0.0:dataV.getRmsabCp95());
influxDBDataVB.setRmsLvr(Objects.isNull(dataV.getRmsbcCp95())?0.0f:dataV.getRmsbcCp95()); influxDBDataVB.setRmsLvr(Objects.isNull(dataV.getRmsbcCp95())?0.0:dataV.getRmsbcCp95());
influxDBDataVC.setRmsLvr(Objects.isNull(dataV.getRmscaCp95())?0.0f:dataV.getRmscaCp95()); influxDBDataVC.setRmsLvr(Objects.isNull(dataV.getRmscaCp95())?0.0:dataV.getRmscaCp95());
} }
influxDBDataVList.add(influxDBDataVA); influxDBDataVList.add(influxDBDataVA);
influxDBDataVList.add(influxDBDataVB); influxDBDataVList.add(influxDBDataVB);
@@ -310,263 +310,263 @@ public class DataV {
} }
if (valueType.equals("AVG")) { if (valueType.equals("AVG")) {
influxDBDataV.setVNeg(Objects.isNull(dataV.getVNeg())?0.0f:dataV.getVNeg()); influxDBDataV.setVNeg(Objects.isNull(dataV.getVNeg())?0.0:dataV.getVNeg());
influxDBDataV.setVPos(Objects.isNull(dataV.getVPos())?0.0f:dataV.getVPos()); influxDBDataV.setVPos(Objects.isNull(dataV.getVPos())?0.0:dataV.getVPos());
influxDBDataV.setVThd(Objects.isNull(dataV.getVThd())?0.0f:dataV.getVThd()); influxDBDataV.setVThd(Objects.isNull(dataV.getVThd())?0.0:dataV.getVThd());
influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalance())?0.0f:dataV.getVUnbalance()); influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalance())?0.0:dataV.getVUnbalance());
influxDBDataV.setVZero(Objects.isNull(dataV.getVZero())?0.0f:dataV.getVZero()); influxDBDataV.setVZero(Objects.isNull(dataV.getVZero())?0.0:dataV.getVZero());
influxDBDataV.setFreq(Objects.isNull(dataV.getFreq())?0.0f:dataV.getFreq()); influxDBDataV.setFreq(Objects.isNull(dataV.getFreq())?0.0:dataV.getFreq());
influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDev())?0.0f:dataV.getFreqDev()); influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDev())?0.0:dataV.getFreqDev());
influxDBDataV.setRms(Objects.isNull(dataV.getRms())?0.0f:dataV.getRms()); influxDBDataV.setRms(Objects.isNull(dataV.getRms())?0.0:dataV.getRms());
influxDBDataV.setRmsLvr(Objects.isNull(dataV.getRmsab())?0.0f:dataV.getRmsab()); influxDBDataV.setRmsLvr(Objects.isNull(dataV.getRmsab())?0.0:dataV.getRmsab());
influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDev())?0.0f:dataV.getVlDev()); influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDev())?0.0:dataV.getVlDev());
influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDev())?0.0f:dataV.getVuDev()); influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDev())?0.0:dataV.getVuDev());
influxDBDataV.setV1(Objects.isNull(dataV.getV1())?0.0f:dataV.getV1()); influxDBDataV.setV1(Objects.isNull(dataV.getV1())?0.0:dataV.getV1());
influxDBDataV.setV2(Objects.isNull(dataV.getV2())?0.0f:dataV.getV2()); influxDBDataV.setV2(Objects.isNull(dataV.getV2())?0.0:dataV.getV2());
influxDBDataV.setV3(Objects.isNull(dataV.getV3())?0.0f:dataV.getV3()); influxDBDataV.setV3(Objects.isNull(dataV.getV3())?0.0:dataV.getV3());
influxDBDataV.setV4(Objects.isNull(dataV.getV4())?0.0f:dataV.getV4()); influxDBDataV.setV4(Objects.isNull(dataV.getV4())?0.0:dataV.getV4());
influxDBDataV.setV5(Objects.isNull(dataV.getV5())?0.0f:dataV.getV5()); influxDBDataV.setV5(Objects.isNull(dataV.getV5())?0.0:dataV.getV5());
influxDBDataV.setV6(Objects.isNull(dataV.getV6())?0.0f:dataV.getV6()); influxDBDataV.setV6(Objects.isNull(dataV.getV6())?0.0:dataV.getV6());
influxDBDataV.setV7(Objects.isNull(dataV.getV7())?0.0f:dataV.getV7()); influxDBDataV.setV7(Objects.isNull(dataV.getV7())?0.0:dataV.getV7());
influxDBDataV.setV8(Objects.isNull(dataV.getV8())?0.0f:dataV.getV8()); influxDBDataV.setV8(Objects.isNull(dataV.getV8())?0.0:dataV.getV8());
influxDBDataV.setV9(Objects.isNull(dataV.getV9())?0.0f:dataV.getV9()); influxDBDataV.setV9(Objects.isNull(dataV.getV9())?0.0:dataV.getV9());
influxDBDataV.setV10(Objects.isNull(dataV.getV10())?0.0f:dataV.getV10()); influxDBDataV.setV10(Objects.isNull(dataV.getV10())?0.0:dataV.getV10());
influxDBDataV.setV11(Objects.isNull(dataV.getV11())?0.0f:dataV.getV11()); influxDBDataV.setV11(Objects.isNull(dataV.getV11())?0.0:dataV.getV11());
influxDBDataV.setV12(Objects.isNull(dataV.getV12())?0.0f:dataV.getV12()); influxDBDataV.setV12(Objects.isNull(dataV.getV12())?0.0:dataV.getV12());
influxDBDataV.setV13(Objects.isNull(dataV.getV13())?0.0f:dataV.getV13()); influxDBDataV.setV13(Objects.isNull(dataV.getV13())?0.0:dataV.getV13());
influxDBDataV.setV14(Objects.isNull(dataV.getV14())?0.0f:dataV.getV14()); influxDBDataV.setV14(Objects.isNull(dataV.getV14())?0.0:dataV.getV14());
influxDBDataV.setV15(Objects.isNull(dataV.getV15())?0.0f:dataV.getV15()); influxDBDataV.setV15(Objects.isNull(dataV.getV15())?0.0:dataV.getV15());
influxDBDataV.setV16(Objects.isNull(dataV.getV16())?0.0f:dataV.getV16()); influxDBDataV.setV16(Objects.isNull(dataV.getV16())?0.0:dataV.getV16());
influxDBDataV.setV17(Objects.isNull(dataV.getV17())?0.0f:dataV.getV17()); influxDBDataV.setV17(Objects.isNull(dataV.getV17())?0.0:dataV.getV17());
influxDBDataV.setV18(Objects.isNull(dataV.getV18())?0.0f:dataV.getV18()); influxDBDataV.setV18(Objects.isNull(dataV.getV18())?0.0:dataV.getV18());
influxDBDataV.setV19(Objects.isNull(dataV.getV19())?0.0f:dataV.getV19()); influxDBDataV.setV19(Objects.isNull(dataV.getV19())?0.0:dataV.getV19());
influxDBDataV.setV20(Objects.isNull(dataV.getV20())?0.0f:dataV.getV20()); influxDBDataV.setV20(Objects.isNull(dataV.getV20())?0.0:dataV.getV20());
influxDBDataV.setV21(Objects.isNull(dataV.getV21())?0.0f:dataV.getV21()); influxDBDataV.setV21(Objects.isNull(dataV.getV21())?0.0:dataV.getV21());
influxDBDataV.setV22(Objects.isNull(dataV.getV22())?0.0f:dataV.getV22()); influxDBDataV.setV22(Objects.isNull(dataV.getV22())?0.0:dataV.getV22());
influxDBDataV.setV23(Objects.isNull(dataV.getV23())?0.0f:dataV.getV23()); influxDBDataV.setV23(Objects.isNull(dataV.getV23())?0.0:dataV.getV23());
influxDBDataV.setV24(Objects.isNull(dataV.getV24())?0.0f:dataV.getV24()); influxDBDataV.setV24(Objects.isNull(dataV.getV24())?0.0:dataV.getV24());
influxDBDataV.setV25(Objects.isNull(dataV.getV25())?0.0f:dataV.getV25()); influxDBDataV.setV25(Objects.isNull(dataV.getV25())?0.0:dataV.getV25());
influxDBDataV.setV26(Objects.isNull(dataV.getV26())?0.0f:dataV.getV26()); influxDBDataV.setV26(Objects.isNull(dataV.getV26())?0.0:dataV.getV26());
influxDBDataV.setV27(Objects.isNull(dataV.getV27())?0.0f:dataV.getV27()); influxDBDataV.setV27(Objects.isNull(dataV.getV27())?0.0:dataV.getV27());
influxDBDataV.setV28(Objects.isNull(dataV.getV28())?0.0f:dataV.getV28()); influxDBDataV.setV28(Objects.isNull(dataV.getV28())?0.0:dataV.getV28());
influxDBDataV.setV29(Objects.isNull(dataV.getV29())?0.0f:dataV.getV29()); influxDBDataV.setV29(Objects.isNull(dataV.getV29())?0.0:dataV.getV29());
influxDBDataV.setV30(Objects.isNull(dataV.getV30())?0.0f:dataV.getV30()); influxDBDataV.setV30(Objects.isNull(dataV.getV30())?0.0:dataV.getV30());
influxDBDataV.setV31(Objects.isNull(dataV.getV31())?0.0f:dataV.getV31()); influxDBDataV.setV31(Objects.isNull(dataV.getV31())?0.0:dataV.getV31());
influxDBDataV.setV32(Objects.isNull(dataV.getV32())?0.0f:dataV.getV32()); influxDBDataV.setV32(Objects.isNull(dataV.getV32())?0.0:dataV.getV32());
influxDBDataV.setV33(Objects.isNull(dataV.getV33())?0.0f:dataV.getV33()); influxDBDataV.setV33(Objects.isNull(dataV.getV33())?0.0:dataV.getV33());
influxDBDataV.setV34(Objects.isNull(dataV.getV34())?0.0f:dataV.getV34()); influxDBDataV.setV34(Objects.isNull(dataV.getV34())?0.0:dataV.getV34());
influxDBDataV.setV35(Objects.isNull(dataV.getV35())?0.0f:dataV.getV35()); influxDBDataV.setV35(Objects.isNull(dataV.getV35())?0.0:dataV.getV35());
influxDBDataV.setV36(Objects.isNull(dataV.getV36())?0.0f:dataV.getV36()); influxDBDataV.setV36(Objects.isNull(dataV.getV36())?0.0:dataV.getV36());
influxDBDataV.setV37(Objects.isNull(dataV.getV37())?0.0f:dataV.getV37()); influxDBDataV.setV37(Objects.isNull(dataV.getV37())?0.0:dataV.getV37());
influxDBDataV.setV38(Objects.isNull(dataV.getV38())?0.0f:dataV.getV38()); influxDBDataV.setV38(Objects.isNull(dataV.getV38())?0.0:dataV.getV38());
influxDBDataV.setV39(Objects.isNull(dataV.getV39())?0.0f:dataV.getV39()); influxDBDataV.setV39(Objects.isNull(dataV.getV39())?0.0:dataV.getV39());
influxDBDataV.setV40(Objects.isNull(dataV.getV40())?0.0f:dataV.getV40()); influxDBDataV.setV40(Objects.isNull(dataV.getV40())?0.0:dataV.getV40());
influxDBDataV.setV41(Objects.isNull(dataV.getV41())?0.0f:dataV.getV41()); influxDBDataV.setV41(Objects.isNull(dataV.getV41())?0.0:dataV.getV41());
influxDBDataV.setV42(Objects.isNull(dataV.getV42())?0.0f:dataV.getV42()); influxDBDataV.setV42(Objects.isNull(dataV.getV42())?0.0:dataV.getV42());
influxDBDataV.setV43(Objects.isNull(dataV.getV43())?0.0f:dataV.getV43()); influxDBDataV.setV43(Objects.isNull(dataV.getV43())?0.0:dataV.getV43());
influxDBDataV.setV44(Objects.isNull(dataV.getV44())?0.0f:dataV.getV44()); influxDBDataV.setV44(Objects.isNull(dataV.getV44())?0.0:dataV.getV44());
influxDBDataV.setV45(Objects.isNull(dataV.getV45())?0.0f:dataV.getV45()); influxDBDataV.setV45(Objects.isNull(dataV.getV45())?0.0:dataV.getV45());
influxDBDataV.setV46(Objects.isNull(dataV.getV46())?0.0f:dataV.getV46()); influxDBDataV.setV46(Objects.isNull(dataV.getV46())?0.0:dataV.getV46());
influxDBDataV.setV47(Objects.isNull(dataV.getV47())?0.0f:dataV.getV47()); influxDBDataV.setV47(Objects.isNull(dataV.getV47())?0.0:dataV.getV47());
influxDBDataV.setV48(Objects.isNull(dataV.getV48())?0.0f:dataV.getV48()); influxDBDataV.setV48(Objects.isNull(dataV.getV48())?0.0:dataV.getV48());
influxDBDataV.setV49(Objects.isNull(dataV.getV49())?0.0f:dataV.getV49()); influxDBDataV.setV49(Objects.isNull(dataV.getV49())?0.0:dataV.getV49());
influxDBDataV.setV50(Objects.isNull(dataV.getV50())?0.0f:dataV.getV50()); influxDBDataV.setV50(Objects.isNull(dataV.getV50())?0.0:dataV.getV50());
} }
else if (valueType.equals("MAX")){ else if (valueType.equals("MAX")){
influxDBDataV.setVNeg(Objects.isNull(dataV.getVNegMax())?0.0f:dataV.getVNegMax()); influxDBDataV.setVNeg(Objects.isNull(dataV.getVNegMax())?0.0:dataV.getVNegMax());
influxDBDataV.setVPos(Objects.isNull(dataV.getVPosMax())?0.0f:dataV.getVPosMax()); influxDBDataV.setVPos(Objects.isNull(dataV.getVPosMax())?0.0:dataV.getVPosMax());
influxDBDataV.setVThd(Objects.isNull(dataV.getVThdMax())?0.0f:dataV.getVThdMax()); influxDBDataV.setVThd(Objects.isNull(dataV.getVThdMax())?0.0:dataV.getVThdMax());
influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalanceMax())?0.0f:dataV.getVUnbalanceMax()); influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalanceMax())?0.0:dataV.getVUnbalanceMax());
influxDBDataV.setVZero(Objects.isNull(dataV.getVZeroMax())?0.0f:dataV.getVZeroMax()); influxDBDataV.setVZero(Objects.isNull(dataV.getVZeroMax())?0.0:dataV.getVZeroMax());
influxDBDataV.setFreq(Objects.isNull(dataV.getFreqMax())?0.0f:dataV.getFreqMax()); influxDBDataV.setFreq(Objects.isNull(dataV.getFreqMax())?0.0:dataV.getFreqMax());
influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDevMax())?0.0f:dataV.getFreqDevMax()); influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDevMax())?0.0:dataV.getFreqDevMax());
influxDBDataV.setRms(Objects.isNull(dataV.getRmsMax())?0.0f:dataV.getRmsMax()); influxDBDataV.setRms(Objects.isNull(dataV.getRmsMax())?0.0:dataV.getRmsMax());
influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDevMax())?0.0f:dataV.getVlDevMax()); influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDevMax())?0.0:dataV.getVlDevMax());
influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDevMax())?0.0f:dataV.getVuDevMax()); influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDevMax())?0.0:dataV.getVuDevMax());
influxDBDataV.setV1(Objects.isNull(dataV.getV1Max())?0.0f:dataV.getV1Max()); influxDBDataV.setV1(Objects.isNull(dataV.getV1Max())?0.0:dataV.getV1Max());
influxDBDataV.setV2(Objects.isNull(dataV.getV2Max())?0.0f:dataV.getV2Max()); influxDBDataV.setV2(Objects.isNull(dataV.getV2Max())?0.0:dataV.getV2Max());
influxDBDataV.setV3(Objects.isNull(dataV.getV3Max())?0.0f:dataV.getV3Max()); influxDBDataV.setV3(Objects.isNull(dataV.getV3Max())?0.0:dataV.getV3Max());
influxDBDataV.setV4(Objects.isNull(dataV.getV4Max())?0.0f:dataV.getV4Max()); influxDBDataV.setV4(Objects.isNull(dataV.getV4Max())?0.0:dataV.getV4Max());
influxDBDataV.setV5(Objects.isNull(dataV.getV5Max())?0.0f:dataV.getV5Max()); influxDBDataV.setV5(Objects.isNull(dataV.getV5Max())?0.0:dataV.getV5Max());
influxDBDataV.setV6(Objects.isNull(dataV.getV6Max())?0.0f:dataV.getV6Max()); influxDBDataV.setV6(Objects.isNull(dataV.getV6Max())?0.0:dataV.getV6Max());
influxDBDataV.setV7(Objects.isNull(dataV.getV7Max())?0.0f:dataV.getV7Max()); influxDBDataV.setV7(Objects.isNull(dataV.getV7Max())?0.0:dataV.getV7Max());
influxDBDataV.setV8(Objects.isNull(dataV.getV8Max())?0.0f:dataV.getV8Max()); influxDBDataV.setV8(Objects.isNull(dataV.getV8Max())?0.0:dataV.getV8Max());
influxDBDataV.setV9(Objects.isNull(dataV.getV9Max())?0.0f:dataV.getV9Max()); influxDBDataV.setV9(Objects.isNull(dataV.getV9Max())?0.0:dataV.getV9Max());
influxDBDataV.setV10(Objects.isNull(dataV.getV10Max())?0.0f:dataV.getV10Max()); influxDBDataV.setV10(Objects.isNull(dataV.getV10Max())?0.0:dataV.getV10Max());
influxDBDataV.setV11(Objects.isNull(dataV.getV11Max())?0.0f:dataV.getV11Max()); influxDBDataV.setV11(Objects.isNull(dataV.getV11Max())?0.0:dataV.getV11Max());
influxDBDataV.setV12(Objects.isNull(dataV.getV12Max())?0.0f:dataV.getV12Max()); influxDBDataV.setV12(Objects.isNull(dataV.getV12Max())?0.0:dataV.getV12Max());
influxDBDataV.setV13(Objects.isNull(dataV.getV13Max())?0.0f:dataV.getV13Max()); influxDBDataV.setV13(Objects.isNull(dataV.getV13Max())?0.0:dataV.getV13Max());
influxDBDataV.setV14(Objects.isNull(dataV.getV14Max())?0.0f:dataV.getV14Max()); influxDBDataV.setV14(Objects.isNull(dataV.getV14Max())?0.0:dataV.getV14Max());
influxDBDataV.setV15(Objects.isNull(dataV.getV15Max())?0.0f:dataV.getV15Max()); influxDBDataV.setV15(Objects.isNull(dataV.getV15Max())?0.0:dataV.getV15Max());
influxDBDataV.setV16(Objects.isNull(dataV.getV16Max())?0.0f:dataV.getV16Max()); influxDBDataV.setV16(Objects.isNull(dataV.getV16Max())?0.0:dataV.getV16Max());
influxDBDataV.setV17(Objects.isNull(dataV.getV17Max())?0.0f:dataV.getV17Max()); influxDBDataV.setV17(Objects.isNull(dataV.getV17Max())?0.0:dataV.getV17Max());
influxDBDataV.setV18(Objects.isNull(dataV.getV18Max())?0.0f:dataV.getV18Max()); influxDBDataV.setV18(Objects.isNull(dataV.getV18Max())?0.0:dataV.getV18Max());
influxDBDataV.setV19(Objects.isNull(dataV.getV19Max())?0.0f:dataV.getV19Max()); influxDBDataV.setV19(Objects.isNull(dataV.getV19Max())?0.0:dataV.getV19Max());
influxDBDataV.setV20(Objects.isNull(dataV.getV20Max())?0.0f:dataV.getV20Max()); influxDBDataV.setV20(Objects.isNull(dataV.getV20Max())?0.0:dataV.getV20Max());
influxDBDataV.setV21(Objects.isNull(dataV.getV21Max())?0.0f:dataV.getV21Max()); influxDBDataV.setV21(Objects.isNull(dataV.getV21Max())?0.0:dataV.getV21Max());
influxDBDataV.setV22(Objects.isNull(dataV.getV22Max())?0.0f:dataV.getV22Max()); influxDBDataV.setV22(Objects.isNull(dataV.getV22Max())?0.0:dataV.getV22Max());
influxDBDataV.setV23(Objects.isNull(dataV.getV23Max())?0.0f:dataV.getV23Max()); influxDBDataV.setV23(Objects.isNull(dataV.getV23Max())?0.0:dataV.getV23Max());
influxDBDataV.setV24(Objects.isNull(dataV.getV24Max())?0.0f:dataV.getV24Max()); influxDBDataV.setV24(Objects.isNull(dataV.getV24Max())?0.0:dataV.getV24Max());
influxDBDataV.setV25(Objects.isNull(dataV.getV25Max())?0.0f:dataV.getV25Max()); influxDBDataV.setV25(Objects.isNull(dataV.getV25Max())?0.0:dataV.getV25Max());
influxDBDataV.setV26(Objects.isNull(dataV.getV26Max())?0.0f:dataV.getV26Max()); influxDBDataV.setV26(Objects.isNull(dataV.getV26Max())?0.0:dataV.getV26Max());
influxDBDataV.setV27(Objects.isNull(dataV.getV27Max())?0.0f:dataV.getV27Max()); influxDBDataV.setV27(Objects.isNull(dataV.getV27Max())?0.0:dataV.getV27Max());
influxDBDataV.setV28(Objects.isNull(dataV.getV28Max())?0.0f:dataV.getV28Max()); influxDBDataV.setV28(Objects.isNull(dataV.getV28Max())?0.0:dataV.getV28Max());
influxDBDataV.setV29(Objects.isNull(dataV.getV29Max())?0.0f:dataV.getV29Max()); influxDBDataV.setV29(Objects.isNull(dataV.getV29Max())?0.0:dataV.getV29Max());
influxDBDataV.setV30(Objects.isNull(dataV.getV30Max())?0.0f:dataV.getV30Max()); influxDBDataV.setV30(Objects.isNull(dataV.getV30Max())?0.0:dataV.getV30Max());
influxDBDataV.setV31(Objects.isNull(dataV.getV31Max())?0.0f:dataV.getV31Max()); influxDBDataV.setV31(Objects.isNull(dataV.getV31Max())?0.0:dataV.getV31Max());
influxDBDataV.setV32(Objects.isNull(dataV.getV32Max())?0.0f:dataV.getV32Max()); influxDBDataV.setV32(Objects.isNull(dataV.getV32Max())?0.0:dataV.getV32Max());
influxDBDataV.setV33(Objects.isNull(dataV.getV33Max())?0.0f:dataV.getV33Max()); influxDBDataV.setV33(Objects.isNull(dataV.getV33Max())?0.0:dataV.getV33Max());
influxDBDataV.setV34(Objects.isNull(dataV.getV34Max())?0.0f:dataV.getV34Max()); influxDBDataV.setV34(Objects.isNull(dataV.getV34Max())?0.0:dataV.getV34Max());
influxDBDataV.setV35(Objects.isNull(dataV.getV35Max())?0.0f:dataV.getV35Max()); influxDBDataV.setV35(Objects.isNull(dataV.getV35Max())?0.0:dataV.getV35Max());
influxDBDataV.setV36(Objects.isNull(dataV.getV36Max())?0.0f:dataV.getV36Max()); influxDBDataV.setV36(Objects.isNull(dataV.getV36Max())?0.0:dataV.getV36Max());
influxDBDataV.setV37(Objects.isNull(dataV.getV37Max())?0.0f:dataV.getV37Max()); influxDBDataV.setV37(Objects.isNull(dataV.getV37Max())?0.0:dataV.getV37Max());
influxDBDataV.setV38(Objects.isNull(dataV.getV38Max())?0.0f:dataV.getV38Max()); influxDBDataV.setV38(Objects.isNull(dataV.getV38Max())?0.0:dataV.getV38Max());
influxDBDataV.setV39(Objects.isNull(dataV.getV39Max())?0.0f:dataV.getV39Max()); influxDBDataV.setV39(Objects.isNull(dataV.getV39Max())?0.0:dataV.getV39Max());
influxDBDataV.setV40(Objects.isNull(dataV.getV40Max())?0.0f:dataV.getV40Max()); influxDBDataV.setV40(Objects.isNull(dataV.getV40Max())?0.0:dataV.getV40Max());
influxDBDataV.setV41(Objects.isNull(dataV.getV41Max())?0.0f:dataV.getV41Max()); influxDBDataV.setV41(Objects.isNull(dataV.getV41Max())?0.0:dataV.getV41Max());
influxDBDataV.setV42(Objects.isNull(dataV.getV42Max())?0.0f:dataV.getV42Max()); influxDBDataV.setV42(Objects.isNull(dataV.getV42Max())?0.0:dataV.getV42Max());
influxDBDataV.setV43(Objects.isNull(dataV.getV43Max())?0.0f:dataV.getV43Max()); influxDBDataV.setV43(Objects.isNull(dataV.getV43Max())?0.0:dataV.getV43Max());
influxDBDataV.setV44(Objects.isNull(dataV.getV44Max())?0.0f:dataV.getV44Max()); influxDBDataV.setV44(Objects.isNull(dataV.getV44Max())?0.0:dataV.getV44Max());
influxDBDataV.setV45(Objects.isNull(dataV.getV45Max())?0.0f:dataV.getV45Max()); influxDBDataV.setV45(Objects.isNull(dataV.getV45Max())?0.0:dataV.getV45Max());
influxDBDataV.setV46(Objects.isNull(dataV.getV46Max())?0.0f:dataV.getV46Max()); influxDBDataV.setV46(Objects.isNull(dataV.getV46Max())?0.0:dataV.getV46Max());
influxDBDataV.setV47(Objects.isNull(dataV.getV47Max())?0.0f:dataV.getV47Max()); influxDBDataV.setV47(Objects.isNull(dataV.getV47Max())?0.0:dataV.getV47Max());
influxDBDataV.setV48(Objects.isNull(dataV.getV48Max())?0.0f:dataV.getV48Max()); influxDBDataV.setV48(Objects.isNull(dataV.getV48Max())?0.0:dataV.getV48Max());
influxDBDataV.setV49(Objects.isNull(dataV.getV49Max())?0.0f:dataV.getV49Max()); influxDBDataV.setV49(Objects.isNull(dataV.getV49Max())?0.0:dataV.getV49Max());
influxDBDataV.setV50(Objects.isNull(dataV.getV50Max())?0.0f:dataV.getV50Max()); influxDBDataV.setV50(Objects.isNull(dataV.getV50Max())?0.0:dataV.getV50Max());
} }
else if (valueType.equals("MIN")){ else if (valueType.equals("MIN")){
influxDBDataV.setVNeg(Objects.isNull(dataV.getVNegMin())?0.0f:dataV.getVNegMin()); influxDBDataV.setVNeg(Objects.isNull(dataV.getVNegMin())?0.0:dataV.getVNegMin());
influxDBDataV.setVPos(Objects.isNull(dataV.getVPosMin())?0.0f:dataV.getVPosMin()); influxDBDataV.setVPos(Objects.isNull(dataV.getVPosMin())?0.0:dataV.getVPosMin());
influxDBDataV.setVThd(Objects.isNull(dataV.getVThdMin())?0.0f:dataV.getVThdMin()); influxDBDataV.setVThd(Objects.isNull(dataV.getVThdMin())?0.0:dataV.getVThdMin());
influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalanceMin())?0.0f:dataV.getVUnbalanceMin()); influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalanceMin())?0.0:dataV.getVUnbalanceMin());
influxDBDataV.setVZero(Objects.isNull(dataV.getVZeroMin())?0.0f:dataV.getVZeroMin()); influxDBDataV.setVZero(Objects.isNull(dataV.getVZeroMin())?0.0:dataV.getVZeroMin());
influxDBDataV.setFreq(Objects.isNull(dataV.getFreqMin())?0.0f:dataV.getFreqMin()); influxDBDataV.setFreq(Objects.isNull(dataV.getFreqMin())?0.0:dataV.getFreqMin());
influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDevMin())?0.0f:dataV.getFreqDevMin()); influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDevMin())?0.0:dataV.getFreqDevMin());
influxDBDataV.setRms(Objects.isNull(dataV.getRmsMin())?0.0f:dataV.getRmsMin()); influxDBDataV.setRms(Objects.isNull(dataV.getRmsMin())?0.0:dataV.getRmsMin());
influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDevMin())?0.0f:dataV.getVlDevMin()); influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDevMin())?0.0:dataV.getVlDevMin());
influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDevMin())?0.0f:dataV.getVuDevMin()); influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDevMin())?0.0:dataV.getVuDevMin());
influxDBDataV.setV1(Objects.isNull(dataV.getV1Min())?0.0f:dataV.getV1Min()); influxDBDataV.setV1(Objects.isNull(dataV.getV1Min())?0.0:dataV.getV1Min());
influxDBDataV.setV2(Objects.isNull(dataV.getV2Min())?0.0f:dataV.getV2Min()); influxDBDataV.setV2(Objects.isNull(dataV.getV2Min())?0.0:dataV.getV2Min());
influxDBDataV.setV3(Objects.isNull(dataV.getV3Min())?0.0f:dataV.getV3Min()); influxDBDataV.setV3(Objects.isNull(dataV.getV3Min())?0.0:dataV.getV3Min());
influxDBDataV.setV4(Objects.isNull(dataV.getV4Min())?0.0f:dataV.getV4Min()); influxDBDataV.setV4(Objects.isNull(dataV.getV4Min())?0.0:dataV.getV4Min());
influxDBDataV.setV5(Objects.isNull(dataV.getV5Min())?0.0f:dataV.getV5Min()); influxDBDataV.setV5(Objects.isNull(dataV.getV5Min())?0.0:dataV.getV5Min());
influxDBDataV.setV6(Objects.isNull(dataV.getV6Min())?0.0f:dataV.getV6Min()); influxDBDataV.setV6(Objects.isNull(dataV.getV6Min())?0.0:dataV.getV6Min());
influxDBDataV.setV7(Objects.isNull(dataV.getV7Min())?0.0f:dataV.getV7Min()); influxDBDataV.setV7(Objects.isNull(dataV.getV7Min())?0.0:dataV.getV7Min());
influxDBDataV.setV8(Objects.isNull(dataV.getV8Min())?0.0f:dataV.getV8Min()); influxDBDataV.setV8(Objects.isNull(dataV.getV8Min())?0.0:dataV.getV8Min());
influxDBDataV.setV9(Objects.isNull(dataV.getV9Min())?0.0f:dataV.getV9Min()); influxDBDataV.setV9(Objects.isNull(dataV.getV9Min())?0.0:dataV.getV9Min());
influxDBDataV.setV10(Objects.isNull(dataV.getV10Min())?0.0f:dataV.getV10Min()); influxDBDataV.setV10(Objects.isNull(dataV.getV10Min())?0.0:dataV.getV10Min());
influxDBDataV.setV11(Objects.isNull(dataV.getV11Min())?0.0f:dataV.getV11Min()); influxDBDataV.setV11(Objects.isNull(dataV.getV11Min())?0.0:dataV.getV11Min());
influxDBDataV.setV12(Objects.isNull(dataV.getV12Min())?0.0f:dataV.getV12Min()); influxDBDataV.setV12(Objects.isNull(dataV.getV12Min())?0.0:dataV.getV12Min());
influxDBDataV.setV13(Objects.isNull(dataV.getV13Min())?0.0f:dataV.getV13Min()); influxDBDataV.setV13(Objects.isNull(dataV.getV13Min())?0.0:dataV.getV13Min());
influxDBDataV.setV14(Objects.isNull(dataV.getV14Min())?0.0f:dataV.getV14Min()); influxDBDataV.setV14(Objects.isNull(dataV.getV14Min())?0.0:dataV.getV14Min());
influxDBDataV.setV15(Objects.isNull(dataV.getV15Min())?0.0f:dataV.getV15Min()); influxDBDataV.setV15(Objects.isNull(dataV.getV15Min())?0.0:dataV.getV15Min());
influxDBDataV.setV16(Objects.isNull(dataV.getV16Min())?0.0f:dataV.getV16Min()); influxDBDataV.setV16(Objects.isNull(dataV.getV16Min())?0.0:dataV.getV16Min());
influxDBDataV.setV17(Objects.isNull(dataV.getV17Min())?0.0f:dataV.getV17Min()); influxDBDataV.setV17(Objects.isNull(dataV.getV17Min())?0.0:dataV.getV17Min());
influxDBDataV.setV18(Objects.isNull(dataV.getV18Min())?0.0f:dataV.getV18Min()); influxDBDataV.setV18(Objects.isNull(dataV.getV18Min())?0.0:dataV.getV18Min());
influxDBDataV.setV19(Objects.isNull(dataV.getV19Min())?0.0f:dataV.getV19Min()); influxDBDataV.setV19(Objects.isNull(dataV.getV19Min())?0.0:dataV.getV19Min());
influxDBDataV.setV20(Objects.isNull(dataV.getV20Min())?0.0f:dataV.getV20Min()); influxDBDataV.setV20(Objects.isNull(dataV.getV20Min())?0.0:dataV.getV20Min());
influxDBDataV.setV21(Objects.isNull(dataV.getV21Min())?0.0f:dataV.getV21Min()); influxDBDataV.setV21(Objects.isNull(dataV.getV21Min())?0.0:dataV.getV21Min());
influxDBDataV.setV22(Objects.isNull(dataV.getV22Min())?0.0f:dataV.getV22Min()); influxDBDataV.setV22(Objects.isNull(dataV.getV22Min())?0.0:dataV.getV22Min());
influxDBDataV.setV23(Objects.isNull(dataV.getV23Min())?0.0f:dataV.getV23Min()); influxDBDataV.setV23(Objects.isNull(dataV.getV23Min())?0.0:dataV.getV23Min());
influxDBDataV.setV24(Objects.isNull(dataV.getV24Min())?0.0f:dataV.getV24Min()); influxDBDataV.setV24(Objects.isNull(dataV.getV24Min())?0.0:dataV.getV24Min());
influxDBDataV.setV25(Objects.isNull(dataV.getV25Min())?0.0f:dataV.getV25Min()); influxDBDataV.setV25(Objects.isNull(dataV.getV25Min())?0.0:dataV.getV25Min());
influxDBDataV.setV26(Objects.isNull(dataV.getV26Min())?0.0f:dataV.getV26Min()); influxDBDataV.setV26(Objects.isNull(dataV.getV26Min())?0.0:dataV.getV26Min());
influxDBDataV.setV27(Objects.isNull(dataV.getV27Min())?0.0f:dataV.getV27Min()); influxDBDataV.setV27(Objects.isNull(dataV.getV27Min())?0.0:dataV.getV27Min());
influxDBDataV.setV28(Objects.isNull(dataV.getV28Min())?0.0f:dataV.getV28Min()); influxDBDataV.setV28(Objects.isNull(dataV.getV28Min())?0.0:dataV.getV28Min());
influxDBDataV.setV29(Objects.isNull(dataV.getV29Min())?0.0f:dataV.getV29Min()); influxDBDataV.setV29(Objects.isNull(dataV.getV29Min())?0.0:dataV.getV29Min());
influxDBDataV.setV30(Objects.isNull(dataV.getV30Min())?0.0f:dataV.getV30Min()); influxDBDataV.setV30(Objects.isNull(dataV.getV30Min())?0.0:dataV.getV30Min());
influxDBDataV.setV31(Objects.isNull(dataV.getV31Min())?0.0f:dataV.getV31Min()); influxDBDataV.setV31(Objects.isNull(dataV.getV31Min())?0.0:dataV.getV31Min());
influxDBDataV.setV32(Objects.isNull(dataV.getV32Min())?0.0f:dataV.getV32Min()); influxDBDataV.setV32(Objects.isNull(dataV.getV32Min())?0.0:dataV.getV32Min());
influxDBDataV.setV33(Objects.isNull(dataV.getV33Min())?0.0f:dataV.getV33Min()); influxDBDataV.setV33(Objects.isNull(dataV.getV33Min())?0.0:dataV.getV33Min());
influxDBDataV.setV34(Objects.isNull(dataV.getV34Min())?0.0f:dataV.getV34Min()); influxDBDataV.setV34(Objects.isNull(dataV.getV34Min())?0.0:dataV.getV34Min());
influxDBDataV.setV35(Objects.isNull(dataV.getV35Min())?0.0f:dataV.getV35Min()); influxDBDataV.setV35(Objects.isNull(dataV.getV35Min())?0.0:dataV.getV35Min());
influxDBDataV.setV36(Objects.isNull(dataV.getV36Min())?0.0f:dataV.getV36Min()); influxDBDataV.setV36(Objects.isNull(dataV.getV36Min())?0.0:dataV.getV36Min());
influxDBDataV.setV37(Objects.isNull(dataV.getV37Min())?0.0f:dataV.getV37Min()); influxDBDataV.setV37(Objects.isNull(dataV.getV37Min())?0.0:dataV.getV37Min());
influxDBDataV.setV38(Objects.isNull(dataV.getV38Min())?0.0f:dataV.getV38Min()); influxDBDataV.setV38(Objects.isNull(dataV.getV38Min())?0.0:dataV.getV38Min());
influxDBDataV.setV39(Objects.isNull(dataV.getV39Min())?0.0f:dataV.getV39Min()); influxDBDataV.setV39(Objects.isNull(dataV.getV39Min())?0.0:dataV.getV39Min());
influxDBDataV.setV40(Objects.isNull(dataV.getV40Min())?0.0f:dataV.getV40Min()); influxDBDataV.setV40(Objects.isNull(dataV.getV40Min())?0.0:dataV.getV40Min());
influxDBDataV.setV41(Objects.isNull(dataV.getV41Min())?0.0f:dataV.getV41Min()); influxDBDataV.setV41(Objects.isNull(dataV.getV41Min())?0.0:dataV.getV41Min());
influxDBDataV.setV42(Objects.isNull(dataV.getV42Min())?0.0f:dataV.getV42Min()); influxDBDataV.setV42(Objects.isNull(dataV.getV42Min())?0.0:dataV.getV42Min());
influxDBDataV.setV43(Objects.isNull(dataV.getV43Min())?0.0f:dataV.getV43Min()); influxDBDataV.setV43(Objects.isNull(dataV.getV43Min())?0.0:dataV.getV43Min());
influxDBDataV.setV44(Objects.isNull(dataV.getV44Min())?0.0f:dataV.getV44Min()); influxDBDataV.setV44(Objects.isNull(dataV.getV44Min())?0.0:dataV.getV44Min());
influxDBDataV.setV45(Objects.isNull(dataV.getV45Min())?0.0f:dataV.getV45Min()); influxDBDataV.setV45(Objects.isNull(dataV.getV45Min())?0.0:dataV.getV45Min());
influxDBDataV.setV46(Objects.isNull(dataV.getV46Min())?0.0f:dataV.getV46Min()); influxDBDataV.setV46(Objects.isNull(dataV.getV46Min())?0.0:dataV.getV46Min());
influxDBDataV.setV47(Objects.isNull(dataV.getV47Min())?0.0f:dataV.getV47Min()); influxDBDataV.setV47(Objects.isNull(dataV.getV47Min())?0.0:dataV.getV47Min());
influxDBDataV.setV48(Objects.isNull(dataV.getV48Min())?0.0f:dataV.getV48Min()); influxDBDataV.setV48(Objects.isNull(dataV.getV48Min())?0.0:dataV.getV48Min());
influxDBDataV.setV49(Objects.isNull(dataV.getV49Min())?0.0f:dataV.getV49Min()); influxDBDataV.setV49(Objects.isNull(dataV.getV49Min())?0.0:dataV.getV49Min());
influxDBDataV.setV50(Objects.isNull(dataV.getV50Min())?0.0f:dataV.getV50Min()); influxDBDataV.setV50(Objects.isNull(dataV.getV50Min())?0.0:dataV.getV50Min());
} }
else if (valueType.equals("CP95")){ else if (valueType.equals("CP95")){
influxDBDataV.setVNeg(Objects.isNull(dataV.getVNegCp95())?0.0f:dataV.getVNegCp95()); influxDBDataV.setVNeg(Objects.isNull(dataV.getVNegCp95())?0.0:dataV.getVNegCp95());
influxDBDataV.setVPos(Objects.isNull(dataV.getVPosCp95())?0.0f:dataV.getVPosCp95()); influxDBDataV.setVPos(Objects.isNull(dataV.getVPosCp95())?0.0:dataV.getVPosCp95());
influxDBDataV.setVThd(Objects.isNull(dataV.getVThdCp95())?0.0f:dataV.getVThdCp95()); influxDBDataV.setVThd(Objects.isNull(dataV.getVThdCp95())?0.0:dataV.getVThdCp95());
influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalanceCp95())?0.0f:dataV.getVUnbalanceCp95()); influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalanceCp95())?0.0:dataV.getVUnbalanceCp95());
influxDBDataV.setVZero(Objects.isNull(dataV.getVZeroCp95())?0.0f:dataV.getVZeroCp95()); influxDBDataV.setVZero(Objects.isNull(dataV.getVZeroCp95())?0.0:dataV.getVZeroCp95());
influxDBDataV.setFreq(Objects.isNull(dataV.getFreqCp95())?0.0f:dataV.getFreqCp95()); influxDBDataV.setFreq(Objects.isNull(dataV.getFreqCp95())?0.0:dataV.getFreqCp95());
influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDevCp95())?0.0f:dataV.getFreqDevCp95()); influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDevCp95())?0.0:dataV.getFreqDevCp95());
influxDBDataV.setRms(Objects.isNull(dataV.getRmsCp95())?0.0f:dataV.getRmsCp95()); influxDBDataV.setRms(Objects.isNull(dataV.getRmsCp95())?0.0:dataV.getRmsCp95());
influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDevCp95())?0.0f:dataV.getVlDevCp95()); influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDevCp95())?0.0:dataV.getVlDevCp95());
influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDevCp95())?0.0f:dataV.getVuDevCp95()); influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDevCp95())?0.0:dataV.getVuDevCp95());
influxDBDataV.setV1(Objects.isNull(dataV.getV1Cp95())?0.0f:dataV.getV1Cp95()); influxDBDataV.setV1(Objects.isNull(dataV.getV1Cp95())?0.0:dataV.getV1Cp95());
influxDBDataV.setV2(Objects.isNull(dataV.getV2Cp95())?0.0f:dataV.getV2Cp95()); influxDBDataV.setV2(Objects.isNull(dataV.getV2Cp95())?0.0:dataV.getV2Cp95());
influxDBDataV.setV3(Objects.isNull(dataV.getV3Cp95())?0.0f:dataV.getV3Cp95()); influxDBDataV.setV3(Objects.isNull(dataV.getV3Cp95())?0.0:dataV.getV3Cp95());
influxDBDataV.setV4(Objects.isNull(dataV.getV4Cp95())?0.0f:dataV.getV4Cp95()); influxDBDataV.setV4(Objects.isNull(dataV.getV4Cp95())?0.0:dataV.getV4Cp95());
influxDBDataV.setV5(Objects.isNull(dataV.getV5Cp95())?0.0f:dataV.getV5Cp95()); influxDBDataV.setV5(Objects.isNull(dataV.getV5Cp95())?0.0:dataV.getV5Cp95());
influxDBDataV.setV6(Objects.isNull(dataV.getV6Cp95())?0.0f:dataV.getV6Cp95()); influxDBDataV.setV6(Objects.isNull(dataV.getV6Cp95())?0.0:dataV.getV6Cp95());
influxDBDataV.setV7(Objects.isNull(dataV.getV7Cp95())?0.0f:dataV.getV7Cp95()); influxDBDataV.setV7(Objects.isNull(dataV.getV7Cp95())?0.0:dataV.getV7Cp95());
influxDBDataV.setV8(Objects.isNull(dataV.getV8Cp95())?0.0f:dataV.getV8Cp95()); influxDBDataV.setV8(Objects.isNull(dataV.getV8Cp95())?0.0:dataV.getV8Cp95());
influxDBDataV.setV9(Objects.isNull(dataV.getV9Cp95())?0.0f:dataV.getV9Cp95()); influxDBDataV.setV9(Objects.isNull(dataV.getV9Cp95())?0.0:dataV.getV9Cp95());
influxDBDataV.setV10(Objects.isNull(dataV.getV10Cp95())?0.0f:dataV.getV10Cp95()); influxDBDataV.setV10(Objects.isNull(dataV.getV10Cp95())?0.0:dataV.getV10Cp95());
influxDBDataV.setV11(Objects.isNull(dataV.getV11Cp95())?0.0f:dataV.getV11Cp95()); influxDBDataV.setV11(Objects.isNull(dataV.getV11Cp95())?0.0:dataV.getV11Cp95());
influxDBDataV.setV12(Objects.isNull(dataV.getV12Cp95())?0.0f:dataV.getV12Cp95()); influxDBDataV.setV12(Objects.isNull(dataV.getV12Cp95())?0.0:dataV.getV12Cp95());
influxDBDataV.setV13(Objects.isNull(dataV.getV13Cp95())?0.0f:dataV.getV13Cp95()); influxDBDataV.setV13(Objects.isNull(dataV.getV13Cp95())?0.0:dataV.getV13Cp95());
influxDBDataV.setV14(Objects.isNull(dataV.getV14Cp95())?0.0f:dataV.getV14Cp95()); influxDBDataV.setV14(Objects.isNull(dataV.getV14Cp95())?0.0:dataV.getV14Cp95());
influxDBDataV.setV15(Objects.isNull(dataV.getV15Cp95())?0.0f:dataV.getV15Cp95()); influxDBDataV.setV15(Objects.isNull(dataV.getV15Cp95())?0.0:dataV.getV15Cp95());
influxDBDataV.setV16(Objects.isNull(dataV.getV16Cp95())?0.0f:dataV.getV16Cp95()); influxDBDataV.setV16(Objects.isNull(dataV.getV16Cp95())?0.0:dataV.getV16Cp95());
influxDBDataV.setV17(Objects.isNull(dataV.getV17Cp95())?0.0f:dataV.getV17Cp95()); influxDBDataV.setV17(Objects.isNull(dataV.getV17Cp95())?0.0:dataV.getV17Cp95());
influxDBDataV.setV18(Objects.isNull(dataV.getV18Cp95())?0.0f:dataV.getV18Cp95()); influxDBDataV.setV18(Objects.isNull(dataV.getV18Cp95())?0.0:dataV.getV18Cp95());
influxDBDataV.setV19(Objects.isNull(dataV.getV19Cp95())?0.0f:dataV.getV19Cp95()); influxDBDataV.setV19(Objects.isNull(dataV.getV19Cp95())?0.0:dataV.getV19Cp95());
influxDBDataV.setV20(Objects.isNull(dataV.getV20Cp95())?0.0f:dataV.getV20Cp95()); influxDBDataV.setV20(Objects.isNull(dataV.getV20Cp95())?0.0:dataV.getV20Cp95());
influxDBDataV.setV21(Objects.isNull(dataV.getV21Cp95())?0.0f:dataV.getV21Cp95()); influxDBDataV.setV21(Objects.isNull(dataV.getV21Cp95())?0.0:dataV.getV21Cp95());
influxDBDataV.setV22(Objects.isNull(dataV.getV22Cp95())?0.0f:dataV.getV22Cp95()); influxDBDataV.setV22(Objects.isNull(dataV.getV22Cp95())?0.0:dataV.getV22Cp95());
influxDBDataV.setV23(Objects.isNull(dataV.getV23Cp95())?0.0f:dataV.getV23Cp95()); influxDBDataV.setV23(Objects.isNull(dataV.getV23Cp95())?0.0:dataV.getV23Cp95());
influxDBDataV.setV24(Objects.isNull(dataV.getV24Cp95())?0.0f:dataV.getV24Cp95()); influxDBDataV.setV24(Objects.isNull(dataV.getV24Cp95())?0.0:dataV.getV24Cp95());
influxDBDataV.setV25(Objects.isNull(dataV.getV25Cp95())?0.0f:dataV.getV25Cp95()); influxDBDataV.setV25(Objects.isNull(dataV.getV25Cp95())?0.0:dataV.getV25Cp95());
influxDBDataV.setV26(Objects.isNull(dataV.getV26Cp95())?0.0f:dataV.getV26Cp95()); influxDBDataV.setV26(Objects.isNull(dataV.getV26Cp95())?0.0:dataV.getV26Cp95());
influxDBDataV.setV27(Objects.isNull(dataV.getV27Cp95())?0.0f:dataV.getV27Cp95()); influxDBDataV.setV27(Objects.isNull(dataV.getV27Cp95())?0.0:dataV.getV27Cp95());
influxDBDataV.setV28(Objects.isNull(dataV.getV28Cp95())?0.0f:dataV.getV28Cp95()); influxDBDataV.setV28(Objects.isNull(dataV.getV28Cp95())?0.0:dataV.getV28Cp95());
influxDBDataV.setV29(Objects.isNull(dataV.getV29Cp95())?0.0f:dataV.getV29Cp95()); influxDBDataV.setV29(Objects.isNull(dataV.getV29Cp95())?0.0:dataV.getV29Cp95());
influxDBDataV.setV30(Objects.isNull(dataV.getV30Cp95())?0.0f:dataV.getV30Cp95()); influxDBDataV.setV30(Objects.isNull(dataV.getV30Cp95())?0.0:dataV.getV30Cp95());
influxDBDataV.setV31(Objects.isNull(dataV.getV31Cp95())?0.0f:dataV.getV31Cp95()); influxDBDataV.setV31(Objects.isNull(dataV.getV31Cp95())?0.0:dataV.getV31Cp95());
influxDBDataV.setV32(Objects.isNull(dataV.getV32Cp95())?0.0f:dataV.getV32Cp95()); influxDBDataV.setV32(Objects.isNull(dataV.getV32Cp95())?0.0:dataV.getV32Cp95());
influxDBDataV.setV33(Objects.isNull(dataV.getV33Cp95())?0.0f:dataV.getV33Cp95()); influxDBDataV.setV33(Objects.isNull(dataV.getV33Cp95())?0.0:dataV.getV33Cp95());
influxDBDataV.setV34(Objects.isNull(dataV.getV34Cp95())?0.0f:dataV.getV34Cp95()); influxDBDataV.setV34(Objects.isNull(dataV.getV34Cp95())?0.0:dataV.getV34Cp95());
influxDBDataV.setV35(Objects.isNull(dataV.getV35Cp95())?0.0f:dataV.getV35Cp95()); influxDBDataV.setV35(Objects.isNull(dataV.getV35Cp95())?0.0:dataV.getV35Cp95());
influxDBDataV.setV36(Objects.isNull(dataV.getV36Cp95())?0.0f:dataV.getV36Cp95()); influxDBDataV.setV36(Objects.isNull(dataV.getV36Cp95())?0.0:dataV.getV36Cp95());
influxDBDataV.setV37(Objects.isNull(dataV.getV37Cp95())?0.0f:dataV.getV37Cp95()); influxDBDataV.setV37(Objects.isNull(dataV.getV37Cp95())?0.0:dataV.getV37Cp95());
influxDBDataV.setV38(Objects.isNull(dataV.getV38Cp95())?0.0f:dataV.getV38Cp95()); influxDBDataV.setV38(Objects.isNull(dataV.getV38Cp95())?0.0:dataV.getV38Cp95());
influxDBDataV.setV39(Objects.isNull(dataV.getV39Cp95())?0.0f:dataV.getV39Cp95()); influxDBDataV.setV39(Objects.isNull(dataV.getV39Cp95())?0.0:dataV.getV39Cp95());
influxDBDataV.setV40(Objects.isNull(dataV.getV40Cp95())?0.0f:dataV.getV40Cp95()); influxDBDataV.setV40(Objects.isNull(dataV.getV40Cp95())?0.0:dataV.getV40Cp95());
influxDBDataV.setV41(Objects.isNull(dataV.getV41Cp95())?0.0f:dataV.getV41Cp95()); influxDBDataV.setV41(Objects.isNull(dataV.getV41Cp95())?0.0:dataV.getV41Cp95());
influxDBDataV.setV42(Objects.isNull(dataV.getV42Cp95())?0.0f:dataV.getV42Cp95()); influxDBDataV.setV42(Objects.isNull(dataV.getV42Cp95())?0.0:dataV.getV42Cp95());
influxDBDataV.setV43(Objects.isNull(dataV.getV43Cp95())?0.0f:dataV.getV43Cp95()); influxDBDataV.setV43(Objects.isNull(dataV.getV43Cp95())?0.0:dataV.getV43Cp95());
influxDBDataV.setV44(Objects.isNull(dataV.getV44Cp95())?0.0f:dataV.getV44Cp95()); influxDBDataV.setV44(Objects.isNull(dataV.getV44Cp95())?0.0:dataV.getV44Cp95());
influxDBDataV.setV45(Objects.isNull(dataV.getV45Cp95())?0.0f:dataV.getV45Cp95()); influxDBDataV.setV45(Objects.isNull(dataV.getV45Cp95())?0.0:dataV.getV45Cp95());
influxDBDataV.setV46(Objects.isNull(dataV.getV46Cp95())?0.0f:dataV.getV46Cp95()); influxDBDataV.setV46(Objects.isNull(dataV.getV46Cp95())?0.0:dataV.getV46Cp95());
influxDBDataV.setV47(Objects.isNull(dataV.getV47Cp95())?0.0f:dataV.getV47Cp95()); influxDBDataV.setV47(Objects.isNull(dataV.getV47Cp95())?0.0:dataV.getV47Cp95());
influxDBDataV.setV48(Objects.isNull(dataV.getV48Cp95())?0.0f:dataV.getV48Cp95()); influxDBDataV.setV48(Objects.isNull(dataV.getV48Cp95())?0.0:dataV.getV48Cp95());
influxDBDataV.setV49(Objects.isNull(dataV.getV49Cp95())?0.0f:dataV.getV49Cp95()); influxDBDataV.setV49(Objects.isNull(dataV.getV49Cp95())?0.0:dataV.getV49Cp95());
influxDBDataV.setV50(Objects.isNull(dataV.getV50Cp95())?0.0f:dataV.getV50Cp95()); influxDBDataV.setV50(Objects.isNull(dataV.getV50Cp95())?0.0:dataV.getV50Cp95());
} }

View File

@@ -0,0 +1,44 @@
package com.njcn.dataProcess.pojo.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author xy
* 分钟数据入参实体
*/
@Data
public class CommonMinuteDto implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd")
private String time;
@ApiModelProperty("监测点Id")
private String lineId;
private List<PhasicType> phasicTypeList;
@Data
public static class PhasicType {
@ApiModelProperty("相别,'A'表示A相'B'表示B相,'C'表示C相,'T'表示总, 'M'表示无相别")
private String phasicType;
private List<ValueType> valueTypeList;
}
@Data
public static class ValueType {
@ApiModelProperty("数据类型 最大值max、最小值min、平均值avg、95值cp95")
private String valueType;
@ApiModelProperty("数据集合")
private List<List<Double>> valueList;
}
}

View File

@@ -0,0 +1,172 @@
package com.njcn.dataProcess.pojo.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @author xy
*/
@Data
public class DataVDto implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd")
private String time;
@ApiModelProperty("监测点Id")
private String lineId;
@ApiModelProperty("相别,'A'表示A相'B'表示B相,'C'表示C相,'T'表示总, 'M'表示无相别")
private String phasicType;
@ApiModelProperty("数据类型 最大值max、最小值min、平均值avg、95值cp95")
private String valueType;
@ApiModelProperty("数据质量标志0-表示是正常数据、1-表示是错误数据、2-表示是有事件的数据数据库默认是0污染数据不参与报表统计")
private Integer qualityFlag;
@ApiModelProperty("频率")
private Double freq;
@ApiModelProperty("频率偏差")
private Double freqDev;
@ApiModelProperty("相电压有效值")
private Double rms;
@ApiModelProperty("线电压有效值")
private Double rmsLvr;
@ApiModelProperty("电压上偏差")
private Double vuDev;
@ApiModelProperty("电压下偏差")
private Double vlDev;
@ApiModelProperty("负序电压")
private Double vNeg;
@ApiModelProperty("正序电压")
private Double vPos;
@ApiModelProperty("零序电压")
private Double vZero;
@ApiModelProperty("电压总谐波畸变率")
private Double vThd;
@ApiModelProperty("三相电压不平衡度")
private Double vUnbalance;
@ApiModelProperty("基波电压幅值")
private Double v1;
@ApiModelProperty("2次谐波电压幅值")
private Double v2;
@ApiModelProperty("3次谐波电压幅值")
private Double v3;
@ApiModelProperty("4次谐波电压幅值")
private Double v4;
@ApiModelProperty("5次谐波电压幅值")
private Double v5;
@ApiModelProperty("6次谐波电压幅值")
private Double v6;
@ApiModelProperty("7次谐波电压幅值")
private Double v7;
@ApiModelProperty("8次谐波电压幅值")
private Double v8;
private Double v9;
private Double v10;
private Double v11;
private Double v12;
private Double v13;
private Double v14;
private Double v15;
private Double v16;
private Double v17;
private Double v18;
private Double v19;
private Double v20;
private Double v21;
private Double v22;
private Double v23;
private Double v24;
private Double v25;
private Double v26;
private Double v27;
private Double v28;
private Double v29;
private Double v30;
private Double v31;
private Double v32;
private Double v33;
private Double v34;
private Double v35;
private Double v36;
private Double v37;
private Double v38;
private Double v39;
private Double v40;
private Double v41;
private Double v42;
private Double v43;
private Double v44;
private Double v45;
private Double v46;
private Double v47;
private Double v48;
private Double v49;
@ApiModelProperty("50次谐波电压幅值")
private Double v50;
}

View File

@@ -0,0 +1,223 @@
package com.njcn.dataProcess.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* 类的介绍:
*
* @author xy
* @version 1.0.0
*/
@Data
@TableName(value = "r_stat_data_v_d")
public class RStatDataVD implements Serializable {
@MppMultiId
@TableField(value = "time")
private LocalDate time;
@MppMultiId
@TableField(value = "line_id")
private String lineId;
@MppMultiId
@TableField(value = "phasic_type")
private String phasicType;
@MppMultiId
@TableField(value = "value_type")
private String valueType;
@TableField(value = "quality_flag")
private Integer qualityFlag;
@TableField(value = "freq")
private Double freq;
@TableField(value = "freq_dev")
private Double freqDev;
@TableField(value = "rms")
private Double rms;
@TableField(value = "rms_lvr")
private Double rmsLvr;
@TableField(value = "v_neg")
private Double vNeg;
@TableField(value = "v_pos")
private Double vPos;
@TableField(value = "v_thd")
private Double vThd;
@TableField(value = "v_unbalance")
private Double vUnbalance;
@TableField(value = "v_zero")
private Double vZero;
@TableField(value = "vl_dev")
private Double vlDev;
@TableField(value = "vu_dev")
private Double vuDev;
@TableField(value = "v_1")
private Double v1;
@TableField(value = "v_2")
private Double v2;
@TableField(value = "v_3")
private Double v3;
@TableField(value = "v_4")
private Double v4;
@TableField(value = "v_5")
private Double v5;
@TableField(value = "v_6")
private Double v6;
@TableField(value = "v_7")
private Double v7;
@TableField(value = "v_8")
private Double v8;
@TableField(value = "v_9")
private Double v9;
@TableField(value = "v_10")
private Double v10;
@TableField(value = "v_11")
private Double v11;
@TableField(value = "v_12")
private Double v12;
@TableField(value = "v_13")
private Double v13;
@TableField(value = "v_14")
private Double v14;
@TableField(value = "v_15")
private Double v15;
@TableField(value = "v_16")
private Double v16;
@TableField(value = "v_17")
private Double v17;
@TableField(value = "v_18")
private Double v18;
@TableField(value = "v_19")
private Double v19;
@TableField(value = "v_20")
private Double v20;
@TableField(value = "v_21")
private Double v21;
@TableField(value = "v_22")
private Double v22;
@TableField(value = "v_23")
private Double v23;
@TableField(value = "v_24")
private Double v24;
@TableField(value = "v_25")
private Double v25;
@TableField(value = "v_26")
private Double v26;
@TableField(value = "v_27")
private Double v27;
@TableField(value = "v_28")
private Double v28;
@TableField(value = "v_29")
private Double v29;
@TableField(value = "v_30")
private Double v30;
@TableField(value = "v_31")
private Double v31;
@TableField(value = "v_32")
private Double v32;
@TableField(value = "v_33")
private Double v33;
@TableField(value = "v_34")
private Double v34;
@TableField(value = "v_35")
private Double v35;
@TableField(value = "v_36")
private Double v36;
@TableField(value = "v_37")
private Double v37;
@TableField(value = "v_38")
private Double v38;
@TableField(value = "v_39")
private Double v39;
@TableField(value = "v_40")
private Double v40;
@TableField(value = "v_41")
private Double v41;
@TableField(value = "v_42")
private Double v42;
@TableField(value = "v_43")
private Double v43;
@TableField(value = "v_44")
private Double v44;
@TableField(value = "v_45")
private Double v45;
@TableField(value = "v_46")
private Double v46;
@TableField(value = "v_47")
private Double v47;
@TableField(value = "v_48")
private Double v48;
@TableField(value = "v_49")
private Double v49;
@TableField(value = "v_50")
private Double v50;
}

View File

@@ -0,0 +1,69 @@
package com.njcn.dataProcess.util;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.LocalDateTimeUtil;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
* @author xy
* @description 时间、日期转换的公共方法
*/
public class TimeUtils {
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
/**
* String类型的yyyy-MM-dd HH:mm:ss转成yyyy-MM-dd
* @param time
* @return LocalDate
*/
public static LocalDate LocalDataTimeToLocalDate1(String time) {
LocalDateTime dateTime = LocalDateTime.parse(time, DATE_TIME_FORMATTER);
return dateTime.toLocalDate();
}
/**
* String类型的yyyy-MM-dd转成yyyy-MM-dd
* @param time
* @return LocalDate
*/
public static LocalDate LocalDataTimeToLocalDate2(String time) {
return LocalDate.parse(time, DATE_FORMATTER);
}
/**
* String类型的yyyy-MM-dd HH:mm:ss转成yyyy-MM-dd
* @param time
* @return String
*/
public static String StringTimeToString(String time) {
LocalDateTime dateTime = LocalDateTime.parse(time, DATE_TIME_FORMATTER);
return dateTime.format(DATE_FORMATTER);
}
/**
* 根据日期获取当天零点时间
* String类型的yyyy-MM-dd转成yyyy-MM-dd HH:mm:ss
*/
public static String getBeginOfDay(String time) {
return LocalDateTimeUtil.format(
LocalDateTimeUtil.beginOfDay(
LocalDateTimeUtil.parse(time, DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN);
}
/**
* 根据日期获取当天结束时间
* String类型的yyyy-MM-dd转成yyyy-MM-dd HH:mm:ss
*/
public static String getEndOfDay(String time) {
return LocalDateTimeUtil.format(
LocalDateTimeUtil.endOfDay(
LocalDateTimeUtil.parse(time, DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN);
}
}

View File

@@ -11,6 +11,8 @@ import com.njcn.dataProcess.dto.DataVFiveItemDTO;
import com.njcn.dataProcess.annotation.InsertBean; import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean; import com.njcn.dataProcess.annotation.QueryBean;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataVDto;
import com.njcn.dataProcess.service.IDataV; import com.njcn.dataProcess.service.IDataV;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@@ -73,9 +75,23 @@ public class DataVController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, localDateTimeList, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, localDateTimeList, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
@PostMapping("/getBaseData")
@ApiOperation("获取算法基础数据")
public HttpResult<List<CommonMinuteDto>> getBaseData(@RequestBody LineCountEvaluateParam lineParam) {
String methodDescribe = getMethodDescribe("getBaseData");
List<CommonMinuteDto> data = dataVQuery.getBaseData(lineParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/addList")
@ApiOperation("批量插入数据")
public HttpResult<String> addList(@RequestBody List<DataVDto> dataVDtoList) {
String methodDescribe = getMethodDescribe("addList");
dataVInsert.addList(dataVDtoList);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "", methodDescribe);
}
} }

View File

@@ -0,0 +1,16 @@
package com.njcn.dataProcess.dao.relation.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.dataProcess.pojo.po.RStatDataVD;
/**
* <p>
* Mapper 接口
* </p>
*/
public interface RStatDataVRelationMapper extends MppBaseMapper<RStatDataVD> {
}

View File

@@ -1,8 +1,12 @@
package com.njcn.dataProcess.service; package com.njcn.dataProcess.service;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.dto.DataVDTO; import com.njcn.dataProcess.dto.DataVDTO;
import com.njcn.dataProcess.dto.DataVFiveItemDTO; import com.njcn.dataProcess.dto.DataVFiveItemDTO;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataVDto;
import com.njcn.dataProcess.pojo.po.RStatDataVD;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@@ -13,7 +17,7 @@ import java.util.Map;
* @version 1.0 * @version 1.0
* @data 2024/11/7 10:54 * @data 2024/11/7 10:54
*/ */
public interface IDataV { public interface IDataV extends IMppService<RStatDataVD> {
/** /**
* 根据监测点时间范围获取监测点统计数据 * 根据监测点时间范围获取监测点统计数据
@@ -25,4 +29,15 @@ public interface IDataV {
void batchInsertion(List<DataVDTO> dataVDTOList ); void batchInsertion(List<DataVDTO> dataVDTOList );
List<LocalDateTime> monitoringTime(String lineId, String localData); List<LocalDateTime> monitoringTime(String lineId, String localData);
/**
* 获取监测点原始数据
* @param lineParam 监测点参数
*/
List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam);
/**
* 批量插入数据
*/
void addList(List<DataVDto> dataVDtoList);
} }

View File

@@ -3,8 +3,11 @@ package com.njcn.dataProcess.service.impl.influxdb;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.ListUtil; import cn.hutool.core.collection.ListUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.utils.HarmonicTimesUtil;
import com.njcn.dataProcess.constant.InfluxDBTableConstant; import com.njcn.dataProcess.constant.InfluxDBTableConstant;
import com.njcn.dataProcess.constant.PhaseType; import com.njcn.dataProcess.constant.PhaseType;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataVRelationMapper;
import com.njcn.dataProcess.dto.DataVDTO; import com.njcn.dataProcess.dto.DataVDTO;
import com.njcn.dataProcess.dto.DataVFiveItemDTO; import com.njcn.dataProcess.dto.DataVFiveItemDTO;
import com.njcn.dataProcess.dto.LineDataVFiveItemDTO; import com.njcn.dataProcess.dto.LineDataVFiveItemDTO;
@@ -12,17 +15,19 @@ import com.njcn.dataProcess.dto.LineDataVFiveItemDTO;
import com.njcn.dataProcess.dao.imapper.DataVMapper; import com.njcn.dataProcess.dao.imapper.DataVMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.influx.DataV; import com.njcn.dataProcess.po.influx.DataV;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataVDto;
import com.njcn.dataProcess.pojo.po.RStatDataVD;
import com.njcn.dataProcess.service.IDataV; import com.njcn.dataProcess.service.IDataV;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.query.InfluxQueryWrapper; import com.njcn.influx.query.InfluxQueryWrapper;
import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -31,7 +36,7 @@ import java.util.stream.Collectors;
* @data 2024/11/7 11:02 * @data 2024/11/7 11:02
*/ */
@Service("InfluxdbDataVImpl") @Service("InfluxdbDataVImpl")
public class InfluxdbDataVImpl implements IDataV { public class InfluxdbDataVImpl extends MppServiceImpl<RStatDataVRelationMapper, RStatDataVD> implements IDataV {
@Resource @Resource
private DataVMapper dataVMapper; private DataVMapper dataVMapper;
@@ -108,4 +113,143 @@ public class InfluxdbDataVImpl implements IDataV {
return null; return null;
} }
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
List<CommonMinuteDto> result = new ArrayList<>();
List<DataV> dataVList = getMinuteDataV(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime());
if (CollectionUtil.isNotEmpty(dataVList)) {
String time = TimeUtils.StringTimeToString(lineParam.getStartTime());
//以监测点分组
Map<String,List<DataV>> lineMap = dataVList.stream().collect(Collectors.groupingBy(DataV::getLineId));
lineMap.forEach((line,lineList)->{
CommonMinuteDto dto = new CommonMinuteDto();
dto.setLineId(line);
dto.setTime(time);
//以相别分组
Map<String,List<DataV>> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataV::getPhasicType));
List<CommonMinuteDto.PhasicType> phasicTypes = new ArrayList<>();
phasicTypeMap.forEach((phasicType,phasicTypeList)->{
CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType();
type.setPhasicType(phasicType);
//以数据类型分组
Map<String,List<DataV>> valueTypeMap = phasicTypeList.stream().collect(Collectors.groupingBy(DataV::getValueType));
List<CommonMinuteDto.ValueType> valueTypes = new ArrayList<>();
valueTypeMap.forEach((valueType,valueTypeList)->{
CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
value.setValueType(valueType);
//todo 规定好集合指标参数
List<Double> data1 = valueTypeList.stream().map(DataV::getFreq).collect(Collectors.toList());
List<Double> data2 = valueTypeList.stream().map(DataV::getFreqDev).collect(Collectors.toList());
List<Double> data3 = valueTypeList.stream().map(DataV::getRms).collect(Collectors.toList());
List<Double> data4 = valueTypeList.stream().map(DataV::getRmsLvr).collect(Collectors.toList());
List<Double> data5 = valueTypeList.stream().map(DataV::getVNeg).collect(Collectors.toList());
List<Double> data6 = valueTypeList.stream().map(DataV::getVPos).collect(Collectors.toList());
List<Double> data7 = valueTypeList.stream().map(DataV::getVThd).collect(Collectors.toList());
List<Double> data8 = valueTypeList.stream().map(DataV::getVUnbalance).collect(Collectors.toList());
List<Double> data9 = valueTypeList.stream().map(DataV::getVZero).collect(Collectors.toList());
List<Double> data10 = valueTypeList.stream().map(DataV::getVlDev).collect(Collectors.toList());
List<Double> data11 = valueTypeList.stream().map(DataV::getVuDev).collect(Collectors.toList());
List<Double> data12 = valueTypeList.stream().map(DataV::getV1).collect(Collectors.toList());
List<Double> data13 = valueTypeList.stream().map(DataV::getV2).collect(Collectors.toList());
List<Double> data14 = valueTypeList.stream().map(DataV::getV3).collect(Collectors.toList());
List<Double> data15 = valueTypeList.stream().map(DataV::getV4).collect(Collectors.toList());
List<Double> data16 = valueTypeList.stream().map(DataV::getV5).collect(Collectors.toList());
List<Double> data17 = valueTypeList.stream().map(DataV::getV6).collect(Collectors.toList());
List<Double> data18 = valueTypeList.stream().map(DataV::getV7).collect(Collectors.toList());
List<Double> data19 = valueTypeList.stream().map(DataV::getV8).collect(Collectors.toList());
List<Double> data20 = valueTypeList.stream().map(DataV::getV9).collect(Collectors.toList());
List<Double> data21 = valueTypeList.stream().map(DataV::getV10).collect(Collectors.toList());
List<Double> data22 = valueTypeList.stream().map(DataV::getV11).collect(Collectors.toList());
List<Double> data23 = valueTypeList.stream().map(DataV::getV12).collect(Collectors.toList());
List<Double> data24 = valueTypeList.stream().map(DataV::getV13).collect(Collectors.toList());
List<Double> data25 = valueTypeList.stream().map(DataV::getV14).collect(Collectors.toList());
List<Double> data26 = valueTypeList.stream().map(DataV::getV15).collect(Collectors.toList());
List<Double> data27 = valueTypeList.stream().map(DataV::getV16).collect(Collectors.toList());
List<Double> data28 = valueTypeList.stream().map(DataV::getV17).collect(Collectors.toList());
List<Double> data29 = valueTypeList.stream().map(DataV::getV18).collect(Collectors.toList());
List<Double> data30 = valueTypeList.stream().map(DataV::getV19).collect(Collectors.toList());
List<Double> data31 = valueTypeList.stream().map(DataV::getV20).collect(Collectors.toList());
List<Double> data32 = valueTypeList.stream().map(DataV::getV21).collect(Collectors.toList());
List<Double> data33 = valueTypeList.stream().map(DataV::getV22).collect(Collectors.toList());
List<Double> data34 = valueTypeList.stream().map(DataV::getV23).collect(Collectors.toList());
List<Double> data35 = valueTypeList.stream().map(DataV::getV24).collect(Collectors.toList());
List<Double> data36 = valueTypeList.stream().map(DataV::getV25).collect(Collectors.toList());
List<Double> data37 = valueTypeList.stream().map(DataV::getV26).collect(Collectors.toList());
List<Double> data38 = valueTypeList.stream().map(DataV::getV27).collect(Collectors.toList());
List<Double> data39 = valueTypeList.stream().map(DataV::getV28).collect(Collectors.toList());
List<Double> data40 = valueTypeList.stream().map(DataV::getV29).collect(Collectors.toList());
List<Double> data41 = valueTypeList.stream().map(DataV::getV30).collect(Collectors.toList());
List<Double> data42 = valueTypeList.stream().map(DataV::getV31).collect(Collectors.toList());
List<Double> data43 = valueTypeList.stream().map(DataV::getV32).collect(Collectors.toList());
List<Double> data44 = valueTypeList.stream().map(DataV::getV33).collect(Collectors.toList());
List<Double> data45 = valueTypeList.stream().map(DataV::getV34).collect(Collectors.toList());
List<Double> data46 = valueTypeList.stream().map(DataV::getV35).collect(Collectors.toList());
List<Double> data47 = valueTypeList.stream().map(DataV::getV36).collect(Collectors.toList());
List<Double> data48 = valueTypeList.stream().map(DataV::getV37).collect(Collectors.toList());
List<Double> data49 = valueTypeList.stream().map(DataV::getV38).collect(Collectors.toList());
List<Double> data50 = valueTypeList.stream().map(DataV::getV39).collect(Collectors.toList());
List<Double> data51 = valueTypeList.stream().map(DataV::getV40).collect(Collectors.toList());
List<Double> data52 = valueTypeList.stream().map(DataV::getV41).collect(Collectors.toList());
List<Double> data53 = valueTypeList.stream().map(DataV::getV42).collect(Collectors.toList());
List<Double> data54 = valueTypeList.stream().map(DataV::getV43).collect(Collectors.toList());
List<Double> data55 = valueTypeList.stream().map(DataV::getV44).collect(Collectors.toList());
List<Double> data56 = valueTypeList.stream().map(DataV::getV45).collect(Collectors.toList());
List<Double> data57 = valueTypeList.stream().map(DataV::getV46).collect(Collectors.toList());
List<Double> data58 = valueTypeList.stream().map(DataV::getV47).collect(Collectors.toList());
List<Double> data59 = valueTypeList.stream().map(DataV::getV48).collect(Collectors.toList());
List<Double> data60 = valueTypeList.stream().map(DataV::getV49).collect(Collectors.toList());
List<Double> data61 = valueTypeList.stream().map(DataV::getV50).collect(Collectors.toList());
List<List<Double>> lists = Arrays.asList(data1,data2,data3,data4,data5,data6,data7,data8,data9,data10
,data11,data12,data13,data14,data15,data16,data17,data18,data19,data20
,data21,data22,data23,data24,data25,data26,data27,data28,data29,data30
,data31,data32,data33,data34,data35,data36,data37,data38,data39,data40
,data41,data42,data43,data44,data45,data46,data47,data48,data49,data50
,data51,data52,data53,data54,data55,data56,data57,data58,data59,data60
,data61);
value.setValueList(lists);
valueTypes.add(value);
});
type.setValueTypeList(valueTypes);
phasicTypes.add(type);
});
dto.setPhasicTypeList(phasicTypes);
result.add(dto);
});
}
return result;
}
@Override
public void addList(List<DataVDto> dataVDtoList) {
}
/**
* 按监测点集合、时间条件获取dataV分钟数据
*/
public List<DataV> getMinuteDataV(List<String> lineList, String startTime, String endTime) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
influxQueryWrapper.regular(DataV::getLineId, lineList)
.select(DataV::getLineId)
.select(DataV::getPhasicType)
.select(DataV::getValueType)
.select(DataV::getFreq)
.select(DataV::getFreqDev)
.select(DataV::getRms)
.select(DataV::getRmsLvr)
.select(DataV::getVNeg)
.select(DataV::getVPos)
.select(DataV::getVThd)
.select(DataV::getVUnbalance)
.select(DataV::getVZero)
.select(DataV::getVlDev)
.select(DataV::getVuDev)
.between(DataV::getTime, startTime, endTime);
System.out.println(influxQueryWrapper.generateSql());
return dataVMapper.selectByQueryWrapper(influxQueryWrapper);
}
} }

View File

@@ -1,14 +1,20 @@
package com.njcn.dataProcess.service.impl.relation; package com.njcn.dataProcess.service.impl.relation;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.dataProcess.dao.relation.mapper.RStatDataVRelationMapper;
import com.njcn.dataProcess.dto.DataVDTO; import com.njcn.dataProcess.dto.DataVDTO;
import com.njcn.dataProcess.dto.DataVFiveItemDTO; import com.njcn.dataProcess.dto.DataVFiveItemDTO;
import com.njcn.dataProcess.dao.relation.mapper.DataVRelationMapper; import com.njcn.dataProcess.dao.relation.mapper.DataVRelationMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.po.relation.DataV; import com.njcn.dataProcess.po.relation.DataV;
import com.njcn.dataProcess.pojo.dto.CommonMinuteDto;
import com.njcn.dataProcess.pojo.dto.DataVDto;
import com.njcn.dataProcess.pojo.po.RStatDataVD;
import com.njcn.dataProcess.service.IDataV; import com.njcn.dataProcess.service.IDataV;
import com.njcn.dataProcess.util.BeanFeildUtils; import com.njcn.dataProcess.util.BeanFeildUtils;
import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.ListUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@@ -16,6 +22,8 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -27,9 +35,11 @@ import java.util.stream.Collectors;
*/ */
@Service("RelationDataVImpl") @Service("RelationDataVImpl")
@RequiredArgsConstructor @RequiredArgsConstructor
public class RelationDataVImpl implements IDataV { public class RelationDataVImpl extends MppServiceImpl<RStatDataVRelationMapper, RStatDataVD> implements IDataV {
@Resource @Resource
private DataVRelationMapper dataVRelationMapper; private DataVRelationMapper dataVRelationMapper;
@Resource
private IDataV iDataV;
@Override @Override
public Map<String, List<DataVFiveItemDTO>> getLineCountEvaluate(LineCountEvaluateParam lineParam) { public Map<String, List<DataVFiveItemDTO>> getLineCountEvaluate(LineCountEvaluateParam lineParam) {
@@ -73,4 +83,22 @@ public class RelationDataVImpl implements IDataV {
List<LocalDateTime> result = dataVS.stream().map(DataV::getTimeid).distinct().collect(Collectors.toList()); List<LocalDateTime> result = dataVS.stream().map(DataV::getTimeid).distinct().collect(Collectors.toList());
return result; return result;
} }
@Override
public List<CommonMinuteDto> getBaseData(LineCountEvaluateParam lineParam) {
return Collections.emptyList();
}
@Override
public void addList(List<DataVDto> dataVDtoList) {
List<RStatDataVD> result = new ArrayList<>();
dataVDtoList.forEach(item->{
RStatDataVD dataV = new RStatDataVD();
dataV.setTime(TimeUtils.LocalDataTimeToLocalDate2(item.getTime()));
dataV.setPhasicType(item.getPhasicType());
BeanUtils.copyProperties(item, dataV);
result.add(dataV);
});
iDataV.saveOrUpdateBatchByMultiId(result);
}
} }

View File

@@ -54,7 +54,7 @@ mqtt:
data: data:
source: source:
query: Relation query: Influxdb
insert: Relation insert: Relation
#mybatis配置信息 #mybatis配置信息
mybatis-plus: mybatis-plus: