Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e49dee8263 | ||
|
|
e126a3f800 | ||
|
|
f09409c553 | ||
|
|
63f20da451 | ||
| 1043097a11 | |||
| 713db187c5 | |||
| 6b21e9927a | |||
|
|
c5cb96e8d6 | ||
|
|
76f9c9cb10 | ||
| 386fd1ed1e | |||
| d8d516f63d | |||
|
|
074c020b10 | ||
|
|
af781010f6 | ||
| ca0dd1eea0 | |||
|
|
76deaeee71 | ||
|
|
6a6f7c2f77 | ||
|
|
b0972ba896 | ||
|
|
5afb860467 | ||
|
|
2624d7d495 |
@@ -6,6 +6,7 @@ import org.springframework.boot.SpringApplication;
|
|||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||||
import org.springframework.context.annotation.DependsOn;
|
import org.springframework.context.annotation.DependsOn;
|
||||||
|
import org.springframework.scheduling.annotation.EnableAsync;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -16,6 +17,7 @@ import org.springframework.context.annotation.DependsOn;
|
|||||||
@SpringBootApplication(scanBasePackages = "com.njcn")
|
@SpringBootApplication(scanBasePackages = "com.njcn")
|
||||||
@MapperScan("com.njcn.**.mapper")
|
@MapperScan("com.njcn.**.mapper")
|
||||||
@DependsOn("proxyMapperRegister")
|
@DependsOn("proxyMapperRegister")
|
||||||
|
@EnableAsync
|
||||||
public class AlgorithmBootApplication {
|
public class AlgorithmBootApplication {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|||||||
@@ -6,13 +6,12 @@ import cn.hutool.core.date.DatePattern;
|
|||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUnit;
|
import cn.hutool.core.date.DateUnit;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.text.StrPool;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.njcn.algorithm.pojo.bo.BaseParam;
|
import com.njcn.algorithm.pojo.bo.BaseParam;
|
||||||
import com.njcn.algorithm.pojo.bo.CalculatedParam;
|
import com.njcn.algorithm.pojo.bo.CalculatedParam;
|
||||||
import com.njcn.algorithm.pojo.bo.HourParam;
|
import com.njcn.algorithm.pojo.bo.HourParam;
|
||||||
import com.njcn.algorithm.pojo.enums.PrepareResponseEnum;
|
import com.njcn.algorithm.pojo.enums.PrepareResponseEnum;
|
||||||
import com.njcn.algorithm.utils.MemorySizeUtil;
|
import com.njcn.algorithm.service.line.FlowAsyncService;
|
||||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
import com.njcn.common.pojo.exception.BusinessException;
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
@@ -29,7 +28,6 @@ import com.njcn.user.pojo.po.Dept;
|
|||||||
import com.njcn.web.controller.BaseController;
|
import com.njcn.web.controller.BaseController;
|
||||||
import com.yomahub.liteflow.core.FlowExecutor;
|
import com.yomahub.liteflow.core.FlowExecutor;
|
||||||
import com.yomahub.liteflow.flow.LiteflowResponse;
|
import com.yomahub.liteflow.flow.LiteflowResponse;
|
||||||
import com.yomahub.liteflow.flow.entity.CmpStep;
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -46,6 +44,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import static com.njcn.algorithm.utils.MemorySizeUtil.dealResponse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author hongawen
|
* @author hongawen
|
||||||
@@ -71,6 +70,8 @@ public class ExecutionCenter extends BaseController {
|
|||||||
private DeptLineFeignClient deptLineFeignClient;
|
private DeptLineFeignClient deptLineFeignClient;
|
||||||
@Resource
|
@Resource
|
||||||
private CsLineFeignClient csLineFeignClient;
|
private CsLineFeignClient csLineFeignClient;
|
||||||
|
@Resource
|
||||||
|
private FlowAsyncService flowService;
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* 1、校验非全链执行时,tagNames节点标签集合必须为非空,否则提示---无可执行节点
|
* 1、校验非全链执行时,tagNames节点标签集合必须为非空,否则提示---无可执行节点
|
||||||
@@ -95,41 +96,6 @@ public class ExecutionCenter extends BaseController {
|
|||||||
return calculatedParam;
|
return calculatedParam;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***
|
|
||||||
*
|
|
||||||
* @author hongawen
|
|
||||||
* @date 2023/11/7 14:44
|
|
||||||
*/
|
|
||||||
private void dealResponse(CalculatedParam calculatedParam, LiteflowResponse liteflowResponse, String methodDescribe) {
|
|
||||||
MemorySizeUtil.getNowMemory();
|
|
||||||
if (liteflowResponse.isSuccess()) {
|
|
||||||
// 获取执行步骤列表
|
|
||||||
long allTime = 0;
|
|
||||||
Map<String, List<CmpStep>> executeSteps = liteflowResponse.getExecuteSteps();
|
|
||||||
for (String key : executeSteps.keySet()) {
|
|
||||||
List<CmpStep> cmpSteps = executeSteps.get(key);
|
|
||||||
long timeSum = cmpSteps.stream().mapToLong(CmpStep::getTimeSpent).sum();
|
|
||||||
allTime+=timeSum;
|
|
||||||
}
|
|
||||||
logger.info("日期{},{}执行{}成功,执行总时长{}分钟", calculatedParam.getDataDate(), methodDescribe, calculatedParam.isFullChain() ? "全链" : "指定节点:".concat(String.join(StrPool.COMMA, calculatedParam.getTagNames())),allTime/1000/60);
|
|
||||||
} else {
|
|
||||||
Map<String, List<CmpStep>> executeSteps = liteflowResponse.getExecuteSteps();
|
|
||||||
CmpStep failStep = null;
|
|
||||||
for (String key : executeSteps.keySet()) {
|
|
||||||
List<CmpStep> cmpSteps = executeSteps.get(key);
|
|
||||||
cmpSteps = cmpSteps.stream().filter(cmpStep -> !cmpStep.isSuccess()).collect(Collectors.toList());
|
|
||||||
if (CollectionUtil.isNotEmpty(cmpSteps)) {
|
|
||||||
failStep = cmpSteps.get(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
logger.error("日期{},{}执行{}失败,在执行{}失败,失败原因:{}"
|
|
||||||
, calculatedParam.getDataDate()
|
|
||||||
, methodDescribe
|
|
||||||
, calculatedParam.isFullChain() ? "全链" : "指定节点:".concat(String.join(StrPool.COMMA, calculatedParam.getTagNames()))
|
|
||||||
, failStep.getNodeId().concat(Objects.isNull(failStep.getTag()) ? "" : StrPool.DASHED.concat(failStep.getTag()))
|
|
||||||
, Objects.isNull(failStep.getException()) ? null : failStep.getException().getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@@ -151,13 +117,13 @@ public class ExecutionCenter extends BaseController {
|
|||||||
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
|
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
|
||||||
long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
|
long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
|
||||||
//递增日期执行算法链
|
//递增日期执行算法链
|
||||||
for (int i = 0; i < betweenDay; i++) {
|
for (int i = 0; i <= betweenDay; i++) {
|
||||||
if (i != 0) {
|
if (i != 0) {
|
||||||
startDate = DateUtil.offsetDay(startDate, 1);
|
startDate = DateUtil.offsetDay(startDate, 1);
|
||||||
}
|
}
|
||||||
calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
|
calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
|
||||||
liteflowResponse = flowExecutor.execute2Resp("measurement_point", calculatedParam);
|
CalculatedParam repairParam = BeanUtil.copyProperties(calculatedParam, CalculatedParam.class);
|
||||||
dealResponse(calculatedParam, liteflowResponse, methodDescribe);
|
flowService.execute2Resp(methodDescribe, repairParam);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//非补招
|
//非补招
|
||||||
@@ -185,11 +151,12 @@ public class ExecutionCenter extends BaseController {
|
|||||||
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
|
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
|
||||||
long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
|
long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
|
||||||
//递增日期执行算法链
|
//递增日期执行算法链
|
||||||
for (int i = 0; i < betweenDay; i++) {
|
for (int i = 0; i <= betweenDay; i++) {
|
||||||
if (i != 0) {
|
if (i != 0) {
|
||||||
startDate = DateUtil.offsetDay(startDate, 1);
|
startDate = DateUtil.offsetDay(startDate, 1);
|
||||||
}
|
}
|
||||||
calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
|
calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN));
|
||||||
|
calculatedParam.setType(2);
|
||||||
liteflowResponse = flowExecutor.execute2Resp("wl_measurement_point", calculatedParam);
|
liteflowResponse = flowExecutor.execute2Resp("wl_measurement_point", calculatedParam);
|
||||||
dealResponse(calculatedParam, liteflowResponse, methodDescribe);
|
dealResponse(calculatedParam, liteflowResponse, methodDescribe);
|
||||||
}
|
}
|
||||||
@@ -219,7 +186,7 @@ public class ExecutionCenter extends BaseController {
|
|||||||
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
|
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
|
||||||
long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
|
long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
|
||||||
//递增日期执行算法链
|
//递增日期执行算法链
|
||||||
for (int i = 0; i < betweenDay; i++) {
|
for (int i = 0; i <= betweenDay; i++) {
|
||||||
if (i != 0) {
|
if (i != 0) {
|
||||||
startDate = DateUtil.offsetDay(startDate, 1);
|
startDate = DateUtil.offsetDay(startDate, 1);
|
||||||
}
|
}
|
||||||
@@ -262,7 +229,7 @@ public class ExecutionCenter extends BaseController {
|
|||||||
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATETIME_FORMAT);
|
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATETIME_FORMAT);
|
||||||
long betweenHour = DateUtil.between(startDate, endDate, DateUnit.HOUR);
|
long betweenHour = DateUtil.between(startDate, endDate, DateUnit.HOUR);
|
||||||
//递增日期执行算法链
|
//递增日期执行算法链
|
||||||
for (int i = 0; i < betweenHour; i++) {
|
for (int i = 0; i <= betweenHour; i++) {
|
||||||
if (i != 0) {
|
if (i != 0) {
|
||||||
startDate = DateUtil.offsetHour(startDate, 1);
|
startDate = DateUtil.offsetHour(startDate, 1);
|
||||||
}
|
}
|
||||||
@@ -304,7 +271,7 @@ public class ExecutionCenter extends BaseController {
|
|||||||
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
|
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
|
||||||
long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
|
long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
|
||||||
//递增日期执行算法链
|
//递增日期执行算法链
|
||||||
for (int i = 0; i < betweenDay; i++) {
|
for (int i = 0; i <= betweenDay; i++) {
|
||||||
if (i != 0) {
|
if (i != 0) {
|
||||||
startDate = DateUtil.offsetDay(startDate, 1);
|
startDate = DateUtil.offsetDay(startDate, 1);
|
||||||
}
|
}
|
||||||
@@ -343,7 +310,7 @@ public class ExecutionCenter extends BaseController {
|
|||||||
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
|
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
|
||||||
long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
|
long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
|
||||||
//递增日期执行算法链
|
//递增日期执行算法链
|
||||||
for (int i = 0; i < betweenDay; i++) {
|
for (int i = 0; i <= betweenDay; i++) {
|
||||||
if (i != 0) {
|
if (i != 0) {
|
||||||
startDate = DateUtil.offsetDay(startDate, 1);
|
startDate = DateUtil.offsetDay(startDate, 1);
|
||||||
}
|
}
|
||||||
@@ -431,7 +398,7 @@ public class ExecutionCenter extends BaseController {
|
|||||||
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
|
DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT);
|
||||||
long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
|
long betweenDay = DateUtil.betweenDay(startDate, endDate, true);
|
||||||
//递增日期执行算法链
|
//递增日期执行算法链
|
||||||
for (int i = 0; i < betweenDay; i++) {
|
for (int i = 0; i <= betweenDay; i++) {
|
||||||
if (i != 0) {
|
if (i != 0) {
|
||||||
startDate = DateUtil.offsetDay(startDate, 1);
|
startDate = DateUtil.offsetDay(startDate, 1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package com.njcn.algorithm.service.line;
|
||||||
|
|
||||||
|
import com.njcn.algorithm.pojo.bo.CalculatedParam;
|
||||||
|
import com.njcn.dataProcess.pojo.dto.PqReasonableRangeDto;
|
||||||
|
import com.njcn.device.pq.pojo.vo.LineDetailVO;
|
||||||
|
import com.njcn.system.pojo.po.DictData;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public interface FlowAsyncService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 算法多线程执行
|
||||||
|
* @param methodDescribe
|
||||||
|
* @param calculatedParam
|
||||||
|
* @Author: wr
|
||||||
|
* @Date: 2025/12/17 9:25
|
||||||
|
*/
|
||||||
|
void execute2Resp(String methodDescribe,CalculatedParam calculatedParam);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 多线程数据清洗方法
|
||||||
|
* @param line
|
||||||
|
* @param map
|
||||||
|
* @param dataDate
|
||||||
|
* @param dip
|
||||||
|
* @param rise
|
||||||
|
* @param size
|
||||||
|
* @param i
|
||||||
|
* @Author: wr
|
||||||
|
* @Date: 2025/12/17 10:48
|
||||||
|
*/
|
||||||
|
void lineDataClean(LineDetailVO.Detail line,
|
||||||
|
Map<String, List<PqReasonableRangeDto>> map,
|
||||||
|
String dataDate,
|
||||||
|
DictData dip,
|
||||||
|
DictData rise,
|
||||||
|
int size,
|
||||||
|
int i
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,6 +2,8 @@ package com.njcn.algorithm.service.line;
|
|||||||
|
|
||||||
import com.njcn.algorithm.pojo.bo.CalculatedParam;
|
import com.njcn.algorithm.pojo.bo.CalculatedParam;
|
||||||
|
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author xy
|
* @author xy
|
||||||
*/
|
*/
|
||||||
@@ -92,4 +94,5 @@ public interface IDataCleanService {
|
|||||||
* @param calculatedParam 查询条件
|
* @param calculatedParam 查询条件
|
||||||
*/
|
*/
|
||||||
void dataFlickerCleanHandler(CalculatedParam calculatedParam);
|
void dataFlickerCleanHandler(CalculatedParam calculatedParam);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.njcn.algorithm.service.line;
|
||||||
|
|
||||||
|
import com.njcn.device.biz.pojo.po.Overlimit;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public interface IDataLimitRateAsync {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* limit_rate多线程算法
|
||||||
|
* @param dataDate
|
||||||
|
* @param list
|
||||||
|
* @param phase
|
||||||
|
* @param overLimitMap
|
||||||
|
* @param size
|
||||||
|
* @param i
|
||||||
|
* @Author: wr
|
||||||
|
* @Date: 2025/12/17 12:16
|
||||||
|
*/
|
||||||
|
void lineDataRate(String dataDate,
|
||||||
|
List<String> list,
|
||||||
|
List<String> phase,
|
||||||
|
Map<String, Overlimit> overLimitMap,
|
||||||
|
int size,
|
||||||
|
int i);
|
||||||
|
}
|
||||||
@@ -1,30 +1,27 @@
|
|||||||
package com.njcn.algorithm.serviceimpl.line;
|
package com.njcn.algorithm.serviceimpl.line;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.date.DatePattern;
|
|
||||||
import cn.hutool.core.io.IoUtil;
|
|
||||||
import cn.hutool.core.util.CharsetUtil;
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.nacos.shaded.com.google.gson.Gson;
|
|
||||||
import com.njcn.algorithm.pojo.bo.CalculatedParam;
|
import com.njcn.algorithm.pojo.bo.CalculatedParam;
|
||||||
|
import com.njcn.algorithm.service.line.FlowAsyncService;
|
||||||
import com.njcn.algorithm.service.line.IDataCleanService;
|
import com.njcn.algorithm.service.line.IDataCleanService;
|
||||||
import com.njcn.algorithm.utils.MemorySizeUtil;
|
import com.njcn.algorithm.utils.MemorySizeUtil;
|
||||||
import com.njcn.dataProcess.api.*;
|
import com.njcn.dataProcess.api.*;
|
||||||
import com.njcn.dataProcess.dto.DataCleanJsonDTO;
|
|
||||||
import com.njcn.dataProcess.dto.RmpEventDetailDTO;
|
import com.njcn.dataProcess.dto.RmpEventDetailDTO;
|
||||||
import com.njcn.dataProcess.enums.DataCleanEnum;
|
import com.njcn.dataProcess.enums.DataCleanEnum;
|
||||||
import com.njcn.dataProcess.param.DataCleanParam;
|
import com.njcn.dataProcess.param.DataCleanParam;
|
||||||
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
||||||
import com.njcn.dataProcess.pojo.dto.*;
|
import com.njcn.dataProcess.pojo.dto.*;
|
||||||
import com.njcn.dataProcess.pojo.po.PqDataVerify;
|
import com.njcn.dataProcess.pojo.po.PqDataVerify;
|
||||||
import com.njcn.dataProcess.pojo.po.PqDataVerifyBak;
|
|
||||||
import com.njcn.dataProcess.util.DataCommonUtils;
|
import com.njcn.dataProcess.util.DataCommonUtils;
|
||||||
import com.njcn.dataProcess.util.TimeUtils;
|
import com.njcn.dataProcess.util.TimeUtils;
|
||||||
import com.njcn.device.pq.api.LineFeignClient;
|
import com.njcn.device.pq.api.LineFeignClient;
|
||||||
import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
|
import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
|
||||||
import com.njcn.device.pq.pojo.vo.LineDetailVO;
|
import com.njcn.device.pq.pojo.vo.LineDetailVO;
|
||||||
import com.njcn.oss.constant.OssPath;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
import com.njcn.oss.utils.FileStorageUtil;
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
|
import com.njcn.system.enums.DicDataTypeEnum;
|
||||||
|
import com.njcn.system.pojo.po.DictData;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.apache.commons.collections4.ListUtils;
|
import org.apache.commons.collections4.ListUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@@ -35,15 +32,10 @@ import org.springframework.stereotype.Component;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.io.InputStream;
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.time.Instant;
|
import java.time.*;
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -56,8 +48,6 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
|||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(DataCleanServiceImpl.class);
|
private static final Logger logger = LoggerFactory.getLogger(DataCleanServiceImpl.class);
|
||||||
|
|
||||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
|
||||||
|
|
||||||
@Value("${line.num}")
|
@Value("${line.num}")
|
||||||
private Integer NUM = 100;
|
private Integer NUM = 100;
|
||||||
|
|
||||||
@@ -98,9 +88,9 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private DataHarmphasicIFeignClient dataHarmphasicIFeignClient;
|
private DataHarmphasicIFeignClient dataHarmphasicIFeignClient;
|
||||||
@Resource
|
@Resource
|
||||||
private PqDataVerifyNewFeignClient pqDataVerifyNewFeignClient;
|
private DicDataFeignClient dicDataFeignClient;
|
||||||
@Resource
|
@Resource
|
||||||
private FileStorageUtil fileStorageUtil;
|
private FlowAsyncService flowService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@@ -293,6 +283,8 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dataCleanHandler(CalculatedParam calculatedParam) {
|
public void dataCleanHandler(CalculatedParam calculatedParam) {
|
||||||
|
DictData dip = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.VOLTAGE_DIP.getCode(), DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||||
|
DictData rise = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.VOLTAGE_RISE.getCode(), DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||||
MemorySizeUtil.getNowMemory();
|
MemorySizeUtil.getNowMemory();
|
||||||
logger.info("{},原始表数据清洗=====》", LocalDateTime.now());
|
logger.info("{},原始表数据清洗=====》", LocalDateTime.now());
|
||||||
//获取标准
|
//获取标准
|
||||||
@@ -307,551 +299,14 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
|||||||
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
|
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
|
||||||
lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
|
lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate()));
|
||||||
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
|
lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate()));
|
||||||
lineDetail.forEach(item->{
|
for (int i = 0; i < lineDetail.size(); i++) {
|
||||||
|
logger.info( calculatedParam.getDataDate()+"总数据:" + lineDetail.size() + "=====》当前第" + (i + 1));
|
||||||
List<Map<String,Object>> resultData = new ArrayList<>();
|
LineDetailVO.Detail item = lineDetail.get(i);
|
||||||
Set<String> allTimeSet = new HashSet<>();
|
flowService.lineDataClean(item, map, calculatedParam.getDataDate(), dip, rise,lineDetail.size(),(i + 1));
|
||||||
PqDataVerifyBak bak = new PqDataVerifyBak();
|
|
||||||
bak.setLineId(item.getLineId());
|
|
||||||
bak.setTime(LocalDate.parse(calculatedParam.getDataDate(), DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)));
|
|
||||||
lineParam.setLineId(Collections.singletonList(item.getLineId()));
|
|
||||||
//dataV
|
|
||||||
List<DataVDto> data1 = dataVFeignClient.getRawData(lineParam).getData();
|
|
||||||
//dataI
|
|
||||||
List<DataIDto> data2 = dataIFeignClient.getRawData(lineParam).getData();
|
|
||||||
//dataPlt
|
|
||||||
List<DataPltDto> data3 = dataPltFeignClient.getRawData(lineParam).getData();
|
|
||||||
//dataInHarmV
|
|
||||||
List<DataHarmDto> data4 = dataInharmVFeignClient.getRawData(lineParam).getData();
|
|
||||||
//dataHarmRateV
|
|
||||||
List<DataHarmDto> data5 = dataHarmRateVFeignClient.getRawData(lineParam).getData();
|
|
||||||
//dataHarmPowerP
|
|
||||||
List<DataPowerPDto> data6 = dataHarmpowerPFeignClient.getRawData(lineParam).getData();
|
|
||||||
//dataHarmPhasicV
|
|
||||||
List<DataHarmDto> data7 = dataHarmphasicVFeignClient.getRawData(lineParam).getData();
|
|
||||||
//dataFluc
|
|
||||||
List<DataFlucDto> data8 = dataFlucFeignClient.getRawData(lineParam).getData();
|
|
||||||
//dataFlicker
|
|
||||||
List<DataFlickerDto> data9 = dataFlickerFeignClient.getRawData(lineParam).getData();
|
|
||||||
//获取监测点的暂态事件
|
|
||||||
List<RmpEventDetailDTO> eventList = rmpEventDetailFeignClient.getRawData(lineParam).getData();
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(data1)) {
|
|
||||||
logger.info("{}数据清洗dataV集合大小为>>>>>>>>>>>>{}",lineParam.getStartTime(), MemorySizeUtil.getObjectSize(data1));
|
|
||||||
List<PqDataVerify> result = new ArrayList<>();
|
|
||||||
List<PqReasonableRangeDto> list = map.get(DataCleanEnum.DataV.getCode());
|
|
||||||
Map<String, PqReasonableRangeDto> pqReasonableRangeDtoMap = list.stream().collect(Collectors.toMap(PqReasonableRangeDto::getIndexCode, Function.identity()));
|
|
||||||
data1.forEach(data->{
|
|
||||||
List<PqDataVerify> pqDataVerifies = judgeDataV(pqReasonableRangeDtoMap,item,data);
|
|
||||||
result.addAll(pqDataVerifies);
|
|
||||||
});
|
|
||||||
if (CollUtil.isNotEmpty(result)) {
|
|
||||||
Map<String,Object> dtoMap = handleDataV(result,bak,item.getTimeInterval());
|
|
||||||
Set<String> timeSet = new HashSet<>(result.stream().map(dt -> dt.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))).collect(Collectors.toSet()));
|
|
||||||
dtoMap.put("errorTimes",timeSet.size() * item.getTimeInterval());
|
|
||||||
allTimeSet.addAll(timeSet);
|
|
||||||
if (CollUtil.isNotEmpty(dtoMap)) {
|
|
||||||
resultData.add(dtoMap);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(data2)) {
|
|
||||||
logger.info("{}数据清洗dataI集合大小为>>>>>>>>>>>>{}",lineParam.getStartTime(), MemorySizeUtil.getObjectSize(data2));
|
|
||||||
List<PqDataVerify> result = new ArrayList<>();
|
|
||||||
List<PqReasonableRangeDto> list = map.get(DataCleanEnum.DataI.getCode());
|
|
||||||
Map<String, PqReasonableRangeDto> pqReasonableRangeDtoMap = list.stream().collect(Collectors.toMap(PqReasonableRangeDto::getIndexCode, Function.identity()));
|
|
||||||
data2.forEach(data->{
|
|
||||||
List<PqDataVerify> pqDataVerifies = judgeDataI(pqReasonableRangeDtoMap,item,data);
|
|
||||||
result.addAll(pqDataVerifies);
|
|
||||||
});
|
|
||||||
if (CollUtil.isNotEmpty(result)) {
|
|
||||||
Map<String,Object> dtoMap = handleDataI(result,bak,item.getTimeInterval());
|
|
||||||
Set<String> timeSet = new HashSet<>(result.stream().map(dt -> dt.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))).collect(Collectors.toSet()));
|
|
||||||
dtoMap.put("errorTimes",timeSet.size() * item.getTimeInterval());
|
|
||||||
allTimeSet.addAll(timeSet);
|
|
||||||
if (CollUtil.isNotEmpty(dtoMap)) {
|
|
||||||
resultData.add(dtoMap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(data3)) {
|
|
||||||
logger.info("{}数据清洗dataPlt集合大小为>>>>>>>>>>>>{}",lineParam.getStartTime(), MemorySizeUtil.getObjectSize(data3));
|
|
||||||
List<PqDataVerify> result = new ArrayList<>();
|
|
||||||
List<PqReasonableRangeDto> list = map.get(DataCleanEnum.DataPlt.getCode());
|
|
||||||
Map<String, PqReasonableRangeDto> pqReasonableRangeDtoMap = list.stream().collect(Collectors.toMap(PqReasonableRangeDto::getIndexCode, Function.identity()));
|
|
||||||
data3.forEach(data->{
|
|
||||||
List<PqDataVerify> pqDataVerifies = judgeDataPlt(pqReasonableRangeDtoMap,data);
|
|
||||||
result.addAll(pqDataVerifies);
|
|
||||||
});
|
|
||||||
if (CollUtil.isNotEmpty(result)) {
|
|
||||||
Map<String,Object> dtoMap = handleDataPlt(result,bak,item.getTimeInterval());
|
|
||||||
Set<String> timeSet = new HashSet<>(result.stream().map(dt -> dt.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))).collect(Collectors.toSet()));
|
|
||||||
dtoMap.put("errorTimes",timeSet.size() * item.getTimeInterval());
|
|
||||||
allTimeSet.addAll(timeSet);
|
|
||||||
if (CollUtil.isNotEmpty(dtoMap)) {
|
|
||||||
resultData.add(dtoMap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(data4)) {
|
|
||||||
logger.info("{}数据清洗dataInHarmV集合大小为>>>>>>>>>>>>{}",lineParam.getStartTime(), MemorySizeUtil.getObjectSize(data4));
|
|
||||||
List<PqDataVerify> result = new ArrayList<>();
|
|
||||||
List<PqReasonableRangeDto> list = map.get(DataCleanEnum.DataInHarmV.getCode());
|
|
||||||
Map<String, PqReasonableRangeDto> pqReasonableRangeDtoMap = list.stream().collect(Collectors.toMap(PqReasonableRangeDto::getIndexCode, Function.identity()));
|
|
||||||
data4.forEach(data->{
|
|
||||||
List<PqDataVerify> pqDataVerifies = judgeDataInHarmV(pqReasonableRangeDtoMap,data);
|
|
||||||
result.addAll(pqDataVerifies);
|
|
||||||
});
|
|
||||||
if (CollUtil.isNotEmpty(result)) {
|
|
||||||
Map<String,Object> dtoMap = handleInHarmV(result,bak,item.getTimeInterval());
|
|
||||||
Set<String> timeSet = new HashSet<>(result.stream().map(dt -> dt.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))).collect(Collectors.toSet()));
|
|
||||||
dtoMap.put("errorTimes",timeSet.size() * item.getTimeInterval());
|
|
||||||
allTimeSet.addAll(timeSet);
|
|
||||||
if (CollUtil.isNotEmpty(dtoMap)) {
|
|
||||||
resultData.add(dtoMap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(data5)) {
|
|
||||||
logger.info("{}数据清洗dataHarmRateV集合大小为>>>>>>>>>>>>{}",lineParam.getStartTime(), MemorySizeUtil.getObjectSize(data5));
|
|
||||||
List<PqDataVerify> result = new ArrayList<>();
|
|
||||||
List<PqReasonableRangeDto> list = map.get(DataCleanEnum.DataHarmRateV.getCode());
|
|
||||||
Map<String, PqReasonableRangeDto> pqReasonableRangeDtoMap = list.stream().collect(Collectors.toMap(PqReasonableRangeDto::getIndexCode, Function.identity()));
|
|
||||||
data5.forEach(data->{
|
|
||||||
List<PqDataVerify> pqDataVerifies = judgeDataHarmRateV(pqReasonableRangeDtoMap,data);
|
|
||||||
result.addAll(pqDataVerifies);
|
|
||||||
});
|
|
||||||
if (CollUtil.isNotEmpty(result)) {
|
|
||||||
Map<String,Object> dtoMap = handleHarmRateV(result,bak,item.getTimeInterval());
|
|
||||||
Set<String> timeSet = new HashSet<>(result.stream().map(dt -> dt.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))).collect(Collectors.toSet()));
|
|
||||||
dtoMap.put("errorTimes",timeSet.size() * item.getTimeInterval());
|
|
||||||
allTimeSet.addAll(timeSet);
|
|
||||||
if (CollUtil.isNotEmpty(dtoMap)) {
|
|
||||||
resultData.add(dtoMap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(data6)) {
|
|
||||||
logger.info("{}数据清洗dataHarmPowerP集合大小为>>>>>>>>>>>>{}",lineParam.getStartTime(), MemorySizeUtil.getObjectSize(data6));
|
|
||||||
List<PqDataVerify> result = new ArrayList<>();
|
|
||||||
List<PqReasonableRangeDto> list = map.get(DataCleanEnum.DataHarmPowerP.getCode());
|
|
||||||
Map<String, PqReasonableRangeDto> pqReasonableRangeDtoMap = list.stream().collect(Collectors.toMap(PqReasonableRangeDto::getIndexCode, Function.identity()));
|
|
||||||
data6.forEach(data->{
|
|
||||||
List<PqDataVerify> pqDataVerifies = judgeDataHarmPowerP(pqReasonableRangeDtoMap,data);
|
|
||||||
result.addAll(pqDataVerifies);
|
|
||||||
});
|
|
||||||
if (CollUtil.isNotEmpty(result)) {
|
|
||||||
Map<String,Object> dtoMap = handleHarmPowerP(result,bak,item.getTimeInterval());
|
|
||||||
Set<String> timeSet = new HashSet<>(result.stream().map(dt -> dt.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))).collect(Collectors.toSet()));
|
|
||||||
dtoMap.put("errorTimes",timeSet.size() * item.getTimeInterval());
|
|
||||||
allTimeSet.addAll(timeSet);
|
|
||||||
if (CollUtil.isNotEmpty(dtoMap)) {
|
|
||||||
resultData.add(dtoMap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(data7)) {
|
|
||||||
logger.info("{}数据清洗dataHarmPhasicV集合大小为>>>>>>>>>>>>{}",lineParam.getStartTime(), MemorySizeUtil.getObjectSize(data7));
|
|
||||||
List<PqDataVerify> result = new ArrayList<>();
|
|
||||||
List<PqReasonableRangeDto> list = map.get(DataCleanEnum.DataHarmPhasicV.getCode());
|
|
||||||
Map<String, PqReasonableRangeDto> pqReasonableRangeDtoMap = list.stream().collect(Collectors.toMap(PqReasonableRangeDto::getIndexCode, Function.identity()));
|
|
||||||
data7.forEach(data->{
|
|
||||||
List<PqDataVerify> pqDataVerifies = judgeDataHarmPhasicV(pqReasonableRangeDtoMap,data);
|
|
||||||
result.addAll(pqDataVerifies);
|
|
||||||
});
|
|
||||||
if (CollUtil.isNotEmpty(result)) {
|
|
||||||
Map<String,Object> dtoMap = handleHarmPhasicV(result,bak,item.getTimeInterval());
|
|
||||||
Set<String> timeSet = new HashSet<>(result.stream().map(dt -> dt.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))).collect(Collectors.toSet()));
|
|
||||||
dtoMap.put("errorTimes",timeSet.size() * item.getTimeInterval());
|
|
||||||
allTimeSet.addAll(timeSet);
|
|
||||||
if (CollUtil.isNotEmpty(dtoMap)) {
|
|
||||||
resultData.add(dtoMap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(data8)) {
|
|
||||||
logger.info("{}数据清洗dataFluc集合大小为>>>>>>>>>>>>{}",lineParam.getStartTime(), MemorySizeUtil.getObjectSize(data8));
|
|
||||||
List<PqDataVerify> result = new ArrayList<>();
|
|
||||||
List<PqReasonableRangeDto> list = map.get(DataCleanEnum.DataFluc.getCode());
|
|
||||||
Map<String, PqReasonableRangeDto> pqReasonableRangeDtoMap = list.stream().collect(Collectors.toMap(PqReasonableRangeDto::getIndexCode, Function.identity()));
|
|
||||||
data8.forEach(data->{
|
|
||||||
List<PqDataVerify> pqDataVerifies = judgeDataFluc(pqReasonableRangeDtoMap,data);
|
|
||||||
result.addAll(pqDataVerifies);
|
|
||||||
});
|
|
||||||
if (CollUtil.isNotEmpty(result)) {
|
|
||||||
Map<String,Object> dtoMap = handleDataFluc(result,bak,item.getTimeInterval());
|
|
||||||
Set<String> timeSet = new HashSet<>(result.stream().map(dt -> dt.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))).collect(Collectors.toSet()));
|
|
||||||
dtoMap.put("errorTimes",timeSet.size() * item.getTimeInterval());
|
|
||||||
allTimeSet.addAll(timeSet);
|
|
||||||
if (CollUtil.isNotEmpty(dtoMap)) {
|
|
||||||
resultData.add(dtoMap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(data9)) {
|
|
||||||
logger.info("{}数据清洗dataFlicker集合大小为>>>>>>>>>>>>{}",lineParam.getStartTime(), MemorySizeUtil.getObjectSize(data9));
|
|
||||||
List<PqDataVerify> result = new ArrayList<>();
|
|
||||||
List<PqReasonableRangeDto> list = map.get(DataCleanEnum.DataFlicker.getCode());
|
|
||||||
Map<String, PqReasonableRangeDto> pqReasonableRangeDtoMap = list.stream().collect(Collectors.toMap(PqReasonableRangeDto::getIndexCode, Function.identity()));
|
|
||||||
data9.forEach(data->{
|
|
||||||
List<PqDataVerify> pqDataVerifies = judgeDataFlicker(pqReasonableRangeDtoMap,data);
|
|
||||||
result.addAll(pqDataVerifies);
|
|
||||||
});
|
|
||||||
if (CollUtil.isNotEmpty(result)) {
|
|
||||||
Map<String,Object> dtoMap = handleDataFlicker(result,bak,item.getTimeInterval());
|
|
||||||
Set<String> timeSet = new HashSet<>(result.stream().map(dt -> dt.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))).collect(Collectors.toSet()));
|
|
||||||
dtoMap.put("errorTimes",timeSet.size() * item.getTimeInterval());
|
|
||||||
allTimeSet.addAll(timeSet);
|
|
||||||
if (CollUtil.isNotEmpty(dtoMap)) {
|
|
||||||
resultData.add(dtoMap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(eventList)) {
|
|
||||||
logger.info("{}数据清洗eventDetail集合大小为>>>>>>>>>>>>{}",lineParam.getStartTime(), MemorySizeUtil.getObjectSize(eventList));
|
|
||||||
List<PqDataVerify> result = new ArrayList<>();
|
|
||||||
List<PqReasonableRangeDto> list = map.get(DataCleanEnum.RMpEventDetail.getCode());
|
|
||||||
Map<String, PqReasonableRangeDto> pqReasonableRangeDtoMap = list.stream().collect(Collectors.toMap(PqReasonableRangeDto::getIndexCode, Function.identity()));
|
|
||||||
eventList.forEach(data->{
|
|
||||||
data.setFeatureAmplitude(data.getFeatureAmplitude()*100.0);
|
|
||||||
List<PqDataVerify> pqDataVerifies = judgeDataEvent(pqReasonableRangeDtoMap,data);
|
|
||||||
result.addAll(pqDataVerifies);
|
|
||||||
});
|
|
||||||
if (CollUtil.isNotEmpty(result)) {
|
|
||||||
Map<String,Object> dtoMap = handleDataEvent(result,bak,item.getTimeInterval());
|
|
||||||
Set<String> timeSet = new HashSet<>(result.stream().map(dt -> dt.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))).collect(Collectors.toSet()));
|
|
||||||
dtoMap.put("errorTimes",timeSet.size() * item.getTimeInterval());
|
|
||||||
allTimeSet.addAll(timeSet);
|
|
||||||
if (CollUtil.isNotEmpty(dtoMap)) {
|
|
||||||
resultData.add(dtoMap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(allTimeSet)) {
|
|
||||||
Map<String,Object> dtoMap = new HashMap<>();
|
|
||||||
dtoMap.put("lineErrorTimes",allTimeSet.size() * item.getTimeInterval());
|
|
||||||
resultData.add(dtoMap);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(resultData)) {
|
|
||||||
bak.setState(1);
|
|
||||||
//存储文件
|
|
||||||
InputStream reportStream = IoUtil.toStream(new Gson().toJson(resultData), CharsetUtil.UTF_8);
|
|
||||||
String fileName = fileStorageUtil.uploadStreamSpecifyName(
|
|
||||||
reportStream
|
|
||||||
, OssPath.DATA_CLEAN + calculatedParam.getDataDate() + "/"
|
|
||||||
,item.getLineId() + ".txt");
|
|
||||||
//存储数据
|
|
||||||
bak.setFilePath(fileName);
|
|
||||||
}
|
|
||||||
pqDataVerifyNewFeignClient.insertData(bak);
|
|
||||||
});
|
|
||||||
System.gc();
|
System.gc();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String,Object> handleDataV(List<PqDataVerify> result, PqDataVerifyBak bak,Integer timeInterval) {
|
|
||||||
Map<String,Object> map = new HashMap<>();
|
|
||||||
Map<String,List<PqDataVerify>> codeMap = result.stream().collect(Collectors.groupingBy(PqDataVerify::getIndexCode));
|
|
||||||
//频率
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list1 = handleData(codeMap.get(DataCleanEnum.Freq.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list1)) {
|
|
||||||
bak.setFreq(1);
|
|
||||||
map.put(DataCleanEnum.DataV.getCode() + "-" + DataCleanEnum.Freq.getCode(),list1);
|
|
||||||
}
|
|
||||||
//频率偏差
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list2 = handleData(codeMap.get(DataCleanEnum.FreqDev.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list2)) {
|
|
||||||
bak.setFreqDev(1);
|
|
||||||
map.put(DataCleanEnum.DataV.getCode() + "-" + DataCleanEnum.FreqDev.getCode(),list2);
|
|
||||||
}
|
|
||||||
//相电压有效值
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list3 = handleData(codeMap.get(DataCleanEnum.RmsV.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list3)) {
|
|
||||||
bak.setVRms(1);
|
|
||||||
map.put(DataCleanEnum.DataV.getCode() + "-" + DataCleanEnum.RmsV.getCode(),list3);
|
|
||||||
}
|
|
||||||
//正序电压
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list4 = handleData(codeMap.get(DataCleanEnum.VPos.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list4)) {
|
|
||||||
bak.setVPos(1);
|
|
||||||
map.put(DataCleanEnum.DataV.getCode() + "-" + DataCleanEnum.VPos.getCode(),list4);
|
|
||||||
}
|
|
||||||
//负序电压
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list5 = handleData(codeMap.get(DataCleanEnum.VNeg.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list5)) {
|
|
||||||
bak.setVNeg(1);
|
|
||||||
map.put(DataCleanEnum.DataV.getCode() + "-" + DataCleanEnum.VNeg.getCode(),list5);
|
|
||||||
}
|
|
||||||
//零序电压
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list6 = handleData(codeMap.get(DataCleanEnum.VZero.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list6)) {
|
|
||||||
bak.setVZero(1);
|
|
||||||
map.put(DataCleanEnum.DataV.getCode() + "-" + DataCleanEnum.VZero.getCode(),list6);
|
|
||||||
}
|
|
||||||
//电压不平衡度
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list7 = handleData(codeMap.get(DataCleanEnum.VUnbalance.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list7)) {
|
|
||||||
bak.setVUnbalance(1);
|
|
||||||
map.put(DataCleanEnum.DataV.getCode() + "-" + DataCleanEnum.VUnbalance.getCode(),list7);
|
|
||||||
}
|
|
||||||
//线电压有效值
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list8 = handleData(codeMap.get(DataCleanEnum.RmsLvr.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list8)) {
|
|
||||||
bak.setRmsLvr(1);
|
|
||||||
map.put(DataCleanEnum.DataV.getCode() + "-" + DataCleanEnum.RmsLvr.getCode(),list8);
|
|
||||||
}
|
|
||||||
//电压正偏差
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list9 = handleData(codeMap.get(DataCleanEnum.VuDev.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list9)) {
|
|
||||||
bak.setVuDev(1);
|
|
||||||
map.put(DataCleanEnum.DataV.getCode() + "-" + DataCleanEnum.VuDev.getCode(),list9);
|
|
||||||
}
|
|
||||||
//电压负偏差
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list10 = handleData(codeMap.get(DataCleanEnum.VlDev.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list10)) {
|
|
||||||
bak.setVlDev(1);
|
|
||||||
map.put(DataCleanEnum.DataV.getCode() + "-" + DataCleanEnum.VlDev.getCode(),list10);
|
|
||||||
}
|
|
||||||
//电压总谐波畸变率
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list11 = handleData(codeMap.get(DataCleanEnum.VThd.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list11)) {
|
|
||||||
bak.setVThd(1);
|
|
||||||
map.put(DataCleanEnum.DataV.getCode() + "-" + DataCleanEnum.VThd.getCode(),list11);
|
|
||||||
}
|
|
||||||
//相(线)电压基波有效值
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list12 = handleData(codeMap.get(DataCleanEnum.V_Data.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list12)) {
|
|
||||||
bak.setV(1);
|
|
||||||
map.put(DataCleanEnum.DataV.getCode() + "-" + DataCleanEnum.V_Data.getCode(),list12);
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String,Object> handleDataI(List<PqDataVerify> result, PqDataVerifyBak bak,Integer timeInterval) {
|
|
||||||
Map<String,Object> map = new HashMap<>();
|
|
||||||
Map<String,List<PqDataVerify>> codeMap = result.stream().collect(Collectors.groupingBy(PqDataVerify::getIndexCode));
|
|
||||||
//电流有效值
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list = handleData(codeMap.get(DataCleanEnum.RmsI.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list)) {
|
|
||||||
bak.setIRms(1);
|
|
||||||
map.put(DataCleanEnum.DataI.getCode() + "-" + DataCleanEnum.RmsI.getCode(),list);
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String,Object> handleDataPlt(List<PqDataVerify> result, PqDataVerifyBak bak, Integer timeInterval) {
|
|
||||||
Map<String,Object> map = new HashMap<>();
|
|
||||||
Map<String,List<PqDataVerify>> codeMap = result.stream().collect(Collectors.groupingBy(PqDataVerify::getIndexCode));
|
|
||||||
//长时闪变
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list = handleData(codeMap.get(DataCleanEnum.Plt.getCode()), timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list)) {
|
|
||||||
bak.setPlt(1);
|
|
||||||
map.put(DataCleanEnum.DataPlt.getCode() + "-" + DataCleanEnum.Plt.getCode(),list);
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String,Object> handleInHarmV(List<PqDataVerify> result, PqDataVerifyBak bak, Integer timeInterval) {
|
|
||||||
Map<String,Object> map = new HashMap<>();
|
|
||||||
Map<String,List<PqDataVerify>> codeMap = result.stream().collect(Collectors.groupingBy(PqDataVerify::getIndexCode));
|
|
||||||
//间谐波电压含有率
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list = handleHarmData(codeMap.get(DataCleanEnum.V_InHarm.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list)) {
|
|
||||||
bak.setVInharm(1);
|
|
||||||
map.put(DataCleanEnum.DataInHarmV.getCode() + "-" + DataCleanEnum.V_InHarm.getCode(),list);
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String,Object> handleHarmRateV(List<PqDataVerify> result, PqDataVerifyBak bak, Integer timeInterval) {
|
|
||||||
Map<String,Object> map = new HashMap<>();
|
|
||||||
Map<String,List<PqDataVerify>> codeMap = result.stream().collect(Collectors.groupingBy(PqDataVerify::getIndexCode));
|
|
||||||
//谐波电压含有率
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list = handleHarmData(codeMap.get(DataCleanEnum.V_Rate.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list)) {
|
|
||||||
bak.setVHarm(1);
|
|
||||||
map.put(DataCleanEnum.DataHarmRateV.getCode() + "-" + DataCleanEnum.V_Rate.getCode(),list);
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String,Object> handleHarmPowerP(List<PqDataVerify> result, PqDataVerifyBak bak, Integer timeInterval) {
|
|
||||||
Map<String,Object> map = new HashMap<>();
|
|
||||||
Map<String,List<PqDataVerify>> codeMap = result.stream().collect(Collectors.groupingBy(PqDataVerify::getIndexCode));
|
|
||||||
//功率因素
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list = handleData(codeMap.get(DataCleanEnum.Pf.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list)) {
|
|
||||||
bak.setPf(1);
|
|
||||||
map.put(DataCleanEnum.DataHarmPowerP.getCode() + "-" + DataCleanEnum.Pf.getCode(),list);
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String,Object> handleHarmPhasicV(List<PqDataVerify> result, PqDataVerifyBak bak, Integer timeInterval) {
|
|
||||||
Map<String,Object> map = new HashMap<>();
|
|
||||||
Map<String,List<PqDataVerify>> codeMap = result.stream().collect(Collectors.groupingBy(PqDataVerify::getIndexCode));
|
|
||||||
//谐波电压相角
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list = handleHarmData(codeMap.get(DataCleanEnum.V.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list)) {
|
|
||||||
bak.setVPhasic(1);
|
|
||||||
map.put(DataCleanEnum.DataHarmPhasicV.getCode() + "-" + DataCleanEnum.V.getCode(),list);
|
|
||||||
}
|
|
||||||
//谐波电压基波相角
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list2 = handleData(codeMap.get(DataCleanEnum.V1.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list2)) {
|
|
||||||
bak.setV1Phasic(1);
|
|
||||||
map.put(DataCleanEnum.DataHarmPhasicV.getCode() + "-" + DataCleanEnum.V1.getCode(),list2);
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String,Object> handleDataFluc(List<PqDataVerify> result, PqDataVerifyBak bak, Integer timeInterval) {
|
|
||||||
Map<String,Object> map = new HashMap<>();
|
|
||||||
Map<String,List<PqDataVerify>> codeMap = result.stream().collect(Collectors.groupingBy(PqDataVerify::getIndexCode));
|
|
||||||
//电压波动
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list = handleData(codeMap.get(DataCleanEnum.Fluc.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list)) {
|
|
||||||
bak.setFluc(1);
|
|
||||||
map.put(DataCleanEnum.DataFluc.getCode() + "-" + DataCleanEnum.Fluc.getCode(),list);
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String,Object> handleDataFlicker(List<PqDataVerify> result, PqDataVerifyBak bak,Integer timeInterval) {
|
|
||||||
Map<String,Object> map = new HashMap<>();
|
|
||||||
Map<String,List<PqDataVerify>> codeMap = result.stream().collect(Collectors.groupingBy(PqDataVerify::getIndexCode));
|
|
||||||
//短时闪变
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list = handleData(codeMap.get(DataCleanEnum.Pst.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list)) {
|
|
||||||
bak.setPst(1);
|
|
||||||
map.put(DataCleanEnum.DataFlicker.getCode() + "-" + DataCleanEnum.Pst.getCode(),list);
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String,Object> handleDataEvent(List<PqDataVerify> result, PqDataVerifyBak bak,Integer timeInterval) {
|
|
||||||
Map<String,Object> map = new HashMap<>();
|
|
||||||
Map<String,List<PqDataVerify>> codeMap = result.stream().collect(Collectors.groupingBy(PqDataVerify::getIndexCode));
|
|
||||||
//暂降事件
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list = handleData(codeMap.get(DataCleanEnum.VoltageDip.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list)) {
|
|
||||||
bak.setDip(1);
|
|
||||||
map.put(DataCleanEnum.RMpEventDetail.getCode() + "-" + DataCleanEnum.VoltageDip.getCode(),list);
|
|
||||||
}
|
|
||||||
//暂升事件
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> list2 = handleData(codeMap.get(DataCleanEnum.VoltageRise.getCode()),timeInterval);
|
|
||||||
if (CollUtil.isNotEmpty(list2)) {
|
|
||||||
bak.setRise(1);
|
|
||||||
map.put(DataCleanEnum.RMpEventDetail.getCode() + "-" + DataCleanEnum.VoltageRise.getCode(),list2);
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DataCleanJsonDTO.DataHarmCleanJsonDTO> handleData(List<PqDataVerify> list, Integer timeInterval) {
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> dataList = new ArrayList<>();
|
|
||||||
if (CollUtil.isNotEmpty(list)) {
|
|
||||||
AtomicInteger allCounts = new AtomicInteger();
|
|
||||||
Set<String> timeSet = new HashSet<>();
|
|
||||||
DataCleanJsonDTO.DataHarmCleanJsonDTO dto = new DataCleanJsonDTO.DataHarmCleanJsonDTO();
|
|
||||||
dto.setTargetName(list.get(0).getIndexName());
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanNormalJsonDTO> list1 = new ArrayList<>();
|
|
||||||
Map<String,List<PqDataVerify>> phaseMap = list.stream().collect(Collectors.groupingBy(PqDataVerify::getPhasicType));
|
|
||||||
phaseMap.forEach((k,v)->{
|
|
||||||
Map<String, List<PqDataVerify>> map11 = v.stream().collect(Collectors.groupingBy(PqDataVerify::getValueType));
|
|
||||||
map11.forEach((k2,v2)->{
|
|
||||||
DataCleanJsonDTO.DataHarmCleanNormalJsonDTO dataCleanJsonDTO = new DataCleanJsonDTO.DataHarmCleanNormalJsonDTO();
|
|
||||||
dataCleanJsonDTO.setPhasic(k);
|
|
||||||
dataCleanJsonDTO.setValueType(k2);
|
|
||||||
timeSet.addAll(v2.stream().map(dt -> dt.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))).collect(Collectors.toSet()));
|
|
||||||
//只取值最大的10组数据
|
|
||||||
List<PqDataVerify> topTen = v2.stream()
|
|
||||||
//过滤掉null元素
|
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.sorted(Comparator.comparing(
|
|
||||||
PqDataVerify::getAbnormalValue,
|
|
||||||
Comparator.nullsLast(Comparator.reverseOrder())))
|
|
||||||
.limit(10)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
dataCleanJsonDTO.setTime(topTen.stream().map(dt -> dt.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))).collect(Collectors.toList()));
|
|
||||||
dataCleanJsonDTO.setValue(topTen.stream()
|
|
||||||
.map(pq -> {
|
|
||||||
Double value = pq.getAbnormalValue();
|
|
||||||
return value != null ? Math.round(value * 100) / 100.0 : null;
|
|
||||||
})
|
|
||||||
.collect(Collectors.toList()));
|
|
||||||
dataCleanJsonDTO.setErrorCounts(v2.size());
|
|
||||||
allCounts.set(allCounts.get() + v2.size());
|
|
||||||
list1.add(dataCleanJsonDTO);
|
|
||||||
});
|
|
||||||
dto.setErrorCounts(allCounts.get());
|
|
||||||
dto.setErrorTimes(timeSet.size()*timeInterval);
|
|
||||||
dto.setMinValue(list.get(0).getMinValue());
|
|
||||||
dto.setMaxValue(list.get(0).getMaxValue());
|
|
||||||
dto.setList(list1);
|
|
||||||
});
|
|
||||||
dataList.add(dto);
|
|
||||||
}
|
|
||||||
return dataList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DataCleanJsonDTO.DataHarmCleanJsonDTO> handleHarmData(List<PqDataVerify> list, Integer timeInterval) {
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanJsonDTO> dataList = new ArrayList<>();
|
|
||||||
if (CollUtil.isNotEmpty(list)) {
|
|
||||||
AtomicInteger allCounts = new AtomicInteger();
|
|
||||||
Set<String> timeSet = new HashSet<>();
|
|
||||||
Map<String,List<PqDataVerify>> indexNameMap = list.stream().collect(Collectors.groupingBy(PqDataVerify::getIndexName));
|
|
||||||
indexNameMap.forEach((k,v)->{
|
|
||||||
DataCleanJsonDTO.DataHarmCleanJsonDTO dto = new DataCleanJsonDTO.DataHarmCleanJsonDTO();
|
|
||||||
dto.setTargetName(k);
|
|
||||||
List<DataCleanJsonDTO.DataHarmCleanNormalJsonDTO> dataCleanJsonDTOList = new ArrayList<>();
|
|
||||||
Map<String,List<PqDataVerify>> phaseMap = v.stream().collect(Collectors.groupingBy(PqDataVerify::getPhasicType));
|
|
||||||
phaseMap.forEach((k2,v2)->{
|
|
||||||
Map<String, List<PqDataVerify>> valueMap = v2.stream().collect(Collectors.groupingBy(PqDataVerify::getValueType));
|
|
||||||
valueMap.forEach((k3,v3)->{
|
|
||||||
DataCleanJsonDTO.DataHarmCleanNormalJsonDTO dto1 = new DataCleanJsonDTO.DataHarmCleanNormalJsonDTO();
|
|
||||||
dto1.setPhasic(k2);
|
|
||||||
dto1.setValueType(k3);
|
|
||||||
timeSet.addAll(v3.stream().map(dt -> dt.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))).collect(Collectors.toSet()));
|
|
||||||
//只取值最大的10组数据
|
|
||||||
List<PqDataVerify> topTen = v3.stream()
|
|
||||||
//过滤掉null元素
|
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.sorted(Comparator.comparing(
|
|
||||||
PqDataVerify::getAbnormalValue,
|
|
||||||
Comparator.nullsLast(Comparator.reverseOrder())))
|
|
||||||
.limit(10)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
dto1.setTime(topTen.stream().map(dt -> dt.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))).collect(Collectors.toList()));
|
|
||||||
dto1.setValue(topTen.stream()
|
|
||||||
.map(pq -> {
|
|
||||||
Double value = pq.getAbnormalValue();
|
|
||||||
return value != null ? Math.round(value * 100) / 100.0 : null;
|
|
||||||
})
|
|
||||||
.collect(Collectors.toList()));
|
|
||||||
dto1.setErrorCounts(v3.size());
|
|
||||||
allCounts.set(allCounts.get() + v3.size());
|
|
||||||
dataCleanJsonDTOList.add(dto1);
|
|
||||||
});
|
|
||||||
dto.setErrorCounts(allCounts.get());
|
|
||||||
dto.setErrorTimes(timeSet.size()*timeInterval);
|
|
||||||
dto.setList(dataCleanJsonDTOList);
|
|
||||||
});
|
|
||||||
dataList.add(dto);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return dataList;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dataVCleanHandler(CalculatedParam calculatedParam) {
|
public void dataVCleanHandler(CalculatedParam calculatedParam) {
|
||||||
MemorySizeUtil.getNowMemory();
|
MemorySizeUtil.getNowMemory();
|
||||||
@@ -1180,6 +635,7 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
|||||||
System.gc();
|
System.gc();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取标准数据的范围
|
* 获取标准数据的范围
|
||||||
*/
|
*/
|
||||||
@@ -1269,13 +725,15 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//相电压有效值
|
//相电压有效值 判断接线方式 (0-星型 1-角型 2-V型) 星型是相电压 角型或者v型是线电压
|
||||||
|
//0:星型接法;1:三角型接法;2:开口三角型接法
|
||||||
|
if (ObjectUtil.isNotNull(line.getPtType()) && line.getPtType() == 0) {
|
||||||
pqReasonableRangeDto = map.get(DataCleanEnum.RmsV.getCode());
|
pqReasonableRangeDto = map.get(DataCleanEnum.RmsV.getCode());
|
||||||
phaseList = Arrays.asList(pqReasonableRangeDto.getPhaseType().split(","));
|
phaseList = Arrays.asList(pqReasonableRangeDto.getPhaseType().split(","));
|
||||||
if (phaseList.contains(dto.getPhasicType())) {
|
if (phaseList.contains(dto.getPhasicType())) {
|
||||||
if (ObjectUtil.isNotNull(dto.getRms())) {
|
if (ObjectUtil.isNotNull(dto.getRms())) {
|
||||||
if (dto.getRms() < (pqReasonableRangeDto.getMinValue()* DataCommonUtils.getVoltageData(line.getVoltageLevel()))
|
if (dto.getRms() < (pqReasonableRangeDto.getMinValue() / 100.0 * DataCommonUtils.getVoltageData(line.getVoltageLevel()))
|
||||||
|| dto.getRms() > (pqReasonableRangeDto.getMaxValue()*DataCommonUtils.getVoltageData(line.getVoltageLevel()))) {
|
|| dto.getRms() > (pqReasonableRangeDto.getMaxValue() / 100.0 * DataCommonUtils.getVoltageData(line.getVoltageLevel()))) {
|
||||||
//log.info("dataV-相电压有效值数据异常,已清洗!数据值:{},数据时间:{}", dto.getRms(), dto.getMinTime());
|
//log.info("dataV-相电压有效值数据异常,已清洗!数据值:{},数据时间:{}", dto.getRms(), dto.getMinTime());
|
||||||
PqDataVerify pqDataVerify = getPqDataVerify(dto.getLineId()
|
PqDataVerify pqDataVerify = getPqDataVerify(dto.getLineId()
|
||||||
, dto.getMinTime()
|
, dto.getMinTime()
|
||||||
@@ -1293,14 +751,15 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
|||||||
logger.info("rmsV{}", dto);
|
logger.info("rmsV{}", dto);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//正序电压
|
//正序电压
|
||||||
pqReasonableRangeDto = map.get(DataCleanEnum.VPos.getCode());
|
pqReasonableRangeDto = map.get(DataCleanEnum.VPos.getCode());
|
||||||
phaseList = Arrays.asList(pqReasonableRangeDto.getPhaseType().split(","));
|
phaseList = Arrays.asList(pqReasonableRangeDto.getPhaseType().split(","));
|
||||||
if (phaseList.contains(dto.getPhasicType())) {
|
if (phaseList.contains(dto.getPhasicType())) {
|
||||||
if (ObjectUtil.isNotNull(dto.getVPos())) {
|
if (ObjectUtil.isNotNull(dto.getVPos())) {
|
||||||
if (dto.getVPos() < (pqReasonableRangeDto.getMinValue()*DataCommonUtils.getVoltageData(line.getVoltageLevel()))
|
if (dto.getVPos() < (pqReasonableRangeDto.getMinValue() / 100.0 * DataCommonUtils.getVoltageData(line.getVoltageLevel()))
|
||||||
|| dto.getVPos() > (pqReasonableRangeDto.getMaxValue()*DataCommonUtils.getVoltageData(line.getVoltageLevel()))) {
|
|| dto.getVPos() > (pqReasonableRangeDto.getMaxValue() / 100.0 * DataCommonUtils.getVoltageData(line.getVoltageLevel()))) {
|
||||||
//log.info("dataV-正序电压数据异常,已清洗!数据值:{},数据时间:{}", dto.getVPos(), dto.getMinTime());
|
//log.info("dataV-正序电压数据异常,已清洗!数据值:{},数据时间:{}", dto.getVPos(), dto.getMinTime());
|
||||||
PqDataVerify pqDataVerify = getPqDataVerify(dto.getLineId()
|
PqDataVerify pqDataVerify = getPqDataVerify(dto.getLineId()
|
||||||
, dto.getMinTime()
|
, dto.getMinTime()
|
||||||
@@ -1393,12 +852,14 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//线电压有效值
|
//线电压有效值 判断接线方式 (0-星型 1-角型 2-V型) 星型是相电压 角型或者v型是线电压
|
||||||
|
//0:星型接法;1:三角型接法;2:开口三角型接法
|
||||||
|
if (ObjectUtil.isNotNull(line.getPtType()) && line.getPtType() != 0) {
|
||||||
pqReasonableRangeDto = map.get(DataCleanEnum.RmsLvr.getCode());
|
pqReasonableRangeDto = map.get(DataCleanEnum.RmsLvr.getCode());
|
||||||
phaseList = Arrays.asList(pqReasonableRangeDto.getPhaseType().split(","));
|
phaseList = Arrays.asList(pqReasonableRangeDto.getPhaseType().split(","));
|
||||||
if (phaseList.contains(dto.getPhasicType()) && ObjectUtil.isNotNull(dto.getRmsLvr())) {
|
if (phaseList.contains(dto.getPhasicType()) && ObjectUtil.isNotNull(dto.getRmsLvr())) {
|
||||||
if (dto.getRmsLvr() < (pqReasonableRangeDto.getMinValue()*DataCommonUtils.getVoltageData(line.getVoltageLevel()))
|
if (dto.getRmsLvr() < (pqReasonableRangeDto.getMinValue() / 100.0 * DataCommonUtils.getVoltageData(line.getVoltageLevel()))
|
||||||
|| dto.getRmsLvr() > (pqReasonableRangeDto.getMaxValue()*DataCommonUtils.getVoltageData(line.getVoltageLevel()))) {
|
|| dto.getRmsLvr() > (pqReasonableRangeDto.getMaxValue() / 100.0 * DataCommonUtils.getVoltageData(line.getVoltageLevel()))) {
|
||||||
//log.info("dataV-线电压有效值数据异常,已清洗!数据值:{},数据时间:{}", dto.getRmsLvr(), dto.getMinTime());
|
//log.info("dataV-线电压有效值数据异常,已清洗!数据值:{},数据时间:{}", dto.getRmsLvr(), dto.getMinTime());
|
||||||
PqDataVerify pqDataVerify = getPqDataVerify(dto.getLineId()
|
PqDataVerify pqDataVerify = getPqDataVerify(dto.getLineId()
|
||||||
, dto.getMinTime()
|
, dto.getMinTime()
|
||||||
@@ -1413,6 +874,7 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
|||||||
list.add(pqDataVerify);
|
list.add(pqDataVerify);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//电压偏差
|
//电压偏差
|
||||||
//电压偏差分为正偏差和负偏差,目前正负偏差都存储在vu_dev字段中,如果vu_dev>=0为正偏差数值,如果vu_dev<0为负偏差数值
|
//电压偏差分为正偏差和负偏差,目前正负偏差都存储在vu_dev字段中,如果vu_dev>=0为正偏差数值,如果vu_dev<0为负偏差数值
|
||||||
@@ -1529,8 +991,8 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
|||||||
phaseList = Arrays.asList(pqReasonableRangeDto.getPhaseType().split(","));
|
phaseList = Arrays.asList(pqReasonableRangeDto.getPhaseType().split(","));
|
||||||
if (phaseList.contains(dto.getPhasicType())) {
|
if (phaseList.contains(dto.getPhasicType())) {
|
||||||
if (ObjectUtil.isNotNull(dto.getV1())) {
|
if (ObjectUtil.isNotNull(dto.getV1())) {
|
||||||
if (dto.getV1() < (pqReasonableRangeDto.getMinValue()*DataCommonUtils.getVoltageData(line.getVoltageLevel()))
|
if (dto.getV1() < (pqReasonableRangeDto.getMinValue() / 100.0 * DataCommonUtils.getVoltageData(line.getVoltageLevel()))
|
||||||
|| dto.getV1() > (pqReasonableRangeDto.getMaxValue()*DataCommonUtils.getVoltageData(line.getVoltageLevel()))) {
|
|| dto.getV1() > (pqReasonableRangeDto.getMaxValue() / 100.0 * DataCommonUtils.getVoltageData(line.getVoltageLevel()))) {
|
||||||
//log.info("dataV-基波电压数据异常,已清洗!数据值:{},数据时间:{}", dto.getV1(), dto.getMinTime());
|
//log.info("dataV-基波电压数据异常,已清洗!数据值:{},数据时间:{}", dto.getV1(), dto.getMinTime());
|
||||||
PqDataVerify pqDataVerify = getPqDataVerify(dto.getLineId()
|
PqDataVerify pqDataVerify = getPqDataVerify(dto.getLineId()
|
||||||
, dto.getMinTime()
|
, dto.getMinTime()
|
||||||
@@ -1563,7 +1025,7 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
|||||||
phaseList = Arrays.asList(pqReasonableRangeDto.getPhaseType().split(","));
|
phaseList = Arrays.asList(pqReasonableRangeDto.getPhaseType().split(","));
|
||||||
if (phaseList.contains(dto.getPhasicType())) {
|
if (phaseList.contains(dto.getPhasicType())) {
|
||||||
if (ObjectUtil.isNotNull(dto.getRms())) {
|
if (ObjectUtil.isNotNull(dto.getRms())) {
|
||||||
if (dto.getRms() >= line.getCT1() * 1.2) {
|
if (dto.getRms() < pqReasonableRangeDto.getMinValue() || dto.getRms() > pqReasonableRangeDto.getMaxValue()) {
|
||||||
PqDataVerify pqDataVerify = getPqDataVerify(dto.getLineId()
|
PqDataVerify pqDataVerify = getPqDataVerify(dto.getLineId()
|
||||||
, dto.getMinTime()
|
, dto.getMinTime()
|
||||||
, dto.getValueType()
|
, dto.getValueType()
|
||||||
@@ -1812,46 +1274,6 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取数据的标准范围,进行数据比对
|
|
||||||
*/
|
|
||||||
public List<PqDataVerify> judgeDataEvent(Map<String, PqReasonableRangeDto> map, RmpEventDetailDTO dto) {
|
|
||||||
List<PqDataVerify> list = new ArrayList<>();
|
|
||||||
PqReasonableRangeDto pqReasonableRangeDto = map.get(DataCleanEnum.VoltageDip.getCode());
|
|
||||||
if(ObjectUtil.isNotNull(dto.getFeatureAmplitude())){
|
|
||||||
if (dto.getFeatureAmplitude() < pqReasonableRangeDto.getMinValue() || dto.getFeatureAmplitude() > pqReasonableRangeDto.getMaxValue()) {
|
|
||||||
PqDataVerify pqDataVerify = getPqDataVerify(dto.getMeasurementPointId()
|
|
||||||
,dto.getStartTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_MS_PATTERN))
|
|
||||||
,"Feature_Amplitude"
|
|
||||||
,"/"
|
|
||||||
,pqReasonableRangeDto.getIndexCode()
|
|
||||||
,pqReasonableRangeDto.getIndexName()
|
|
||||||
,pqReasonableRangeDto.getInfluxdbTableName()
|
|
||||||
,dto.getFeatureAmplitude()
|
|
||||||
,pqReasonableRangeDto.getMinValue()
|
|
||||||
,pqReasonableRangeDto.getMaxValue());
|
|
||||||
list.add(pqDataVerify);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
PqReasonableRangeDto pqReasonableRangeDto2 = map.get(DataCleanEnum.VoltageRise.getCode());
|
|
||||||
if(ObjectUtil.isNotNull(dto.getFeatureAmplitude())){
|
|
||||||
if (dto.getFeatureAmplitude() < pqReasonableRangeDto2.getMinValue() || dto.getFeatureAmplitude() > pqReasonableRangeDto2.getMaxValue()) {
|
|
||||||
PqDataVerify pqDataVerify = getPqDataVerify(dto.getMeasurementPointId()
|
|
||||||
,dto.getStartTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_MS_PATTERN))
|
|
||||||
,"Feature_Amplitude"
|
|
||||||
,"/"
|
|
||||||
,pqReasonableRangeDto2.getIndexCode()
|
|
||||||
,pqReasonableRangeDto2.getIndexName()
|
|
||||||
,pqReasonableRangeDto2.getInfluxdbTableName()
|
|
||||||
,dto.getFeatureAmplitude()
|
|
||||||
,pqReasonableRangeDto2.getMinValue()
|
|
||||||
,pqReasonableRangeDto2.getMaxValue());
|
|
||||||
list.add(pqDataVerify);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public PqDataVerify getPqDataVerify(String lineId, String time, String valueType, String phasicType, String indexCode, String indexName, String indexTable, Double data, Double minValue, Double maxValue) {
|
public PqDataVerify getPqDataVerify(String lineId, String time, String valueType, String phasicType, String indexCode, String indexName, String indexTable, Double data, Double minValue, Double maxValue) {
|
||||||
PqDataVerify pqDataVerify = new PqDataVerify();
|
PqDataVerify pqDataVerify = new PqDataVerify();
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -6,23 +6,19 @@ import cn.hutool.core.collection.ListUtil;
|
|||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.njcn.algorithm.pojo.bo.CalculatedParam;
|
import com.njcn.algorithm.pojo.bo.CalculatedParam;
|
||||||
import com.njcn.algorithm.service.line.IDataCrossingService;
|
import com.njcn.algorithm.service.line.IDataCrossingService;
|
||||||
|
import com.njcn.algorithm.service.line.IDataLimitRateAsync;
|
||||||
import com.njcn.algorithm.utils.MemorySizeUtil;
|
import com.njcn.algorithm.utils.MemorySizeUtil;
|
||||||
import com.njcn.common.utils.PubUtils;
|
import com.njcn.common.utils.PubUtils;
|
||||||
import com.njcn.csdevice.api.CsLineFeignClient;
|
import com.njcn.csdevice.api.CsLineFeignClient;
|
||||||
import com.njcn.dataProcess.api.*;
|
import com.njcn.dataProcess.api.*;
|
||||||
import com.njcn.dataProcess.constant.PhaseType;
|
import com.njcn.dataProcess.constant.PhaseType;
|
||||||
import com.njcn.dataProcess.enums.DataCleanEnum;
|
|
||||||
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
||||||
import com.njcn.dataProcess.pojo.dto.*;
|
import com.njcn.dataProcess.pojo.dto.*;
|
||||||
import com.njcn.dataProcess.pojo.po.PqDataVerify;
|
|
||||||
import com.njcn.dataProcess.util.TimeUtils;
|
import com.njcn.dataProcess.util.TimeUtils;
|
||||||
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||||
import com.njcn.device.biz.pojo.po.Overlimit;
|
import com.njcn.device.biz.pojo.po.Overlimit;
|
||||||
import com.njcn.influx.constant.InfluxDbSqlConstant;
|
|
||||||
import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.ListUtils;
|
import org.apache.commons.collections4.ListUtils;
|
||||||
@@ -40,7 +36,6 @@ import java.math.BigDecimal;
|
|||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
@@ -58,54 +53,25 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
|
|||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(DayDataServiceImpl.class);
|
private static final Logger logger = LoggerFactory.getLogger(DayDataServiceImpl.class);
|
||||||
@Value("${line.num}")
|
@Value("${line.num}")
|
||||||
private Integer NUM = 100;
|
private Integer NUM;
|
||||||
@Resource
|
|
||||||
private DataVFeignClient dataVFeignClient;
|
|
||||||
@Resource
|
@Resource
|
||||||
private CommTerminalGeneralClient commTerminalGeneralClient;
|
private CommTerminalGeneralClient commTerminalGeneralClient;
|
||||||
@Resource
|
@Resource
|
||||||
private DataIFeignClient dataIFeignClient;
|
|
||||||
@Resource
|
|
||||||
private DataPltFeignClient dataPltFeignClient;
|
|
||||||
@Resource
|
|
||||||
private DataInharmVFeignClient dataInharmVFeignClient;
|
|
||||||
@Resource
|
|
||||||
private DataHarmRateVFeignClient dataHarmRateVFeignClient;
|
|
||||||
@Resource
|
|
||||||
private DataLimitRateFeignClient dataLimitRateFeignClient;
|
private DataLimitRateFeignClient dataLimitRateFeignClient;
|
||||||
@Resource
|
@Resource
|
||||||
private DataLimitRateDetailFeignClient dataLimitRateDetailFeignClient;
|
|
||||||
@Resource
|
|
||||||
private PqDataVerifyFeignClient pqDataVerifyFeignClient;
|
|
||||||
@Resource
|
|
||||||
private DataLimitTargetFeignClient dataLimitTargetFeignClient;
|
private DataLimitTargetFeignClient dataLimitTargetFeignClient;
|
||||||
@Resource
|
@Resource
|
||||||
private DataLimitQualifiedFeignClient dataLimitQualifiedFeignClient;
|
private DataLimitQualifiedFeignClient dataLimitQualifiedFeignClient;
|
||||||
@Resource
|
@Resource
|
||||||
|
private IDataLimitRateAsync dataLimitRateAsync;
|
||||||
|
@Resource
|
||||||
private CsLineFeignClient csLineFeignClient;
|
private CsLineFeignClient csLineFeignClient;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void limitRateHandler(CalculatedParam calculatedParam) {
|
public void limitRateHandler(CalculatedParam calculatedParam) {
|
||||||
MemorySizeUtil.getNowMemory();
|
MemorySizeUtil.getNowMemory();
|
||||||
|
System.err.println("limitRate表转r_stat_limit_rate_d算法开始,执行日期为{}=====》"+calculatedParam.getDataDate());
|
||||||
Runtime runtime = Runtime.getRuntime();
|
|
||||||
// 获取 JVM 最大可用内存(以字节为单位)
|
|
||||||
long maxMemory = runtime.maxMemory();
|
|
||||||
// 获取 JVM 当前已分配的内存(以字节为单位)
|
|
||||||
long totalMemory = runtime.totalMemory();
|
|
||||||
// 获取 JVM 当前空闲内存(以字节为单位)
|
|
||||||
long freeMemory = runtime.freeMemory();
|
|
||||||
// 计算已使用的内存
|
|
||||||
long usedMemory = totalMemory - freeMemory;
|
|
||||||
|
|
||||||
System.out.println("最大可用内存: " + maxMemory / (1024 * 1024) + " MB");
|
|
||||||
System.out.println("当前已分配的内存: " + totalMemory / (1024 * 1024) + " MB");
|
|
||||||
System.out.println("当前空闲内存: " + freeMemory / (1024 * 1024) + " MB");
|
|
||||||
System.out.println("已使用的内存: " + usedMemory / (1024 * 1024) + " MB");
|
|
||||||
System.out.println("第一次分析结束-----------------------------------------");
|
|
||||||
|
|
||||||
logger.info("{},limitRate表转r_stat_limit_rate_d算法开始=====》", LocalDateTime.now());
|
|
||||||
List<DataLimitDetailDto> result = new ArrayList<>();
|
List<DataLimitDetailDto> result = new ArrayList<>();
|
||||||
//远程接口获取分钟数据
|
//远程接口获取分钟数据
|
||||||
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
|
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
|
||||||
@@ -114,151 +80,16 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
|
|||||||
lineParam.setType(calculatedParam.getType());
|
lineParam.setType(calculatedParam.getType());
|
||||||
List<String> lineIds = calculatedParam.getIdList();
|
List<String> lineIds = calculatedParam.getIdList();
|
||||||
//获取所有监测点的限值
|
//获取所有监测点的限值
|
||||||
List<Overlimit> overLimitList = csLineFeignClient.getOverLimitData(lineIds).getData();
|
List<Overlimit> overLimitList = commTerminalGeneralClient.getOverLimitDataByIds(lineIds).getData();
|
||||||
Map<String, Overlimit> overLimitMap = overLimitList.stream().collect(Collectors.toMap(Overlimit::getId, Function.identity()));
|
Map<String, Overlimit> overLimitMap = overLimitList.stream().collect(Collectors.toMap(Overlimit::getId, Function.identity()));
|
||||||
//添加异常数据时间点
|
|
||||||
getAbnormalData(lineParam);
|
|
||||||
//以100个监测点分片处理
|
//以100个监测点分片处理
|
||||||
List<List<String>> pendingIds = ListUtils.partition(lineIds, NUM);
|
List<List<String>> pendingIds = ListUtils.partition(lineIds, 1);
|
||||||
ArrayList<String> phase = ListUtil.toList(PhaseType.PHASE_A, PhaseType.PHASE_B, PhaseType.PHASE_C);
|
ArrayList<String> phase = ListUtil.toList(PhaseType.PHASE_A, PhaseType.PHASE_B, PhaseType.PHASE_C);
|
||||||
MemorySizeUtil.getNowMemory();
|
MemorySizeUtil.getNowMemory();
|
||||||
pendingIds.forEach(list -> {
|
for (int i = 0; i < pendingIds.size(); i++) {
|
||||||
lineParam.setLineId(list);
|
logger.info(calculatedParam.getDataDate()+" 总分区数据:" + pendingIds.size() + "=====》当前第"+(i + 1)+"小分区");
|
||||||
//获取电压数据
|
List<String> list = pendingIds.get(i);
|
||||||
List<DataVDto> dataVAllTime = dataVFeignClient.getRawData(lineParam).getData();
|
dataLimitRateAsync.lineDataRate(calculatedParam.getDataDate(), list, phase, overLimitMap, pendingIds.size(), (i + 1));
|
||||||
//闪变数据
|
|
||||||
List<DataPltDto> dataPltAllTime = dataPltFeignClient.getRawData(lineParam).getData();
|
|
||||||
//谐波数据
|
|
||||||
List<DataHarmDto> dataVHarmList = dataHarmRateVFeignClient.getRawData(lineParam).getData();
|
|
||||||
//间谐波数据
|
|
||||||
List<DataHarmDto> dataVInHarmList = dataInharmVFeignClient.getRawData(lineParam).getData();
|
|
||||||
//电流数据
|
|
||||||
List<DataIDto> dataIList = dataIFeignClient.getRawData(lineParam).getData();
|
|
||||||
/**
|
|
||||||
* 功能描述:获取influxDB -> data_v ->
|
|
||||||
* 总计算次数(用data_v中phasic_type=A,value_type=avg,quality_flag=0来参与统计)
|
|
||||||
*/
|
|
||||||
Map<String, List<DataVDto>> allTime = dataVAllTime.stream()
|
|
||||||
.filter(x -> PhaseType.PHASE_A.equals(x.getPhasicType()))
|
|
||||||
.filter(x -> InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(x.getValueType()))
|
|
||||||
.collect(Collectors.groupingBy(DataVDto::getLineId));
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 功能描述:获取influxDB -> data_plt ->
|
|
||||||
* 闪变总计算次数(用data_plt中phasic_type=A,value_type=avg,quality_flag=0来参与统计)
|
|
||||||
*/
|
|
||||||
Map<String, List<DataPltDto>> pltAllTime = dataPltAllTime.stream()
|
|
||||||
.filter(x -> PhaseType.PHASE_A.equals(x.getPhasicType()))
|
|
||||||
.filter(x -> InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(x.getValueType()))
|
|
||||||
.collect(Collectors.groupingBy(DataPltDto::getLineId));
|
|
||||||
|
|
||||||
/**
|
|
||||||
*功能描述:获取influxDB -> data_harmrate_v ->
|
|
||||||
* 2-25次谐波电压含有率 -> A相||B相||C相的日95%概率值
|
|
||||||
*/
|
|
||||||
Map<String, List<DataHarmDto>> harmRateV = dataVHarmList.stream()
|
|
||||||
.filter(x -> phase.contains(x.getPhasicType()))
|
|
||||||
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()))
|
|
||||||
.collect(Collectors.groupingBy(DataHarmDto::getLineId));
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 功能描述:获取influxDB -> data_i -> 2-25次谐波电流 -> 日95%概率值
|
|
||||||
*/
|
|
||||||
Map<String, List<DataIDto>> dataI = dataIList.stream()
|
|
||||||
.filter(x -> phase.contains(x.getPhasicType()))
|
|
||||||
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()))
|
|
||||||
.collect(Collectors.groupingBy(DataIDto::getLineId));
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 功能描述:获取influxDB -> data_inharm_v -> 0.5-15.5次间谐波电压含有率 -> 日95%概率值
|
|
||||||
*/
|
|
||||||
Map<String, List<DataHarmDto>> inHarmV = dataVInHarmList.stream()
|
|
||||||
.filter(x -> phase.contains(x.getPhasicType()))
|
|
||||||
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()))
|
|
||||||
.collect(Collectors.groupingBy(DataHarmDto::getLineId));
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 功能描述:获取influxDB -> data_v -> 电压总谐波畸变率 -> 日95%概率值
|
|
||||||
*/
|
|
||||||
Map<String, List<DataVDto>> dataVThd = dataVAllTime.stream()
|
|
||||||
.filter(x -> phase.contains(x.getPhasicType()))
|
|
||||||
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()))
|
|
||||||
.collect(Collectors.groupingBy(DataVDto::getLineId));
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 功能描述:获取influxDB -> data_v -> 负序电压不平衡度 -> 最大值 && 日95%概率值
|
|
||||||
*/
|
|
||||||
Map<String, List<DataVDto>> dataVUnbalance = dataVAllTime.stream()
|
|
||||||
.filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equals(x.getPhasicType()))
|
|
||||||
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()) ||
|
|
||||||
InfluxDBTableConstant.MAX.equals(x.getValueType()))
|
|
||||||
.collect(Collectors.groupingBy(DataVDto::getLineId));
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 功能描述:获取influxDB -> data_i -> 负序电流 -> 最大值 && 日95%概率值
|
|
||||||
*/
|
|
||||||
Map<String, List<DataIDto>> dataINeg = dataIList.stream()
|
|
||||||
.filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equals(x.getPhasicType()))
|
|
||||||
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()) ||
|
|
||||||
InfluxDBTableConstant.MAX.equals(x.getValueType()))
|
|
||||||
.collect(Collectors.groupingBy(DataIDto::getLineId));
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 功能描述:获取influxDB -> data_v -> 频率偏差 -> 最大值 && 最小值
|
|
||||||
*/
|
|
||||||
Map<String, List<DataVDto>> dataVFreq = dataVAllTime.stream()
|
|
||||||
.filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equals(x.getPhasicType()))
|
|
||||||
.filter(x -> InfluxDBTableConstant.MIN.equals(x.getValueType()) ||
|
|
||||||
InfluxDBTableConstant.MAX.equals(x.getValueType()))
|
|
||||||
.collect(Collectors.groupingBy(DataVDto::getLineId));
|
|
||||||
/**
|
|
||||||
* 功能描述:获取influxDB -> data_v -> 电压偏差 -> 最大值
|
|
||||||
*/
|
|
||||||
Map<String, List<DataVDto>> dataVDev = dataVAllTime.stream()
|
|
||||||
.filter(x -> phase.contains(x.getPhasicType()))
|
|
||||||
.filter(x -> InfluxDBTableConstant.MAX.equals(x.getValueType()))
|
|
||||||
.collect(Collectors.groupingBy(DataVDto::getLineId));
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 功能描述:获取influxDB -> data_plt -> 长时间闪变 -> 注(取最大值原始算法去掉了,现没有根据最大值比较)
|
|
||||||
*/
|
|
||||||
Map<String, List<DataPltDto>> dataPlt = dataPltAllTime.stream()
|
|
||||||
.filter(x -> phase.contains(x.getPhasicType()))
|
|
||||||
.collect(Collectors.groupingBy(DataPltDto::getLineId));
|
|
||||||
|
|
||||||
for (String item : list) {
|
|
||||||
if(ObjectUtil.isNotNull(overLimitMap.get(item))){
|
|
||||||
result.addAll(getData(calculatedParam.getDataDate(),
|
|
||||||
overLimitMap.get(item),
|
|
||||||
allTime.get(item),
|
|
||||||
pltAllTime.get(item),
|
|
||||||
harmRateV.get(item),
|
|
||||||
dataI.get(item),
|
|
||||||
inHarmV.get(item),
|
|
||||||
dataVThd.get(item),
|
|
||||||
dataVUnbalance.get(item),
|
|
||||||
dataINeg.get(item),
|
|
||||||
dataVFreq.get(item),
|
|
||||||
dataVDev.get(item),
|
|
||||||
dataPlt.get(item)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
MemorySizeUtil.getNowMemory();
|
|
||||||
if (CollUtil.isNotEmpty(result)) {
|
|
||||||
//存储数据
|
|
||||||
List<DataLimitRateDto> dataLimitRate = result.stream().map(DataLimitDetailDto::getDataLimitRate).filter(ObjectUtil::isNotNull).collect(Collectors.toList());
|
|
||||||
if(CollUtil.isNotEmpty(dataLimitRate)){
|
|
||||||
dataLimitRateFeignClient.batchInsertion(dataLimitRate);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (CollUtil.isNotEmpty(result)) {
|
|
||||||
//存储数据
|
|
||||||
List<DataLimitRateDetailDto> detail = result.stream().map(DataLimitDetailDto::getDataLimitRateDetail).filter(x -> ObjectUtil.isNotNull(x)).collect(Collectors.toList());
|
|
||||||
if(CollUtil.isNotEmpty(detail)){
|
|
||||||
dataLimitRateDetailFeignClient.batchInsertion(detail);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
System.gc();
|
System.gc();
|
||||||
}
|
}
|
||||||
@@ -465,665 +296,6 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: getData
|
|
||||||
* @Param: [overlimit, allTimeList, flickerAllTimeList, dataHarmRateVPOList, dataIPOList, dataInHarmVPOList, dataVPOList, dataVPOUnbalanceList, dataIPONegList, dataVPOFreqList, dataVPODevList, dataPltPOList]
|
|
||||||
* @return: java.util.List<com.njcn.harmonic.pojo.po.LimitRate>
|
|
||||||
* @Author: clam
|
|
||||||
* @Date: 2022/10/18
|
|
||||||
*/
|
|
||||||
private List<DataLimitDetailDto> getData(String dataDate,
|
|
||||||
Overlimit overlimit,
|
|
||||||
List<DataVDto> allTimeList,
|
|
||||||
List<DataPltDto> flickerAllTimeList,
|
|
||||||
List<DataHarmDto> dataHarmRateVPOList,
|
|
||||||
List<DataIDto> dataIPOList,
|
|
||||||
List<DataHarmDto> dataInHarmVPOList,
|
|
||||||
List<DataVDto> dataVPOList,
|
|
||||||
List<DataVDto> dataVPOUnbalanceList,
|
|
||||||
List<DataIDto> dataIPONegList,
|
|
||||||
List<DataVDto> dataVPOFreqList,
|
|
||||||
List<DataVDto> dataVPODevList,
|
|
||||||
List<DataPltDto> dataPltPOList) {
|
|
||||||
List<DataLimitDetailDto> result = new ArrayList<>();
|
|
||||||
|
|
||||||
Map<String, List<DataHarmDto>> harmRateVByPhaseType = new HashMap<>();
|
|
||||||
Map<String, List<DataIDto>> dataIByPhaseType = new HashMap<>();
|
|
||||||
Map<String, List<DataHarmDto>> dataInHarmVPhaseType = new HashMap<>();
|
|
||||||
Map<String, List<DataVDto>> dataVPhaseType = new HashMap<>();
|
|
||||||
Map<String, List<DataVDto>> dataVDevPhaseType = new HashMap<>();
|
|
||||||
Map<String, List<DataPltDto>> dataPltPhaseType = new HashMap<>();
|
|
||||||
|
|
||||||
|
|
||||||
Integer allTime = 0;
|
|
||||||
Integer flickerAllTime = 0;
|
|
||||||
if (!CollectionUtils.isEmpty(allTimeList)) {
|
|
||||||
allTime = allTimeList.size();
|
|
||||||
}
|
|
||||||
if (!CollectionUtils.isEmpty(flickerAllTimeList)) {
|
|
||||||
flickerAllTime = flickerAllTimeList.size();
|
|
||||||
}
|
|
||||||
if (!CollectionUtils.isEmpty(dataHarmRateVPOList)) {
|
|
||||||
harmRateVByPhaseType = dataHarmRateVPOList.stream().collect(Collectors.groupingBy(DataHarmDto::getPhasicType));
|
|
||||||
}
|
|
||||||
if (!CollectionUtils.isEmpty(dataIPOList)) {
|
|
||||||
dataIByPhaseType = dataIPOList.stream().collect(Collectors.groupingBy(DataIDto::getPhasicType));
|
|
||||||
}
|
|
||||||
if (!CollectionUtils.isEmpty(dataInHarmVPOList)) {
|
|
||||||
dataInHarmVPhaseType = dataInHarmVPOList.stream().collect(Collectors.groupingBy(DataHarmDto::getPhasicType));
|
|
||||||
}
|
|
||||||
if (!CollectionUtils.isEmpty(dataVPOList)) {
|
|
||||||
dataVPhaseType = dataVPOList.stream().collect(Collectors.groupingBy(DataVDto::getPhasicType));
|
|
||||||
}
|
|
||||||
if (!CollectionUtils.isEmpty(dataVPODevList)) {
|
|
||||||
dataVDevPhaseType = dataVPODevList.stream().collect(Collectors.groupingBy(DataVDto::getPhasicType));
|
|
||||||
}
|
|
||||||
if (!CollectionUtils.isEmpty(dataPltPOList)) {
|
|
||||||
dataPltPhaseType = dataPltPOList.stream().collect(Collectors.groupingBy(DataPltDto::getPhasicType));
|
|
||||||
}
|
|
||||||
DataLimitDetailDto a = limitRateData(dataDate, overlimit, allTime, flickerAllTime, PhaseType.PHASE_A, overlimit.getId(), harmRateVByPhaseType.get(PhaseType.PHASE_A), dataIByPhaseType.get(PhaseType.PHASE_A), dataInHarmVPhaseType.get(PhaseType.PHASE_A), dataVPhaseType.get(PhaseType.PHASE_A), dataVDevPhaseType.get(PhaseType.PHASE_A), dataPltPhaseType.get(PhaseType.PHASE_A));
|
|
||||||
DataLimitDetailDto b = limitRateData(dataDate, overlimit, allTime, flickerAllTime, PhaseType.PHASE_B, overlimit.getId(), harmRateVByPhaseType.get(PhaseType.PHASE_B), dataIByPhaseType.get(PhaseType.PHASE_B), dataInHarmVPhaseType.get(PhaseType.PHASE_B), dataVPhaseType.get(PhaseType.PHASE_B), dataVDevPhaseType.get(PhaseType.PHASE_B), dataPltPhaseType.get(PhaseType.PHASE_B));
|
|
||||||
DataLimitDetailDto c = limitRateData(dataDate, overlimit, allTime, flickerAllTime, PhaseType.PHASE_C, overlimit.getId(), harmRateVByPhaseType.get(PhaseType.PHASE_C), dataIByPhaseType.get(PhaseType.PHASE_C), dataInHarmVPhaseType.get(PhaseType.PHASE_C), dataVPhaseType.get(PhaseType.PHASE_C), dataVDevPhaseType.get(PhaseType.PHASE_C), dataPltPhaseType.get(PhaseType.PHASE_C));
|
|
||||||
DataLimitDetailDto t = limitRateDataT(dataDate, overlimit, allTime, flickerAllTime, overlimit.getId(), dataHarmRateVPOList, dataIPOList, dataInHarmVPOList, dataVPOList, dataVPOUnbalanceList, dataIPONegList, dataVPOFreqList, dataVPODevList, dataPltPOList);
|
|
||||||
result.add(a);
|
|
||||||
result.add(b);
|
|
||||||
result.add(c);
|
|
||||||
result.add(t);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param lineParam
|
|
||||||
* @Description:
|
|
||||||
* @Author: wr
|
|
||||||
* @Date: 2025/3/11 9:04
|
|
||||||
*/
|
|
||||||
private void getAbnormalData(LineCountEvaluateParam lineParam) {
|
|
||||||
lineParam.setTableName(DataCleanEnum.DataV.getCode());
|
|
||||||
// 获取异常数据,用于排除异常数据
|
|
||||||
List<PqDataVerify> pqDataVerifies = pqDataVerifyFeignClient.queryData(lineParam).getData();
|
|
||||||
if (CollUtil.isNotEmpty(pqDataVerifies)) {
|
|
||||||
Map<String, List<String>> timeMap = pqDataVerifies.stream()
|
|
||||||
.collect(Collectors.groupingBy(
|
|
||||||
PqDataVerify::getLineId,
|
|
||||||
Collectors.mapping(item -> TimeUtils.LocalDateTimeToString(item.getTime()), Collectors.toList())
|
|
||||||
));
|
|
||||||
lineParam.setAbnormalTime(timeMap);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Description: limitRateData
|
|
||||||
* @Param: [overlimit, allTime, flickerAllTime, phasicType, lineId, dataHarmRateVPOList, dataIPOList, dataInHarmVPOList, dataVPOList, dataVUnbalanceList, dataINegList]
|
|
||||||
* @return: com.njcn.harmonic.pojo.po.LimitRate
|
|
||||||
* @Author: clam
|
|
||||||
* @Date: 2022/10/18
|
|
||||||
*/
|
|
||||||
public DataLimitDetailDto limitRateData(String dataDate,
|
|
||||||
Overlimit overlimit,
|
|
||||||
Integer allTime,
|
|
||||||
Integer flickerAllTime,
|
|
||||||
String phasicType, String lineId,
|
|
||||||
List<DataHarmDto> dataHarmRateVPOList,
|
|
||||||
List<DataIDto> dataIPOList,
|
|
||||||
List<DataHarmDto> dataInHarmVPOList,
|
|
||||||
List<DataVDto> dataVPOList,
|
|
||||||
List<DataVDto> dataVPODevList,
|
|
||||||
List<DataPltDto> dataPltPOList) {
|
|
||||||
List<AbnormalData> thd = new ArrayList<>(), uDev = new ArrayList<>(), flicker = new ArrayList<>(), freqDev = new ArrayList<>(), uAberrance = new ArrayList<>(), iNeg = new ArrayList<>();
|
|
||||||
DataLimitDetailDto dto = new DataLimitDetailDto();
|
|
||||||
DataLimitRateDto limitRate = new DataLimitRateDto();
|
|
||||||
// 初始化 v 系列列表
|
|
||||||
List<AbnormalData>[] v = new List[24];
|
|
||||||
for (int i = 0; i < 24; i++) {
|
|
||||||
v[i] = new ArrayList<>();
|
|
||||||
}
|
|
||||||
// 处理数据
|
|
||||||
if (!CollectionUtils.isEmpty(dataHarmRateVPOList)) {
|
|
||||||
for (DataHarmDto item : dataHarmRateVPOList) {
|
|
||||||
for (int i = 2; i < 26; i++) {
|
|
||||||
try {
|
|
||||||
// 获取 DataHarmDto 类的 getVx 方法
|
|
||||||
Method getVMethod = DataHarmDto.class.getMethod("getV" + i);
|
|
||||||
Double value = (Double) getVMethod.invoke(item);
|
|
||||||
// 获取 Overlimit 类的 getUharmx 方法
|
|
||||||
Method getUharmMethod = Overlimit.class.getMethod("getUharm" + i);
|
|
||||||
float limit = (float) getUharmMethod.invoke(overlimit);
|
|
||||||
if (ObjectUtil.isNotNull(value)){
|
|
||||||
if (value > limit) {
|
|
||||||
addAbnormalData(v[i - 2], item.getPhasicType(), item.getValueType(), item.getMinTime(), value, limit);
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
addAbnormalData(v[i - 2], item.getPhasicType(), item.getValueType(), item.getMinTime(), value, limit);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 初始化 i 系列列表
|
|
||||||
List<AbnormalData>[] i = new List[24];
|
|
||||||
for (int j = 0; j < 24; j++) {
|
|
||||||
i[j] = new ArrayList<>();
|
|
||||||
}
|
|
||||||
// 处理数据
|
|
||||||
if (!CollectionUtils.isEmpty(dataIPOList)) {
|
|
||||||
for (DataIDto item : dataIPOList) {
|
|
||||||
for (int j = 2; j < 26; j++) {
|
|
||||||
try {
|
|
||||||
// 获取 DataHarmDto 类的 getIx 方法
|
|
||||||
Method getVMethod = DataIDto.class.getMethod("getI" + j);
|
|
||||||
Double value = (Double) getVMethod.invoke(item);
|
|
||||||
// 获取 Overlimit 类的 getUharmx 方法
|
|
||||||
Method getUharmMethod = Overlimit.class.getMethod("getIharm" + j);
|
|
||||||
float limit = (float) getUharmMethod.invoke(overlimit);
|
|
||||||
if (value > limit) {
|
|
||||||
addAbnormalData(i[j - 2], item.getValueType(), item.getPhasicType(), item.getMinTime(), value, limit);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 初始化 uHarm 系列列表
|
|
||||||
List<AbnormalData>[] uHarm = new List[16];
|
|
||||||
for (int j = 0; j < 16; j++) {
|
|
||||||
uHarm[j] = new ArrayList<>();
|
|
||||||
}
|
|
||||||
// 处理数据
|
|
||||||
if (!CollectionUtils.isEmpty(dataInHarmVPOList)) {
|
|
||||||
for (DataHarmDto item : dataInHarmVPOList) {
|
|
||||||
for (int j = 1; j < 17; j++) {
|
|
||||||
try {
|
|
||||||
// 获取 DataHarmDto 类的 getVx 方法
|
|
||||||
Method getVMethod = DataHarmDto.class.getMethod("getV" + j);
|
|
||||||
Double value = (Double) getVMethod.invoke(item);
|
|
||||||
// 获取 Overlimit 类的 getUharmx 方法
|
|
||||||
Method getUharmMethod = Overlimit.class.getMethod("getInuharm" + j);
|
|
||||||
float limit = (float) getUharmMethod.invoke(overlimit);
|
|
||||||
if (value > limit) {
|
|
||||||
addAbnormalData(uHarm[j - 1], item.getPhasicType(), item.getValueType(), item.getMinTime(), value, limit);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//电压总谐波畸变率
|
|
||||||
if (!CollectionUtils.isEmpty(dataVPOList)) {
|
|
||||||
for (DataVDto item : dataVPOList) {
|
|
||||||
if (ObjectUtil.isNull(item.getVThd())||item.getVThd() > overlimit.getUaberrance()) {
|
|
||||||
addAbnormalData(thd, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getVThd(), overlimit.getUaberrance());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//电压上偏差、电压下偏差(根据vl_dev的正负判断是用哪个值判断越限)
|
|
||||||
if (!CollectionUtils.isEmpty(dataVPODevList)) {
|
|
||||||
for (DataVDto item : dataVPODevList) {
|
|
||||||
if (ObjectUtil.isNull(item.getVlDev())||item.getVlDev() >= 0) {
|
|
||||||
if (item.getVlDev() > overlimit.getVoltageDev()) {
|
|
||||||
addAbnormalData(uDev, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getVlDev(), overlimit.getVoltageDev());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (Math.abs(item.getVuDev()) > Math.abs(overlimit.getUvoltageDev())) {
|
|
||||||
addAbnormalData(uDev, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getVlDev(), overlimit.getUvoltageDev());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//长时间闪变
|
|
||||||
if (!CollectionUtils.isEmpty(dataPltPOList)) {
|
|
||||||
for (DataPltDto item : dataPltPOList) {
|
|
||||||
if (ObjectUtil.isNull(item.getPlt())||item.getPlt() > overlimit.getFlicker()) {
|
|
||||||
addAbnormalData(flicker, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getPlt(), overlimit.getFlicker());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
limitRate.setLineId(lineId);
|
|
||||||
limitRate.setTime(LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN));
|
|
||||||
limitRate.setPhasicType(phasicType);
|
|
||||||
limitRate.setAllTime(allTime);
|
|
||||||
limitRate.setFlickerAllTime(flickerAllTime);
|
|
||||||
|
|
||||||
limitRate.setFlickerOvertime(flicker.size());
|
|
||||||
limitRate.setUaberranceOvertime(thd.size());
|
|
||||||
limitRate.setINegOvertime(iNeg.size());
|
|
||||||
limitRate.setFreqDevOvertime(freqDev.size());
|
|
||||||
limitRate.setUbalanceOvertime(uAberrance.size());
|
|
||||||
limitRate.setVoltageDevOvertime(uDev.size());
|
|
||||||
dto.setDataLimitRate(getDataLimitRateDto(limitRate, v, i, uHarm));
|
|
||||||
|
|
||||||
return dto;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public DataLimitDetailDto limitRateDataT(
|
|
||||||
String dataDate,
|
|
||||||
Overlimit overlimit,
|
|
||||||
Integer allTime,
|
|
||||||
Integer flickerAllTime,
|
|
||||||
String lineId,
|
|
||||||
List<DataHarmDto> dataHarmRateVPOList,
|
|
||||||
List<DataIDto> dataIPOList,
|
|
||||||
List<DataHarmDto> dataInHarmVPOList,
|
|
||||||
List<DataVDto> dataVPOList,
|
|
||||||
List<DataVDto> dataVPOUnbalanceList,
|
|
||||||
List<DataIDto> dataIPONegList,
|
|
||||||
List<DataVDto> dataVPOFreqList,
|
|
||||||
List<DataVDto> dataVPODevList,
|
|
||||||
List<DataPltDto> dataPltPOList) {
|
|
||||||
DataLimitDetailDto dto = new DataLimitDetailDto();
|
|
||||||
DataLimitRateDto limitRate = new DataLimitRateDto();
|
|
||||||
List<AbnormalData> thd = new ArrayList<>(), uDev = new ArrayList<>(), flicker = new ArrayList<>(), freqDev = new ArrayList<>(), uAberrance = new ArrayList<>(), iNeg = new ArrayList<>();
|
|
||||||
// 初始化 v 系列列表
|
|
||||||
List<AbnormalData>[] v = new List[24];
|
|
||||||
for (int i = 0; i < 24; i++) {
|
|
||||||
v[i] = new ArrayList<>();
|
|
||||||
}
|
|
||||||
// 处理数据
|
|
||||||
if (!CollectionUtils.isEmpty(dataHarmRateVPOList)) {
|
|
||||||
for (DataHarmDto item : dataHarmRateVPOList) {
|
|
||||||
for (int i = 2; i < 26; i++) {
|
|
||||||
try {
|
|
||||||
// 获取 DataHarmDto 类的 getVx 方法
|
|
||||||
Method getVMethod = DataHarmDto.class.getMethod("getV" + i);
|
|
||||||
Double value = (Double) getVMethod.invoke(item);
|
|
||||||
// 获取 Overlimit 类的 getUharmx 方法
|
|
||||||
Method getUharmMethod = Overlimit.class.getMethod("getUharm" + i);
|
|
||||||
float limit = (float) getUharmMethod.invoke(overlimit);
|
|
||||||
if (ObjectUtil.isNotNull(value)){
|
|
||||||
if (value > limit) {
|
|
||||||
addAbnormalData(v[i - 2], item.getPhasicType(), item.getValueType(), item.getMinTime(), value, limit);
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
System.out.println(item);
|
|
||||||
addAbnormalData(v[i - 2], item.getPhasicType(), item.getValueType(), item.getMinTime(), value, limit);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 初始化 i 系列列表
|
|
||||||
List<AbnormalData>[] i = new List[24];
|
|
||||||
for (int j = 0; j < 24; j++) {
|
|
||||||
i[j] = new ArrayList<>();
|
|
||||||
}
|
|
||||||
// 处理数据
|
|
||||||
if (!CollectionUtils.isEmpty(dataIPOList)) {
|
|
||||||
for (DataIDto item : dataIPOList) {
|
|
||||||
for (int j = 2; j < 26; j++) {
|
|
||||||
try {
|
|
||||||
// 获取 DataHarmDto 类的 getIx 方法
|
|
||||||
Method getVMethod = DataIDto.class.getMethod("getI" + j);
|
|
||||||
Double value = (Double) getVMethod.invoke(item);
|
|
||||||
// 获取 Overlimit 类的 getUharmx 方法
|
|
||||||
Method getUharmMethod = Overlimit.class.getMethod("getIharm" + j);
|
|
||||||
float limit = (float) getUharmMethod.invoke(overlimit);
|
|
||||||
if (value > limit) {
|
|
||||||
addAbnormalData(i[j - 2], item.getPhasicType(), item.getValueType(), item.getMinTime(), value, limit);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 初始化 uHarm 系列列表
|
|
||||||
List<AbnormalData>[] uHarm = new List[16];
|
|
||||||
for (int j = 0; j < 16; j++) {
|
|
||||||
uHarm[j] = new ArrayList<>();
|
|
||||||
}
|
|
||||||
// 处理数据
|
|
||||||
if (!CollectionUtils.isEmpty(dataInHarmVPOList)) {
|
|
||||||
for (DataHarmDto item : dataInHarmVPOList) {
|
|
||||||
for (int j = 1; j < 17; j++) {
|
|
||||||
try {
|
|
||||||
// 获取 DataHarmDto 类的 getVx 方法
|
|
||||||
Method getVMethod = DataHarmDto.class.getMethod("getV" + j);
|
|
||||||
Double value = (Double) getVMethod.invoke(item);
|
|
||||||
// 获取 Overlimit 类的 getUharmx 方法
|
|
||||||
Method getUharmMethod = Overlimit.class.getMethod("getInuharm" + j);
|
|
||||||
float limit = (float) getUharmMethod.invoke(overlimit);
|
|
||||||
if (value > limit) {
|
|
||||||
addAbnormalData(uHarm[j - 1], item.getPhasicType(), item.getValueType(), item.getMinTime(), value, limit);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//电压总谐波畸变率
|
|
||||||
if (!CollectionUtils.isEmpty(dataVPOList)) {
|
|
||||||
for (DataVDto item : dataVPOList) {
|
|
||||||
if (ObjectUtil.isNull(item.getVThd())||item.getVThd() > overlimit.getUaberrance()) {
|
|
||||||
addAbnormalData(thd, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getVThd(), overlimit.getUaberrance());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//三相电压不平衡度
|
|
||||||
if (!CollectionUtils.isEmpty(dataVPOUnbalanceList)) {
|
|
||||||
for (DataVDto item : dataVPOUnbalanceList) {
|
|
||||||
if (ObjectUtil.isNull(item.getVUnbalance())||item.getVUnbalance() > overlimit.getUbalance()) {
|
|
||||||
addAbnormalData(uAberrance, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getVUnbalance(), overlimit.getUbalance());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//负序电流
|
|
||||||
if (!CollectionUtils.isEmpty(dataIPONegList)) {
|
|
||||||
for (DataIDto item : dataIPONegList) {
|
|
||||||
if(ObjectUtil.isNotNull(item.getINeg())){
|
|
||||||
if (item.getINeg() > overlimit.getINeg()) {
|
|
||||||
addAbnormalData(iNeg, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getINeg(), overlimit.getINeg());
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
System.out.println(item);
|
|
||||||
addAbnormalData(iNeg, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getINeg(), overlimit.getINeg());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//频率偏差
|
|
||||||
if (!CollectionUtils.isEmpty(dataVPOFreqList)) {
|
|
||||||
for (DataVDto item : dataVPOFreqList) {
|
|
||||||
if (ObjectUtil.isNull(item.getFreqDev())||item.getFreqDev() > overlimit.getFreqDev()) {
|
|
||||||
addAbnormalData(freqDev, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getFreqDev(), overlimit.getFreqDev());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//电压上偏差、电压下偏差(根据vl_dev的正负判断是用哪个值判断越限)
|
|
||||||
if (!CollectionUtils.isEmpty(dataVPODevList)) {
|
|
||||||
for (DataVDto item : dataVPODevList) {
|
|
||||||
if (ObjectUtil.isNull(item.getVlDev())||item.getVlDev() >= 0) {
|
|
||||||
if (item.getVlDev() > overlimit.getVoltageDev()) {
|
|
||||||
addAbnormalData(uDev, item.getPhasicType(), item.getMinTime(), item.getValueType(), item.getVlDev(), overlimit.getVoltageDev());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (Math.abs(item.getVuDev()) > Math.abs(overlimit.getUvoltageDev())) {
|
|
||||||
addAbnormalData(uDev, item.getPhasicType(), item.getMinTime(), item.getValueType(), item.getVlDev(), overlimit.getUvoltageDev());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//长时间闪变
|
|
||||||
if (!CollectionUtils.isEmpty(dataPltPOList)) {
|
|
||||||
for (DataPltDto item : dataPltPOList) {
|
|
||||||
if (ObjectUtil.isNull(item.getPlt())||item.getPlt() > overlimit.getFlicker()) {
|
|
||||||
addAbnormalData(flicker, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getPlt(), overlimit.getFlicker());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
limitRate.setLineId(lineId);
|
|
||||||
limitRate.setTime(LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN));
|
|
||||||
limitRate.setPhasicType(PhaseType.PHASE_T);
|
|
||||||
limitRate.setAllTime(allTime);
|
|
||||||
limitRate.setFlickerAllTime(flickerAllTime);
|
|
||||||
limitRate.setUaberranceOvertime(thd.stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setINegOvertime(iNeg.stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setFreqDevOvertime(freqDev.stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUbalanceOvertime(uAberrance.stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setVoltageDevOvertime(uDev.stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setFlickerOvertime(flicker.stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm2Overtime(v[0].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm3Overtime(v[1].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm4Overtime(v[2].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm5Overtime(v[3].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm6Overtime(v[4].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm7Overtime(v[5].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm8Overtime(v[6].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm9Overtime(v[7].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm10Overtime(v[8].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm11Overtime(v[9].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm12Overtime(v[10].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm13Overtime(v[11].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm14Overtime(v[12].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm15Overtime(v[13].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm16Overtime(v[14].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm17Overtime(v[15].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm18Overtime(v[16].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm19Overtime(v[17].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm20Overtime(v[18].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm21Overtime(v[19].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm22Overtime(v[20].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm23Overtime(v[21].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm24Overtime(v[22].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setUharm25Overtime(v[23].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm2Overtime(i[0].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm3Overtime(i[1].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm4Overtime(i[2].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm5Overtime(i[3].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm6Overtime(i[4].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm7Overtime(i[5].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm8Overtime(i[6].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm9Overtime(i[7].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm10Overtime(i[8].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm11Overtime(i[9].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm12Overtime(i[10].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm13Overtime(i[11].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm14Overtime(i[12].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm15Overtime(i[13].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm16Overtime(i[14].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm17Overtime(i[15].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm18Overtime(i[16].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm19Overtime(i[17].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm20Overtime(i[18].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm21Overtime(i[19].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm22Overtime(i[20].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm23Overtime(i[21].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm24Overtime(i[22].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setIharm25Overtime(i[23].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm1Overtime(uHarm[0].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm2Overtime(uHarm[1].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm3Overtime(uHarm[2].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm4Overtime(uHarm[3].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm5Overtime(uHarm[4].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm6Overtime(uHarm[5].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm7Overtime(uHarm[6].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm8Overtime(uHarm[7].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm9Overtime(uHarm[8].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm10Overtime(uHarm[9].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm11Overtime(uHarm[10].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm12Overtime(uHarm[11].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm13Overtime(uHarm[12].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm14Overtime(uHarm[13].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm15Overtime(uHarm[14].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
limitRate.setInuharm16Overtime(uHarm[15].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
|
||||||
dto.setDataLimitRate(limitRate);
|
|
||||||
|
|
||||||
int detailAllTime = flicker.size() + uAberrance.size() + iNeg.size() + freqDev.size() + thd.size() + uDev.size() +
|
|
||||||
v[0].size() + v[1].size() + v[2].size() + v[3].size() + v[4].size() + v[5].size() + v[6].size() + v[7].size() + v[8].size() + v[9].size() + v[11].size() + v[12].size() + v[13].size() + v[14].size() + v[15].size() + v[16].size() + v[17].size() + v[18].size() + v[19].size() + v[20].size() + v[21].size() + v[22].size() + v[23].size() +
|
|
||||||
i[0].size() + i[1].size() + i[2].size() + i[3].size() + i[4].size() + i[5].size() + i[6].size() + i[7].size() + i[8].size() + i[9].size() + i[10].size() + i[11].size() + i[12].size() + i[13].size() + i[14].size() + i[15].size() + i[16].size() + i[17].size() + i[18].size() + i[19].size() + i[20].size() + i[21].size() + i[22].size() + i[23].size() +
|
|
||||||
uHarm[0].size() + uHarm[1].size() + uHarm[2].size() + uHarm[3].size() + uHarm[4].size() + uHarm[5].size() + uHarm[6].size() + uHarm[7].size() + uHarm[8].size() + uHarm[9].size() + uHarm[10].size() + uHarm[11].size() + uHarm[12].size() + uHarm[13].size() + uHarm[14].size() + uHarm[15].size();
|
|
||||||
if (detailAllTime > 0) {
|
|
||||||
DataLimitRateDetailDto detail = new DataLimitRateDetailDto();
|
|
||||||
detail.setLineId(lineId);
|
|
||||||
detail.setTime(LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN));
|
|
||||||
detail.setFlickerOvertime(toJson(flicker));
|
|
||||||
detail.setUaberranceOvertime(toJson(uAberrance));
|
|
||||||
detail.setINegOvertime(toJson(iNeg));
|
|
||||||
detail.setFreqDevOvertime(toJson(freqDev));
|
|
||||||
detail.setUbalanceOvertime(toJson(thd));
|
|
||||||
detail.setVoltageDevOvertime(toJson(uDev));
|
|
||||||
detail.setUharm2Overtime(toJson(v[0]));
|
|
||||||
detail.setUharm3Overtime(toJson(v[1]));
|
|
||||||
detail.setUharm4Overtime(toJson(v[2]));
|
|
||||||
detail.setUharm5Overtime(toJson(v[3]));
|
|
||||||
detail.setUharm6Overtime(toJson(v[4]));
|
|
||||||
detail.setUharm7Overtime(toJson(v[5]));
|
|
||||||
detail.setUharm8Overtime(toJson(v[6]));
|
|
||||||
detail.setUharm9Overtime(toJson(v[7]));
|
|
||||||
detail.setUharm10Overtime(toJson(v[8]));
|
|
||||||
detail.setUharm11Overtime(toJson(v[9]));
|
|
||||||
detail.setUharm12Overtime(toJson(v[10]));
|
|
||||||
detail.setUharm13Overtime(toJson(v[11]));
|
|
||||||
detail.setUharm14Overtime(toJson(v[12]));
|
|
||||||
detail.setUharm15Overtime(toJson(v[13]));
|
|
||||||
detail.setUharm16Overtime(toJson(v[14]));
|
|
||||||
detail.setUharm17Overtime(toJson(v[15]));
|
|
||||||
detail.setUharm18Overtime(toJson(v[16]));
|
|
||||||
detail.setUharm19Overtime(toJson(v[17]));
|
|
||||||
detail.setUharm20Overtime(toJson(v[18]));
|
|
||||||
detail.setUharm21Overtime(toJson(v[19]));
|
|
||||||
detail.setUharm22Overtime(toJson(v[20]));
|
|
||||||
detail.setUharm23Overtime(toJson(v[21]));
|
|
||||||
detail.setUharm24Overtime(toJson(v[22]));
|
|
||||||
detail.setUharm25Overtime(toJson(v[23]));
|
|
||||||
detail.setIharm2Overtime(toJson(i[0]));
|
|
||||||
detail.setIharm3Overtime(toJson(i[1]));
|
|
||||||
detail.setIharm4Overtime(toJson(i[2]));
|
|
||||||
detail.setIharm5Overtime(toJson(i[3]));
|
|
||||||
detail.setIharm6Overtime(toJson(i[4]));
|
|
||||||
detail.setIharm7Overtime(toJson(i[5]));
|
|
||||||
detail.setIharm8Overtime(toJson(i[6]));
|
|
||||||
detail.setIharm9Overtime(toJson(i[7]));
|
|
||||||
detail.setIharm10Overtime(toJson(i[8]));
|
|
||||||
detail.setIharm11Overtime(toJson(i[9]));
|
|
||||||
detail.setIharm12Overtime(toJson(i[10]));
|
|
||||||
detail.setIharm13Overtime(toJson(i[11]));
|
|
||||||
detail.setIharm14Overtime(toJson(i[12]));
|
|
||||||
detail.setIharm15Overtime(toJson(i[13]));
|
|
||||||
detail.setIharm16Overtime(toJson(i[14]));
|
|
||||||
detail.setIharm17Overtime(toJson(i[15]));
|
|
||||||
detail.setIharm18Overtime(toJson(i[16]));
|
|
||||||
detail.setIharm19Overtime(toJson(i[17]));
|
|
||||||
detail.setIharm20Overtime(toJson(i[18]));
|
|
||||||
detail.setIharm21Overtime(toJson(i[19]));
|
|
||||||
detail.setIharm22Overtime(toJson(i[20]));
|
|
||||||
detail.setIharm23Overtime(toJson(i[21]));
|
|
||||||
detail.setIharm24Overtime(toJson(i[22]));
|
|
||||||
detail.setIharm25Overtime(toJson(i[23]));
|
|
||||||
detail.setInuharm1Overtime(toJson(uHarm[0]));
|
|
||||||
detail.setInuharm2Overtime(toJson(uHarm[1]));
|
|
||||||
detail.setInuharm3Overtime(toJson(uHarm[2]));
|
|
||||||
detail.setInuharm4Overtime(toJson(uHarm[3]));
|
|
||||||
detail.setInuharm5Overtime(toJson(uHarm[4]));
|
|
||||||
detail.setInuharm6Overtime(toJson(uHarm[5]));
|
|
||||||
detail.setInuharm7Overtime(toJson(uHarm[6]));
|
|
||||||
detail.setInuharm8Overtime(toJson(uHarm[7]));
|
|
||||||
detail.setInuharm9Overtime(toJson(uHarm[8]));
|
|
||||||
detail.setInuharm10Overtime(toJson(uHarm[9]));
|
|
||||||
detail.setInuharm11Overtime(toJson(uHarm[10]));
|
|
||||||
detail.setInuharm12Overtime(toJson(uHarm[11]));
|
|
||||||
detail.setInuharm13Overtime(toJson(uHarm[12]));
|
|
||||||
detail.setInuharm14Overtime(toJson(uHarm[13]));
|
|
||||||
detail.setInuharm15Overtime(toJson(uHarm[14]));
|
|
||||||
detail.setInuharm16Overtime(toJson(uHarm[15]));
|
|
||||||
dto.setDataLimitRateDetail(detail);
|
|
||||||
}
|
|
||||||
return dto;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private DataLimitRateDto getDataLimitRateDto(DataLimitRateDto limitRate, List<AbnormalData>[] v, List<AbnormalData>[] i, List<AbnormalData>[] uHarm) {
|
|
||||||
limitRate.setUharm2Overtime(v[0].size());
|
|
||||||
limitRate.setUharm3Overtime(v[1].size());
|
|
||||||
limitRate.setUharm4Overtime(v[2].size());
|
|
||||||
limitRate.setUharm5Overtime(v[3].size());
|
|
||||||
limitRate.setUharm6Overtime(v[4].size());
|
|
||||||
limitRate.setUharm7Overtime(v[5].size());
|
|
||||||
limitRate.setUharm8Overtime(v[6].size());
|
|
||||||
limitRate.setUharm9Overtime(v[7].size());
|
|
||||||
limitRate.setUharm10Overtime(v[8].size());
|
|
||||||
limitRate.setUharm11Overtime(v[9].size());
|
|
||||||
limitRate.setUharm12Overtime(v[10].size());
|
|
||||||
limitRate.setUharm13Overtime(v[11].size());
|
|
||||||
limitRate.setUharm14Overtime(v[12].size());
|
|
||||||
limitRate.setUharm15Overtime(v[13].size());
|
|
||||||
limitRate.setUharm16Overtime(v[14].size());
|
|
||||||
limitRate.setUharm17Overtime(v[15].size());
|
|
||||||
limitRate.setUharm18Overtime(v[16].size());
|
|
||||||
limitRate.setUharm19Overtime(v[17].size());
|
|
||||||
limitRate.setUharm20Overtime(v[18].size());
|
|
||||||
limitRate.setUharm21Overtime(v[19].size());
|
|
||||||
limitRate.setUharm22Overtime(v[20].size());
|
|
||||||
limitRate.setUharm23Overtime(v[21].size());
|
|
||||||
limitRate.setUharm24Overtime(v[22].size());
|
|
||||||
limitRate.setUharm25Overtime(v[23].size());
|
|
||||||
limitRate.setIharm2Overtime(i[0].size());
|
|
||||||
limitRate.setIharm3Overtime(i[1].size());
|
|
||||||
limitRate.setIharm4Overtime(i[2].size());
|
|
||||||
limitRate.setIharm5Overtime(i[3].size());
|
|
||||||
limitRate.setIharm6Overtime(i[4].size());
|
|
||||||
limitRate.setIharm7Overtime(i[5].size());
|
|
||||||
limitRate.setIharm8Overtime(i[6].size());
|
|
||||||
limitRate.setIharm9Overtime(i[7].size());
|
|
||||||
limitRate.setIharm10Overtime(i[8].size());
|
|
||||||
limitRate.setIharm11Overtime(i[9].size());
|
|
||||||
limitRate.setIharm12Overtime(i[10].size());
|
|
||||||
limitRate.setIharm13Overtime(i[11].size());
|
|
||||||
limitRate.setIharm14Overtime(i[12].size());
|
|
||||||
limitRate.setIharm15Overtime(i[13].size());
|
|
||||||
limitRate.setIharm16Overtime(i[14].size());
|
|
||||||
limitRate.setIharm17Overtime(i[15].size());
|
|
||||||
limitRate.setIharm18Overtime(i[16].size());
|
|
||||||
limitRate.setIharm19Overtime(i[17].size());
|
|
||||||
limitRate.setIharm20Overtime(i[18].size());
|
|
||||||
limitRate.setIharm21Overtime(i[19].size());
|
|
||||||
limitRate.setIharm22Overtime(i[20].size());
|
|
||||||
limitRate.setIharm23Overtime(i[21].size());
|
|
||||||
limitRate.setIharm24Overtime(i[22].size());
|
|
||||||
limitRate.setIharm25Overtime(i[23].size());
|
|
||||||
limitRate.setInuharm1Overtime(uHarm[0].size());
|
|
||||||
limitRate.setInuharm2Overtime(uHarm[1].size());
|
|
||||||
limitRate.setInuharm3Overtime(uHarm[2].size());
|
|
||||||
limitRate.setInuharm4Overtime(uHarm[3].size());
|
|
||||||
limitRate.setInuharm5Overtime(uHarm[4].size());
|
|
||||||
limitRate.setInuharm6Overtime(uHarm[5].size());
|
|
||||||
limitRate.setInuharm7Overtime(uHarm[6].size());
|
|
||||||
limitRate.setInuharm8Overtime(uHarm[7].size());
|
|
||||||
limitRate.setInuharm9Overtime(uHarm[8].size());
|
|
||||||
limitRate.setInuharm10Overtime(uHarm[9].size());
|
|
||||||
limitRate.setInuharm11Overtime(uHarm[10].size());
|
|
||||||
limitRate.setInuharm12Overtime(uHarm[11].size());
|
|
||||||
limitRate.setInuharm13Overtime(uHarm[12].size());
|
|
||||||
limitRate.setInuharm14Overtime(uHarm[13].size());
|
|
||||||
limitRate.setInuharm15Overtime(uHarm[14].size());
|
|
||||||
limitRate.setInuharm16Overtime(uHarm[15].size());
|
|
||||||
return limitRate;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String toJson(List<AbnormalData> list) {
|
|
||||||
Map<String, List<AbnormalData>> abnormalMap = list.stream().collect(Collectors.groupingBy(x -> x.getPhasic() + "_" + x.getValueType()));
|
|
||||||
List<AbnormalData.Json> info = new ArrayList<>();
|
|
||||||
abnormalMap.forEach((key, value) -> {
|
|
||||||
String[] split = key.split("_");
|
|
||||||
AbnormalData.Json json = new AbnormalData.Json();
|
|
||||||
json.setPhasic(split[0]);
|
|
||||||
json.setValueType(split[1]);
|
|
||||||
json.setTime(String.join(",", value.stream()
|
|
||||||
.map(abnormal -> abnormal.getTime())
|
|
||||||
.collect(Collectors.toList())));
|
|
||||||
json.setValue(String.join(",", value.stream()
|
|
||||||
.map(abnormal -> abnormal.getValue() + "")
|
|
||||||
.collect(Collectors.toList())));
|
|
||||||
json.setOverLimitValue(list.get(0).getOverLimitValue());
|
|
||||||
info.add(json);
|
|
||||||
});
|
|
||||||
if (CollUtil.isNotEmpty(info)) {
|
|
||||||
return JSON.toJSONString(info);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addAbnormalData(List<AbnormalData> list, String phasicType, String valueType, String time, Double value, float overLimitValue) {
|
|
||||||
AbnormalData data = new AbnormalData();
|
|
||||||
data.setTime(time.substring(11, time.length()));
|
|
||||||
data.setPhasic(phasicType);
|
|
||||||
data.setValueType(valueType);
|
|
||||||
data.setValue(value);
|
|
||||||
data.setOverLimitValue(overLimitValue);
|
|
||||||
list.add(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void chanelData(DataLimitRateDto limitRate, DataLimitTargetDto limitTarget) {
|
private void chanelData(DataLimitRateDto limitRate, DataLimitTargetDto limitTarget) {
|
||||||
//有一个指标超标,allTime则为1
|
//有一个指标超标,allTime则为1
|
||||||
int allTime = limitRate.getFreqDevOvertime() + limitRate.getVoltageDevOvertime() + limitRate.getUbalanceOvertime() + limitRate.getUaberranceOvertime() + limitRate.getINegOvertime();
|
int allTime = limitRate.getFreqDevOvertime() + limitRate.getVoltageDevOvertime() + limitRate.getUbalanceOvertime() + limitRate.getUaberranceOvertime() + limitRate.getINegOvertime();
|
||||||
|
|||||||
@@ -0,0 +1,871 @@
|
|||||||
|
package com.njcn.algorithm.serviceimpl.line;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.njcn.algorithm.service.line.IDataLimitRateAsync;
|
||||||
|
import com.njcn.algorithm.utils.MemorySizeUtil;
|
||||||
|
import com.njcn.dataProcess.api.*;
|
||||||
|
import com.njcn.dataProcess.constant.PhaseType;
|
||||||
|
import com.njcn.dataProcess.param.LineCountEvaluateParam;
|
||||||
|
import com.njcn.dataProcess.pojo.dto.*;
|
||||||
|
import com.njcn.dataProcess.util.TimeUtils;
|
||||||
|
import com.njcn.device.biz.pojo.po.Overlimit;
|
||||||
|
import com.njcn.influx.constant.InfluxDbSqlConstant;
|
||||||
|
import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author wr
|
||||||
|
* @description
|
||||||
|
* @date 2025/12/17 10:56
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
public class IDataLimitRateAsyncImpl implements IDataLimitRateAsync {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(IDataLimitRateAsyncImpl.class);
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DataVFeignClient dataVFeignClient;
|
||||||
|
@Resource
|
||||||
|
private DataIFeignClient dataIFeignClient;
|
||||||
|
@Resource
|
||||||
|
private DataPltFeignClient dataPltFeignClient;
|
||||||
|
@Resource
|
||||||
|
private DataInharmVFeignClient dataInharmVFeignClient;
|
||||||
|
@Resource
|
||||||
|
private DataHarmRateVFeignClient dataHarmRateVFeignClient;
|
||||||
|
@Resource
|
||||||
|
private DataLimitRateFeignClient dataLimitRateFeignClient;
|
||||||
|
@Resource
|
||||||
|
private DataLimitRateDetailFeignClient dataLimitRateDetailFeignClient;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Async("asyncExecutor")
|
||||||
|
public void lineDataRate(String dataDate,
|
||||||
|
List<String> list,
|
||||||
|
List<String> phase,
|
||||||
|
Map<String, Overlimit> overLimitMap,
|
||||||
|
int size,
|
||||||
|
int i) {
|
||||||
|
List<DataLimitDetailDto> result = new ArrayList<>();
|
||||||
|
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
|
||||||
|
lineParam.setStartTime(TimeUtils.getBeginOfDay(dataDate));
|
||||||
|
lineParam.setEndTime(TimeUtils.getEndOfDay(dataDate));
|
||||||
|
lineParam.setLineId(list);
|
||||||
|
//获取电压数据
|
||||||
|
List<DataVDto> dataVAllTime = dataVFeignClient.getRawData(lineParam).getData();
|
||||||
|
//闪变数据
|
||||||
|
List<DataPltDto> dataPltAllTime = dataPltFeignClient.getRawData(lineParam).getData();
|
||||||
|
//谐波数据
|
||||||
|
List<DataHarmDto> dataVHarmList = dataHarmRateVFeignClient.getRawData(lineParam).getData();
|
||||||
|
//间谐波数据
|
||||||
|
List<DataHarmDto> dataVInHarmList = dataInharmVFeignClient.getRawData(lineParam).getData();
|
||||||
|
//电流数据
|
||||||
|
List<DataIDto> dataIList = dataIFeignClient.getRawData(lineParam).getData();
|
||||||
|
/**
|
||||||
|
* 功能描述:获取influxDB -> data_v ->
|
||||||
|
* 总计算次数(用data_v中phasic_type=A,value_type=avg,quality_flag=0来参与统计)
|
||||||
|
*/
|
||||||
|
Map<String, List<DataVDto>> allTime = dataVAllTime.stream()
|
||||||
|
.filter(x -> PhaseType.PHASE_A.equals(x.getPhasicType()))
|
||||||
|
.filter(x -> InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(x.getValueType()))
|
||||||
|
.collect(Collectors.groupingBy(DataVDto::getLineId));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 功能描述:获取influxDB -> data_plt ->
|
||||||
|
* 闪变总计算次数(用data_plt中phasic_type=A,value_type=avg,quality_flag=0来参与统计)
|
||||||
|
*/
|
||||||
|
//fixme 冀北现场 闪变原始表没有 value_type 这个参数
|
||||||
|
Map<String, List<DataPltDto>> pltAllTime = dataPltAllTime.stream()
|
||||||
|
.filter(x -> PhaseType.PHASE_A.equals(x.getPhasicType()))
|
||||||
|
// .filter(x -> InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(x.getValueType()))
|
||||||
|
.collect(Collectors.groupingBy(DataPltDto::getLineId));
|
||||||
|
|
||||||
|
/**
|
||||||
|
*功能描述:获取influxDB -> data_harmrate_v ->
|
||||||
|
* 2-25次谐波电压含有率 -> A相||B相||C相的日95%概率值
|
||||||
|
*/
|
||||||
|
Map<String, List<DataHarmDto>> harmRateV = dataVHarmList.stream()
|
||||||
|
.filter(x -> phase.contains(x.getPhasicType()))
|
||||||
|
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()))
|
||||||
|
.collect(Collectors.groupingBy(DataHarmDto::getLineId));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 功能描述:获取influxDB -> data_i -> 2-25次谐波电流 -> 日95%概率值
|
||||||
|
*/
|
||||||
|
Map<String, List<DataIDto>> dataI = dataIList.stream()
|
||||||
|
.filter(x -> phase.contains(x.getPhasicType()))
|
||||||
|
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()))
|
||||||
|
.collect(Collectors.groupingBy(DataIDto::getLineId));
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 功能描述:获取influxDB -> data_inharm_v -> 0.5-15.5次间谐波电压含有率 -> 日95%概率值
|
||||||
|
*/
|
||||||
|
Map<String, List<DataHarmDto>> inHarmV = dataVInHarmList.stream()
|
||||||
|
.filter(x -> phase.contains(x.getPhasicType()))
|
||||||
|
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()))
|
||||||
|
.collect(Collectors.groupingBy(DataHarmDto::getLineId));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 功能描述:获取influxDB -> data_v -> 电压总谐波畸变率 -> 日95%概率值
|
||||||
|
*/
|
||||||
|
Map<String, List<DataVDto>> dataVThd = dataVAllTime.stream()
|
||||||
|
.filter(x -> phase.contains(x.getPhasicType()))
|
||||||
|
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()))
|
||||||
|
.collect(Collectors.groupingBy(DataVDto::getLineId));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 功能描述:获取influxDB -> data_v -> 负序电压不平衡度 -> 最大值 && 日95%概率值
|
||||||
|
*/
|
||||||
|
Map<String, List<DataVDto>> dataVUnbalance = dataVAllTime.stream()
|
||||||
|
.filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equals(x.getPhasicType()))
|
||||||
|
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()) ||
|
||||||
|
InfluxDBTableConstant.MAX.equals(x.getValueType()))
|
||||||
|
.collect(Collectors.groupingBy(DataVDto::getLineId));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 功能描述:获取influxDB -> data_i -> 负序电流 -> 最大值 && 日95%概率值
|
||||||
|
*/
|
||||||
|
Map<String, List<DataIDto>> dataINeg = dataIList.stream()
|
||||||
|
.filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equals(x.getPhasicType()))
|
||||||
|
.filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()) ||
|
||||||
|
InfluxDBTableConstant.MAX.equals(x.getValueType()))
|
||||||
|
.collect(Collectors.groupingBy(DataIDto::getLineId));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 功能描述:获取influxDB -> data_v -> 频率偏差 -> 最大值 && 最小值
|
||||||
|
*/
|
||||||
|
Map<String, List<DataVDto>> dataVFreq = dataVAllTime.stream()
|
||||||
|
.filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equals(x.getPhasicType()))
|
||||||
|
.filter(x -> InfluxDBTableConstant.MIN.equals(x.getValueType()) ||
|
||||||
|
InfluxDBTableConstant.MAX.equals(x.getValueType()))
|
||||||
|
.collect(Collectors.groupingBy(DataVDto::getLineId));
|
||||||
|
/**
|
||||||
|
* 功能描述:获取influxDB -> data_v -> 电压偏差 -> 最大值
|
||||||
|
*/
|
||||||
|
Map<String, List<DataVDto>> dataVDev = dataVAllTime.stream()
|
||||||
|
.filter(x -> phase.contains(x.getPhasicType()))
|
||||||
|
.filter(x -> InfluxDBTableConstant.MAX.equals(x.getValueType()))
|
||||||
|
.collect(Collectors.groupingBy(DataVDto::getLineId));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 功能描述:获取influxDB -> data_plt -> 长时间闪变 -> 注(取最大值原始算法去掉了,现没有根据最大值比较)
|
||||||
|
*/
|
||||||
|
Map<String, List<DataPltDto>> dataPlt = dataPltAllTime.stream()
|
||||||
|
.filter(x -> phase.contains(x.getPhasicType()))
|
||||||
|
.collect(Collectors.groupingBy(DataPltDto::getLineId));
|
||||||
|
|
||||||
|
for (String item : list) {
|
||||||
|
if (ObjectUtil.isNotNull(overLimitMap.get(item))) {
|
||||||
|
result.addAll(getData(dataDate,
|
||||||
|
overLimitMap.get(item),
|
||||||
|
allTime.get(item),
|
||||||
|
pltAllTime.get(item),
|
||||||
|
harmRateV.get(item),
|
||||||
|
dataI.get(item),
|
||||||
|
inHarmV.get(item),
|
||||||
|
dataVThd.get(item),
|
||||||
|
dataVUnbalance.get(item),
|
||||||
|
dataINeg.get(item),
|
||||||
|
dataVFreq.get(item),
|
||||||
|
dataVDev.get(item),
|
||||||
|
dataPlt.get(item)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (CollUtil.isNotEmpty(result)) {
|
||||||
|
//存储数据
|
||||||
|
List<DataLimitRateDto> dataLimitRate = result.stream().map(DataLimitDetailDto::getDataLimitRate).filter(ObjectUtil::isNotNull).collect(Collectors.toList());
|
||||||
|
if (CollUtil.isNotEmpty(dataLimitRate)) {
|
||||||
|
dataLimitRateFeignClient.batchInsertion(dataLimitRate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (CollUtil.isNotEmpty(result)) {
|
||||||
|
//存储数据
|
||||||
|
List<DataLimitRateDetailDto> detail = result.stream().map(DataLimitDetailDto::getDataLimitRateDetail).filter(x -> ObjectUtil.isNotNull(x)).collect(Collectors.toList());
|
||||||
|
if (CollUtil.isNotEmpty(detail)) {
|
||||||
|
dataLimitRateDetailFeignClient.batchInsertion(detail);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
logger.info(dataDate + " 总分区数据:" + size + "=====》当前第" + i + "小分区已完成!");
|
||||||
|
result = null;
|
||||||
|
if(i==size){
|
||||||
|
MemorySizeUtil.getNowMemory();
|
||||||
|
}
|
||||||
|
System.gc();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: getData
|
||||||
|
* @Param: [overlimit, allTimeList, flickerAllTimeList, dataHarmRateVPOList, dataIPOList, dataInHarmVPOList, dataVPOList, dataVPOUnbalanceList, dataIPONegList, dataVPOFreqList, dataVPODevList, dataPltPOList]
|
||||||
|
* @return: java.util.List<com.njcn.harmonic.pojo.po.LimitRate>
|
||||||
|
* @Author: clam
|
||||||
|
* @Date: 2022/10/18
|
||||||
|
*/
|
||||||
|
private List<DataLimitDetailDto> getData(String dataDate,
|
||||||
|
Overlimit overlimit,
|
||||||
|
List<DataVDto> allTimeList,
|
||||||
|
List<DataPltDto> flickerAllTimeList,
|
||||||
|
List<DataHarmDto> dataHarmRateVPOList,
|
||||||
|
List<DataIDto> dataIPOList,
|
||||||
|
List<DataHarmDto> dataInHarmVPOList,
|
||||||
|
List<DataVDto> dataVPOList,
|
||||||
|
List<DataVDto> dataVPOUnbalanceList,
|
||||||
|
List<DataIDto> dataIPONegList,
|
||||||
|
List<DataVDto> dataVPOFreqList,
|
||||||
|
List<DataVDto> dataVPODevList,
|
||||||
|
List<DataPltDto> dataPltPOList) {
|
||||||
|
List<DataLimitDetailDto> result = new ArrayList<>();
|
||||||
|
|
||||||
|
Map<String, List<DataHarmDto>> harmRateVByPhaseType = new HashMap<>();
|
||||||
|
Map<String, List<DataIDto>> dataIByPhaseType = new HashMap<>();
|
||||||
|
Map<String, List<DataHarmDto>> dataInHarmVPhaseType = new HashMap<>();
|
||||||
|
Map<String, List<DataVDto>> dataVPhaseType = new HashMap<>();
|
||||||
|
Map<String, List<DataVDto>> dataVDevPhaseType = new HashMap<>();
|
||||||
|
Map<String, List<DataPltDto>> dataPltPhaseType = new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
|
Integer allTime = 0;
|
||||||
|
Integer flickerAllTime = 0;
|
||||||
|
if (!CollectionUtils.isEmpty(allTimeList)) {
|
||||||
|
allTime = allTimeList.size();
|
||||||
|
}
|
||||||
|
if (!CollectionUtils.isEmpty(flickerAllTimeList)) {
|
||||||
|
flickerAllTime = flickerAllTimeList.size();
|
||||||
|
}
|
||||||
|
if (!CollectionUtils.isEmpty(dataHarmRateVPOList)) {
|
||||||
|
harmRateVByPhaseType = dataHarmRateVPOList.stream().collect(Collectors.groupingBy(DataHarmDto::getPhasicType));
|
||||||
|
}
|
||||||
|
if (!CollectionUtils.isEmpty(dataIPOList)) {
|
||||||
|
dataIByPhaseType = dataIPOList.stream().collect(Collectors.groupingBy(DataIDto::getPhasicType));
|
||||||
|
}
|
||||||
|
if (!CollectionUtils.isEmpty(dataInHarmVPOList)) {
|
||||||
|
dataInHarmVPhaseType = dataInHarmVPOList.stream().collect(Collectors.groupingBy(DataHarmDto::getPhasicType));
|
||||||
|
}
|
||||||
|
if (!CollectionUtils.isEmpty(dataVPOList)) {
|
||||||
|
dataVPhaseType = dataVPOList.stream().collect(Collectors.groupingBy(DataVDto::getPhasicType));
|
||||||
|
}
|
||||||
|
if (!CollectionUtils.isEmpty(dataVPODevList)) {
|
||||||
|
dataVDevPhaseType = dataVPODevList.stream().collect(Collectors.groupingBy(DataVDto::getPhasicType));
|
||||||
|
}
|
||||||
|
if (!CollectionUtils.isEmpty(dataPltPOList)) {
|
||||||
|
dataPltPhaseType = dataPltPOList.stream().collect(Collectors.groupingBy(DataPltDto::getPhasicType));
|
||||||
|
}
|
||||||
|
DataLimitDetailDto a = limitRateData(dataDate, overlimit, allTime, flickerAllTime, PhaseType.PHASE_A, overlimit.getId(), harmRateVByPhaseType.get(PhaseType.PHASE_A), dataIByPhaseType.get(PhaseType.PHASE_A), dataInHarmVPhaseType.get(PhaseType.PHASE_A), dataVPhaseType.get(PhaseType.PHASE_A), dataVDevPhaseType.get(PhaseType.PHASE_A), dataPltPhaseType.get(PhaseType.PHASE_A));
|
||||||
|
DataLimitDetailDto b = limitRateData(dataDate, overlimit, allTime, flickerAllTime, PhaseType.PHASE_B, overlimit.getId(), harmRateVByPhaseType.get(PhaseType.PHASE_B), dataIByPhaseType.get(PhaseType.PHASE_B), dataInHarmVPhaseType.get(PhaseType.PHASE_B), dataVPhaseType.get(PhaseType.PHASE_B), dataVDevPhaseType.get(PhaseType.PHASE_B), dataPltPhaseType.get(PhaseType.PHASE_B));
|
||||||
|
DataLimitDetailDto c = limitRateData(dataDate, overlimit, allTime, flickerAllTime, PhaseType.PHASE_C, overlimit.getId(), harmRateVByPhaseType.get(PhaseType.PHASE_C), dataIByPhaseType.get(PhaseType.PHASE_C), dataInHarmVPhaseType.get(PhaseType.PHASE_C), dataVPhaseType.get(PhaseType.PHASE_C), dataVDevPhaseType.get(PhaseType.PHASE_C), dataPltPhaseType.get(PhaseType.PHASE_C));
|
||||||
|
DataLimitDetailDto t = limitRateDataT(dataDate, overlimit, allTime, flickerAllTime, overlimit.getId(), dataHarmRateVPOList, dataIPOList, dataInHarmVPOList, dataVPOList, dataVPOUnbalanceList, dataIPONegList, dataVPOFreqList, dataVPODevList, dataPltPOList);
|
||||||
|
result.add(a);
|
||||||
|
result.add(b);
|
||||||
|
result.add(c);
|
||||||
|
result.add(t);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: limitRateData
|
||||||
|
* @Param: [overlimit, allTime, flickerAllTime, phasicType, lineId, dataHarmRateVPOList, dataIPOList, dataInHarmVPOList, dataVPOList, dataVUnbalanceList, dataINegList]
|
||||||
|
* @return: com.njcn.harmonic.pojo.po.LimitRate
|
||||||
|
* @Author: clam
|
||||||
|
* @Date: 2022/10/18
|
||||||
|
*/
|
||||||
|
public DataLimitDetailDto limitRateData(String dataDate,
|
||||||
|
Overlimit overlimit,
|
||||||
|
Integer allTime,
|
||||||
|
Integer flickerAllTime,
|
||||||
|
String phasicType, String lineId,
|
||||||
|
List<DataHarmDto> dataHarmRateVPOList,
|
||||||
|
List<DataIDto> dataIPOList,
|
||||||
|
List<DataHarmDto> dataInHarmVPOList,
|
||||||
|
List<DataVDto> dataVPOList,
|
||||||
|
List<DataVDto> dataVPODevList,
|
||||||
|
List<DataPltDto> dataPltPOList) {
|
||||||
|
List<AbnormalData> thd = new ArrayList<>(), uDev = new ArrayList<>(), flicker = new ArrayList<>(), freqDev = new ArrayList<>(), uAberrance = new ArrayList<>(), iNeg = new ArrayList<>();
|
||||||
|
DataLimitDetailDto dto = new DataLimitDetailDto();
|
||||||
|
DataLimitRateDto limitRate = new DataLimitRateDto();
|
||||||
|
// 初始化 v 系列列表
|
||||||
|
List<AbnormalData>[] v = new List[24];
|
||||||
|
for (int i = 0; i < 24; i++) {
|
||||||
|
v[i] = new ArrayList<>();
|
||||||
|
}
|
||||||
|
// 处理数据
|
||||||
|
if (!CollectionUtils.isEmpty(dataHarmRateVPOList)) {
|
||||||
|
for (DataHarmDto item : dataHarmRateVPOList) {
|
||||||
|
for (int i = 2; i < 26; i++) {
|
||||||
|
try {
|
||||||
|
// 获取 DataHarmDto 类的 getVx 方法
|
||||||
|
Method getVMethod = DataHarmDto.class.getMethod("getV" + i);
|
||||||
|
Double value = (Double) getVMethod.invoke(item);
|
||||||
|
// 获取 Overlimit 类的 getUharmx 方法
|
||||||
|
Method getUharmMethod = Overlimit.class.getMethod("getUharm" + i);
|
||||||
|
float limit = (float) getUharmMethod.invoke(overlimit);
|
||||||
|
if (ObjectUtil.isNotNull(value)) {
|
||||||
|
if (value > limit) {
|
||||||
|
addAbnormalData(v[i - 2], item.getPhasicType(), item.getValueType(), item.getMinTime(), value, limit);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化 i 系列列表
|
||||||
|
List<AbnormalData>[] i = new List[24];
|
||||||
|
for (int j = 0; j < 24; j++) {
|
||||||
|
i[j] = new ArrayList<>();
|
||||||
|
}
|
||||||
|
// 处理数据
|
||||||
|
if (!CollectionUtils.isEmpty(dataIPOList)) {
|
||||||
|
for (DataIDto item : dataIPOList) {
|
||||||
|
for (int j = 2; j < 26; j++) {
|
||||||
|
try {
|
||||||
|
// 获取 DataHarmDto 类的 getIx 方法
|
||||||
|
Method getVMethod = DataIDto.class.getMethod("getI" + j);
|
||||||
|
Double value = (Double) getVMethod.invoke(item);
|
||||||
|
// 获取 Overlimit 类的 getUharmx 方法
|
||||||
|
Method getUharmMethod = Overlimit.class.getMethod("getIharm" + j);
|
||||||
|
float limit = (float) getUharmMethod.invoke(overlimit);
|
||||||
|
if (ObjectUtil.isNotNull(value)) {
|
||||||
|
if (value > limit) {
|
||||||
|
addAbnormalData(i[j - 2], item.getValueType(), item.getPhasicType(), item.getMinTime(), value, limit);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 初始化 uHarm 系列列表
|
||||||
|
List<AbnormalData>[] uHarm = new List[16];
|
||||||
|
for (int j = 0; j < 16; j++) {
|
||||||
|
uHarm[j] = new ArrayList<>();
|
||||||
|
}
|
||||||
|
// 处理数据
|
||||||
|
if (!CollectionUtils.isEmpty(dataInHarmVPOList)) {
|
||||||
|
for (DataHarmDto item : dataInHarmVPOList) {
|
||||||
|
for (int j = 1; j < 17; j++) {
|
||||||
|
try {
|
||||||
|
// 获取 DataHarmDto 类的 getVx 方法
|
||||||
|
Method getVMethod = DataHarmDto.class.getMethod("getV" + j);
|
||||||
|
Double value = (Double) getVMethod.invoke(item);
|
||||||
|
// 获取 Overlimit 类的 getUharmx 方法
|
||||||
|
Method getUharmMethod = Overlimit.class.getMethod("getInuharm" + j);
|
||||||
|
float limit = (float) getUharmMethod.invoke(overlimit);
|
||||||
|
if (ObjectUtil.isNotNull(value)) {
|
||||||
|
if (value > limit) {
|
||||||
|
addAbnormalData(uHarm[j - 1], item.getPhasicType(), item.getValueType(), item.getMinTime(), value, limit);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//电压总谐波畸变率
|
||||||
|
if (!CollectionUtils.isEmpty(dataVPOList)) {
|
||||||
|
for (DataVDto item : dataVPOList) {
|
||||||
|
if (ObjectUtil.isNotNull(item.getVThd())) {
|
||||||
|
if (item.getVThd() > overlimit.getUaberrance()) {
|
||||||
|
addAbnormalData(thd, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getVThd(), overlimit.getUaberrance());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//电压上偏差、电压下偏差(根据vl_dev的正负判断是用哪个值判断越限)
|
||||||
|
if (!CollectionUtils.isEmpty(dataVPODevList)) {
|
||||||
|
for (DataVDto item : dataVPODevList) {
|
||||||
|
if (ObjectUtil.isNotNull(item.getVlDev())) {
|
||||||
|
if (item.getVlDev() >= 0) {
|
||||||
|
if (item.getVlDev() > overlimit.getVoltageDev()) {
|
||||||
|
addAbnormalData(uDev, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getVlDev(), overlimit.getVoltageDev());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (Math.abs(item.getVuDev()) > Math.abs(overlimit.getUvoltageDev())) {
|
||||||
|
addAbnormalData(uDev, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getVuDev(), overlimit.getUvoltageDev());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//长时间闪变
|
||||||
|
if (!CollectionUtils.isEmpty(dataPltPOList)) {
|
||||||
|
for (DataPltDto item : dataPltPOList) {
|
||||||
|
if (ObjectUtil.isNotNull(item.getPlt())) {
|
||||||
|
if (item.getPlt() > overlimit.getFlicker()) {
|
||||||
|
addAbnormalData(flicker, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getPlt(), overlimit.getFlicker());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
limitRate.setLineId(lineId);
|
||||||
|
limitRate.setTime(LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN));
|
||||||
|
limitRate.setPhasicType(phasicType);
|
||||||
|
limitRate.setAllTime(allTime);
|
||||||
|
limitRate.setFlickerAllTime(flickerAllTime);
|
||||||
|
|
||||||
|
limitRate.setFlickerOvertime(flicker.size());
|
||||||
|
limitRate.setUaberranceOvertime(thd.size());
|
||||||
|
limitRate.setINegOvertime(iNeg.size());
|
||||||
|
limitRate.setFreqDevOvertime(freqDev.size());
|
||||||
|
limitRate.setUbalanceOvertime(uAberrance.size());
|
||||||
|
limitRate.setVoltageDevOvertime(uDev.size());
|
||||||
|
dto.setDataLimitRate(getDataLimitRateDto(limitRate, v, i, uHarm));
|
||||||
|
|
||||||
|
return dto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public DataLimitDetailDto limitRateDataT(
|
||||||
|
String dataDate,
|
||||||
|
Overlimit overlimit,
|
||||||
|
Integer allTime,
|
||||||
|
Integer flickerAllTime,
|
||||||
|
String lineId,
|
||||||
|
List<DataHarmDto> dataHarmRateVPOList,
|
||||||
|
List<DataIDto> dataIPOList,
|
||||||
|
List<DataHarmDto> dataInHarmVPOList,
|
||||||
|
List<DataVDto> dataVPOList,
|
||||||
|
List<DataVDto> dataVPOUnbalanceList,
|
||||||
|
List<DataIDto> dataIPONegList,
|
||||||
|
List<DataVDto> dataVPOFreqList,
|
||||||
|
List<DataVDto> dataVPODevList,
|
||||||
|
List<DataPltDto> dataPltPOList) {
|
||||||
|
DataLimitDetailDto dto = new DataLimitDetailDto();
|
||||||
|
DataLimitRateDto limitRate = new DataLimitRateDto();
|
||||||
|
//thd 总谐波畸变率
|
||||||
|
List<AbnormalData> sx = new ArrayList<>(), uDev = new ArrayList<>(), flicker = new ArrayList<>(), freqDev = new ArrayList<>(), zxb = new ArrayList<>(), iNeg = new ArrayList<>();
|
||||||
|
// 初始化 v 系列列表
|
||||||
|
List<AbnormalData>[] v = new List[24];
|
||||||
|
for (int i = 0; i < 24; i++) {
|
||||||
|
v[i] = new ArrayList<>();
|
||||||
|
}
|
||||||
|
// 处理数据
|
||||||
|
if (!CollectionUtils.isEmpty(dataHarmRateVPOList)) {
|
||||||
|
for (DataHarmDto item : dataHarmRateVPOList) {
|
||||||
|
for (int i = 2; i < 26; i++) {
|
||||||
|
try {
|
||||||
|
// 获取 DataHarmDto 类的 getVx 方法
|
||||||
|
Method getVMethod = DataHarmDto.class.getMethod("getV" + i);
|
||||||
|
Double value = (Double) getVMethod.invoke(item);
|
||||||
|
// 获取 Overlimit 类的 getUharmx 方法
|
||||||
|
Method getUharmMethod = Overlimit.class.getMethod("getUharm" + i);
|
||||||
|
float limit = (float) getUharmMethod.invoke(overlimit);
|
||||||
|
if (ObjectUtil.isNotNull(value)) {
|
||||||
|
if (value > limit) {
|
||||||
|
addAbnormalData(v[i - 2], item.getPhasicType(), item.getValueType(), item.getMinTime(), value, limit);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化 i 系列列表
|
||||||
|
List<AbnormalData>[] i = new List[24];
|
||||||
|
for (int j = 0; j < 24; j++) {
|
||||||
|
i[j] = new ArrayList<>();
|
||||||
|
}
|
||||||
|
// 处理数据
|
||||||
|
if (!CollectionUtils.isEmpty(dataIPOList)) {
|
||||||
|
for (DataIDto item : dataIPOList) {
|
||||||
|
for (int j = 2; j < 26; j++) {
|
||||||
|
try {
|
||||||
|
// 获取 DataHarmDto 类的 getIx 方法
|
||||||
|
Method getVMethod = DataIDto.class.getMethod("getI" + j);
|
||||||
|
Double value = (Double) getVMethod.invoke(item);
|
||||||
|
// 获取 Overlimit 类的 getUharmx 方法
|
||||||
|
Method getUharmMethod = Overlimit.class.getMethod("getIharm" + j);
|
||||||
|
float limit = (float) getUharmMethod.invoke(overlimit);
|
||||||
|
if (ObjectUtil.isNotNull(value)) {
|
||||||
|
if (value > limit) {
|
||||||
|
addAbnormalData(i[j - 2], item.getPhasicType(), item.getValueType(), item.getMinTime(), value, limit);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 初始化 uHarm 系列列表
|
||||||
|
List<AbnormalData>[] uHarm = new List[16];
|
||||||
|
for (int j = 0; j < 16; j++) {
|
||||||
|
uHarm[j] = new ArrayList<>();
|
||||||
|
}
|
||||||
|
// 处理数据
|
||||||
|
if (!CollectionUtils.isEmpty(dataInHarmVPOList)) {
|
||||||
|
for (DataHarmDto item : dataInHarmVPOList) {
|
||||||
|
for (int j = 1; j < 17; j++) {
|
||||||
|
try {
|
||||||
|
// 获取 DataHarmDto 类的 getVx 方法
|
||||||
|
Method getVMethod = DataHarmDto.class.getMethod("getV" + j);
|
||||||
|
Double value = (Double) getVMethod.invoke(item);
|
||||||
|
// 获取 Overlimit 类的 getUharmx 方法
|
||||||
|
Method getUharmMethod = Overlimit.class.getMethod("getInuharm" + j);
|
||||||
|
float limit = (float) getUharmMethod.invoke(overlimit);
|
||||||
|
if (ObjectUtil.isNotNull(value)) {
|
||||||
|
if (value > limit) {
|
||||||
|
addAbnormalData(uHarm[j - 1], item.getPhasicType(), item.getValueType(), item.getMinTime(), value, limit);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//电压总谐波畸变率
|
||||||
|
if (!CollectionUtils.isEmpty(dataVPOList)) {
|
||||||
|
for (DataVDto item : dataVPOList) {
|
||||||
|
if (ObjectUtil.isNotNull(item.getVThd())) {
|
||||||
|
if (item.getVThd() > overlimit.getUaberrance()) {
|
||||||
|
addAbnormalData(zxb, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getVThd(), overlimit.getUaberrance());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//三相电压不平衡度
|
||||||
|
if (!CollectionUtils.isEmpty(dataVPOUnbalanceList)) {
|
||||||
|
for (DataVDto item : dataVPOUnbalanceList) {
|
||||||
|
if (ObjectUtil.isNotNull(item.getVUnbalance())) {
|
||||||
|
if (item.getVUnbalance() > overlimit.getUbalance()) {
|
||||||
|
addAbnormalData(sx, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getVUnbalance(), overlimit.getUbalance());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//负序电流
|
||||||
|
if (!CollectionUtils.isEmpty(dataIPONegList)) {
|
||||||
|
for (DataIDto item : dataIPONegList) {
|
||||||
|
if (ObjectUtil.isNotNull(item.getINeg())) {
|
||||||
|
if (item.getINeg() > overlimit.getINeg()) {
|
||||||
|
addAbnormalData(iNeg, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getINeg(), overlimit.getINeg());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//频率偏差
|
||||||
|
if (!CollectionUtils.isEmpty(dataVPOFreqList)) {
|
||||||
|
for (DataVDto item : dataVPOFreqList) {
|
||||||
|
if (ObjectUtil.isNotNull(item.getFreqDev())) {
|
||||||
|
if (item.getFreqDev() > overlimit.getFreqDev()) {
|
||||||
|
addAbnormalData(freqDev, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getFreqDev(), overlimit.getFreqDev());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//电压上偏差、电压下偏差(根据vl_dev的正负判断是用哪个值判断越限)
|
||||||
|
if (!CollectionUtils.isEmpty(dataVPODevList)) {
|
||||||
|
for (DataVDto item : dataVPODevList) {
|
||||||
|
if (ObjectUtil.isNotNull(item.getVlDev())) {
|
||||||
|
if (item.getVlDev() >= 0) {
|
||||||
|
if (item.getVlDev() > overlimit.getVoltageDev()) {
|
||||||
|
addAbnormalData(uDev, item.getPhasicType(), item.getMinTime(), item.getValueType(), item.getVlDev(), overlimit.getVoltageDev());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (Math.abs(item.getVuDev()) > Math.abs(overlimit.getUvoltageDev())) {
|
||||||
|
addAbnormalData(uDev, item.getPhasicType(), item.getMinTime(), item.getValueType(), item.getVuDev(), overlimit.getUvoltageDev());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//长时间闪变
|
||||||
|
if (!CollectionUtils.isEmpty(dataPltPOList)) {
|
||||||
|
for (DataPltDto item : dataPltPOList) {
|
||||||
|
if (ObjectUtil.isNotNull(item.getPlt())) {
|
||||||
|
if (item.getPlt() > overlimit.getFlicker()) {
|
||||||
|
addAbnormalData(flicker, item.getPhasicType(), item.getValueType(), item.getMinTime(), item.getPlt(), overlimit.getFlicker());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
limitRate.setLineId(lineId);
|
||||||
|
limitRate.setTime(LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN));
|
||||||
|
limitRate.setPhasicType(PhaseType.PHASE_T);
|
||||||
|
limitRate.setAllTime(allTime);
|
||||||
|
limitRate.setFlickerAllTime(flickerAllTime);
|
||||||
|
limitRate.setUaberranceOvertime(zxb.stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setINegOvertime(iNeg.stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setFreqDevOvertime(freqDev.stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUbalanceOvertime(sx.stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setVoltageDevOvertime(uDev.stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setFlickerOvertime(flicker.stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm2Overtime(v[0].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm3Overtime(v[1].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm4Overtime(v[2].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm5Overtime(v[3].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm6Overtime(v[4].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm7Overtime(v[5].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm8Overtime(v[6].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm9Overtime(v[7].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm10Overtime(v[8].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm11Overtime(v[9].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm12Overtime(v[10].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm13Overtime(v[11].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm14Overtime(v[12].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm15Overtime(v[13].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm16Overtime(v[14].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm17Overtime(v[15].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm18Overtime(v[16].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm19Overtime(v[17].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm20Overtime(v[18].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm21Overtime(v[19].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm22Overtime(v[20].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm23Overtime(v[21].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm24Overtime(v[22].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setUharm25Overtime(v[23].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm2Overtime(i[0].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm3Overtime(i[1].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm4Overtime(i[2].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm5Overtime(i[3].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm6Overtime(i[4].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm7Overtime(i[5].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm8Overtime(i[6].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm9Overtime(i[7].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm10Overtime(i[8].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm11Overtime(i[9].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm12Overtime(i[10].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm13Overtime(i[11].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm14Overtime(i[12].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm15Overtime(i[13].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm16Overtime(i[14].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm17Overtime(i[15].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm18Overtime(i[16].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm19Overtime(i[17].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm20Overtime(i[18].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm21Overtime(i[19].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm22Overtime(i[20].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm23Overtime(i[21].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm24Overtime(i[22].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setIharm25Overtime(i[23].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm1Overtime(uHarm[0].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm2Overtime(uHarm[1].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm3Overtime(uHarm[2].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm4Overtime(uHarm[3].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm5Overtime(uHarm[4].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm6Overtime(uHarm[5].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm7Overtime(uHarm[6].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm8Overtime(uHarm[7].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm9Overtime(uHarm[8].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm10Overtime(uHarm[9].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm11Overtime(uHarm[10].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm12Overtime(uHarm[11].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm13Overtime(uHarm[12].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm14Overtime(uHarm[13].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm15Overtime(uHarm[14].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
limitRate.setInuharm16Overtime(uHarm[15].stream().map(AbnormalData::getTime).distinct().collect(Collectors.toList()).size());
|
||||||
|
dto.setDataLimitRate(limitRate);
|
||||||
|
|
||||||
|
int detailAllTime = flicker.size() + sx.size() + iNeg.size() + freqDev.size() + zxb.size() + uDev.size() +
|
||||||
|
v[0].size() + v[1].size() + v[2].size() + v[3].size() + v[4].size() + v[5].size() + v[6].size() + v[7].size() + v[8].size() + v[9].size() + v[11].size() + v[12].size() + v[13].size() + v[14].size() + v[15].size() + v[16].size() + v[17].size() + v[18].size() + v[19].size() + v[20].size() + v[21].size() + v[22].size() + v[23].size() +
|
||||||
|
i[0].size() + i[1].size() + i[2].size() + i[3].size() + i[4].size() + i[5].size() + i[6].size() + i[7].size() + i[8].size() + i[9].size() + i[10].size() + i[11].size() + i[12].size() + i[13].size() + i[14].size() + i[15].size() + i[16].size() + i[17].size() + i[18].size() + i[19].size() + i[20].size() + i[21].size() + i[22].size() + i[23].size() +
|
||||||
|
uHarm[0].size() + uHarm[1].size() + uHarm[2].size() + uHarm[3].size() + uHarm[4].size() + uHarm[5].size() + uHarm[6].size() + uHarm[7].size() + uHarm[8].size() + uHarm[9].size() + uHarm[10].size() + uHarm[11].size() + uHarm[12].size() + uHarm[13].size() + uHarm[14].size() + uHarm[15].size();
|
||||||
|
if (detailAllTime > 0) {
|
||||||
|
DataLimitRateDetailDto detail = new DataLimitRateDetailDto();
|
||||||
|
detail.setLineId(lineId);
|
||||||
|
detail.setTime(LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN));
|
||||||
|
detail.setFlickerOvertime(toJson(flicker));
|
||||||
|
detail.setUaberranceOvertime(toJson(zxb));
|
||||||
|
detail.setINegOvertime(toJson(iNeg));
|
||||||
|
detail.setFreqDevOvertime(toJson(freqDev));
|
||||||
|
detail.setUbalanceOvertime(toJson(sx));
|
||||||
|
detail.setVoltageDevOvertime(toJson(uDev));
|
||||||
|
detail.setUharm2Overtime(toJson(v[0]));
|
||||||
|
detail.setUharm3Overtime(toJson(v[1]));
|
||||||
|
detail.setUharm4Overtime(toJson(v[2]));
|
||||||
|
detail.setUharm5Overtime(toJson(v[3]));
|
||||||
|
detail.setUharm6Overtime(toJson(v[4]));
|
||||||
|
detail.setUharm7Overtime(toJson(v[5]));
|
||||||
|
detail.setUharm8Overtime(toJson(v[6]));
|
||||||
|
detail.setUharm9Overtime(toJson(v[7]));
|
||||||
|
detail.setUharm10Overtime(toJson(v[8]));
|
||||||
|
detail.setUharm11Overtime(toJson(v[9]));
|
||||||
|
detail.setUharm12Overtime(toJson(v[10]));
|
||||||
|
detail.setUharm13Overtime(toJson(v[11]));
|
||||||
|
detail.setUharm14Overtime(toJson(v[12]));
|
||||||
|
detail.setUharm15Overtime(toJson(v[13]));
|
||||||
|
detail.setUharm16Overtime(toJson(v[14]));
|
||||||
|
detail.setUharm17Overtime(toJson(v[15]));
|
||||||
|
detail.setUharm18Overtime(toJson(v[16]));
|
||||||
|
detail.setUharm19Overtime(toJson(v[17]));
|
||||||
|
detail.setUharm20Overtime(toJson(v[18]));
|
||||||
|
detail.setUharm21Overtime(toJson(v[19]));
|
||||||
|
detail.setUharm22Overtime(toJson(v[20]));
|
||||||
|
detail.setUharm23Overtime(toJson(v[21]));
|
||||||
|
detail.setUharm24Overtime(toJson(v[22]));
|
||||||
|
detail.setUharm25Overtime(toJson(v[23]));
|
||||||
|
detail.setIharm2Overtime(toJson(i[0]));
|
||||||
|
detail.setIharm3Overtime(toJson(i[1]));
|
||||||
|
detail.setIharm4Overtime(toJson(i[2]));
|
||||||
|
detail.setIharm5Overtime(toJson(i[3]));
|
||||||
|
detail.setIharm6Overtime(toJson(i[4]));
|
||||||
|
detail.setIharm7Overtime(toJson(i[5]));
|
||||||
|
detail.setIharm8Overtime(toJson(i[6]));
|
||||||
|
detail.setIharm9Overtime(toJson(i[7]));
|
||||||
|
detail.setIharm10Overtime(toJson(i[8]));
|
||||||
|
detail.setIharm11Overtime(toJson(i[9]));
|
||||||
|
detail.setIharm12Overtime(toJson(i[10]));
|
||||||
|
detail.setIharm13Overtime(toJson(i[11]));
|
||||||
|
detail.setIharm14Overtime(toJson(i[12]));
|
||||||
|
detail.setIharm15Overtime(toJson(i[13]));
|
||||||
|
detail.setIharm16Overtime(toJson(i[14]));
|
||||||
|
detail.setIharm17Overtime(toJson(i[15]));
|
||||||
|
detail.setIharm18Overtime(toJson(i[16]));
|
||||||
|
detail.setIharm19Overtime(toJson(i[17]));
|
||||||
|
detail.setIharm20Overtime(toJson(i[18]));
|
||||||
|
detail.setIharm21Overtime(toJson(i[19]));
|
||||||
|
detail.setIharm22Overtime(toJson(i[20]));
|
||||||
|
detail.setIharm23Overtime(toJson(i[21]));
|
||||||
|
detail.setIharm24Overtime(toJson(i[22]));
|
||||||
|
detail.setIharm25Overtime(toJson(i[23]));
|
||||||
|
detail.setInuharm1Overtime(toJson(uHarm[0]));
|
||||||
|
detail.setInuharm2Overtime(toJson(uHarm[1]));
|
||||||
|
detail.setInuharm3Overtime(toJson(uHarm[2]));
|
||||||
|
detail.setInuharm4Overtime(toJson(uHarm[3]));
|
||||||
|
detail.setInuharm5Overtime(toJson(uHarm[4]));
|
||||||
|
detail.setInuharm6Overtime(toJson(uHarm[5]));
|
||||||
|
detail.setInuharm7Overtime(toJson(uHarm[6]));
|
||||||
|
detail.setInuharm8Overtime(toJson(uHarm[7]));
|
||||||
|
detail.setInuharm9Overtime(toJson(uHarm[8]));
|
||||||
|
detail.setInuharm10Overtime(toJson(uHarm[9]));
|
||||||
|
detail.setInuharm11Overtime(toJson(uHarm[10]));
|
||||||
|
detail.setInuharm12Overtime(toJson(uHarm[11]));
|
||||||
|
detail.setInuharm13Overtime(toJson(uHarm[12]));
|
||||||
|
detail.setInuharm14Overtime(toJson(uHarm[13]));
|
||||||
|
detail.setInuharm15Overtime(toJson(uHarm[14]));
|
||||||
|
detail.setInuharm16Overtime(toJson(uHarm[15]));
|
||||||
|
dto.setDataLimitRateDetail(detail);
|
||||||
|
}
|
||||||
|
return dto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private DataLimitRateDto getDataLimitRateDto(DataLimitRateDto limitRate, List<AbnormalData>[] v, List<AbnormalData>[] i, List<AbnormalData>[] uHarm) {
|
||||||
|
limitRate.setUharm2Overtime(v[0].size());
|
||||||
|
limitRate.setUharm3Overtime(v[1].size());
|
||||||
|
limitRate.setUharm4Overtime(v[2].size());
|
||||||
|
limitRate.setUharm5Overtime(v[3].size());
|
||||||
|
limitRate.setUharm6Overtime(v[4].size());
|
||||||
|
limitRate.setUharm7Overtime(v[5].size());
|
||||||
|
limitRate.setUharm8Overtime(v[6].size());
|
||||||
|
limitRate.setUharm9Overtime(v[7].size());
|
||||||
|
limitRate.setUharm10Overtime(v[8].size());
|
||||||
|
limitRate.setUharm11Overtime(v[9].size());
|
||||||
|
limitRate.setUharm12Overtime(v[10].size());
|
||||||
|
limitRate.setUharm13Overtime(v[11].size());
|
||||||
|
limitRate.setUharm14Overtime(v[12].size());
|
||||||
|
limitRate.setUharm15Overtime(v[13].size());
|
||||||
|
limitRate.setUharm16Overtime(v[14].size());
|
||||||
|
limitRate.setUharm17Overtime(v[15].size());
|
||||||
|
limitRate.setUharm18Overtime(v[16].size());
|
||||||
|
limitRate.setUharm19Overtime(v[17].size());
|
||||||
|
limitRate.setUharm20Overtime(v[18].size());
|
||||||
|
limitRate.setUharm21Overtime(v[19].size());
|
||||||
|
limitRate.setUharm22Overtime(v[20].size());
|
||||||
|
limitRate.setUharm23Overtime(v[21].size());
|
||||||
|
limitRate.setUharm24Overtime(v[22].size());
|
||||||
|
limitRate.setUharm25Overtime(v[23].size());
|
||||||
|
limitRate.setIharm2Overtime(i[0].size());
|
||||||
|
limitRate.setIharm3Overtime(i[1].size());
|
||||||
|
limitRate.setIharm4Overtime(i[2].size());
|
||||||
|
limitRate.setIharm5Overtime(i[3].size());
|
||||||
|
limitRate.setIharm6Overtime(i[4].size());
|
||||||
|
limitRate.setIharm7Overtime(i[5].size());
|
||||||
|
limitRate.setIharm8Overtime(i[6].size());
|
||||||
|
limitRate.setIharm9Overtime(i[7].size());
|
||||||
|
limitRate.setIharm10Overtime(i[8].size());
|
||||||
|
limitRate.setIharm11Overtime(i[9].size());
|
||||||
|
limitRate.setIharm12Overtime(i[10].size());
|
||||||
|
limitRate.setIharm13Overtime(i[11].size());
|
||||||
|
limitRate.setIharm14Overtime(i[12].size());
|
||||||
|
limitRate.setIharm15Overtime(i[13].size());
|
||||||
|
limitRate.setIharm16Overtime(i[14].size());
|
||||||
|
limitRate.setIharm17Overtime(i[15].size());
|
||||||
|
limitRate.setIharm18Overtime(i[16].size());
|
||||||
|
limitRate.setIharm19Overtime(i[17].size());
|
||||||
|
limitRate.setIharm20Overtime(i[18].size());
|
||||||
|
limitRate.setIharm21Overtime(i[19].size());
|
||||||
|
limitRate.setIharm22Overtime(i[20].size());
|
||||||
|
limitRate.setIharm23Overtime(i[21].size());
|
||||||
|
limitRate.setIharm24Overtime(i[22].size());
|
||||||
|
limitRate.setIharm25Overtime(i[23].size());
|
||||||
|
limitRate.setInuharm1Overtime(uHarm[0].size());
|
||||||
|
limitRate.setInuharm2Overtime(uHarm[1].size());
|
||||||
|
limitRate.setInuharm3Overtime(uHarm[2].size());
|
||||||
|
limitRate.setInuharm4Overtime(uHarm[3].size());
|
||||||
|
limitRate.setInuharm5Overtime(uHarm[4].size());
|
||||||
|
limitRate.setInuharm6Overtime(uHarm[5].size());
|
||||||
|
limitRate.setInuharm7Overtime(uHarm[6].size());
|
||||||
|
limitRate.setInuharm8Overtime(uHarm[7].size());
|
||||||
|
limitRate.setInuharm9Overtime(uHarm[8].size());
|
||||||
|
limitRate.setInuharm10Overtime(uHarm[9].size());
|
||||||
|
limitRate.setInuharm11Overtime(uHarm[10].size());
|
||||||
|
limitRate.setInuharm12Overtime(uHarm[11].size());
|
||||||
|
limitRate.setInuharm13Overtime(uHarm[12].size());
|
||||||
|
limitRate.setInuharm14Overtime(uHarm[13].size());
|
||||||
|
limitRate.setInuharm15Overtime(uHarm[14].size());
|
||||||
|
limitRate.setInuharm16Overtime(uHarm[15].size());
|
||||||
|
return limitRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String toJson(List<AbnormalData> list) {
|
||||||
|
Map<String, List<AbnormalData>> abnormalMap = list.stream().collect(Collectors.groupingBy(x -> x.getPhasic() + "_" + x.getValueType()));
|
||||||
|
List<AbnormalData.Json> info = new ArrayList<>();
|
||||||
|
abnormalMap.forEach((key, value) -> {
|
||||||
|
String[] split = key.split("_");
|
||||||
|
AbnormalData.Json json = new AbnormalData.Json();
|
||||||
|
json.setPhasic(split[0]);
|
||||||
|
json.setValueType(split[1]);
|
||||||
|
json.setTime(String.join(",", value.stream()
|
||||||
|
.map(abnormal -> abnormal.getTime())
|
||||||
|
.collect(Collectors.toList())));
|
||||||
|
json.setValue(String.join(",", value.stream()
|
||||||
|
.map(abnormal -> abnormal.getValue() + "")
|
||||||
|
.collect(Collectors.toList())));
|
||||||
|
json.setOverLimitValue(list.get(0).getOverLimitValue());
|
||||||
|
info.add(json);
|
||||||
|
});
|
||||||
|
if (CollUtil.isNotEmpty(info)) {
|
||||||
|
return JSON.toJSONString(info);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addAbnormalData(List<AbnormalData> list, String phasicType, String valueType, String time, Double value, float overLimitValue) {
|
||||||
|
AbnormalData data = new AbnormalData();
|
||||||
|
data.setTime(time.substring(11, time.length()));
|
||||||
|
data.setPhasic(phasicType);
|
||||||
|
data.setValueType(valueType);
|
||||||
|
data.setValue(value);
|
||||||
|
data.setOverLimitValue(overLimitValue);
|
||||||
|
list.add(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,9 +1,20 @@
|
|||||||
package com.njcn.algorithm.utils;
|
package com.njcn.algorithm.utils;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.text.StrPool;
|
||||||
|
import com.njcn.algorithm.pojo.bo.CalculatedParam;
|
||||||
|
import com.yomahub.liteflow.flow.LiteflowResponse;
|
||||||
|
import com.yomahub.liteflow.flow.entity.CmpStep;
|
||||||
import org.apache.commons.lang.SerializationUtils;
|
import org.apache.commons.lang.SerializationUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: cdf
|
* @Author: cdf
|
||||||
@@ -13,6 +24,8 @@ import java.util.List;
|
|||||||
|
|
||||||
public class MemorySizeUtil {
|
public class MemorySizeUtil {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(MemorySizeUtil.class);
|
||||||
|
|
||||||
public static double getObjectSize(List<?> list) {
|
public static double getObjectSize(List<?> list) {
|
||||||
byte[] serialized = SerializationUtils.serialize((java.io.Serializable) list);
|
byte[] serialized = SerializationUtils.serialize((java.io.Serializable) list);
|
||||||
return (double)serialized.length/1024/1024;
|
return (double)serialized.length/1024/1024;
|
||||||
@@ -36,5 +49,41 @@ public class MemorySizeUtil {
|
|||||||
System.out.println("已使用的内存: " + usedMemory / (1024 * 1024) + " MB");
|
System.out.println("已使用的内存: " + usedMemory / (1024 * 1024) + " MB");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***
|
||||||
|
*
|
||||||
|
* @author hongawen
|
||||||
|
* @date 2023/11/7 14:44
|
||||||
|
*/
|
||||||
|
public static void dealResponse(CalculatedParam calculatedParam, LiteflowResponse liteflowResponse, String methodDescribe) {
|
||||||
|
MemorySizeUtil.getNowMemory();
|
||||||
|
if (liteflowResponse.isSuccess()) {
|
||||||
|
// 获取执行步骤列表
|
||||||
|
long allTime = 0;
|
||||||
|
Map<String, List<CmpStep>> executeSteps = liteflowResponse.getExecuteSteps();
|
||||||
|
for (String key : executeSteps.keySet()) {
|
||||||
|
List<CmpStep> cmpSteps = executeSteps.get(key);
|
||||||
|
long timeSum = cmpSteps.stream().mapToLong(CmpStep::getTimeSpent).sum();
|
||||||
|
allTime+=timeSum;
|
||||||
|
}
|
||||||
|
logger.info("日期{},{}执行{}成功,执行总时长{}分钟", calculatedParam.getDataDate(), methodDescribe, calculatedParam.isFullChain() ? "全链" : "指定节点:".concat(String.join(StrPool.COMMA, calculatedParam.getTagNames())),allTime/1000/60);
|
||||||
|
} else {
|
||||||
|
Map<String, List<CmpStep>> executeSteps = liteflowResponse.getExecuteSteps();
|
||||||
|
CmpStep failStep = null;
|
||||||
|
for (String key : executeSteps.keySet()) {
|
||||||
|
List<CmpStep> cmpSteps = executeSteps.get(key);
|
||||||
|
cmpSteps = cmpSteps.stream().filter(cmpStep -> !cmpStep.isSuccess()).collect(Collectors.toList());
|
||||||
|
if (CollectionUtil.isNotEmpty(cmpSteps)) {
|
||||||
|
failStep = cmpSteps.get(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
logger.error("日期{},{}执行{}失败,在执行{}失败,失败原因:{}"
|
||||||
|
, calculatedParam.getDataDate()
|
||||||
|
, methodDescribe
|
||||||
|
, calculatedParam.isFullChain() ? "全链" : "指定节点:".concat(String.join(StrPool.COMMA, calculatedParam.getTagNames()))
|
||||||
|
, failStep.getNodeId().concat(Objects.isNull(failStep.getTag()) ? "" : StrPool.DASHED.concat(failStep.getTag()))
|
||||||
|
, Objects.isNull(failStep.getException()) ? null : failStep.getException().getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ liteflow:
|
|||||||
logging:
|
logging:
|
||||||
config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
|
config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
|
||||||
level:
|
level:
|
||||||
root:
|
root: error
|
||||||
|
|
||||||
|
|
||||||
#mybatis配置信息
|
#mybatis配置信息
|
||||||
@@ -66,7 +66,7 @@ mybatis-plus:
|
|||||||
#别名扫描
|
#别名扫描
|
||||||
type-aliases-package: com.njcn.harmonic.pojo
|
type-aliases-package: com.njcn.harmonic.pojo
|
||||||
line:
|
line:
|
||||||
num: 20
|
num: 10
|
||||||
|
|
||||||
mqtt:
|
mqtt:
|
||||||
client-id: @artifactId@${random.value}
|
client-id: @artifactId@${random.value}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
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.PqDataVerifyNewFeignClientFallbackFactory;
|
||||||
|
import com.njcn.dataProcess.pojo.po.PqDataVerifyBak;
|
||||||
|
import com.njcn.dataProcess.pojo.po.PqDataVerifyCount;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xy
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2025年02月13日 20:11
|
||||||
|
*/
|
||||||
|
@FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/pqDataVerifyCount", fallbackFactory = PqDataVerifyNewFeignClientFallbackFactory.class, contextId = "pqDataVerifyNew")
|
||||||
|
public interface PqDataVerifyCountFeignClient {
|
||||||
|
|
||||||
|
@PostMapping("/insertDataBatch")
|
||||||
|
HttpResult<List<String>> insertDataBatch(@RequestBody List<PqDataVerifyCount> list);
|
||||||
|
|
||||||
|
@PostMapping("/insertData")
|
||||||
|
HttpResult<List<String>> insertData(@RequestBody PqDataVerifyCount pqDataVerifyCount);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
package com.njcn.dataProcess.api.fallback;
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.dataProcess.api.PqDataVerifyCountFeignClient;
|
||||||
|
import com.njcn.dataProcess.api.PqDataVerifyNewFeignClient;
|
||||||
|
import com.njcn.dataProcess.pojo.po.PqDataVerifyBak;
|
||||||
|
import com.njcn.dataProcess.pojo.po.PqDataVerifyCount;
|
||||||
|
import com.njcn.dataProcess.util.DataProcessingEnumUtil;
|
||||||
|
import feign.hystrix.FallbackFactory;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xy
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2025年02月13日 20:13
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class PqDataVerifyCountFeignClientFallbackFactory implements FallbackFactory<PqDataVerifyCountFeignClient> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 输出远程请求接口异常日志
|
||||||
|
* @param cause RPC请求异常
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public PqDataVerifyCountFeignClient create(Throwable cause) {
|
||||||
|
//判断抛出异常是否为解码器抛出的业务异常
|
||||||
|
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
|
||||||
|
if(cause.getCause() instanceof BusinessException){
|
||||||
|
BusinessException businessException = (BusinessException) cause.getCause();
|
||||||
|
exceptionEnum = DataProcessingEnumUtil.getExceptionEnum(businessException.getResult());
|
||||||
|
}
|
||||||
|
Enum<?> finalExceptionEnum = exceptionEnum;
|
||||||
|
return new PqDataVerifyCountFeignClient() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HttpResult<List<String>> insertDataBatch(List<PqDataVerifyCount> list) {
|
||||||
|
log.error("{}异常,降级处理,异常为:{}","批量存储清洗的异常数据",cause.toString());
|
||||||
|
throw new BusinessException(finalExceptionEnum);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HttpResult<List<String>> insertData(PqDataVerifyCount pqDataVerifyCount) {
|
||||||
|
log.error("{}异常,降级处理,异常为:{}","单监测点存储清洗的异常数据",cause.toString());
|
||||||
|
throw new BusinessException(finalExceptionEnum);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
package com.njcn.dataProcess.pojo.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xy
|
||||||
|
* @since 2025-02-17
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@TableName("pq_data_verify_count")
|
||||||
|
public class PqDataVerifyCount implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监测点id
|
||||||
|
*/
|
||||||
|
@MppMultiId
|
||||||
|
@TableField(value = "line_id")
|
||||||
|
private String lineId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据时间
|
||||||
|
*/
|
||||||
|
@MppMultiId
|
||||||
|
@TableField(value = "time_id")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
|
private LocalDate time;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 异常指标数量
|
||||||
|
*/
|
||||||
|
@TableField(value = "total")
|
||||||
|
private Integer total = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 总指标数量
|
||||||
|
*/
|
||||||
|
@TableField(value = "total_all")
|
||||||
|
private Integer totalAll = 0;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
package com.njcn.dataProcess.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
import com.njcn.common.pojo.constant.OperateType;
|
||||||
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
|
import com.njcn.dataProcess.pojo.po.PqDataVerifyBak;
|
||||||
|
import com.njcn.dataProcess.pojo.po.PqDataVerifyCount;
|
||||||
|
import com.njcn.dataProcess.service.IPqDataVerifyCountService;
|
||||||
|
import com.njcn.dataProcess.service.IPqDataVerifyNewService;
|
||||||
|
import com.njcn.web.controller.BaseController;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
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.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xy
|
||||||
|
* @since 2025-02-17
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/pqDataVerifyCount")
|
||||||
|
public class PqDataVerifyCountController extends BaseController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IPqDataVerifyCountService pqDataVerifyNewService;
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
|
||||||
|
@PostMapping("/insertDataBatch")
|
||||||
|
@ApiOperation("存储清洗的异常数据数量")
|
||||||
|
public HttpResult<List<String>> insertDataBatch(@RequestBody List<PqDataVerifyCount> list) {
|
||||||
|
String methodDescribe = getMethodDescribe("insertDataBatch");
|
||||||
|
pqDataVerifyNewService.insertDataBatch(list);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
|
||||||
|
@PostMapping("/insertData")
|
||||||
|
@ApiOperation("存储清洗的异常数据数量")
|
||||||
|
public HttpResult<List<String>> insertData(@RequestBody PqDataVerifyCount pqDataVerifyCount) {
|
||||||
|
String methodDescribe = getMethodDescribe("insertData");
|
||||||
|
pqDataVerifyNewService.insertData(pqDataVerifyCount);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.dataProcess.dao.relation.mapper;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||||
|
import com.njcn.dataProcess.pojo.po.PqDataVerifyCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xy
|
||||||
|
* @since 2025-02-17
|
||||||
|
*/
|
||||||
|
public interface PqDataVerifyCountMapper extends MppBaseMapper<PqDataVerifyCount> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.njcn.dataProcess.service;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||||
|
import com.njcn.dataProcess.pojo.po.PqDataVerifyCount;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xy
|
||||||
|
* @since 2025-02-17
|
||||||
|
*/
|
||||||
|
public interface IPqDataVerifyCountService extends IMppService<PqDataVerifyCount> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 异常数据插入
|
||||||
|
* @param list
|
||||||
|
*/
|
||||||
|
void insertDataBatch(List<PqDataVerifyCount> list);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 异常数据插入
|
||||||
|
*/
|
||||||
|
void insertData(PqDataVerifyCount pqDataVerifyCount);
|
||||||
|
}
|
||||||
@@ -67,9 +67,8 @@ public class InfluxdbDataFlickerImpl extends MppServiceImpl<RStatDataFlickerRela
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<DataFlicker> collect = dataFlickerDTOList.stream().map(temp -> DataFlicker.relationToInfluxDB(temp)).collect(Collectors.toList());
|
List<DataFlicker> collect = dataFlickerDTOList.stream().map(temp -> DataFlicker.relationToInfluxDB(temp)).collect(Collectors.toList());
|
||||||
int minSize = Math.min(1200000, collect.size());
|
|
||||||
|
|
||||||
List<List<DataFlicker>> partition = ListUtils.partition(collect, minSize);
|
List<List<DataFlicker>> partition = ListUtils.partition(collect, 20000);
|
||||||
for (List<DataFlicker> dataFlickerList : partition) {
|
for (List<DataFlicker> dataFlickerList : partition) {
|
||||||
List<DataFlicker> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
List<DataFlicker> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||||
|
|
||||||
|
|||||||
@@ -65,9 +65,8 @@ public class InfluxdbDataFlucImpl extends MppServiceImpl<RStatDataFlucRelationMa
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<DataFluc> collect = dataFlucDTOList.stream().map(temp -> DataFluc.relationToInfluxDB(temp)).collect(Collectors.toList());
|
List<DataFluc> collect = dataFlucDTOList.stream().map(temp -> DataFluc.relationToInfluxDB(temp)).collect(Collectors.toList());
|
||||||
int minSize = Math.min(1200000, collect.size());
|
|
||||||
|
|
||||||
List<List<DataFluc>> partition = ListUtils.partition(collect, minSize);
|
List<List<DataFluc>> partition = ListUtils.partition(collect, 20000);
|
||||||
for (List<DataFluc> dataFlucList : partition) {
|
for (List<DataFluc> dataFlucList : partition) {
|
||||||
List<DataFluc> sublistAsOriginalListType = new ArrayList<>(dataFlucList);
|
List<DataFluc> sublistAsOriginalListType = new ArrayList<>(dataFlucList);
|
||||||
|
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ public class InfluxdbDataHarmRateIImpl extends MppServiceImpl<RStatDataHarmRateI
|
|||||||
List<DataHarmrateI> dataList;
|
List<DataHarmrateI> dataList;
|
||||||
List<DataHarmrateI> result = new ArrayList<>();
|
List<DataHarmrateI> result = new ArrayList<>();
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateI.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateI.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, InfluxDbSqlConstant.I, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper.regular(DataHarmrateI::getLineId, lineList)
|
influxQueryWrapper.regular(DataHarmrateI::getLineId, lineList)
|
||||||
.select(DataHarmrateI::getLineId)
|
.select(DataHarmrateI::getLineId)
|
||||||
.select(DataHarmrateI::getPhasicType)
|
.select(DataHarmrateI::getPhasicType)
|
||||||
|
|||||||
@@ -84,9 +84,8 @@ public class InfluxdbDataHarmRateVImpl extends MppServiceImpl<RStatDataHarmRateV
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<DataHarmrateV> collect = dataHarmrateVDTOList.stream().flatMap(temp -> DataHarmrateV.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
List<DataHarmrateV> collect = dataHarmrateVDTOList.stream().flatMap(temp -> DataHarmrateV.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
||||||
int minSize = Math.min(1200000, collect.size());
|
|
||||||
|
|
||||||
List<List<DataHarmrateV>> partition = ListUtils.partition(collect, minSize);
|
List<List<DataHarmrateV>> partition = ListUtils.partition(collect, 20000);
|
||||||
for (List<DataHarmrateV> dataHarmrateVList : partition) {
|
for (List<DataHarmrateV> dataHarmrateVList : partition) {
|
||||||
List<DataHarmrateV> sublistAsOriginalListType = new ArrayList<>(dataHarmrateVList);
|
List<DataHarmrateV> sublistAsOriginalListType = new ArrayList<>(dataHarmrateVList);
|
||||||
|
|
||||||
@@ -238,7 +237,7 @@ public class InfluxdbDataHarmRateVImpl extends MppServiceImpl<RStatDataHarmRateV
|
|||||||
@Override
|
@Override
|
||||||
public List<DataHarmDto> getGroupByTimeHarmRateV(LineCountEvaluateParam lineParam) {
|
public List<DataHarmDto> getGroupByTimeHarmRateV(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper harmRateVQueryWrapper = new InfluxQueryWrapper(DataHarmrateV.class);
|
InfluxQueryWrapper harmRateVQueryWrapper = new InfluxQueryWrapper(DataHarmrateV.class);
|
||||||
harmRateVQueryWrapper.maxSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
|
harmRateVQueryWrapper.maxSamePrefixAndSuffix(InfluxDbSqlConstant.V, InfluxDbSqlConstant.V, HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
|
||||||
harmRateVQueryWrapper.regular(DataV::getLineId, lineParam.getLineId())
|
harmRateVQueryWrapper.regular(DataV::getLineId, lineParam.getLineId())
|
||||||
.eq(DataHarmrateV::getValueType, InfluxDbSqlConstant.CP95)
|
.eq(DataHarmrateV::getValueType, InfluxDbSqlConstant.CP95)
|
||||||
.ne(DataHarmrateV::getPhasicType, InfluxDBTableConstant.PHASE_TYPE_T)
|
.ne(DataHarmrateV::getPhasicType, InfluxDBTableConstant.PHASE_TYPE_T)
|
||||||
@@ -266,7 +265,7 @@ public class InfluxdbDataHarmRateVImpl extends MppServiceImpl<RStatDataHarmRateV
|
|||||||
List<DataHarmrateV> dataList;
|
List<DataHarmrateV> dataList;
|
||||||
List<DataHarmrateV> result = new ArrayList<>();
|
List<DataHarmrateV> result = new ArrayList<>();
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateV.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateV.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, InfluxDbSqlConstant.V, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper.regular(DataHarmrateV::getLineId, lineParam.getLineId())
|
influxQueryWrapper.regular(DataHarmrateV::getLineId, lineParam.getLineId())
|
||||||
.select(DataHarmrateV::getLineId)
|
.select(DataHarmrateV::getLineId)
|
||||||
.select(DataHarmrateV::getPhasicType)
|
.select(DataHarmrateV::getPhasicType)
|
||||||
|
|||||||
@@ -66,9 +66,8 @@ public class InfluxdbDataHarmphasicIImpl extends MppServiceImpl<RStatDataHarmPha
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<DataHarmphasicI> collect = dataHarmphasicIDTOList.stream().flatMap(temp -> DataHarmphasicI.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
List<DataHarmphasicI> collect = dataHarmphasicIDTOList.stream().flatMap(temp -> DataHarmphasicI.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
||||||
int minSize = Math.min(1200000, collect.size());
|
|
||||||
|
|
||||||
List<List<DataHarmphasicI>> partition = ListUtils.partition(collect, minSize);
|
List<List<DataHarmphasicI>> partition = ListUtils.partition(collect, 20000);
|
||||||
for (List<DataHarmphasicI> dataHarmphasicIList : partition) {
|
for (List<DataHarmphasicI> dataHarmphasicIList : partition) {
|
||||||
List<DataHarmphasicI> sublistAsOriginalListType = new ArrayList<>(dataHarmphasicIList);
|
List<DataHarmphasicI> sublistAsOriginalListType = new ArrayList<>(dataHarmphasicIList);
|
||||||
dataHarmphasicIMapper.insertBatch(sublistAsOriginalListType);
|
dataHarmphasicIMapper.insertBatch(sublistAsOriginalListType);
|
||||||
@@ -224,7 +223,7 @@ public class InfluxdbDataHarmphasicIImpl extends MppServiceImpl<RStatDataHarmPha
|
|||||||
List<DataHarmphasicI> dataList;
|
List<DataHarmphasicI> dataList;
|
||||||
List<DataHarmphasicI> result = new ArrayList<>();
|
List<DataHarmphasicI> result = new ArrayList<>();
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmphasicI.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmphasicI.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, InfluxDbSqlConstant.I, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper.regular(DataHarmphasicI::getLineId, lineList)
|
influxQueryWrapper.regular(DataHarmphasicI::getLineId, lineList)
|
||||||
.select(DataHarmphasicI::getLineId)
|
.select(DataHarmphasicI::getLineId)
|
||||||
.select(DataHarmphasicI::getPhasicType)
|
.select(DataHarmphasicI::getPhasicType)
|
||||||
|
|||||||
@@ -70,9 +70,8 @@ public class InfluxdbDataHarmphasicVImpl extends MppServiceImpl<RStatDataHarmPha
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<DataHarmphasicV> collect = dataHarmphasicVDTOList.stream().flatMap(temp -> DataHarmphasicV.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
List<DataHarmphasicV> collect = dataHarmphasicVDTOList.stream().flatMap(temp -> DataHarmphasicV.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
||||||
int minSize = Math.min(1200000, collect.size());
|
|
||||||
|
|
||||||
List<List<DataHarmphasicV>> partition = ListUtils.partition(collect, minSize);
|
List<List<DataHarmphasicV>> partition = ListUtils.partition(collect, 20000);
|
||||||
for (List<DataHarmphasicV> dataHarmphasicVList : partition) {
|
for (List<DataHarmphasicV> dataHarmphasicVList : partition) {
|
||||||
List<DataHarmphasicV> sublistAsOriginalListType = new ArrayList<>(dataHarmphasicVList);
|
List<DataHarmphasicV> sublistAsOriginalListType = new ArrayList<>(dataHarmphasicVList);
|
||||||
|
|
||||||
@@ -229,7 +228,7 @@ public class InfluxdbDataHarmphasicVImpl extends MppServiceImpl<RStatDataHarmPha
|
|||||||
List<DataHarmphasicV> dataList;
|
List<DataHarmphasicV> dataList;
|
||||||
List<DataHarmphasicV> result = new ArrayList<>();
|
List<DataHarmphasicV> result = new ArrayList<>();
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmphasicV.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmphasicV.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, InfluxDbSqlConstant.V, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper.regular(DataHarmphasicV::getLineId, lineList)
|
influxQueryWrapper.regular(DataHarmphasicV::getLineId, lineList)
|
||||||
.select(DataHarmphasicV::getLineId)
|
.select(DataHarmphasicV::getLineId)
|
||||||
.select(DataHarmphasicV::getPhasicType)
|
.select(DataHarmphasicV::getPhasicType)
|
||||||
|
|||||||
@@ -70,9 +70,8 @@ public class InfluxdbDataHarmpowerPImpl extends MppServiceImpl<RStatDataHarmPowe
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<DataHarmpowerP> collect = dataHarmpowerPDTOList.stream().flatMap(temp -> DataHarmpowerP.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
List<DataHarmpowerP> collect = dataHarmpowerPDTOList.stream().flatMap(temp -> DataHarmpowerP.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
||||||
int minSize = Math.min(1200000, collect.size());
|
|
||||||
|
|
||||||
List<List<DataHarmpowerP>> partition = ListUtils.partition(collect, minSize);
|
List<List<DataHarmpowerP>> partition = ListUtils.partition(collect, 20000);
|
||||||
for (List<DataHarmpowerP> dataHarmpowerPList : partition) {
|
for (List<DataHarmpowerP> dataHarmpowerPList : partition) {
|
||||||
List<DataHarmpowerP> sublistAsOriginalListType = new ArrayList<>(dataHarmpowerPList);
|
List<DataHarmpowerP> sublistAsOriginalListType = new ArrayList<>(dataHarmpowerPList);
|
||||||
|
|
||||||
@@ -233,7 +232,7 @@ public class InfluxdbDataHarmpowerPImpl extends MppServiceImpl<RStatDataHarmPowe
|
|||||||
List<DataHarmpowerP> dataList;
|
List<DataHarmpowerP> dataList;
|
||||||
List<DataHarmpowerP> result = new ArrayList<>();
|
List<DataHarmpowerP> result = new ArrayList<>();
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerP.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerP.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.P, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.P, InfluxDbSqlConstant.P, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper.regular(DataHarmpowerP::getLineId, lineList)
|
influxQueryWrapper.regular(DataHarmpowerP::getLineId, lineList)
|
||||||
.select(DataHarmpowerP::getLineId)
|
.select(DataHarmpowerP::getLineId)
|
||||||
.select(DataHarmpowerP::getPhasicType)
|
.select(DataHarmpowerP::getPhasicType)
|
||||||
|
|||||||
@@ -66,9 +66,8 @@ public class InfluxdbDataHarmpowerQImpl extends MppServiceImpl<RStatDataHarmPowe
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<DataHarmpowerQ> collect = dataHarmpowerQDTOList.stream().flatMap(temp -> DataHarmpowerQ.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
List<DataHarmpowerQ> collect = dataHarmpowerQDTOList.stream().flatMap(temp -> DataHarmpowerQ.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
||||||
int minSize = Math.min(1200000, collect.size());
|
|
||||||
|
|
||||||
List<List<DataHarmpowerQ>> partition = ListUtils.partition(collect, minSize);
|
List<List<DataHarmpowerQ>> partition = ListUtils.partition(collect, 20000);
|
||||||
for (List<DataHarmpowerQ> dataHarmpowerQList : partition) {
|
for (List<DataHarmpowerQ> dataHarmpowerQList : partition) {
|
||||||
List<DataHarmpowerQ> sublistAsOriginalListType = new ArrayList<>(dataHarmpowerQList);
|
List<DataHarmpowerQ> sublistAsOriginalListType = new ArrayList<>(dataHarmpowerQList);
|
||||||
|
|
||||||
@@ -227,7 +226,7 @@ public class InfluxdbDataHarmpowerQImpl extends MppServiceImpl<RStatDataHarmPowe
|
|||||||
List<DataHarmpowerQ> dataList;
|
List<DataHarmpowerQ> dataList;
|
||||||
List<DataHarmpowerQ> result = new ArrayList<>();
|
List<DataHarmpowerQ> result = new ArrayList<>();
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerQ.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerQ.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.Q, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.Q, InfluxDbSqlConstant.Q, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper.regular(DataHarmpowerQ::getLineId, lineList)
|
influxQueryWrapper.regular(DataHarmpowerQ::getLineId, lineList)
|
||||||
.select(DataHarmpowerQ::getLineId)
|
.select(DataHarmpowerQ::getLineId)
|
||||||
.select(DataHarmpowerQ::getPhasicType)
|
.select(DataHarmpowerQ::getPhasicType)
|
||||||
|
|||||||
@@ -66,9 +66,8 @@ public class InfluxdbDataHarmpowerSImpl extends MppServiceImpl<RStatDataHarmPowe
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<DataHarmpowerS> collect = dataHarmpowerSDTOList.stream().flatMap(temp -> DataHarmpowerS.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
List<DataHarmpowerS> collect = dataHarmpowerSDTOList.stream().flatMap(temp -> DataHarmpowerS.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
||||||
int minSize = Math.min(1200000, collect.size());
|
|
||||||
|
|
||||||
List<List<DataHarmpowerS>> partition = ListUtils.partition(collect, minSize);
|
List<List<DataHarmpowerS>> partition = ListUtils.partition(collect, 20000);
|
||||||
for (List<DataHarmpowerS> dataHarmpowerSList : partition) {
|
for (List<DataHarmpowerS> dataHarmpowerSList : partition) {
|
||||||
List<DataHarmpowerS> sublistAsOriginalListType = new ArrayList<>(dataHarmpowerSList);
|
List<DataHarmpowerS> sublistAsOriginalListType = new ArrayList<>(dataHarmpowerSList);
|
||||||
|
|
||||||
@@ -227,7 +226,7 @@ public class InfluxdbDataHarmpowerSImpl extends MppServiceImpl<RStatDataHarmPowe
|
|||||||
List<DataHarmpowerS> dataList;
|
List<DataHarmpowerS> dataList;
|
||||||
List<DataHarmpowerS> result = new ArrayList<>();
|
List<DataHarmpowerS> result = new ArrayList<>();
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerS.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerS.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.S, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.S, InfluxDbSqlConstant.S, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper.regular(DataHarmpowerS::getLineId, lineList)
|
influxQueryWrapper.regular(DataHarmpowerS::getLineId, lineList)
|
||||||
.select(DataHarmpowerS::getLineId)
|
.select(DataHarmpowerS::getLineId)
|
||||||
.select(DataHarmpowerS::getPhasicType)
|
.select(DataHarmpowerS::getPhasicType)
|
||||||
|
|||||||
@@ -69,9 +69,8 @@ public class InfluxdbDataIImpl extends MppServiceImpl<RStatDataIRelationMapper,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<DataI> collect = dataIDTOList.stream().flatMap(temp -> DataI.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
List<DataI> collect = dataIDTOList.stream().flatMap(temp -> DataI.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
||||||
int minSize = Math.min(1200000, collect.size());
|
|
||||||
|
|
||||||
List<List<DataI>> partition = ListUtils.partition(collect, minSize);
|
List<List<DataI>> partition = ListUtils.partition(collect, 20000);
|
||||||
for (List<DataI> dataIList : partition) {
|
for (List<DataI> dataIList : partition) {
|
||||||
List<DataI> sublistAsOriginalListType = new ArrayList<>(dataIList);
|
List<DataI> sublistAsOriginalListType = new ArrayList<>(dataIList);
|
||||||
|
|
||||||
@@ -232,7 +231,7 @@ public class InfluxdbDataIImpl extends MppServiceImpl<RStatDataIRelationMapper,
|
|||||||
@Override
|
@Override
|
||||||
public List<DataIDto> getGroupByTimeDataI(LineCountEvaluateParam lineParam) {
|
public List<DataIDto> getGroupByTimeDataI(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class);
|
||||||
influxQueryWrapper.maxSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
|
influxQueryWrapper.maxSamePrefixAndSuffix(InfluxDbSqlConstant.I, InfluxDbSqlConstant.I, HarmonicTimesUtil.harmonicTimesList(2, 50, 1));
|
||||||
influxQueryWrapper.regular(DataI::getLineId, lineParam.getLineId())
|
influxQueryWrapper.regular(DataI::getLineId, lineParam.getLineId())
|
||||||
.eq(DataI::getValueType, InfluxDbSqlConstant.CP95)
|
.eq(DataI::getValueType, InfluxDbSqlConstant.CP95)
|
||||||
.ne(DataI::getPhasicType, InfluxDBTableConstant.PHASE_TYPE_T)
|
.ne(DataI::getPhasicType, InfluxDBTableConstant.PHASE_TYPE_T)
|
||||||
@@ -260,7 +259,7 @@ public class InfluxdbDataIImpl extends MppServiceImpl<RStatDataIRelationMapper,
|
|||||||
List<DataI> dataList;
|
List<DataI> dataList;
|
||||||
List<DataI> result = new ArrayList<>();
|
List<DataI> result = new ArrayList<>();
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, InfluxDbSqlConstant.I, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper.regular(DataI::getLineId, lineParam.getLineId())
|
influxQueryWrapper.regular(DataI::getLineId, lineParam.getLineId())
|
||||||
.select(DataI::getLineId)
|
.select(DataI::getLineId)
|
||||||
.select(DataI::getPhasicType)
|
.select(DataI::getPhasicType)
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ public class InfluxdbDataInharmIImpl extends MppServiceImpl<RStatDataInHarmIRela
|
|||||||
List<DataInharmI> collect = dataInharmIDTOList.stream().flatMap(temp -> DataInharmI.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
List<DataInharmI> collect = dataInharmIDTOList.stream().flatMap(temp -> DataInharmI.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
||||||
int minSize = Math.min(1200000, collect.size());
|
int minSize = Math.min(1200000, collect.size());
|
||||||
|
|
||||||
List<List<DataInharmI>> partition = ListUtils.partition(collect, minSize);
|
List<List<DataInharmI>> partition = ListUtils.partition(collect, 20000);
|
||||||
for (List<DataInharmI> dataInharmIList : partition) {
|
for (List<DataInharmI> dataInharmIList : partition) {
|
||||||
List<DataInharmI> sublistAsOriginalListType = new ArrayList<>(dataInharmIList);
|
List<DataInharmI> sublistAsOriginalListType = new ArrayList<>(dataInharmIList);
|
||||||
|
|
||||||
@@ -224,7 +224,7 @@ public class InfluxdbDataInharmIImpl extends MppServiceImpl<RStatDataInHarmIRela
|
|||||||
List<DataInharmI> dataList;
|
List<DataInharmI> dataList;
|
||||||
List<DataInharmI> result = new ArrayList<>();
|
List<DataInharmI> result = new ArrayList<>();
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmI.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmI.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, InfluxDbSqlConstant.I, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper.regular(DataInharmI::getLineId, lineList)
|
influxQueryWrapper.regular(DataInharmI::getLineId, lineList)
|
||||||
.select(DataInharmI::getLineId)
|
.select(DataInharmI::getLineId)
|
||||||
.select(DataInharmI::getPhasicType)
|
.select(DataInharmI::getPhasicType)
|
||||||
|
|||||||
@@ -68,9 +68,8 @@ public class InfluxdbDataInharmVImpl extends MppServiceImpl<RStatDataInHarmVRela
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<DataInharmV> collect = dataInharmVDTOList.stream().flatMap(temp -> DataInharmV.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
List<DataInharmV> collect = dataInharmVDTOList.stream().flatMap(temp -> DataInharmV.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
||||||
int minSize = Math.min(1200000, collect.size());
|
|
||||||
|
|
||||||
List<List<DataInharmV>> partition = ListUtils.partition(collect, minSize);
|
List<List<DataInharmV>> partition = ListUtils.partition(collect, 20000);
|
||||||
for (List<DataInharmV> dataInharmVList : partition) {
|
for (List<DataInharmV> dataInharmVList : partition) {
|
||||||
List<DataInharmV> sublistAsOriginalListType = new ArrayList<>(dataInharmVList);
|
List<DataInharmV> sublistAsOriginalListType = new ArrayList<>(dataInharmVList);
|
||||||
|
|
||||||
@@ -227,7 +226,7 @@ public class InfluxdbDataInharmVImpl extends MppServiceImpl<RStatDataInHarmVRela
|
|||||||
List<DataInharmV> dataList;
|
List<DataInharmV> dataList;
|
||||||
List<DataInharmV> result = new ArrayList<>();
|
List<DataInharmV> result = new ArrayList<>();
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmV.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmV.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, InfluxDbSqlConstant.V, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper.regular(DataInharmV::getLineId, lineParam.getLineId())
|
influxQueryWrapper.regular(DataInharmV::getLineId, lineParam.getLineId())
|
||||||
.select(DataInharmV::getLineId)
|
.select(DataInharmV::getLineId)
|
||||||
.select(DataInharmV::getPhasicType)
|
.select(DataInharmV::getPhasicType)
|
||||||
|
|||||||
@@ -66,9 +66,8 @@ public class InfluxdbDataPltImpl extends MppServiceImpl<RStatDataPltRelationMapp
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<DataPlt> collect = dataPltDTOList.stream().map(temp -> DataPlt.relationToInfluxDB(temp)).collect(Collectors.toList());
|
List<DataPlt> collect = dataPltDTOList.stream().map(temp -> DataPlt.relationToInfluxDB(temp)).collect(Collectors.toList());
|
||||||
int minSize = Math.min(1200000, collect.size());
|
|
||||||
|
|
||||||
List<List<DataPlt>> partition = ListUtils.partition(collect, minSize);
|
List<List<DataPlt>> partition = ListUtils.partition(collect, 20000);
|
||||||
for (List<DataPlt> dataPltList : partition) {
|
for (List<DataPlt> dataPltList : partition) {
|
||||||
List<DataPlt> sublistAsOriginalListType = new ArrayList<>(dataPltList);
|
List<DataPlt> sublistAsOriginalListType = new ArrayList<>(dataPltList);
|
||||||
|
|
||||||
|
|||||||
@@ -111,9 +111,8 @@ public class InfluxdbDataVImpl extends MppServiceImpl<RStatDataVRelationMapper,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<DataV> collect = dataVDTOList.stream().flatMap(temp -> DataV.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
List<DataV> collect = dataVDTOList.stream().flatMap(temp -> DataV.relationToInfluxDB(temp).stream()).collect(Collectors.toList());
|
||||||
int minSize = Math.min(1200000, collect.size());
|
|
||||||
|
|
||||||
List<List<DataV>> partition = ListUtils.partition(collect, minSize);
|
List<List<DataV>> partition = ListUtils.partition(collect, 20000);
|
||||||
for (List<DataV> dataVList : partition) {
|
for (List<DataV> dataVList : partition) {
|
||||||
List<DataV> sublistAsOriginalListType = new ArrayList<>(dataVList);
|
List<DataV> sublistAsOriginalListType = new ArrayList<>(dataVList);
|
||||||
|
|
||||||
@@ -158,7 +157,7 @@ public class InfluxdbDataVImpl extends MppServiceImpl<RStatDataVRelationMapper,
|
|||||||
@Override
|
@Override
|
||||||
public Integer getCountRawData(LineCountEvaluateParam lineParam) {
|
public Integer getCountRawData(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, InfluxDbSqlConstant.V, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper.regular(DataV::getLineId, lineParam.getLineId())
|
influxQueryWrapper.regular(DataV::getLineId, lineParam.getLineId())
|
||||||
.select(DataV::getLineId)
|
.select(DataV::getLineId)
|
||||||
.select(DataV::getPhasicType)
|
.select(DataV::getPhasicType)
|
||||||
@@ -370,12 +369,10 @@ public class InfluxdbDataVImpl extends MppServiceImpl<RStatDataVRelationMapper,
|
|||||||
return dataV;
|
return dataV;
|
||||||
|
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
int minSize = Math.min(1200000, collect.size());
|
|
||||||
|
|
||||||
List<List<DataV>> partition = ListUtils.partition(collect, minSize);
|
List<List<DataV>> partition = ListUtils.partition(collect, 20000);
|
||||||
for (List<DataV> dataVList : partition) {
|
for (List<DataV> dataVList : partition) {
|
||||||
List<DataV> sublistAsOriginalListType = new ArrayList<>(dataVList);
|
List<DataV> sublistAsOriginalListType = new ArrayList<>(dataVList);
|
||||||
|
|
||||||
dataVMapper.insertBatch(sublistAsOriginalListType);
|
dataVMapper.insertBatch(sublistAsOriginalListType);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package com.njcn.dataProcess.service.impl.relation;
|
||||||
|
|
||||||
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
|
import com.njcn.dataProcess.dao.relation.mapper.PqDataVerifyCountMapper;
|
||||||
|
import com.njcn.dataProcess.dao.relation.mapper.PqDataVerifyNewMapper;
|
||||||
|
import com.njcn.dataProcess.pojo.po.PqDataVerifyBak;
|
||||||
|
import com.njcn.dataProcess.pojo.po.PqDataVerifyCount;
|
||||||
|
import com.njcn.dataProcess.service.IPqDataVerifyCountService;
|
||||||
|
import com.njcn.dataProcess.service.IPqDataVerifyNewService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xy
|
||||||
|
* @since 2025-02-17
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class PqDataVerifyCountServiceImpl extends MppServiceImpl<PqDataVerifyCountMapper, PqDataVerifyCount> implements IPqDataVerifyCountService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insertDataBatch(List<PqDataVerifyCount> list) {
|
||||||
|
this.saveOrUpdateBatchByMultiId(list,1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insertData(PqDataVerifyCount pqDataVerifyCount) {
|
||||||
|
this.saveOrUpdateByMultiId(pqDataVerifyCount);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -111,7 +111,15 @@ public class RelationDataLimitRateDetailImpl extends MppServiceImpl<RStatLimitRa
|
|||||||
BeanUtils.copyProperties(item, limitRate);
|
BeanUtils.copyProperties(item, limitRate);
|
||||||
result.add(limitRate);
|
result.add(limitRate);
|
||||||
});
|
});
|
||||||
this.saveOrUpdateBatchByMultiId(result,1000);
|
if(CollUtil.isNotEmpty(result)){
|
||||||
|
List<String> ids = result.stream().map(RStatLimitRateDetailD::getLineId).collect(Collectors.toList());
|
||||||
|
this.remove(new LambdaQueryWrapper<RStatLimitRateDetailD>()
|
||||||
|
.eq(RStatLimitRateDetailD::getTime,result.get(0).getTime())
|
||||||
|
.in(RStatLimitRateDetailD::getLineId,ids)
|
||||||
|
);
|
||||||
|
this.saveBatch(result,500);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public class InsertDataHarmRateIImpl implements InsertIDataHarmRateI {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataHarmrateI> listDataHarmrateI(LineCountEvaluateParam lineParam) {
|
public List<DataHarmrateI> listDataHarmrateI(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateI.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateI.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, InfluxDbSqlConstant.I, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataHarmrateI::getLineId)
|
.select(DataHarmrateI::getLineId)
|
||||||
.select(DataHarmrateI::getPhasicType)
|
.select(DataHarmrateI::getPhasicType)
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public class InsertDataHarmRateVImpl implements InsertIDataHarmRateV {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataHarmrateV> listDataHarmrateV(LineCountEvaluateParam lineParam) {
|
public List<DataHarmrateV> listDataHarmrateV(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateV.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateV.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, InfluxDbSqlConstant.V, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataHarmrateV::getLineId)
|
.select(DataHarmrateV::getLineId)
|
||||||
.select(DataHarmrateV::getPhasicType)
|
.select(DataHarmrateV::getPhasicType)
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ public class InsertDataHarmphasicIImpl implements InsertIDataHarmphasicI {
|
|||||||
public List<DataHarmphasicI> listDataHarmphasicI(LineCountEvaluateParam lineParam) {
|
public List<DataHarmphasicI> listDataHarmphasicI(LineCountEvaluateParam lineParam) {
|
||||||
List<DataHarmphasicI> result = new ArrayList<>();
|
List<DataHarmphasicI> result = new ArrayList<>();
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmphasicI.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmphasicI.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, InfluxDbSqlConstant.I, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataHarmphasicI::getLineId)
|
.select(DataHarmphasicI::getLineId)
|
||||||
.select(DataHarmphasicI::getPhasicType)
|
.select(DataHarmphasicI::getPhasicType)
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ public class InsertDataHarmphasicVImpl implements InsertIDataHarmphasicV {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataHarmphasicV> listDataHarmphasicV(LineCountEvaluateParam lineParam) {
|
public List<DataHarmphasicV> listDataHarmphasicV(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmphasicV.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmphasicV.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, InfluxDbSqlConstant.V, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataHarmphasicV::getLineId)
|
.select(DataHarmphasicV::getLineId)
|
||||||
.select(DataHarmphasicV::getPhasicType)
|
.select(DataHarmphasicV::getPhasicType)
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ public class InsertDataHarmpowerPImpl implements InsertIDataHarmpowerP {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataHarmpowerP> listDataHarmpowerP(LineCountEvaluateParam lineParam) {
|
public List<DataHarmpowerP> listDataHarmpowerP(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerP.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerP.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.P, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.P, InfluxDbSqlConstant.P, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataHarmpowerP::getLineId)
|
.select(DataHarmpowerP::getLineId)
|
||||||
.select(DataHarmpowerP::getPhasicType)
|
.select(DataHarmpowerP::getPhasicType)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class InsertDataHarmpowerQImpl implements InsertIDataHarmpowerQ {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataHarmpowerQ> listDataHarmpowerQ(LineCountEvaluateParam lineParam) {
|
public List<DataHarmpowerQ> listDataHarmpowerQ(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerQ.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerQ.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.Q, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.Q, InfluxDbSqlConstant.Q, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataHarmpowerQ::getLineId)
|
.select(DataHarmpowerQ::getLineId)
|
||||||
.select(DataHarmpowerQ::getPhasicType)
|
.select(DataHarmpowerQ::getPhasicType)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class InsertDataHarmpowerSImpl implements InsertIDataHarmpowerS {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataHarmpowerS> listDataHarmpowerS(LineCountEvaluateParam lineParam) {
|
public List<DataHarmpowerS> listDataHarmpowerS(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerS.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerS.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.S, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.S, InfluxDbSqlConstant.S, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataHarmpowerS::getLineId)
|
.select(DataHarmpowerS::getLineId)
|
||||||
.select(DataHarmpowerS::getPhasicType)
|
.select(DataHarmpowerS::getPhasicType)
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ public class InsertDataIImpl implements InsertIDataI {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataI> listDataI(LineCountEvaluateParam lineParam) {
|
public List<DataI> listDataI(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, InfluxDbSqlConstant.I, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataI::getLineId)
|
.select(DataI::getLineId)
|
||||||
.select(DataI::getPhasicType)
|
.select(DataI::getPhasicType)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class InsertDataInharmIImpl implements InsertIDataInharmI {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataInharmI> listDataInharmI(LineCountEvaluateParam lineParam) {
|
public List<DataInharmI> listDataInharmI(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmI.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmI.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, InfluxDbSqlConstant.I, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataInharmI::getLineId)
|
.select(DataInharmI::getLineId)
|
||||||
.select(DataInharmI::getPhasicType)
|
.select(DataInharmI::getPhasicType)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class InsertDataInharmVImpl implements InsertIDataInharmV {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataInharmV> listDataInharmV(LineCountEvaluateParam lineParam) {
|
public List<DataInharmV> listDataInharmV(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmV.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmV.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, InfluxDbSqlConstant.V, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataInharmV::getLineId)
|
.select(DataInharmV::getLineId)
|
||||||
.select(DataInharmV::getPhasicType)
|
.select(DataInharmV::getPhasicType)
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class InsertDataVImpl implements InsertIDataV {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataV> listDataV(LineCountEvaluateParam lineParam) {
|
public List<DataV> listDataV(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, InfluxDbSqlConstant.V, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataV::getLineId)
|
.select(DataV::getLineId)
|
||||||
.select(DataV::getPhasicType)
|
.select(DataV::getPhasicType)
|
||||||
@@ -66,7 +66,7 @@ public class InsertDataVImpl implements InsertIDataV {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataV> listDataVDesc(LineCountEvaluateParam lineParam) {
|
public List<DataV> listDataVDesc(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, InfluxDbSqlConstant.V, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataV::getLineId)
|
.select(DataV::getLineId)
|
||||||
.select(DataV::getPhasicType)
|
.select(DataV::getPhasicType)
|
||||||
|
|||||||
@@ -82,14 +82,14 @@ public class MigrationInfluxDBController {
|
|||||||
long betweenDay = LocalDateTimeUtil.between(startDate, endDate, ChronoUnit.HOURS);
|
long betweenDay = LocalDateTimeUtil.between(startDate, endDate, ChronoUnit.HOURS);
|
||||||
param.setStartTime(startDate.format(dateTimeFormatter));
|
param.setStartTime(startDate.format(dateTimeFormatter));
|
||||||
param.setEndTime(startDate.with(LocalTime.of(startDate.getHour(), 59, 59)).format(dateTimeFormatter));
|
param.setEndTime(startDate.with(LocalTime.of(startDate.getHour(), 59, 59)).format(dateTimeFormatter));
|
||||||
migrationService.hourseLineEventBacthSysc(param);
|
migrationService.hourseDevDataBacthSysc(param);
|
||||||
for (int i = 0; i <betweenDay; i++) {
|
for (int i = 0; i <betweenDay; i++) {
|
||||||
LineCountEvaluateParam countEvaluateParam=new LineCountEvaluateParam();
|
LineCountEvaluateParam countEvaluateParam=new LineCountEvaluateParam();
|
||||||
countEvaluateParam.setIsManual(true);
|
countEvaluateParam.setIsManual(true);
|
||||||
startDate = LocalDateTimeUtil.offset(startDate, 1, ChronoUnit.HOURS);
|
startDate = LocalDateTimeUtil.offset(startDate, 1, ChronoUnit.HOURS);
|
||||||
countEvaluateParam.setStartTime(startDate.format(dateTimeFormatter));
|
countEvaluateParam.setStartTime(startDate.format(dateTimeFormatter));
|
||||||
countEvaluateParam.setEndTime(startDate.with(LocalTime.of(startDate.getHour(), 59, 59)).format(dateTimeFormatter));
|
countEvaluateParam.setEndTime(startDate.with(LocalTime.of(startDate.getHour(), 59, 59)).format(dateTimeFormatter));
|
||||||
migrationService.hourseLineEventBacthSysc(countEvaluateParam);
|
migrationService.hourseDevDataBacthSysc(countEvaluateParam);
|
||||||
}
|
}
|
||||||
} catch (Exception exception) {
|
} catch (Exception exception) {
|
||||||
exception.printStackTrace();
|
exception.printStackTrace();
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class DataHarmRateIImpl implements IDataHarmRateI {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataHarmrateI> listDataHarmrateI(LineCountEvaluateParam lineParam) {
|
public List<DataHarmrateI> listDataHarmrateI(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateI.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateI.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, InfluxDbSqlConstant.I, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataHarmrateI::getLineId)
|
.select(DataHarmrateI::getLineId)
|
||||||
.select(DataHarmrateI::getPhasicType)
|
.select(DataHarmrateI::getPhasicType)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class DataHarmRateVImpl implements IDataHarmRateV {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataHarmrateV> listDataHarmrateV(LineCountEvaluateParam lineParam) {
|
public List<DataHarmrateV> listDataHarmrateV(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateV.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateV.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, InfluxDbSqlConstant.V, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataHarmrateV::getLineId)
|
.select(DataHarmrateV::getLineId)
|
||||||
.select(DataHarmrateV::getPhasicType)
|
.select(DataHarmrateV::getPhasicType)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class DataHarmphasicIImpl implements IDataHarmphasicI {
|
|||||||
public List<DataHarmphasicI> listDataHarmphasicI(LineCountEvaluateParam lineParam) {
|
public List<DataHarmphasicI> listDataHarmphasicI(LineCountEvaluateParam lineParam) {
|
||||||
List<DataHarmphasicI> result = new ArrayList<>();
|
List<DataHarmphasicI> result = new ArrayList<>();
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmphasicI.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmphasicI.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, InfluxDbSqlConstant.I, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataHarmphasicI::getLineId)
|
.select(DataHarmphasicI::getLineId)
|
||||||
.select(DataHarmphasicI::getPhasicType)
|
.select(DataHarmphasicI::getPhasicType)
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class DataHarmphasicVImpl implements IDataHarmphasicV {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataHarmphasicV> listDataHarmphasicV(LineCountEvaluateParam lineParam) {
|
public List<DataHarmphasicV> listDataHarmphasicV(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmphasicV.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmphasicV.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, InfluxDbSqlConstant.V, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataHarmphasicV::getLineId)
|
.select(DataHarmphasicV::getLineId)
|
||||||
.select(DataHarmphasicV::getPhasicType)
|
.select(DataHarmphasicV::getPhasicType)
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class DataHarmpowerPImpl implements IDataHarmpowerP {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataHarmpowerP> listDataHarmpowerP(LineCountEvaluateParam lineParam) {
|
public List<DataHarmpowerP> listDataHarmpowerP(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerP.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerP.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.P, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.P, InfluxDbSqlConstant.P, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataHarmpowerP::getLineId)
|
.select(DataHarmpowerP::getLineId)
|
||||||
.select(DataHarmpowerP::getPhasicType)
|
.select(DataHarmpowerP::getPhasicType)
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class DataHarmpowerQImpl implements IDataHarmpowerQ {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataHarmpowerQ> listDataHarmpowerQ(LineCountEvaluateParam lineParam) {
|
public List<DataHarmpowerQ> listDataHarmpowerQ(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerQ.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerQ.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.Q, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.Q, InfluxDbSqlConstant.Q, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataHarmpowerQ::getLineId)
|
.select(DataHarmpowerQ::getLineId)
|
||||||
.select(DataHarmpowerQ::getPhasicType)
|
.select(DataHarmpowerQ::getPhasicType)
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class DataHarmpowerSImpl implements IDataHarmpowerS {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataHarmpowerS> listDataHarmpowerS(LineCountEvaluateParam lineParam) {
|
public List<DataHarmpowerS> listDataHarmpowerS(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerS.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerS.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.S, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.S, InfluxDbSqlConstant.S, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataHarmpowerS::getLineId)
|
.select(DataHarmpowerS::getLineId)
|
||||||
.select(DataHarmpowerS::getPhasicType)
|
.select(DataHarmpowerS::getPhasicType)
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class DataIImpl implements IDataI {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataI> listDataI(LineCountEvaluateParam lineParam) {
|
public List<DataI> listDataI(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, InfluxDbSqlConstant.I, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataI::getLineId)
|
.select(DataI::getLineId)
|
||||||
.select(DataI::getPhasicType)
|
.select(DataI::getPhasicType)
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class DataInharmIImpl implements IDataInharmI {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataInharmI> listDataInharmI(LineCountEvaluateParam lineParam) {
|
public List<DataInharmI> listDataInharmI(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmI.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmI.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, InfluxDbSqlConstant.I, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataInharmI::getLineId)
|
.select(DataInharmI::getLineId)
|
||||||
.select(DataInharmI::getPhasicType)
|
.select(DataInharmI::getPhasicType)
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class DataInharmVImpl implements IDataInharmV {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataInharmV> listDataInharmV(LineCountEvaluateParam lineParam) {
|
public List<DataInharmV> listDataInharmV(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmV.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmV.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, InfluxDbSqlConstant.V, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataInharmV::getLineId)
|
.select(DataInharmV::getLineId)
|
||||||
.select(DataInharmV::getPhasicType)
|
.select(DataInharmV::getPhasicType)
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class DataVImpl implements IDataV {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataV> listDataV(LineCountEvaluateParam lineParam) {
|
public List<DataV> listDataV(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, InfluxDbSqlConstant.V, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataV::getLineId)
|
.select(DataV::getLineId)
|
||||||
.select(DataV::getPhasicType)
|
.select(DataV::getPhasicType)
|
||||||
@@ -71,7 +71,7 @@ public class DataVImpl implements IDataV {
|
|||||||
@Override
|
@Override
|
||||||
public List<DataV> listDataVDesc(LineCountEvaluateParam lineParam) {
|
public List<DataV> listDataVDesc(LineCountEvaluateParam lineParam) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
|
||||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, InfluxDbSqlConstant.V, HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||||
influxQueryWrapper
|
influxQueryWrapper
|
||||||
.select(DataV::getLineId)
|
.select(DataV::getLineId)
|
||||||
.select(DataV::getPhasicType)
|
.select(DataV::getPhasicType)
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ public class BaseJunitTest {
|
|||||||
lineParam.setStartTime("2025-04-23 00:00:00");
|
lineParam.setStartTime("2025-04-23 00:00:00");
|
||||||
lineParam.setEndTime("2025-04-23 23:59:00");
|
lineParam.setEndTime("2025-04-23 23:59:00");
|
||||||
lineParam.setIsManual(true);
|
lineParam.setIsManual(true);
|
||||||
migrationService.hourseLineDataBacthSysc(lineParam);
|
// migrationService.hourseLineDataBacthSysc(lineParam);
|
||||||
|
|
||||||
System.out.println("");
|
System.out.println("");
|
||||||
|
|
||||||
|
|||||||
45
pom.xml
45
pom.xml
@@ -33,11 +33,46 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<!--内网-->
|
<!--内网-->
|
||||||
<middle.server.url>192.168.1.22</middle.server.url>
|
<!-- <middle.server.url>192.168.1.22</middle.server.url>-->
|
||||||
<service.server.url>192.168.1.121</service.server.url>
|
<!-- <service.server.url>192.168.1.121</service.server.url>-->
|
||||||
<docker.server.url>192.168.1.22</docker.server.url>
|
<!-- <docker.server.url>192.168.1.22</docker.server.url>-->
|
||||||
<nacos.url>${middle.server.url}:18848</nacos.url>
|
<!-- <nacos.url>${middle.server.url}:18848</nacos.url>-->
|
||||||
<nacos.namespace>07ec981d-1377-4920-8760-b5a98ff7e668</nacos.namespace>
|
<!-- <nacos.namespace>07ec981d-1377-4920-8760-b5a98ff7e668</nacos.namespace>-->
|
||||||
|
|
||||||
|
<!-- <middle.server.url>192.168.21.129</middle.server.url>-->
|
||||||
|
<!-- <service.server.url>192.168.21.1</service.server.url>-->
|
||||||
|
<!-- <docker.server.url>192.168.1.22</docker.server.url>-->
|
||||||
|
<!-- <nacos.url>${middle.server.url}:18848</nacos.url>-->
|
||||||
|
<!-- <nacos.namespace>0c19477c-444e-413c-9782-e6ebc2eedac1</nacos.namespace>-->
|
||||||
|
|
||||||
|
<!-- <middle.server.url>127.0.0.1</middle.server.url>-->
|
||||||
|
<!-- <!–微服务模块发布地址–>-->
|
||||||
|
<!-- <service.server.url>127.0.0.1</service.server.url>-->
|
||||||
|
<!-- <!–docker仓库地址–>-->
|
||||||
|
<!-- <docker.server.url>127.0.0.1</docker.server.url>-->
|
||||||
|
<!-- <!–nacos的ip:port–>-->
|
||||||
|
<!-- <nacos.url>${middle.server.url}:8848</nacos.url>-->
|
||||||
|
<!-- <nacos.namespace>37a0e99f-eb96-4d2f-9b47-75bffa765827</nacos.namespace>-->
|
||||||
|
<!-- <middle.server.url>24.43.102.139</middle.server.url>-->
|
||||||
|
<!-- <service.server.url>24.43.102.139</service.server.url>-->
|
||||||
|
<!-- <docker.server.url>24.43.102.139</docker.server.url>-->
|
||||||
|
<!-- <nacos.url>${middle.server.url}:18848</nacos.url>-->
|
||||||
|
<!-- <nacos.namespace></nacos.namespace>-->
|
||||||
|
|
||||||
|
<middle.server.url>127.0.0.1</middle.server.url>
|
||||||
|
<service.server.url>127.0.0.1</service.server.url>
|
||||||
|
<docker.server.url>127.0.0.1</docker.server.url>
|
||||||
|
<nacos.url>${middle.server.url}:8848</nacos.url>
|
||||||
|
<nacos.namespace>37a0e99f-eb96-4d2f-9b47-75bffa765827</nacos.namespace>
|
||||||
|
|
||||||
|
<!-- <middle.server.url>192.168.21.129</middle.server.url>-->
|
||||||
|
<!-- <!–微服务模块发布地址–>-->
|
||||||
|
<!-- <service.server.url>192.168.21.1</service.server.url>-->
|
||||||
|
<!-- <!–docker仓库地址–>-->
|
||||||
|
<!-- <docker.server.url>192.168.1.22</docker.server.url>-->
|
||||||
|
<!-- <nacos.url>${middle.server.url}:18848</nacos.url>-->
|
||||||
|
<!-- <nacos.namespace>0c19477c-444e-413c-9782-e6ebc2eedac1</nacos.namespace>-->
|
||||||
|
|
||||||
<!--sentinel:port-->
|
<!--sentinel:port-->
|
||||||
<sentinel.url>${middle.server.url}:8080</sentinel.url>
|
<sentinel.url>${middle.server.url}:8080</sentinel.url>
|
||||||
<!--网关地址,主要用于配置swagger中认证token-->
|
<!--网关地址,主要用于配置swagger中认证token-->
|
||||||
|
|||||||
Reference in New Issue
Block a user