diff --git a/algorithm/algorithm-api/pom.xml b/algorithm/algorithm-api/pom.xml
index 35baec0..2d4cef9 100644
--- a/algorithm/algorithm-api/pom.xml
+++ b/algorithm/algorithm-api/pom.xml
@@ -17,4 +17,16 @@
8
+
+
+ com.njcn
+ common-db
+ ${project.version}
+
+
+ com.njcn
+ common-web
+ ${project.version}
+
+
diff --git a/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/bo/BaseParam.java b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/bo/BaseParam.java
new file mode 100644
index 0000000..caf8828
--- /dev/null
+++ b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/bo/BaseParam.java
@@ -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 tagNames;
+
+
+ /**
+ * 待计算的对象索引集合,监测点、设备、母线、变电站、单位等等
+ */
+ @ApiModelProperty(name = "idList",value = "索引集合")
+ private List idList;
+
+
+}
diff --git a/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/bo/CalculatedParam.java b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/bo/CalculatedParam.java
new file mode 100644
index 0000000..341e37d
--- /dev/null
+++ b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/bo/CalculatedParam.java
@@ -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 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 tagNames;
+
+ /**
+ * 待计算的对象索引集合,监测点、设备、母线、变电站、单位下监测点等等
+ */
+ @ApiModelProperty(name = "idList",value = "索引集合")
+ private List idList;
+}
diff --git a/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/enums/PrepareResponseEnum.java b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/enums/PrepareResponseEnum.java
new file mode 100644
index 0000000..a3f8de0
--- /dev/null
+++ b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/enums/PrepareResponseEnum.java
@@ -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 "";
+ }
+}
diff --git a/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/enums/UploadEnum.java b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/enums/UploadEnum.java
new file mode 100644
index 0000000..ded82e4
--- /dev/null
+++ b/algorithm/algorithm-api/src/main/java/com/njcn/algorithm/pojo/enums/UploadEnum.java
@@ -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;
+ }
+
+
+}
diff --git a/algorithm/algorithm-boot/pom.xml b/algorithm/algorithm-boot/pom.xml
index f02cced..7f23a29 100644
--- a/algorithm/algorithm-boot/pom.xml
+++ b/algorithm/algorithm-boot/pom.xml
@@ -15,28 +15,89 @@
UTF-8
8
8
+ 1.18.12
+ 1.4.2.Final
-
- com.njcn
- common-web
- ${project.version}
-
-
- com.njcn
- common-core
- ${project.version}
-
com.njcn
common-swagger
${project.version}
- org.mybatis
- mybatis-spring
- 2.0.5
+ com.njcn
+ common-microservice
+ ${project.version}
+
+
+ com.njcn
+ common-redis
+ ${project.version}
+
+
+
+
+ com.njcn
+ pqs-influx
+ ${project.version}
+
+
+ com.njcn
+ user-api
+ ${project.version}
+
+
+ com.njcn.platform
+ algorithm-api
+ ${project.version}
+
+
+ com.njcn
+ common-device-biz
+ ${project.version}
+
+
+ com.njcn.platform
+ data-processing-api
+ ${project.version}
+
+
+ org.mapstruct
+ mapstruct
+ ${org.mapstruct.version}
+
+
+ org.mapstruct
+ mapstruct-processor
+ ${org.mapstruct.version}
+
+
+ org.projectlombok
+ lombok-mapstruct-binding
+ 0.2.0
+
+
+
+ org.projectlombok
+ lombok
+ ${org.projectlombok.version}
+ provided
+
+
+ com.njcn
+ common-oss
+ ${project.version}
+
+
+ com.yomahub
+ liteflow-spring-boot-starter
+ 2.11.2
+
+
+ com.yomahub
+ liteflow-rule-nacos
+ 2.11.2
diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/AlgorithmBootApplication.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/AlgorithmBootApplication.java
index ab750da..82af0d6 100644
--- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/AlgorithmBootApplication.java
+++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/AlgorithmBootApplication.java
@@ -1,9 +1,11 @@
package com.njcn.algorithm;
import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.DependsOn;
/**
@@ -12,6 +14,8 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@Slf4j
@EnableFeignClients(basePackages = "com.njcn")
@SpringBootApplication(scanBasePackages = "com.njcn")
+@MapperScan("com.njcn.**.mapper")
+@DependsOn("proxyMapperRegister")
public class AlgorithmBootApplication {
public static void main(String[] args) {
diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/ExecutionCenter.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/ExecutionCenter.java
new file mode 100644
index 0000000..5f89acb
--- /dev/null
+++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/ExecutionCenter.java
@@ -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> executeSteps = liteflowResponse.getExecuteSteps();
+ CmpStep failStep = null;
+ for (String key : executeSteps.keySet()) {
+ List 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 list = commTerminalGeneralClient.deptGetDevice(deptGetLineParam).getData();
+// DeptGetDeviceDTO dto = list.stream().filter(po -> Objects.equals(po.getUnitId(), data.getId())).collect(Collectors.toList()).get(0);
+// List 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 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 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 calculatedParam = judgeExecuteParam(baseParam);
+// // 测点索引
+// DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
+//
+// if (CollectionUtils.isEmpty(calculatedParam.getIdList())) {
+// Dept data = deptFeignClient.getRootDept().getData();
+// deptGetLineParam.setDeptId(data.getId());
+// List data1 = commTerminalGeneralClient.deptSubStation(deptGetLineParam).getData();
+// List stationIds = new ArrayList<>();
+// for (DeptGetSubStationDTO deptGetSubStationDTO : data1) {
+// Collection union = CollectionUtils.union(Optional.ofNullable(deptGetSubStationDTO.getStationIds()).orElse(new ArrayList()),
+// Optional.ofNullable(deptGetSubStationDTO.getStationIds()).orElse(new ArrayList()));
+// List 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 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 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 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 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 calculatedParam = judgeExecuteParam(baseParam);
+// // 测点索引
+// DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
+// if (CollectionUtils.isEmpty(calculatedParam.getIdList())) {
+// Dept data = deptFeignClient.getRootDept().getData();
+// deptGetLineParam.setDeptId(data.getId());
+// List 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);
+// }
+// }
+
+}
diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/BaseExecutor.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/BaseExecutor.java
new file mode 100644
index 0000000..72b5222
--- /dev/null
+++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/BaseExecutor.java
@@ -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 tagNames = requestData.getTagNames();
+ if (requestData.isFullChain() || (CollectionUtil.isNotEmpty(tagNames) && tagNames.contains(tag))) {
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/MeasurementExecutor.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/MeasurementExecutor.java
new file mode 100644
index 0000000..3e63a0f
--- /dev/null
+++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/MeasurementExecutor.java
@@ -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结束***********************************************************/
+}
diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/liteflow/NjcnNodeComponent.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/liteflow/NjcnNodeComponent.java
new file mode 100644
index 0000000..4aa15b6
--- /dev/null
+++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/liteflow/NjcnNodeComponent.java
@@ -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 tagNames = requestData.getTagNames();
+ if (requestData.isFullChain() || (CollectionUtil.isNotEmpty(tagNames) && tagNames.contains(tag))) {
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/DayDataService.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/DayDataService.java
new file mode 100644
index 0000000..7a82c13
--- /dev/null
+++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/DayDataService.java
@@ -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);
+
+}
diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/DayDataServiceImpl.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/DayDataServiceImpl.java
new file mode 100644
index 0000000..77de24e
--- /dev/null
+++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/DayDataServiceImpl.java
@@ -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 result = new ArrayList<>();
+ //远程接口获取分钟数据
+ LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
+ lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
+ lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
+ //以100个监测点分片处理
+ List> pendingIds = ListUtils.partition(calculatedParam.getIdList(),NUM);
+ pendingIds.forEach(list->{
+ lineParam.setLineId(list);
+ List partList = dataVFeignClient.getBaseData(lineParam).getData();
+ if (CollUtil.isNotEmpty(partList)) {
+ partList.forEach(item->{
+ //相别
+ List phasicTypeList = item.getPhasicTypeList();
+ phasicTypeList.forEach(item2->{
+ //数据类型
+ List 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 list, boolean scheme) {
+ Double result = null;
+ valueType = valueType.toUpperCase();
+ if (scheme) {
+ switch (valueType) {
+ case InfluxDbSqlConstant.MAX:
+ case InfluxDbSqlConstant.CP95:
+ Optional max = list.stream().filter(Objects::nonNull).max(Double::compare);
+ result = max.orElse(null);
+ break;
+ case InfluxDbSqlConstant.MIN:
+ Optional 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 max = list.stream().filter(Objects::nonNull).max(Double::compare);
+ result = max.orElse(null);
+ break;
+ case InfluxDbSqlConstant.MIN:
+ Optional 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 remainingList = list.subList(discardCount, list.size());
+ result = remainingList.isEmpty() ? null : remainingList.get(0);
+ break;
+ default:
+ break;
+ }
+ }
+ return result;
+ }
+
+}
\ No newline at end of file
diff --git a/algorithm/algorithm-boot/src/main/resources/bootstrap.yml b/algorithm/algorithm-boot/src/main/resources/bootstrap.yml
index ab4f921..bf50866 100644
--- a/algorithm/algorithm-boot/src/main/resources/bootstrap.yml
+++ b/algorithm/algorithm-boot/src/main/resources/bootstrap.yml
@@ -29,11 +29,20 @@ spring:
shared-configs:
- data-id: share-config.yaml
refresh: true
- - data-Id: algorithm-config.yaml
+ - data-Id: share-config-datasource-db.yaml
refresh: true
main:
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:
diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataVFeignClient.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataVFeignClient.java
index 679d18d..cea7287 100644
--- a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataVFeignClient.java
+++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataVFeignClient.java
@@ -2,9 +2,11 @@ package com.njcn.dataProcess.api;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
-
import com.njcn.dataProcess.api.fallback.DataVFeignClientFallbackFactory;
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.web.bind.annotation.PostMapping;
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")
public interface DataVFeignClient {
-
-
@PostMapping("/batchInsertion")
HttpResult batchInsertion(@RequestBody List dataVDTOList);
@PostMapping("/monitoringTime")
HttpResult> monitoringTime(@RequestParam("lineId") String lineId, @RequestParam("localData") String localData) ;
+ //获取算法基础数据
+ @PostMapping("/getBaseData")
+ HttpResult> getBaseData(@RequestBody LineCountEvaluateParam lineParam);
+ //批量插入数据
+ @PostMapping("/addList")
+ HttpResult addList(@RequestBody List dataVDtoList);
+
}
diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataVFeignClientFallbackFactory.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataVFeignClientFallbackFactory.java
index 5f3d30a..0e901c1 100644
--- a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataVFeignClientFallbackFactory.java
+++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataVFeignClientFallbackFactory.java
@@ -5,6 +5,9 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.dataProcess.api.DataVFeignClient;
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.system.utils.SystemEnumUtil;
import feign.hystrix.FallbackFactory;
@@ -51,6 +54,18 @@ public class DataVFeignClientFallbackFactory implements FallbackFactory> getBaseData(LineCountEvaluateParam lineParam) {
+ log.error("{}异常,降级处理,异常为:{}","获取算法基础数据",cause.toString());
+ throw new BusinessException(finalExceptionEnum);
+ }
+
+ @Override
+ public HttpResult addList(List dataVDtoList) {
+ log.error("{}异常,降级处理,异常为:{}","批量插入数据",cause.toString());
+ throw new BusinessException(finalExceptionEnum);
+ }
+
};
}
}
diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/po/influx/DataV.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/po/influx/DataV.java
index 96226e4..e1e441c 100644
--- a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/po/influx/DataV.java
+++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/po/influx/DataV.java
@@ -34,190 +34,190 @@ public class DataV {
private Instant time;
@Column(name = "freq")
- private Float freq;
+ private Double freq;
@Column(name = "freq_dev")
- private Float freqDev;
+ private Double freqDev;
@Column(name = "quality_flag", tag = true)
private String qualityFlag;
@Column(name = "rms")
- private Float rms;
+ private Double rms;
@Column(name = "rms_lvr")
- private Float rmsLvr;
+ private Double rmsLvr;
@Column(name = "vl_dev")
- private Float vlDev;
+ private Double vlDev;
@Column(name = "vu_dev")
- private Float vuDev;
+ private Double vuDev;
@Column(name = "v_1")
- private Float v1;
+ private Double v1;
@Column(name = "v_2")
- private Float v2;
+ private Double v2;
@Column(name = "v_3")
- private Float v3;
+ private Double v3;
@Column(name = "v_4")
- private Float v4;
+ private Double v4;
@Column(name = "v_5")
- private Float v5;
+ private Double v5;
@Column(name = "v_6")
- private Float v6;
+ private Double v6;
@Column(name = "v_7")
- private Float v7;
+ private Double v7;
@Column(name = "v_8")
- private Float v8;
+ private Double v8;
@Column(name = "v_9")
- private Float v9;
+ private Double v9;
@Column(name = "v_10")
- private Float v10;
+ private Double v10;
@Column(name = "v_11")
- private Float v11;
+ private Double v11;
@Column(name = "v_12")
- private Float v12;
+ private Double v12;
@Column(name = "v_13")
- private Float v13;
+ private Double v13;
@Column(name = "v_14")
- private Float v14;
+ private Double v14;
@Column(name = "v_15")
- private Float v15;
+ private Double v15;
@Column(name = "v_16")
- private Float v16;
+ private Double v16;
@Column(name = "v_17")
- private Float v17;
+ private Double v17;
@Column(name = "v_18")
- private Float v18;
+ private Double v18;
@Column(name = "v_19")
- private Float v19;
+ private Double v19;
@Column(name = "v_20")
- private Float v20;
+ private Double v20;
@Column(name = "v_21")
- private Float v21;
+ private Double v21;
@Column(name = "v_22")
- private Float v22;
+ private Double v22;
@Column(name = "v_23")
- private Float v23;
+ private Double v23;
@Column(name = "v_24")
- private Float v24;
+ private Double v24;
@Column(name = "v_25")
- private Float v25;
+ private Double v25;
@Column(name = "v_26")
- private Float v26;
+ private Double v26;
@Column(name = "v_27")
- private Float v27;
+ private Double v27;
@Column(name = "v_28")
- private Float v28;
+ private Double v28;
@Column(name = "v_29")
- private Float v29;
+ private Double v29;
@Column(name = "v_30")
- private Float v30;
+ private Double v30;
@Column(name = "v_31")
- private Float v31;
+ private Double v31;
@Column(name = "v_32")
- private Float v32;
+ private Double v32;
@Column(name = "v_33")
- private Float v33;
+ private Double v33;
@Column(name = "v_34")
- private Float v34;
+ private Double v34;
@Column(name = "v_35")
- private Float v35;
+ private Double v35;
@Column(name = "v_36")
- private Float v36;
+ private Double v36;
@Column(name = "v_37")
- private Float v37;
+ private Double v37;
@Column(name = "v_38")
- private Float v38;
+ private Double v38;
@Column(name = "v_39")
- private Float v39;
+ private Double v39;
@Column(name = "v_40")
- private Float v40;
+ private Double v40;
@Column(name = "v_41")
- private Float v41;
+ private Double v41;
@Column(name = "v_42")
- private Float v42;
+ private Double v42;
@Column(name = "v_43")
- private Float v43;
+ private Double v43;
@Column(name = "v_44")
- private Float v44;
+ private Double v44;
@Column(name = "v_45")
- private Float v45;
+ private Double v45;
@Column(name = "v_46")
- private Float v46;
+ private Double v46;
@Column(name = "v_47")
- private Float v47;
+ private Double v47;
@Column(name = "v_48")
- private Float v48;
+ private Double v48;
@Column(name = "v_49")
- private Float v49;
+ private Double v49;
@Column(name = "v_50")
- private Float v50;
+ private Double v50;
@Column(name = "v_neg")
- private Float vNeg;
+ private Double vNeg;
@Column(name = "v_pos")
- private Float vPos;
+ private Double vPos;
@Column(name = "v_thd")
- private Float vThd;
+ private Double vThd;
@Column(name = "v_unbalance")
- private Float vUnbalance;
+ private Double vUnbalance;
@Column(name = "v_zero")
- private Float vZero;
+ private Double vZero;
@Column(name = "line_id", tag = true)
private String lineId;
@@ -235,7 +235,7 @@ public class DataV {
//自定义字段
@Column(name = "mean")
- private Float mean;
+ private Double mean;
//自定义字段
@Column(name = "count")
@@ -275,32 +275,32 @@ public class DataV {
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")){
- 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")){
- influxDBDataVA.setRmsLvr(Objects.isNull(dataV.getRmsabMin())?0.0f:dataV.getRmsabMin());
- influxDBDataVB.setRmsLvr(Objects.isNull(dataV.getRmsbcMin())?0.0f:dataV.getRmsbcMin());
- influxDBDataVC.setRmsLvr(Objects.isNull(dataV.getRmscaMin())?0.0f:dataV.getRmscaMin());
+ influxDBDataVA.setRmsLvr(Objects.isNull(dataV.getRmsabMin())?0.0:dataV.getRmsabMin());
+ influxDBDataVB.setRmsLvr(Objects.isNull(dataV.getRmsbcMin())?0.0:dataV.getRmsbcMin());
+ influxDBDataVC.setRmsLvr(Objects.isNull(dataV.getRmscaMin())?0.0:dataV.getRmscaMin());
}
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(influxDBDataVB);
@@ -310,263 +310,263 @@ public class DataV {
}
if (valueType.equals("AVG")) {
- influxDBDataV.setVNeg(Objects.isNull(dataV.getVNeg())?0.0f:dataV.getVNeg());
- influxDBDataV.setVPos(Objects.isNull(dataV.getVPos())?0.0f:dataV.getVPos());
- influxDBDataV.setVThd(Objects.isNull(dataV.getVThd())?0.0f:dataV.getVThd());
- influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalance())?0.0f:dataV.getVUnbalance());
- influxDBDataV.setVZero(Objects.isNull(dataV.getVZero())?0.0f:dataV.getVZero());
- influxDBDataV.setFreq(Objects.isNull(dataV.getFreq())?0.0f:dataV.getFreq());
- influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDev())?0.0f:dataV.getFreqDev());
- influxDBDataV.setRms(Objects.isNull(dataV.getRms())?0.0f:dataV.getRms());
- influxDBDataV.setRmsLvr(Objects.isNull(dataV.getRmsab())?0.0f:dataV.getRmsab());
- influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDev())?0.0f:dataV.getVlDev());
- influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDev())?0.0f:dataV.getVuDev());
+ influxDBDataV.setVNeg(Objects.isNull(dataV.getVNeg())?0.0:dataV.getVNeg());
+ influxDBDataV.setVPos(Objects.isNull(dataV.getVPos())?0.0:dataV.getVPos());
+ influxDBDataV.setVThd(Objects.isNull(dataV.getVThd())?0.0:dataV.getVThd());
+ influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalance())?0.0:dataV.getVUnbalance());
+ influxDBDataV.setVZero(Objects.isNull(dataV.getVZero())?0.0:dataV.getVZero());
+ influxDBDataV.setFreq(Objects.isNull(dataV.getFreq())?0.0:dataV.getFreq());
+ influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDev())?0.0:dataV.getFreqDev());
+ influxDBDataV.setRms(Objects.isNull(dataV.getRms())?0.0:dataV.getRms());
+ influxDBDataV.setRmsLvr(Objects.isNull(dataV.getRmsab())?0.0:dataV.getRmsab());
+ influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDev())?0.0:dataV.getVlDev());
+ influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDev())?0.0:dataV.getVuDev());
- influxDBDataV.setV1(Objects.isNull(dataV.getV1())?0.0f:dataV.getV1());
- influxDBDataV.setV2(Objects.isNull(dataV.getV2())?0.0f:dataV.getV2());
- influxDBDataV.setV3(Objects.isNull(dataV.getV3())?0.0f:dataV.getV3());
- influxDBDataV.setV4(Objects.isNull(dataV.getV4())?0.0f:dataV.getV4());
- influxDBDataV.setV5(Objects.isNull(dataV.getV5())?0.0f:dataV.getV5());
- influxDBDataV.setV6(Objects.isNull(dataV.getV6())?0.0f:dataV.getV6());
- influxDBDataV.setV7(Objects.isNull(dataV.getV7())?0.0f:dataV.getV7());
- influxDBDataV.setV8(Objects.isNull(dataV.getV8())?0.0f:dataV.getV8());
- influxDBDataV.setV9(Objects.isNull(dataV.getV9())?0.0f:dataV.getV9());
- influxDBDataV.setV10(Objects.isNull(dataV.getV10())?0.0f:dataV.getV10());
- influxDBDataV.setV11(Objects.isNull(dataV.getV11())?0.0f:dataV.getV11());
- influxDBDataV.setV12(Objects.isNull(dataV.getV12())?0.0f:dataV.getV12());
- influxDBDataV.setV13(Objects.isNull(dataV.getV13())?0.0f:dataV.getV13());
- influxDBDataV.setV14(Objects.isNull(dataV.getV14())?0.0f:dataV.getV14());
- influxDBDataV.setV15(Objects.isNull(dataV.getV15())?0.0f:dataV.getV15());
- influxDBDataV.setV16(Objects.isNull(dataV.getV16())?0.0f:dataV.getV16());
- influxDBDataV.setV17(Objects.isNull(dataV.getV17())?0.0f:dataV.getV17());
- influxDBDataV.setV18(Objects.isNull(dataV.getV18())?0.0f:dataV.getV18());
- influxDBDataV.setV19(Objects.isNull(dataV.getV19())?0.0f:dataV.getV19());
- influxDBDataV.setV20(Objects.isNull(dataV.getV20())?0.0f:dataV.getV20());
- influxDBDataV.setV21(Objects.isNull(dataV.getV21())?0.0f:dataV.getV21());
- influxDBDataV.setV22(Objects.isNull(dataV.getV22())?0.0f:dataV.getV22());
- influxDBDataV.setV23(Objects.isNull(dataV.getV23())?0.0f:dataV.getV23());
- influxDBDataV.setV24(Objects.isNull(dataV.getV24())?0.0f:dataV.getV24());
- influxDBDataV.setV25(Objects.isNull(dataV.getV25())?0.0f:dataV.getV25());
- influxDBDataV.setV26(Objects.isNull(dataV.getV26())?0.0f:dataV.getV26());
- influxDBDataV.setV27(Objects.isNull(dataV.getV27())?0.0f:dataV.getV27());
- influxDBDataV.setV28(Objects.isNull(dataV.getV28())?0.0f:dataV.getV28());
- influxDBDataV.setV29(Objects.isNull(dataV.getV29())?0.0f:dataV.getV29());
- influxDBDataV.setV30(Objects.isNull(dataV.getV30())?0.0f:dataV.getV30());
- influxDBDataV.setV31(Objects.isNull(dataV.getV31())?0.0f:dataV.getV31());
- influxDBDataV.setV32(Objects.isNull(dataV.getV32())?0.0f:dataV.getV32());
- influxDBDataV.setV33(Objects.isNull(dataV.getV33())?0.0f:dataV.getV33());
- influxDBDataV.setV34(Objects.isNull(dataV.getV34())?0.0f:dataV.getV34());
- influxDBDataV.setV35(Objects.isNull(dataV.getV35())?0.0f:dataV.getV35());
- influxDBDataV.setV36(Objects.isNull(dataV.getV36())?0.0f:dataV.getV36());
- influxDBDataV.setV37(Objects.isNull(dataV.getV37())?0.0f:dataV.getV37());
- influxDBDataV.setV38(Objects.isNull(dataV.getV38())?0.0f:dataV.getV38());
- influxDBDataV.setV39(Objects.isNull(dataV.getV39())?0.0f:dataV.getV39());
- influxDBDataV.setV40(Objects.isNull(dataV.getV40())?0.0f:dataV.getV40());
- influxDBDataV.setV41(Objects.isNull(dataV.getV41())?0.0f:dataV.getV41());
- influxDBDataV.setV42(Objects.isNull(dataV.getV42())?0.0f:dataV.getV42());
- influxDBDataV.setV43(Objects.isNull(dataV.getV43())?0.0f:dataV.getV43());
- influxDBDataV.setV44(Objects.isNull(dataV.getV44())?0.0f:dataV.getV44());
- influxDBDataV.setV45(Objects.isNull(dataV.getV45())?0.0f:dataV.getV45());
- influxDBDataV.setV46(Objects.isNull(dataV.getV46())?0.0f:dataV.getV46());
- influxDBDataV.setV47(Objects.isNull(dataV.getV47())?0.0f:dataV.getV47());
- influxDBDataV.setV48(Objects.isNull(dataV.getV48())?0.0f:dataV.getV48());
- influxDBDataV.setV49(Objects.isNull(dataV.getV49())?0.0f:dataV.getV49());
- influxDBDataV.setV50(Objects.isNull(dataV.getV50())?0.0f:dataV.getV50());
+ influxDBDataV.setV1(Objects.isNull(dataV.getV1())?0.0:dataV.getV1());
+ influxDBDataV.setV2(Objects.isNull(dataV.getV2())?0.0:dataV.getV2());
+ influxDBDataV.setV3(Objects.isNull(dataV.getV3())?0.0:dataV.getV3());
+ influxDBDataV.setV4(Objects.isNull(dataV.getV4())?0.0:dataV.getV4());
+ influxDBDataV.setV5(Objects.isNull(dataV.getV5())?0.0:dataV.getV5());
+ influxDBDataV.setV6(Objects.isNull(dataV.getV6())?0.0:dataV.getV6());
+ influxDBDataV.setV7(Objects.isNull(dataV.getV7())?0.0:dataV.getV7());
+ influxDBDataV.setV8(Objects.isNull(dataV.getV8())?0.0:dataV.getV8());
+ influxDBDataV.setV9(Objects.isNull(dataV.getV9())?0.0:dataV.getV9());
+ influxDBDataV.setV10(Objects.isNull(dataV.getV10())?0.0:dataV.getV10());
+ influxDBDataV.setV11(Objects.isNull(dataV.getV11())?0.0:dataV.getV11());
+ influxDBDataV.setV12(Objects.isNull(dataV.getV12())?0.0:dataV.getV12());
+ influxDBDataV.setV13(Objects.isNull(dataV.getV13())?0.0:dataV.getV13());
+ influxDBDataV.setV14(Objects.isNull(dataV.getV14())?0.0:dataV.getV14());
+ influxDBDataV.setV15(Objects.isNull(dataV.getV15())?0.0:dataV.getV15());
+ influxDBDataV.setV16(Objects.isNull(dataV.getV16())?0.0:dataV.getV16());
+ influxDBDataV.setV17(Objects.isNull(dataV.getV17())?0.0:dataV.getV17());
+ influxDBDataV.setV18(Objects.isNull(dataV.getV18())?0.0:dataV.getV18());
+ influxDBDataV.setV19(Objects.isNull(dataV.getV19())?0.0:dataV.getV19());
+ influxDBDataV.setV20(Objects.isNull(dataV.getV20())?0.0:dataV.getV20());
+ influxDBDataV.setV21(Objects.isNull(dataV.getV21())?0.0:dataV.getV21());
+ influxDBDataV.setV22(Objects.isNull(dataV.getV22())?0.0:dataV.getV22());
+ influxDBDataV.setV23(Objects.isNull(dataV.getV23())?0.0:dataV.getV23());
+ influxDBDataV.setV24(Objects.isNull(dataV.getV24())?0.0:dataV.getV24());
+ influxDBDataV.setV25(Objects.isNull(dataV.getV25())?0.0:dataV.getV25());
+ influxDBDataV.setV26(Objects.isNull(dataV.getV26())?0.0:dataV.getV26());
+ influxDBDataV.setV27(Objects.isNull(dataV.getV27())?0.0:dataV.getV27());
+ influxDBDataV.setV28(Objects.isNull(dataV.getV28())?0.0:dataV.getV28());
+ influxDBDataV.setV29(Objects.isNull(dataV.getV29())?0.0:dataV.getV29());
+ influxDBDataV.setV30(Objects.isNull(dataV.getV30())?0.0:dataV.getV30());
+ influxDBDataV.setV31(Objects.isNull(dataV.getV31())?0.0:dataV.getV31());
+ influxDBDataV.setV32(Objects.isNull(dataV.getV32())?0.0:dataV.getV32());
+ influxDBDataV.setV33(Objects.isNull(dataV.getV33())?0.0:dataV.getV33());
+ influxDBDataV.setV34(Objects.isNull(dataV.getV34())?0.0:dataV.getV34());
+ influxDBDataV.setV35(Objects.isNull(dataV.getV35())?0.0:dataV.getV35());
+ influxDBDataV.setV36(Objects.isNull(dataV.getV36())?0.0:dataV.getV36());
+ influxDBDataV.setV37(Objects.isNull(dataV.getV37())?0.0:dataV.getV37());
+ influxDBDataV.setV38(Objects.isNull(dataV.getV38())?0.0:dataV.getV38());
+ influxDBDataV.setV39(Objects.isNull(dataV.getV39())?0.0:dataV.getV39());
+ influxDBDataV.setV40(Objects.isNull(dataV.getV40())?0.0:dataV.getV40());
+ influxDBDataV.setV41(Objects.isNull(dataV.getV41())?0.0:dataV.getV41());
+ influxDBDataV.setV42(Objects.isNull(dataV.getV42())?0.0:dataV.getV42());
+ influxDBDataV.setV43(Objects.isNull(dataV.getV43())?0.0:dataV.getV43());
+ influxDBDataV.setV44(Objects.isNull(dataV.getV44())?0.0:dataV.getV44());
+ influxDBDataV.setV45(Objects.isNull(dataV.getV45())?0.0:dataV.getV45());
+ influxDBDataV.setV46(Objects.isNull(dataV.getV46())?0.0:dataV.getV46());
+ influxDBDataV.setV47(Objects.isNull(dataV.getV47())?0.0:dataV.getV47());
+ influxDBDataV.setV48(Objects.isNull(dataV.getV48())?0.0:dataV.getV48());
+ influxDBDataV.setV49(Objects.isNull(dataV.getV49())?0.0:dataV.getV49());
+ influxDBDataV.setV50(Objects.isNull(dataV.getV50())?0.0:dataV.getV50());
}
else if (valueType.equals("MAX")){
- influxDBDataV.setVNeg(Objects.isNull(dataV.getVNegMax())?0.0f:dataV.getVNegMax());
- influxDBDataV.setVPos(Objects.isNull(dataV.getVPosMax())?0.0f:dataV.getVPosMax());
- influxDBDataV.setVThd(Objects.isNull(dataV.getVThdMax())?0.0f:dataV.getVThdMax());
- influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalanceMax())?0.0f:dataV.getVUnbalanceMax());
- influxDBDataV.setVZero(Objects.isNull(dataV.getVZeroMax())?0.0f:dataV.getVZeroMax());
- influxDBDataV.setFreq(Objects.isNull(dataV.getFreqMax())?0.0f:dataV.getFreqMax());
- influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDevMax())?0.0f:dataV.getFreqDevMax());
- influxDBDataV.setRms(Objects.isNull(dataV.getRmsMax())?0.0f:dataV.getRmsMax());
- influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDevMax())?0.0f:dataV.getVlDevMax());
- influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDevMax())?0.0f:dataV.getVuDevMax());
+ influxDBDataV.setVNeg(Objects.isNull(dataV.getVNegMax())?0.0:dataV.getVNegMax());
+ influxDBDataV.setVPos(Objects.isNull(dataV.getVPosMax())?0.0:dataV.getVPosMax());
+ influxDBDataV.setVThd(Objects.isNull(dataV.getVThdMax())?0.0:dataV.getVThdMax());
+ influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalanceMax())?0.0:dataV.getVUnbalanceMax());
+ influxDBDataV.setVZero(Objects.isNull(dataV.getVZeroMax())?0.0:dataV.getVZeroMax());
+ influxDBDataV.setFreq(Objects.isNull(dataV.getFreqMax())?0.0:dataV.getFreqMax());
+ influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDevMax())?0.0:dataV.getFreqDevMax());
+ influxDBDataV.setRms(Objects.isNull(dataV.getRmsMax())?0.0:dataV.getRmsMax());
+ influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDevMax())?0.0:dataV.getVlDevMax());
+ influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDevMax())?0.0:dataV.getVuDevMax());
- influxDBDataV.setV1(Objects.isNull(dataV.getV1Max())?0.0f:dataV.getV1Max());
- influxDBDataV.setV2(Objects.isNull(dataV.getV2Max())?0.0f:dataV.getV2Max());
- influxDBDataV.setV3(Objects.isNull(dataV.getV3Max())?0.0f:dataV.getV3Max());
- influxDBDataV.setV4(Objects.isNull(dataV.getV4Max())?0.0f:dataV.getV4Max());
- influxDBDataV.setV5(Objects.isNull(dataV.getV5Max())?0.0f:dataV.getV5Max());
- influxDBDataV.setV6(Objects.isNull(dataV.getV6Max())?0.0f:dataV.getV6Max());
- influxDBDataV.setV7(Objects.isNull(dataV.getV7Max())?0.0f:dataV.getV7Max());
- influxDBDataV.setV8(Objects.isNull(dataV.getV8Max())?0.0f:dataV.getV8Max());
- influxDBDataV.setV9(Objects.isNull(dataV.getV9Max())?0.0f:dataV.getV9Max());
- influxDBDataV.setV10(Objects.isNull(dataV.getV10Max())?0.0f:dataV.getV10Max());
- influxDBDataV.setV11(Objects.isNull(dataV.getV11Max())?0.0f:dataV.getV11Max());
- influxDBDataV.setV12(Objects.isNull(dataV.getV12Max())?0.0f:dataV.getV12Max());
- influxDBDataV.setV13(Objects.isNull(dataV.getV13Max())?0.0f:dataV.getV13Max());
- influxDBDataV.setV14(Objects.isNull(dataV.getV14Max())?0.0f:dataV.getV14Max());
- influxDBDataV.setV15(Objects.isNull(dataV.getV15Max())?0.0f:dataV.getV15Max());
- influxDBDataV.setV16(Objects.isNull(dataV.getV16Max())?0.0f:dataV.getV16Max());
- influxDBDataV.setV17(Objects.isNull(dataV.getV17Max())?0.0f:dataV.getV17Max());
- influxDBDataV.setV18(Objects.isNull(dataV.getV18Max())?0.0f:dataV.getV18Max());
- influxDBDataV.setV19(Objects.isNull(dataV.getV19Max())?0.0f:dataV.getV19Max());
- influxDBDataV.setV20(Objects.isNull(dataV.getV20Max())?0.0f:dataV.getV20Max());
- influxDBDataV.setV21(Objects.isNull(dataV.getV21Max())?0.0f:dataV.getV21Max());
- influxDBDataV.setV22(Objects.isNull(dataV.getV22Max())?0.0f:dataV.getV22Max());
- influxDBDataV.setV23(Objects.isNull(dataV.getV23Max())?0.0f:dataV.getV23Max());
- influxDBDataV.setV24(Objects.isNull(dataV.getV24Max())?0.0f:dataV.getV24Max());
- influxDBDataV.setV25(Objects.isNull(dataV.getV25Max())?0.0f:dataV.getV25Max());
- influxDBDataV.setV26(Objects.isNull(dataV.getV26Max())?0.0f:dataV.getV26Max());
- influxDBDataV.setV27(Objects.isNull(dataV.getV27Max())?0.0f:dataV.getV27Max());
- influxDBDataV.setV28(Objects.isNull(dataV.getV28Max())?0.0f:dataV.getV28Max());
- influxDBDataV.setV29(Objects.isNull(dataV.getV29Max())?0.0f:dataV.getV29Max());
- influxDBDataV.setV30(Objects.isNull(dataV.getV30Max())?0.0f:dataV.getV30Max());
- influxDBDataV.setV31(Objects.isNull(dataV.getV31Max())?0.0f:dataV.getV31Max());
- influxDBDataV.setV32(Objects.isNull(dataV.getV32Max())?0.0f:dataV.getV32Max());
- influxDBDataV.setV33(Objects.isNull(dataV.getV33Max())?0.0f:dataV.getV33Max());
- influxDBDataV.setV34(Objects.isNull(dataV.getV34Max())?0.0f:dataV.getV34Max());
- influxDBDataV.setV35(Objects.isNull(dataV.getV35Max())?0.0f:dataV.getV35Max());
- influxDBDataV.setV36(Objects.isNull(dataV.getV36Max())?0.0f:dataV.getV36Max());
- influxDBDataV.setV37(Objects.isNull(dataV.getV37Max())?0.0f:dataV.getV37Max());
- influxDBDataV.setV38(Objects.isNull(dataV.getV38Max())?0.0f:dataV.getV38Max());
- influxDBDataV.setV39(Objects.isNull(dataV.getV39Max())?0.0f:dataV.getV39Max());
- influxDBDataV.setV40(Objects.isNull(dataV.getV40Max())?0.0f:dataV.getV40Max());
- influxDBDataV.setV41(Objects.isNull(dataV.getV41Max())?0.0f:dataV.getV41Max());
- influxDBDataV.setV42(Objects.isNull(dataV.getV42Max())?0.0f:dataV.getV42Max());
- influxDBDataV.setV43(Objects.isNull(dataV.getV43Max())?0.0f:dataV.getV43Max());
- influxDBDataV.setV44(Objects.isNull(dataV.getV44Max())?0.0f:dataV.getV44Max());
- influxDBDataV.setV45(Objects.isNull(dataV.getV45Max())?0.0f:dataV.getV45Max());
- influxDBDataV.setV46(Objects.isNull(dataV.getV46Max())?0.0f:dataV.getV46Max());
- influxDBDataV.setV47(Objects.isNull(dataV.getV47Max())?0.0f:dataV.getV47Max());
- influxDBDataV.setV48(Objects.isNull(dataV.getV48Max())?0.0f:dataV.getV48Max());
- influxDBDataV.setV49(Objects.isNull(dataV.getV49Max())?0.0f:dataV.getV49Max());
- influxDBDataV.setV50(Objects.isNull(dataV.getV50Max())?0.0f:dataV.getV50Max());
+ influxDBDataV.setV1(Objects.isNull(dataV.getV1Max())?0.0:dataV.getV1Max());
+ influxDBDataV.setV2(Objects.isNull(dataV.getV2Max())?0.0:dataV.getV2Max());
+ influxDBDataV.setV3(Objects.isNull(dataV.getV3Max())?0.0:dataV.getV3Max());
+ influxDBDataV.setV4(Objects.isNull(dataV.getV4Max())?0.0:dataV.getV4Max());
+ influxDBDataV.setV5(Objects.isNull(dataV.getV5Max())?0.0:dataV.getV5Max());
+ influxDBDataV.setV6(Objects.isNull(dataV.getV6Max())?0.0:dataV.getV6Max());
+ influxDBDataV.setV7(Objects.isNull(dataV.getV7Max())?0.0:dataV.getV7Max());
+ influxDBDataV.setV8(Objects.isNull(dataV.getV8Max())?0.0:dataV.getV8Max());
+ influxDBDataV.setV9(Objects.isNull(dataV.getV9Max())?0.0:dataV.getV9Max());
+ influxDBDataV.setV10(Objects.isNull(dataV.getV10Max())?0.0:dataV.getV10Max());
+ influxDBDataV.setV11(Objects.isNull(dataV.getV11Max())?0.0:dataV.getV11Max());
+ influxDBDataV.setV12(Objects.isNull(dataV.getV12Max())?0.0:dataV.getV12Max());
+ influxDBDataV.setV13(Objects.isNull(dataV.getV13Max())?0.0:dataV.getV13Max());
+ influxDBDataV.setV14(Objects.isNull(dataV.getV14Max())?0.0:dataV.getV14Max());
+ influxDBDataV.setV15(Objects.isNull(dataV.getV15Max())?0.0:dataV.getV15Max());
+ influxDBDataV.setV16(Objects.isNull(dataV.getV16Max())?0.0:dataV.getV16Max());
+ influxDBDataV.setV17(Objects.isNull(dataV.getV17Max())?0.0:dataV.getV17Max());
+ influxDBDataV.setV18(Objects.isNull(dataV.getV18Max())?0.0:dataV.getV18Max());
+ influxDBDataV.setV19(Objects.isNull(dataV.getV19Max())?0.0:dataV.getV19Max());
+ influxDBDataV.setV20(Objects.isNull(dataV.getV20Max())?0.0:dataV.getV20Max());
+ influxDBDataV.setV21(Objects.isNull(dataV.getV21Max())?0.0:dataV.getV21Max());
+ influxDBDataV.setV22(Objects.isNull(dataV.getV22Max())?0.0:dataV.getV22Max());
+ influxDBDataV.setV23(Objects.isNull(dataV.getV23Max())?0.0:dataV.getV23Max());
+ influxDBDataV.setV24(Objects.isNull(dataV.getV24Max())?0.0:dataV.getV24Max());
+ influxDBDataV.setV25(Objects.isNull(dataV.getV25Max())?0.0:dataV.getV25Max());
+ influxDBDataV.setV26(Objects.isNull(dataV.getV26Max())?0.0:dataV.getV26Max());
+ influxDBDataV.setV27(Objects.isNull(dataV.getV27Max())?0.0:dataV.getV27Max());
+ influxDBDataV.setV28(Objects.isNull(dataV.getV28Max())?0.0:dataV.getV28Max());
+ influxDBDataV.setV29(Objects.isNull(dataV.getV29Max())?0.0:dataV.getV29Max());
+ influxDBDataV.setV30(Objects.isNull(dataV.getV30Max())?0.0:dataV.getV30Max());
+ influxDBDataV.setV31(Objects.isNull(dataV.getV31Max())?0.0:dataV.getV31Max());
+ influxDBDataV.setV32(Objects.isNull(dataV.getV32Max())?0.0:dataV.getV32Max());
+ influxDBDataV.setV33(Objects.isNull(dataV.getV33Max())?0.0:dataV.getV33Max());
+ influxDBDataV.setV34(Objects.isNull(dataV.getV34Max())?0.0:dataV.getV34Max());
+ influxDBDataV.setV35(Objects.isNull(dataV.getV35Max())?0.0:dataV.getV35Max());
+ influxDBDataV.setV36(Objects.isNull(dataV.getV36Max())?0.0:dataV.getV36Max());
+ influxDBDataV.setV37(Objects.isNull(dataV.getV37Max())?0.0:dataV.getV37Max());
+ influxDBDataV.setV38(Objects.isNull(dataV.getV38Max())?0.0:dataV.getV38Max());
+ influxDBDataV.setV39(Objects.isNull(dataV.getV39Max())?0.0:dataV.getV39Max());
+ influxDBDataV.setV40(Objects.isNull(dataV.getV40Max())?0.0:dataV.getV40Max());
+ influxDBDataV.setV41(Objects.isNull(dataV.getV41Max())?0.0:dataV.getV41Max());
+ influxDBDataV.setV42(Objects.isNull(dataV.getV42Max())?0.0:dataV.getV42Max());
+ influxDBDataV.setV43(Objects.isNull(dataV.getV43Max())?0.0:dataV.getV43Max());
+ influxDBDataV.setV44(Objects.isNull(dataV.getV44Max())?0.0:dataV.getV44Max());
+ influxDBDataV.setV45(Objects.isNull(dataV.getV45Max())?0.0:dataV.getV45Max());
+ influxDBDataV.setV46(Objects.isNull(dataV.getV46Max())?0.0:dataV.getV46Max());
+ influxDBDataV.setV47(Objects.isNull(dataV.getV47Max())?0.0:dataV.getV47Max());
+ influxDBDataV.setV48(Objects.isNull(dataV.getV48Max())?0.0:dataV.getV48Max());
+ influxDBDataV.setV49(Objects.isNull(dataV.getV49Max())?0.0:dataV.getV49Max());
+ influxDBDataV.setV50(Objects.isNull(dataV.getV50Max())?0.0:dataV.getV50Max());
}
else if (valueType.equals("MIN")){
- influxDBDataV.setVNeg(Objects.isNull(dataV.getVNegMin())?0.0f:dataV.getVNegMin());
- influxDBDataV.setVPos(Objects.isNull(dataV.getVPosMin())?0.0f:dataV.getVPosMin());
- influxDBDataV.setVThd(Objects.isNull(dataV.getVThdMin())?0.0f:dataV.getVThdMin());
- influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalanceMin())?0.0f:dataV.getVUnbalanceMin());
- influxDBDataV.setVZero(Objects.isNull(dataV.getVZeroMin())?0.0f:dataV.getVZeroMin());
- influxDBDataV.setFreq(Objects.isNull(dataV.getFreqMin())?0.0f:dataV.getFreqMin());
- influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDevMin())?0.0f:dataV.getFreqDevMin());
- influxDBDataV.setRms(Objects.isNull(dataV.getRmsMin())?0.0f:dataV.getRmsMin());
- influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDevMin())?0.0f:dataV.getVlDevMin());
- influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDevMin())?0.0f:dataV.getVuDevMin());
+ influxDBDataV.setVNeg(Objects.isNull(dataV.getVNegMin())?0.0:dataV.getVNegMin());
+ influxDBDataV.setVPos(Objects.isNull(dataV.getVPosMin())?0.0:dataV.getVPosMin());
+ influxDBDataV.setVThd(Objects.isNull(dataV.getVThdMin())?0.0:dataV.getVThdMin());
+ influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalanceMin())?0.0:dataV.getVUnbalanceMin());
+ influxDBDataV.setVZero(Objects.isNull(dataV.getVZeroMin())?0.0:dataV.getVZeroMin());
+ influxDBDataV.setFreq(Objects.isNull(dataV.getFreqMin())?0.0:dataV.getFreqMin());
+ influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDevMin())?0.0:dataV.getFreqDevMin());
+ influxDBDataV.setRms(Objects.isNull(dataV.getRmsMin())?0.0:dataV.getRmsMin());
+ influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDevMin())?0.0:dataV.getVlDevMin());
+ influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDevMin())?0.0:dataV.getVuDevMin());
- influxDBDataV.setV1(Objects.isNull(dataV.getV1Min())?0.0f:dataV.getV1Min());
- influxDBDataV.setV2(Objects.isNull(dataV.getV2Min())?0.0f:dataV.getV2Min());
- influxDBDataV.setV3(Objects.isNull(dataV.getV3Min())?0.0f:dataV.getV3Min());
- influxDBDataV.setV4(Objects.isNull(dataV.getV4Min())?0.0f:dataV.getV4Min());
- influxDBDataV.setV5(Objects.isNull(dataV.getV5Min())?0.0f:dataV.getV5Min());
- influxDBDataV.setV6(Objects.isNull(dataV.getV6Min())?0.0f:dataV.getV6Min());
- influxDBDataV.setV7(Objects.isNull(dataV.getV7Min())?0.0f:dataV.getV7Min());
- influxDBDataV.setV8(Objects.isNull(dataV.getV8Min())?0.0f:dataV.getV8Min());
- influxDBDataV.setV9(Objects.isNull(dataV.getV9Min())?0.0f:dataV.getV9Min());
- influxDBDataV.setV10(Objects.isNull(dataV.getV10Min())?0.0f:dataV.getV10Min());
- influxDBDataV.setV11(Objects.isNull(dataV.getV11Min())?0.0f:dataV.getV11Min());
- influxDBDataV.setV12(Objects.isNull(dataV.getV12Min())?0.0f:dataV.getV12Min());
- influxDBDataV.setV13(Objects.isNull(dataV.getV13Min())?0.0f:dataV.getV13Min());
- influxDBDataV.setV14(Objects.isNull(dataV.getV14Min())?0.0f:dataV.getV14Min());
- influxDBDataV.setV15(Objects.isNull(dataV.getV15Min())?0.0f:dataV.getV15Min());
- influxDBDataV.setV16(Objects.isNull(dataV.getV16Min())?0.0f:dataV.getV16Min());
- influxDBDataV.setV17(Objects.isNull(dataV.getV17Min())?0.0f:dataV.getV17Min());
- influxDBDataV.setV18(Objects.isNull(dataV.getV18Min())?0.0f:dataV.getV18Min());
- influxDBDataV.setV19(Objects.isNull(dataV.getV19Min())?0.0f:dataV.getV19Min());
- influxDBDataV.setV20(Objects.isNull(dataV.getV20Min())?0.0f:dataV.getV20Min());
- influxDBDataV.setV21(Objects.isNull(dataV.getV21Min())?0.0f:dataV.getV21Min());
- influxDBDataV.setV22(Objects.isNull(dataV.getV22Min())?0.0f:dataV.getV22Min());
- influxDBDataV.setV23(Objects.isNull(dataV.getV23Min())?0.0f:dataV.getV23Min());
- influxDBDataV.setV24(Objects.isNull(dataV.getV24Min())?0.0f:dataV.getV24Min());
- influxDBDataV.setV25(Objects.isNull(dataV.getV25Min())?0.0f:dataV.getV25Min());
- influxDBDataV.setV26(Objects.isNull(dataV.getV26Min())?0.0f:dataV.getV26Min());
- influxDBDataV.setV27(Objects.isNull(dataV.getV27Min())?0.0f:dataV.getV27Min());
- influxDBDataV.setV28(Objects.isNull(dataV.getV28Min())?0.0f:dataV.getV28Min());
- influxDBDataV.setV29(Objects.isNull(dataV.getV29Min())?0.0f:dataV.getV29Min());
- influxDBDataV.setV30(Objects.isNull(dataV.getV30Min())?0.0f:dataV.getV30Min());
- influxDBDataV.setV31(Objects.isNull(dataV.getV31Min())?0.0f:dataV.getV31Min());
- influxDBDataV.setV32(Objects.isNull(dataV.getV32Min())?0.0f:dataV.getV32Min());
- influxDBDataV.setV33(Objects.isNull(dataV.getV33Min())?0.0f:dataV.getV33Min());
- influxDBDataV.setV34(Objects.isNull(dataV.getV34Min())?0.0f:dataV.getV34Min());
- influxDBDataV.setV35(Objects.isNull(dataV.getV35Min())?0.0f:dataV.getV35Min());
- influxDBDataV.setV36(Objects.isNull(dataV.getV36Min())?0.0f:dataV.getV36Min());
- influxDBDataV.setV37(Objects.isNull(dataV.getV37Min())?0.0f:dataV.getV37Min());
- influxDBDataV.setV38(Objects.isNull(dataV.getV38Min())?0.0f:dataV.getV38Min());
- influxDBDataV.setV39(Objects.isNull(dataV.getV39Min())?0.0f:dataV.getV39Min());
- influxDBDataV.setV40(Objects.isNull(dataV.getV40Min())?0.0f:dataV.getV40Min());
- influxDBDataV.setV41(Objects.isNull(dataV.getV41Min())?0.0f:dataV.getV41Min());
- influxDBDataV.setV42(Objects.isNull(dataV.getV42Min())?0.0f:dataV.getV42Min());
- influxDBDataV.setV43(Objects.isNull(dataV.getV43Min())?0.0f:dataV.getV43Min());
- influxDBDataV.setV44(Objects.isNull(dataV.getV44Min())?0.0f:dataV.getV44Min());
- influxDBDataV.setV45(Objects.isNull(dataV.getV45Min())?0.0f:dataV.getV45Min());
- influxDBDataV.setV46(Objects.isNull(dataV.getV46Min())?0.0f:dataV.getV46Min());
- influxDBDataV.setV47(Objects.isNull(dataV.getV47Min())?0.0f:dataV.getV47Min());
- influxDBDataV.setV48(Objects.isNull(dataV.getV48Min())?0.0f:dataV.getV48Min());
- influxDBDataV.setV49(Objects.isNull(dataV.getV49Min())?0.0f:dataV.getV49Min());
- influxDBDataV.setV50(Objects.isNull(dataV.getV50Min())?0.0f:dataV.getV50Min());
+ influxDBDataV.setV1(Objects.isNull(dataV.getV1Min())?0.0:dataV.getV1Min());
+ influxDBDataV.setV2(Objects.isNull(dataV.getV2Min())?0.0:dataV.getV2Min());
+ influxDBDataV.setV3(Objects.isNull(dataV.getV3Min())?0.0:dataV.getV3Min());
+ influxDBDataV.setV4(Objects.isNull(dataV.getV4Min())?0.0:dataV.getV4Min());
+ influxDBDataV.setV5(Objects.isNull(dataV.getV5Min())?0.0:dataV.getV5Min());
+ influxDBDataV.setV6(Objects.isNull(dataV.getV6Min())?0.0:dataV.getV6Min());
+ influxDBDataV.setV7(Objects.isNull(dataV.getV7Min())?0.0:dataV.getV7Min());
+ influxDBDataV.setV8(Objects.isNull(dataV.getV8Min())?0.0:dataV.getV8Min());
+ influxDBDataV.setV9(Objects.isNull(dataV.getV9Min())?0.0:dataV.getV9Min());
+ influxDBDataV.setV10(Objects.isNull(dataV.getV10Min())?0.0:dataV.getV10Min());
+ influxDBDataV.setV11(Objects.isNull(dataV.getV11Min())?0.0:dataV.getV11Min());
+ influxDBDataV.setV12(Objects.isNull(dataV.getV12Min())?0.0:dataV.getV12Min());
+ influxDBDataV.setV13(Objects.isNull(dataV.getV13Min())?0.0:dataV.getV13Min());
+ influxDBDataV.setV14(Objects.isNull(dataV.getV14Min())?0.0:dataV.getV14Min());
+ influxDBDataV.setV15(Objects.isNull(dataV.getV15Min())?0.0:dataV.getV15Min());
+ influxDBDataV.setV16(Objects.isNull(dataV.getV16Min())?0.0:dataV.getV16Min());
+ influxDBDataV.setV17(Objects.isNull(dataV.getV17Min())?0.0:dataV.getV17Min());
+ influxDBDataV.setV18(Objects.isNull(dataV.getV18Min())?0.0:dataV.getV18Min());
+ influxDBDataV.setV19(Objects.isNull(dataV.getV19Min())?0.0:dataV.getV19Min());
+ influxDBDataV.setV20(Objects.isNull(dataV.getV20Min())?0.0:dataV.getV20Min());
+ influxDBDataV.setV21(Objects.isNull(dataV.getV21Min())?0.0:dataV.getV21Min());
+ influxDBDataV.setV22(Objects.isNull(dataV.getV22Min())?0.0:dataV.getV22Min());
+ influxDBDataV.setV23(Objects.isNull(dataV.getV23Min())?0.0:dataV.getV23Min());
+ influxDBDataV.setV24(Objects.isNull(dataV.getV24Min())?0.0:dataV.getV24Min());
+ influxDBDataV.setV25(Objects.isNull(dataV.getV25Min())?0.0:dataV.getV25Min());
+ influxDBDataV.setV26(Objects.isNull(dataV.getV26Min())?0.0:dataV.getV26Min());
+ influxDBDataV.setV27(Objects.isNull(dataV.getV27Min())?0.0:dataV.getV27Min());
+ influxDBDataV.setV28(Objects.isNull(dataV.getV28Min())?0.0:dataV.getV28Min());
+ influxDBDataV.setV29(Objects.isNull(dataV.getV29Min())?0.0:dataV.getV29Min());
+ influxDBDataV.setV30(Objects.isNull(dataV.getV30Min())?0.0:dataV.getV30Min());
+ influxDBDataV.setV31(Objects.isNull(dataV.getV31Min())?0.0:dataV.getV31Min());
+ influxDBDataV.setV32(Objects.isNull(dataV.getV32Min())?0.0:dataV.getV32Min());
+ influxDBDataV.setV33(Objects.isNull(dataV.getV33Min())?0.0:dataV.getV33Min());
+ influxDBDataV.setV34(Objects.isNull(dataV.getV34Min())?0.0:dataV.getV34Min());
+ influxDBDataV.setV35(Objects.isNull(dataV.getV35Min())?0.0:dataV.getV35Min());
+ influxDBDataV.setV36(Objects.isNull(dataV.getV36Min())?0.0:dataV.getV36Min());
+ influxDBDataV.setV37(Objects.isNull(dataV.getV37Min())?0.0:dataV.getV37Min());
+ influxDBDataV.setV38(Objects.isNull(dataV.getV38Min())?0.0:dataV.getV38Min());
+ influxDBDataV.setV39(Objects.isNull(dataV.getV39Min())?0.0:dataV.getV39Min());
+ influxDBDataV.setV40(Objects.isNull(dataV.getV40Min())?0.0:dataV.getV40Min());
+ influxDBDataV.setV41(Objects.isNull(dataV.getV41Min())?0.0:dataV.getV41Min());
+ influxDBDataV.setV42(Objects.isNull(dataV.getV42Min())?0.0:dataV.getV42Min());
+ influxDBDataV.setV43(Objects.isNull(dataV.getV43Min())?0.0:dataV.getV43Min());
+ influxDBDataV.setV44(Objects.isNull(dataV.getV44Min())?0.0:dataV.getV44Min());
+ influxDBDataV.setV45(Objects.isNull(dataV.getV45Min())?0.0:dataV.getV45Min());
+ influxDBDataV.setV46(Objects.isNull(dataV.getV46Min())?0.0:dataV.getV46Min());
+ influxDBDataV.setV47(Objects.isNull(dataV.getV47Min())?0.0:dataV.getV47Min());
+ influxDBDataV.setV48(Objects.isNull(dataV.getV48Min())?0.0:dataV.getV48Min());
+ influxDBDataV.setV49(Objects.isNull(dataV.getV49Min())?0.0:dataV.getV49Min());
+ influxDBDataV.setV50(Objects.isNull(dataV.getV50Min())?0.0:dataV.getV50Min());
}
else if (valueType.equals("CP95")){
- influxDBDataV.setVNeg(Objects.isNull(dataV.getVNegCp95())?0.0f:dataV.getVNegCp95());
- influxDBDataV.setVPos(Objects.isNull(dataV.getVPosCp95())?0.0f:dataV.getVPosCp95());
- influxDBDataV.setVThd(Objects.isNull(dataV.getVThdCp95())?0.0f:dataV.getVThdCp95());
- influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalanceCp95())?0.0f:dataV.getVUnbalanceCp95());
- influxDBDataV.setVZero(Objects.isNull(dataV.getVZeroCp95())?0.0f:dataV.getVZeroCp95());
- influxDBDataV.setFreq(Objects.isNull(dataV.getFreqCp95())?0.0f:dataV.getFreqCp95());
- influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDevCp95())?0.0f:dataV.getFreqDevCp95());
- influxDBDataV.setRms(Objects.isNull(dataV.getRmsCp95())?0.0f:dataV.getRmsCp95());
- influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDevCp95())?0.0f:dataV.getVlDevCp95());
- influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDevCp95())?0.0f:dataV.getVuDevCp95());
+ influxDBDataV.setVNeg(Objects.isNull(dataV.getVNegCp95())?0.0:dataV.getVNegCp95());
+ influxDBDataV.setVPos(Objects.isNull(dataV.getVPosCp95())?0.0:dataV.getVPosCp95());
+ influxDBDataV.setVThd(Objects.isNull(dataV.getVThdCp95())?0.0:dataV.getVThdCp95());
+ influxDBDataV.setVUnbalance(Objects.isNull(dataV.getVUnbalanceCp95())?0.0:dataV.getVUnbalanceCp95());
+ influxDBDataV.setVZero(Objects.isNull(dataV.getVZeroCp95())?0.0:dataV.getVZeroCp95());
+ influxDBDataV.setFreq(Objects.isNull(dataV.getFreqCp95())?0.0:dataV.getFreqCp95());
+ influxDBDataV.setFreqDev(Objects.isNull(dataV.getFreqDevCp95())?0.0:dataV.getFreqDevCp95());
+ influxDBDataV.setRms(Objects.isNull(dataV.getRmsCp95())?0.0:dataV.getRmsCp95());
+ influxDBDataV.setVlDev(Objects.isNull(dataV.getVlDevCp95())?0.0:dataV.getVlDevCp95());
+ influxDBDataV.setVuDev(Objects.isNull(dataV.getVuDevCp95())?0.0:dataV.getVuDevCp95());
- influxDBDataV.setV1(Objects.isNull(dataV.getV1Cp95())?0.0f:dataV.getV1Cp95());
- influxDBDataV.setV2(Objects.isNull(dataV.getV2Cp95())?0.0f:dataV.getV2Cp95());
- influxDBDataV.setV3(Objects.isNull(dataV.getV3Cp95())?0.0f:dataV.getV3Cp95());
- influxDBDataV.setV4(Objects.isNull(dataV.getV4Cp95())?0.0f:dataV.getV4Cp95());
- influxDBDataV.setV5(Objects.isNull(dataV.getV5Cp95())?0.0f:dataV.getV5Cp95());
- influxDBDataV.setV6(Objects.isNull(dataV.getV6Cp95())?0.0f:dataV.getV6Cp95());
- influxDBDataV.setV7(Objects.isNull(dataV.getV7Cp95())?0.0f:dataV.getV7Cp95());
- influxDBDataV.setV8(Objects.isNull(dataV.getV8Cp95())?0.0f:dataV.getV8Cp95());
- influxDBDataV.setV9(Objects.isNull(dataV.getV9Cp95())?0.0f:dataV.getV9Cp95());
- influxDBDataV.setV10(Objects.isNull(dataV.getV10Cp95())?0.0f:dataV.getV10Cp95());
- influxDBDataV.setV11(Objects.isNull(dataV.getV11Cp95())?0.0f:dataV.getV11Cp95());
- influxDBDataV.setV12(Objects.isNull(dataV.getV12Cp95())?0.0f:dataV.getV12Cp95());
- influxDBDataV.setV13(Objects.isNull(dataV.getV13Cp95())?0.0f:dataV.getV13Cp95());
- influxDBDataV.setV14(Objects.isNull(dataV.getV14Cp95())?0.0f:dataV.getV14Cp95());
- influxDBDataV.setV15(Objects.isNull(dataV.getV15Cp95())?0.0f:dataV.getV15Cp95());
- influxDBDataV.setV16(Objects.isNull(dataV.getV16Cp95())?0.0f:dataV.getV16Cp95());
- influxDBDataV.setV17(Objects.isNull(dataV.getV17Cp95())?0.0f:dataV.getV17Cp95());
- influxDBDataV.setV18(Objects.isNull(dataV.getV18Cp95())?0.0f:dataV.getV18Cp95());
- influxDBDataV.setV19(Objects.isNull(dataV.getV19Cp95())?0.0f:dataV.getV19Cp95());
- influxDBDataV.setV20(Objects.isNull(dataV.getV20Cp95())?0.0f:dataV.getV20Cp95());
- influxDBDataV.setV21(Objects.isNull(dataV.getV21Cp95())?0.0f:dataV.getV21Cp95());
- influxDBDataV.setV22(Objects.isNull(dataV.getV22Cp95())?0.0f:dataV.getV22Cp95());
- influxDBDataV.setV23(Objects.isNull(dataV.getV23Cp95())?0.0f:dataV.getV23Cp95());
- influxDBDataV.setV24(Objects.isNull(dataV.getV24Cp95())?0.0f:dataV.getV24Cp95());
- influxDBDataV.setV25(Objects.isNull(dataV.getV25Cp95())?0.0f:dataV.getV25Cp95());
- influxDBDataV.setV26(Objects.isNull(dataV.getV26Cp95())?0.0f:dataV.getV26Cp95());
- influxDBDataV.setV27(Objects.isNull(dataV.getV27Cp95())?0.0f:dataV.getV27Cp95());
- influxDBDataV.setV28(Objects.isNull(dataV.getV28Cp95())?0.0f:dataV.getV28Cp95());
- influxDBDataV.setV29(Objects.isNull(dataV.getV29Cp95())?0.0f:dataV.getV29Cp95());
- influxDBDataV.setV30(Objects.isNull(dataV.getV30Cp95())?0.0f:dataV.getV30Cp95());
- influxDBDataV.setV31(Objects.isNull(dataV.getV31Cp95())?0.0f:dataV.getV31Cp95());
- influxDBDataV.setV32(Objects.isNull(dataV.getV32Cp95())?0.0f:dataV.getV32Cp95());
- influxDBDataV.setV33(Objects.isNull(dataV.getV33Cp95())?0.0f:dataV.getV33Cp95());
- influxDBDataV.setV34(Objects.isNull(dataV.getV34Cp95())?0.0f:dataV.getV34Cp95());
- influxDBDataV.setV35(Objects.isNull(dataV.getV35Cp95())?0.0f:dataV.getV35Cp95());
- influxDBDataV.setV36(Objects.isNull(dataV.getV36Cp95())?0.0f:dataV.getV36Cp95());
- influxDBDataV.setV37(Objects.isNull(dataV.getV37Cp95())?0.0f:dataV.getV37Cp95());
- influxDBDataV.setV38(Objects.isNull(dataV.getV38Cp95())?0.0f:dataV.getV38Cp95());
- influxDBDataV.setV39(Objects.isNull(dataV.getV39Cp95())?0.0f:dataV.getV39Cp95());
- influxDBDataV.setV40(Objects.isNull(dataV.getV40Cp95())?0.0f:dataV.getV40Cp95());
- influxDBDataV.setV41(Objects.isNull(dataV.getV41Cp95())?0.0f:dataV.getV41Cp95());
- influxDBDataV.setV42(Objects.isNull(dataV.getV42Cp95())?0.0f:dataV.getV42Cp95());
- influxDBDataV.setV43(Objects.isNull(dataV.getV43Cp95())?0.0f:dataV.getV43Cp95());
- influxDBDataV.setV44(Objects.isNull(dataV.getV44Cp95())?0.0f:dataV.getV44Cp95());
- influxDBDataV.setV45(Objects.isNull(dataV.getV45Cp95())?0.0f:dataV.getV45Cp95());
- influxDBDataV.setV46(Objects.isNull(dataV.getV46Cp95())?0.0f:dataV.getV46Cp95());
- influxDBDataV.setV47(Objects.isNull(dataV.getV47Cp95())?0.0f:dataV.getV47Cp95());
- influxDBDataV.setV48(Objects.isNull(dataV.getV48Cp95())?0.0f:dataV.getV48Cp95());
- influxDBDataV.setV49(Objects.isNull(dataV.getV49Cp95())?0.0f:dataV.getV49Cp95());
- influxDBDataV.setV50(Objects.isNull(dataV.getV50Cp95())?0.0f:dataV.getV50Cp95());
+ influxDBDataV.setV1(Objects.isNull(dataV.getV1Cp95())?0.0:dataV.getV1Cp95());
+ influxDBDataV.setV2(Objects.isNull(dataV.getV2Cp95())?0.0:dataV.getV2Cp95());
+ influxDBDataV.setV3(Objects.isNull(dataV.getV3Cp95())?0.0:dataV.getV3Cp95());
+ influxDBDataV.setV4(Objects.isNull(dataV.getV4Cp95())?0.0:dataV.getV4Cp95());
+ influxDBDataV.setV5(Objects.isNull(dataV.getV5Cp95())?0.0:dataV.getV5Cp95());
+ influxDBDataV.setV6(Objects.isNull(dataV.getV6Cp95())?0.0:dataV.getV6Cp95());
+ influxDBDataV.setV7(Objects.isNull(dataV.getV7Cp95())?0.0:dataV.getV7Cp95());
+ influxDBDataV.setV8(Objects.isNull(dataV.getV8Cp95())?0.0:dataV.getV8Cp95());
+ influxDBDataV.setV9(Objects.isNull(dataV.getV9Cp95())?0.0:dataV.getV9Cp95());
+ influxDBDataV.setV10(Objects.isNull(dataV.getV10Cp95())?0.0:dataV.getV10Cp95());
+ influxDBDataV.setV11(Objects.isNull(dataV.getV11Cp95())?0.0:dataV.getV11Cp95());
+ influxDBDataV.setV12(Objects.isNull(dataV.getV12Cp95())?0.0:dataV.getV12Cp95());
+ influxDBDataV.setV13(Objects.isNull(dataV.getV13Cp95())?0.0:dataV.getV13Cp95());
+ influxDBDataV.setV14(Objects.isNull(dataV.getV14Cp95())?0.0:dataV.getV14Cp95());
+ influxDBDataV.setV15(Objects.isNull(dataV.getV15Cp95())?0.0:dataV.getV15Cp95());
+ influxDBDataV.setV16(Objects.isNull(dataV.getV16Cp95())?0.0:dataV.getV16Cp95());
+ influxDBDataV.setV17(Objects.isNull(dataV.getV17Cp95())?0.0:dataV.getV17Cp95());
+ influxDBDataV.setV18(Objects.isNull(dataV.getV18Cp95())?0.0:dataV.getV18Cp95());
+ influxDBDataV.setV19(Objects.isNull(dataV.getV19Cp95())?0.0:dataV.getV19Cp95());
+ influxDBDataV.setV20(Objects.isNull(dataV.getV20Cp95())?0.0:dataV.getV20Cp95());
+ influxDBDataV.setV21(Objects.isNull(dataV.getV21Cp95())?0.0:dataV.getV21Cp95());
+ influxDBDataV.setV22(Objects.isNull(dataV.getV22Cp95())?0.0:dataV.getV22Cp95());
+ influxDBDataV.setV23(Objects.isNull(dataV.getV23Cp95())?0.0:dataV.getV23Cp95());
+ influxDBDataV.setV24(Objects.isNull(dataV.getV24Cp95())?0.0:dataV.getV24Cp95());
+ influxDBDataV.setV25(Objects.isNull(dataV.getV25Cp95())?0.0:dataV.getV25Cp95());
+ influxDBDataV.setV26(Objects.isNull(dataV.getV26Cp95())?0.0:dataV.getV26Cp95());
+ influxDBDataV.setV27(Objects.isNull(dataV.getV27Cp95())?0.0:dataV.getV27Cp95());
+ influxDBDataV.setV28(Objects.isNull(dataV.getV28Cp95())?0.0:dataV.getV28Cp95());
+ influxDBDataV.setV29(Objects.isNull(dataV.getV29Cp95())?0.0:dataV.getV29Cp95());
+ influxDBDataV.setV30(Objects.isNull(dataV.getV30Cp95())?0.0:dataV.getV30Cp95());
+ influxDBDataV.setV31(Objects.isNull(dataV.getV31Cp95())?0.0:dataV.getV31Cp95());
+ influxDBDataV.setV32(Objects.isNull(dataV.getV32Cp95())?0.0:dataV.getV32Cp95());
+ influxDBDataV.setV33(Objects.isNull(dataV.getV33Cp95())?0.0:dataV.getV33Cp95());
+ influxDBDataV.setV34(Objects.isNull(dataV.getV34Cp95())?0.0:dataV.getV34Cp95());
+ influxDBDataV.setV35(Objects.isNull(dataV.getV35Cp95())?0.0:dataV.getV35Cp95());
+ influxDBDataV.setV36(Objects.isNull(dataV.getV36Cp95())?0.0:dataV.getV36Cp95());
+ influxDBDataV.setV37(Objects.isNull(dataV.getV37Cp95())?0.0:dataV.getV37Cp95());
+ influxDBDataV.setV38(Objects.isNull(dataV.getV38Cp95())?0.0:dataV.getV38Cp95());
+ influxDBDataV.setV39(Objects.isNull(dataV.getV39Cp95())?0.0:dataV.getV39Cp95());
+ influxDBDataV.setV40(Objects.isNull(dataV.getV40Cp95())?0.0:dataV.getV40Cp95());
+ influxDBDataV.setV41(Objects.isNull(dataV.getV41Cp95())?0.0:dataV.getV41Cp95());
+ influxDBDataV.setV42(Objects.isNull(dataV.getV42Cp95())?0.0:dataV.getV42Cp95());
+ influxDBDataV.setV43(Objects.isNull(dataV.getV43Cp95())?0.0:dataV.getV43Cp95());
+ influxDBDataV.setV44(Objects.isNull(dataV.getV44Cp95())?0.0:dataV.getV44Cp95());
+ influxDBDataV.setV45(Objects.isNull(dataV.getV45Cp95())?0.0:dataV.getV45Cp95());
+ influxDBDataV.setV46(Objects.isNull(dataV.getV46Cp95())?0.0:dataV.getV46Cp95());
+ influxDBDataV.setV47(Objects.isNull(dataV.getV47Cp95())?0.0:dataV.getV47Cp95());
+ influxDBDataV.setV48(Objects.isNull(dataV.getV48Cp95())?0.0:dataV.getV48Cp95());
+ influxDBDataV.setV49(Objects.isNull(dataV.getV49Cp95())?0.0:dataV.getV49Cp95());
+ influxDBDataV.setV50(Objects.isNull(dataV.getV50Cp95())?0.0:dataV.getV50Cp95());
}
diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/CommonMinuteDto.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/CommonMinuteDto.java
new file mode 100644
index 0000000..9b27351
--- /dev/null
+++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/CommonMinuteDto.java
@@ -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 phasicTypeList;
+
+ @Data
+ public static class PhasicType {
+
+ @ApiModelProperty("相别,'A'表示A相,'B'表示B相,'C'表示C相,'T'表示总, 'M'表示无相别")
+ private String phasicType;
+
+ private List valueTypeList;
+ }
+
+
+ @Data
+ public static class ValueType {
+
+ @ApiModelProperty("数据类型 最大值:max、最小值:min、平均值:avg、95值:cp95")
+ private String valueType;
+
+ @ApiModelProperty("数据集合")
+ private List> valueList;
+ }
+}
diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/DataVDto.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/DataVDto.java
new file mode 100644
index 0000000..83f8b12
--- /dev/null
+++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/DataVDto.java
@@ -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;
+
+}
diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/po/RStatDataVD.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/po/RStatDataVD.java
new file mode 100644
index 0000000..ca7e240
--- /dev/null
+++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/po/RStatDataVD.java
@@ -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;
+
+}
diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/util/TimeUtils.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/util/TimeUtils.java
new file mode 100644
index 0000000..fb859b4
--- /dev/null
+++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/util/TimeUtils.java
@@ -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);
+ }
+
+}
diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataVController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataVController.java
index c4dd39a..e34706b 100644
--- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataVController.java
+++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataVController.java
@@ -11,6 +11,8 @@ import com.njcn.dataProcess.dto.DataVFiveItemDTO;
import com.njcn.dataProcess.annotation.InsertBean;
import com.njcn.dataProcess.annotation.QueryBean;
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.web.controller.BaseController;
import io.swagger.annotations.Api;
@@ -73,9 +75,23 @@ public class DataVController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, localDateTimeList, methodDescribe);
}
+ @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY)
+ @PostMapping("/getBaseData")
+ @ApiOperation("获取算法基础数据")
+ public HttpResult> getBaseData(@RequestBody LineCountEvaluateParam lineParam) {
+ String methodDescribe = getMethodDescribe("getBaseData");
+ List data = dataVQuery.getBaseData(lineParam);
+ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe);
+ }
-
-
+ @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
+ @PostMapping("/addList")
+ @ApiOperation("批量插入数据")
+ public HttpResult addList(@RequestBody List dataVDtoList) {
+ String methodDescribe = getMethodDescribe("addList");
+ dataVInsert.addList(dataVDtoList);
+ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "", methodDescribe);
+ }
}
diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/relation/mapper/RStatDataVRelationMapper.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/relation/mapper/RStatDataVRelationMapper.java
new file mode 100644
index 0000000..b8cc817
--- /dev/null
+++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/relation/mapper/RStatDataVRelationMapper.java
@@ -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;
+
+
+/**
+ *
+ * Mapper 接口
+ *
+ */
+public interface RStatDataVRelationMapper extends MppBaseMapper {
+
+
+
+}
diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataV.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataV.java
index 603f475..d221373 100644
--- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataV.java
+++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataV.java
@@ -1,8 +1,12 @@
package com.njcn.dataProcess.service;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.dataProcess.dto.DataVDTO;
import com.njcn.dataProcess.dto.DataVFiveItemDTO;
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.util.List;
@@ -13,7 +17,7 @@ import java.util.Map;
* @version 1.0
* @data 2024/11/7 10:54
*/
-public interface IDataV {
+public interface IDataV extends IMppService {
/**
* 根据监测点时间范围获取监测点统计数据
@@ -25,4 +29,15 @@ public interface IDataV {
void batchInsertion(List dataVDTOList );
List monitoringTime(String lineId, String localData);
+
+ /**
+ * 获取监测点原始数据
+ * @param lineParam 监测点参数
+ */
+ List getBaseData(LineCountEvaluateParam lineParam);
+
+ /**
+ * 批量插入数据
+ */
+ void addList(List dataVDtoList);
}
diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataVImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataVImpl.java
index 8c59681..dc54f33 100644
--- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataVImpl.java
+++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataVImpl.java
@@ -3,8 +3,11 @@ package com.njcn.dataProcess.service.impl.influxdb;
import cn.hutool.core.collection.CollectionUtil;
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.PhaseType;
+import com.njcn.dataProcess.dao.relation.mapper.RStatDataVRelationMapper;
import com.njcn.dataProcess.dto.DataVDTO;
import com.njcn.dataProcess.dto.DataVFiveItemDTO;
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.param.LineCountEvaluateParam;
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.util.TimeUtils;
+import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.query.InfluxQueryWrapper;
import org.apache.commons.collections4.ListUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -31,7 +36,7 @@ import java.util.stream.Collectors;
* @data 2024/11/7 11:02
*/
@Service("InfluxdbDataVImpl")
-public class InfluxdbDataVImpl implements IDataV {
+public class InfluxdbDataVImpl extends MppServiceImpl implements IDataV {
@Resource
private DataVMapper dataVMapper;
@@ -108,4 +113,143 @@ public class InfluxdbDataVImpl implements IDataV {
return null;
}
+ @Override
+ public List getBaseData(LineCountEvaluateParam lineParam) {
+ List result = new ArrayList<>();
+ List dataVList = getMinuteDataV(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime());
+ if (CollectionUtil.isNotEmpty(dataVList)) {
+ String time = TimeUtils.StringTimeToString(lineParam.getStartTime());
+ //以监测点分组
+ Map> lineMap = dataVList.stream().collect(Collectors.groupingBy(DataV::getLineId));
+ lineMap.forEach((line,lineList)->{
+ CommonMinuteDto dto = new CommonMinuteDto();
+ dto.setLineId(line);
+ dto.setTime(time);
+ //以相别分组
+ Map> phasicTypeMap = lineList.stream().collect(Collectors.groupingBy(DataV::getPhasicType));
+ List phasicTypes = new ArrayList<>();
+ phasicTypeMap.forEach((phasicType,phasicTypeList)->{
+ CommonMinuteDto.PhasicType type = new CommonMinuteDto.PhasicType();
+ type.setPhasicType(phasicType);
+ //以数据类型分组
+ Map> valueTypeMap = phasicTypeList.stream().collect(Collectors.groupingBy(DataV::getValueType));
+ List valueTypes = new ArrayList<>();
+ valueTypeMap.forEach((valueType,valueTypeList)->{
+ CommonMinuteDto.ValueType value = new CommonMinuteDto.ValueType();
+ value.setValueType(valueType);
+ //todo 规定好集合指标参数
+ List data1 = valueTypeList.stream().map(DataV::getFreq).collect(Collectors.toList());
+ List data2 = valueTypeList.stream().map(DataV::getFreqDev).collect(Collectors.toList());
+ List data3 = valueTypeList.stream().map(DataV::getRms).collect(Collectors.toList());
+ List data4 = valueTypeList.stream().map(DataV::getRmsLvr).collect(Collectors.toList());
+ List data5 = valueTypeList.stream().map(DataV::getVNeg).collect(Collectors.toList());
+ List data6 = valueTypeList.stream().map(DataV::getVPos).collect(Collectors.toList());
+ List data7 = valueTypeList.stream().map(DataV::getVThd).collect(Collectors.toList());
+ List data8 = valueTypeList.stream().map(DataV::getVUnbalance).collect(Collectors.toList());
+ List data9 = valueTypeList.stream().map(DataV::getVZero).collect(Collectors.toList());
+ List data10 = valueTypeList.stream().map(DataV::getVlDev).collect(Collectors.toList());
+ List data11 = valueTypeList.stream().map(DataV::getVuDev).collect(Collectors.toList());
+
+ List data12 = valueTypeList.stream().map(DataV::getV1).collect(Collectors.toList());
+ List data13 = valueTypeList.stream().map(DataV::getV2).collect(Collectors.toList());
+ List data14 = valueTypeList.stream().map(DataV::getV3).collect(Collectors.toList());
+ List data15 = valueTypeList.stream().map(DataV::getV4).collect(Collectors.toList());
+ List data16 = valueTypeList.stream().map(DataV::getV5).collect(Collectors.toList());
+ List data17 = valueTypeList.stream().map(DataV::getV6).collect(Collectors.toList());
+ List data18 = valueTypeList.stream().map(DataV::getV7).collect(Collectors.toList());
+ List data19 = valueTypeList.stream().map(DataV::getV8).collect(Collectors.toList());
+ List data20 = valueTypeList.stream().map(DataV::getV9).collect(Collectors.toList());
+ List data21 = valueTypeList.stream().map(DataV::getV10).collect(Collectors.toList());
+ List data22 = valueTypeList.stream().map(DataV::getV11).collect(Collectors.toList());
+ List data23 = valueTypeList.stream().map(DataV::getV12).collect(Collectors.toList());
+ List data24 = valueTypeList.stream().map(DataV::getV13).collect(Collectors.toList());
+ List data25 = valueTypeList.stream().map(DataV::getV14).collect(Collectors.toList());
+ List data26 = valueTypeList.stream().map(DataV::getV15).collect(Collectors.toList());
+ List data27 = valueTypeList.stream().map(DataV::getV16).collect(Collectors.toList());
+ List data28 = valueTypeList.stream().map(DataV::getV17).collect(Collectors.toList());
+ List data29 = valueTypeList.stream().map(DataV::getV18).collect(Collectors.toList());
+ List data30 = valueTypeList.stream().map(DataV::getV19).collect(Collectors.toList());
+ List data31 = valueTypeList.stream().map(DataV::getV20).collect(Collectors.toList());
+ List data32 = valueTypeList.stream().map(DataV::getV21).collect(Collectors.toList());
+ List data33 = valueTypeList.stream().map(DataV::getV22).collect(Collectors.toList());
+ List data34 = valueTypeList.stream().map(DataV::getV23).collect(Collectors.toList());
+ List data35 = valueTypeList.stream().map(DataV::getV24).collect(Collectors.toList());
+ List data36 = valueTypeList.stream().map(DataV::getV25).collect(Collectors.toList());
+ List data37 = valueTypeList.stream().map(DataV::getV26).collect(Collectors.toList());
+ List data38 = valueTypeList.stream().map(DataV::getV27).collect(Collectors.toList());
+ List data39 = valueTypeList.stream().map(DataV::getV28).collect(Collectors.toList());
+ List data40 = valueTypeList.stream().map(DataV::getV29).collect(Collectors.toList());
+ List data41 = valueTypeList.stream().map(DataV::getV30).collect(Collectors.toList());
+ List data42 = valueTypeList.stream().map(DataV::getV31).collect(Collectors.toList());
+ List data43 = valueTypeList.stream().map(DataV::getV32).collect(Collectors.toList());
+ List data44 = valueTypeList.stream().map(DataV::getV33).collect(Collectors.toList());
+ List data45 = valueTypeList.stream().map(DataV::getV34).collect(Collectors.toList());
+ List data46 = valueTypeList.stream().map(DataV::getV35).collect(Collectors.toList());
+ List data47 = valueTypeList.stream().map(DataV::getV36).collect(Collectors.toList());
+ List data48 = valueTypeList.stream().map(DataV::getV37).collect(Collectors.toList());
+ List data49 = valueTypeList.stream().map(DataV::getV38).collect(Collectors.toList());
+ List data50 = valueTypeList.stream().map(DataV::getV39).collect(Collectors.toList());
+ List data51 = valueTypeList.stream().map(DataV::getV40).collect(Collectors.toList());
+ List data52 = valueTypeList.stream().map(DataV::getV41).collect(Collectors.toList());
+ List data53 = valueTypeList.stream().map(DataV::getV42).collect(Collectors.toList());
+ List data54 = valueTypeList.stream().map(DataV::getV43).collect(Collectors.toList());
+ List data55 = valueTypeList.stream().map(DataV::getV44).collect(Collectors.toList());
+ List data56 = valueTypeList.stream().map(DataV::getV45).collect(Collectors.toList());
+ List data57 = valueTypeList.stream().map(DataV::getV46).collect(Collectors.toList());
+ List data58 = valueTypeList.stream().map(DataV::getV47).collect(Collectors.toList());
+ List data59 = valueTypeList.stream().map(DataV::getV48).collect(Collectors.toList());
+ List data60 = valueTypeList.stream().map(DataV::getV49).collect(Collectors.toList());
+ List data61 = valueTypeList.stream().map(DataV::getV50).collect(Collectors.toList());
+
+ List> 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 dataVDtoList) {
+
+ }
+
+ /**
+ * 按监测点集合、时间条件获取dataV分钟数据
+ */
+ public List getMinuteDataV(List 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);
+ }
+
}
diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataVImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataVImpl.java
index dc956f8..d3232b4 100644
--- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataVImpl.java
+++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataVImpl.java
@@ -1,14 +1,20 @@
package com.njcn.dataProcess.service.impl.relation;
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.DataVFiveItemDTO;
import com.njcn.dataProcess.dao.relation.mapper.DataVRelationMapper;
import com.njcn.dataProcess.param.LineCountEvaluateParam;
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.util.BeanFeildUtils;
+import com.njcn.dataProcess.util.TimeUtils;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.ListUtils;
import org.springframework.beans.BeanUtils;
@@ -16,6 +22,8 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -27,9 +35,11 @@ import java.util.stream.Collectors;
*/
@Service("RelationDataVImpl")
@RequiredArgsConstructor
-public class RelationDataVImpl implements IDataV {
+public class RelationDataVImpl extends MppServiceImpl implements IDataV {
@Resource
private DataVRelationMapper dataVRelationMapper;
+ @Resource
+ private IDataV iDataV;
@Override
public Map> getLineCountEvaluate(LineCountEvaluateParam lineParam) {
@@ -73,4 +83,22 @@ public class RelationDataVImpl implements IDataV {
List result = dataVS.stream().map(DataV::getTimeid).distinct().collect(Collectors.toList());
return result;
}
+
+ @Override
+ public List getBaseData(LineCountEvaluateParam lineParam) {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public void addList(List dataVDtoList) {
+ List 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);
+ }
}
diff --git a/data-processing/data-processing-boot/src/main/resources/bootstrap.yml b/data-processing/data-processing-boot/src/main/resources/bootstrap.yml
index dda6359..66cce69 100644
--- a/data-processing/data-processing-boot/src/main/resources/bootstrap.yml
+++ b/data-processing/data-processing-boot/src/main/resources/bootstrap.yml
@@ -54,7 +54,7 @@ mqtt:
data:
source:
- query: Relation
+ query: Influxdb
insert: Relation
#mybatis配置信息
mybatis-plus: