From 2769afa5e6a6592218ec4bf5570da558851cc0a0 Mon Sep 17 00:00:00 2001
From: wr <1754607820@qq.com>
Date: Thu, 4 Jan 2024 16:15:57 +0800
Subject: [PATCH] =?UTF-8?q?1.=E7=81=BF=E8=83=BD=E4=BA=91=E6=8E=A5=E5=8F=A3?=
=?UTF-8?q?=E7=A7=BB=E6=A4=8D,=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../njcn/cloud/pojo/dto/AppStatistics.java | 172 ++++++++++-
.../njcn/cloud/pojo/vo/StatisticsData.java | 21 +-
.../njcn/cloud/pojo/vo/StatisticsDetail.java | 2 +-
.../njcn/cloud/pojo/vo/StatisticsEvent.java | 2 +-
.../statistics/StatisticsController.java | 57 +++-
.../cloud/controller/task/SteadyMsgTask.java | 247 +++++++++++++--
.../cloud/service/IAppEventMsgService.java | 1 -
.../cloud/service/IAppStatisticsService.java | 19 ++
.../impl/AppStatisticsServiceImpl.java | 285 +++++++++++++++++-
9 files changed, 764 insertions(+), 42 deletions(-)
diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppStatistics.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppStatistics.java
index 882a599..2f1714a 100644
--- a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppStatistics.java
+++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppStatistics.java
@@ -16,12 +16,12 @@ import lombok.Setter;
*
*
* @author wr
- * @since 2024-01-03
+ * @since 2024-01-04
*/
@Getter
@Setter
@TableName("app_statistics")
-public class AppStatistics extends BaseEntity {
+public class AppStatistics {
private static final long serialVersionUID = 1L;
@@ -37,165 +37,327 @@ public class AppStatistics extends BaseEntity {
@MppMultiId("Time_Id")
private LocalDateTime timeId;
+ /**
+ * 暂降次数
+ */
@TableField("Event_Count")
- private Boolean eventCount;
+ private Integer eventCount;
+ /**
+ * 频率偏差合格率
+ */
@TableField("Freq_Dev_Rate")
private Float freqDevRate;
+ /**
+ * 电压偏差合格率
+ */
@TableField("Voltage_Dev_Rate")
private Float voltageDevRate;
+ /**
+ * 电压不平衡合格率
+ */
@TableField("Ubalance_Rate")
private Float ubalanceRate;
- @TableField("FLICKER_Rate")
+ /**
+ * 闪变合格率
+ */
+ @TableField("Flicker_Rate")
private Float flickerRate;
- @TableField("UABERRANCE_Rate")
+ /**
+ * 电压谐波畸变率合格率
+ */
+ @TableField("Uaberrance_Rate")
private Float uaberranceRate;
+ /**
+ * 2次电压谐波含有率合格率
+ */
@TableField("Uharm_2_Rate")
private Float uharm2Rate;
+ /**
+ * 3次电压谐波含有率合格率
+ */
@TableField("Uharm_3_Rate")
private Float uharm3Rate;
+ /**
+ * 4次电压谐波含有率合格率
+ */
@TableField("Uharm_4_Rate")
private Float uharm4Rate;
+ /**
+ * 5次电压谐波含有率合格率
+ */
@TableField("Uharm_5_Rate")
private Float uharm5Rate;
+ /**
+ * 6次电压谐波含有率合格率
+ */
@TableField("Uharm_6_Rate")
private Float uharm6Rate;
+ /**
+ * 7次电压谐波含有率合格率
+ */
@TableField("Uharm_7_Rate")
private Float uharm7Rate;
+ /**
+ * 8次电压谐波含有率合格率
+ */
@TableField("Uharm_8_Rate")
private Float uharm8Rate;
+ /**
+ * 9次电压谐波含有率合格率
+ */
@TableField("Uharm_9_Rate")
private Float uharm9Rate;
+ /**
+ * 10次电压谐波含有率合格率
+ */
@TableField("Uharm_10_Rate")
private Float uharm10Rate;
+ /**
+ * 11次电压谐波含有率合格率
+ */
@TableField("Uharm_11_Rate")
private Float uharm11Rate;
+ /**
+ * 12次电压谐波含有率合格率
+ */
@TableField("Uharm_12_Rate")
private Float uharm12Rate;
+ /**
+ * 13次电压谐波含有率合格率
+ */
@TableField("Uharm_13_Rate")
private Float uharm13Rate;
+ /**
+ * 14次电压谐波含有率合格率
+ */
@TableField("Uharm_14_Rate")
private Float uharm14Rate;
+ /**
+ * 15次电压谐波含有率合格率
+ */
@TableField("Uharm_15_Rate")
private Float uharm15Rate;
+ /**
+ * 16次电压谐波含有率合格率
+ */
@TableField("Uharm_16_Rate")
private Float uharm16Rate;
+ /**
+ * 17次电压谐波含有率合格率
+ */
@TableField("Uharm_17_Rate")
private Float uharm17Rate;
+ /**
+ * 18次电压谐波含有率合格率
+ */
@TableField("Uharm_18_Rate")
private Float uharm18Rate;
+ /**
+ * 19次电压谐波含有率合格率
+ */
@TableField("Uharm_19_Rate")
private Float uharm19Rate;
+ /**
+ * 20次电压谐波含有率合格率
+ */
@TableField("Uharm_20_Rate")
private Float uharm20Rate;
+ /**
+ * 21次电压谐波含有率合格率
+ */
@TableField("Uharm_21_Rate")
private Float uharm21Rate;
+ /**
+ * 22次电压谐波含有率合格率
+ */
@TableField("Uharm_22_Rate")
private Float uharm22Rate;
+ /**
+ * 23次电压谐波含有率合格率
+ */
@TableField("Uharm_23_Rate")
private Float uharm23Rate;
+ /**
+ * 24次电压谐波含有率合格率
+ */
@TableField("Uharm_24_Rate")
private Float uharm24Rate;
+ /**
+ * 25次电压谐波含有率合格率
+ */
@TableField("Uharm_25_Rate")
private Float uharm25Rate;
+ /**
+ * 2次电流谐波幅值合格率
+ */
@TableField("Iharm_2_Rate")
private Float iharm2Rate;
+ /**
+ * 3次电流谐波幅值合格率
+ */
@TableField("Iharm_3_Rate")
private Float iharm3Rate;
+ /**
+ * 4次电流谐波幅值合格率
+ */
@TableField("Iharm_4_Rate")
private Float iharm4Rate;
+ /**
+ * 5次电流谐波幅值合格率
+ */
@TableField("Iharm_5_Rate")
private Float iharm5Rate;
+ /**
+ * 6次电流谐波幅值合格率
+ */
@TableField("Iharm_6_Rate")
private Float iharm6Rate;
+ /**
+ * 7次电流谐波幅值合格率
+ */
@TableField("Iharm_7_Rate")
private Float iharm7Rate;
+ /**
+ * 8次电流谐波幅值合格率
+ */
@TableField("Iharm_8_Rate")
private Float iharm8Rate;
+ /**
+ * 9次电流谐波幅值合格率
+ */
@TableField("Iharm_9_Rate")
private Float iharm9Rate;
+ /**
+ * 10次电流谐波幅值合格率
+ */
@TableField("Iharm_10_Rate")
private Float iharm10Rate;
+ /**
+ * 11次电流谐波幅值合格率
+ */
@TableField("Iharm_11_Rate")
private Float iharm11Rate;
+ /**
+ * 12次电流谐波幅值合格率
+ */
@TableField("Iharm_12_Rate")
private Float iharm12Rate;
+ /**
+ * 13次电流谐波幅值合格率
+ */
@TableField("Iharm_13_Rate")
private Float iharm13Rate;
+ /**
+ * 14次电流谐波幅值合格率
+ */
@TableField("Iharm_14_Rate")
private Float iharm14Rate;
+ /**
+ * 15次电流谐波幅值合格率
+ */
@TableField("Iharm_15_Rate")
private Float iharm15Rate;
+ /**
+ * 16次电流谐波幅值合格率
+ */
@TableField("Iharm_16_Rate")
private Float iharm16Rate;
+ /**
+ * 17次电流谐波幅值合格率
+ */
@TableField("Iharm_17_Rate")
private Float iharm17Rate;
+ /**
+ * 18次电流谐波幅值合格率
+ */
@TableField("Iharm_18_Rate")
private Float iharm18Rate;
+ /**
+ * 19次电流谐波幅值合格率
+ */
@TableField("Iharm_19_Rate")
private Float iharm19Rate;
+ /**
+ * 20次电流谐波幅值合格率
+ */
@TableField("Iharm_20_Rate")
private Float iharm20Rate;
+ /**
+ * 21次电流谐波幅值合格率
+ */
@TableField("Iharm_21_Rate")
private Float iharm21Rate;
+ /**
+ * 22次电流谐波幅值合格率
+ */
@TableField("Iharm_22_Rate")
private Float iharm22Rate;
+ /**
+ * 23次电流谐波幅值合格率
+ */
@TableField("Iharm_23_Rate")
private Float iharm23Rate;
+ /**
+ * 24次电流谐波幅值合格率
+ */
@TableField("Iharm_24_Rate")
private Float iharm24Rate;
+ /**
+ * 25次电流谐波幅值合格率
+ */
@TableField("Iharm_25_Rate")
private Float iharm25Rate;
diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/StatisticsData.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/StatisticsData.java
index 89f5299..955afb2 100644
--- a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/StatisticsData.java
+++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/StatisticsData.java
@@ -1,16 +1,31 @@
package com.njcn.cloud.pojo.vo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.time.LocalDateTime;
+
/**
- * @author gbl
+ * @author wr
* @description:统计数据
*/
@Data
-public class StatisticsData {
+public class StatisticsData{
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("监测点名称")
private String lineName;
- private Long time;
+
+ @ApiModelProperty("统计时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime time;
+
+ @ApiModelProperty("暂态信息描述")
private String eventDescribe;
+
+ @ApiModelProperty("稳态信息描述")
private String steadyDescribe;
diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/StatisticsDetail.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/StatisticsDetail.java
index 71f017a..e552b50 100644
--- a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/StatisticsDetail.java
+++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/StatisticsDetail.java
@@ -5,7 +5,7 @@ import lombok.Data;
import java.util.List;
/**
- * @author gbl
+ * @author wr
* @description:统计数据详细信息
*/
@Data
diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/StatisticsEvent.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/StatisticsEvent.java
index 2d5718e..fda9414 100644
--- a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/StatisticsEvent.java
+++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/StatisticsEvent.java
@@ -3,7 +3,7 @@ package com.njcn.cloud.pojo.vo;
import lombok.Data;
/**
- * @author gbl
+ * @author wr
* @description:统计数据暂降信息
*/
@Data
diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/statistics/StatisticsController.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/statistics/StatisticsController.java
index b051267..3ba31b3 100644
--- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/statistics/StatisticsController.java
+++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/statistics/StatisticsController.java
@@ -1,12 +1,24 @@
package com.njcn.cloud.controller.statistics;
+import com.njcn.cloud.pojo.vo.StatisticsData;
+import com.njcn.cloud.pojo.vo.StatisticsDetail;
+import com.njcn.cloud.service.IAppStatisticsService;
+import com.njcn.common.pojo.enums.response.CommonResponseEnum;
+import com.njcn.common.pojo.response.HttpResult;
+import com.njcn.common.utils.HttpResultUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.njcn.web.controller.BaseController;
-import java.util.Date;
+import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
@@ -19,7 +31,50 @@ import java.util.List;
*/
@RestController
@RequestMapping("/appStatistics")
+@Api(tags = "统计数据")
+@RequiredArgsConstructor
public class StatisticsController extends BaseController {
+ private final IAppStatisticsService appStatisticsService;
+
+ /**
+ * @param lineIndex 监测点ID
+ * @param page 当前页数
+ * @param num 每页数量
+ * @description: 统计数据
+ * @author wr
+ */
+ @PostMapping("/statistics")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "lineIndex", value = "监测点ID", required = true, paramType = "query"),
+ @ApiImplicitParam(name = "startTime", value = "查询的开始时间", paramType = "query"),
+ @ApiImplicitParam(name = "endTime", value = "查询的结束时间", paramType = "query"),
+ @ApiImplicitParam(name = "page", value = "当前页", required = true, paramType = "query"),
+ @ApiImplicitParam(name = "num", value = "每页数量", required = true, paramType = "query")
+ })
+ @ApiOperation(value = "统计数据", notes = "统计数据")
+ public HttpResult> statistics(String lineIndex, String startTime, String endTime, int page, int num, HttpServletRequest request) {
+ String methodDescribe = getMethodDescribe("statistics");
+ List statisticsData = appStatisticsService.queryData(lineIndex, startTime, endTime, page, num);
+ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, statisticsData, methodDescribe);
+ }
+
+ /**
+ * @param lineIndex 监测点ID
+ * @param timeID 统计时间
+ * @description: 统计数据详情
+ * @author wr
+ */
+ @PostMapping("/statisticsDetail")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "lineIndex", value = "监测点ID", required = true, paramType = "query"),
+ @ApiImplicitParam(name = "timeID", value = "统计时间", required = true, paramType = "query")
+ })
+ @ApiOperation(value = "统计数据详情", notes = "统计数据详情")
+ public HttpResult statisticsDetail(String lineIndex, String timeID) {
+ String methodDescribe = getMethodDescribe("statistics");
+ StatisticsDetail statisticsDetail = appStatisticsService.queryDetail(lineIndex, timeID);
+ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, statisticsDetail, methodDescribe);
+ }
}
diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/task/SteadyMsgTask.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/task/SteadyMsgTask.java
index 0262781..60479ba 100644
--- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/task/SteadyMsgTask.java
+++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/task/SteadyMsgTask.java
@@ -7,16 +7,14 @@ import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.njcn.cloud.pojo.dto.AppDevMsg;
-import com.njcn.cloud.pojo.dto.AppSteadyAss;
-import com.njcn.cloud.pojo.dto.AppSteadyUrl;
-import com.njcn.cloud.service.IAppDevMsgService;
-import com.njcn.cloud.service.IAppSteadyAssService;
-import com.njcn.cloud.service.IAppSteadyUrlService;
-import com.njcn.cloud.service.MsgService;
+import com.njcn.cloud.pojo.dto.*;
+import com.njcn.cloud.service.*;
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.po.TopMsgPO;
+import com.njcn.event.api.EventDetailFeignClient;
+import com.njcn.event.pojo.param.EventCountParam;
+import com.njcn.event.pojo.po.RmpEventDetailPO;
import com.njcn.harmonic.api.HarmDataFeignClient;
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
@@ -25,8 +23,11 @@ import com.njcn.user.pojo.po.User;
import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+
import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.*;
+import java.util.stream.Collectors;
@Component
@RequiredArgsConstructor
@@ -39,11 +40,14 @@ public class SteadyMsgTask {
private final IAppSteadyUrlService appSteadyUrlService;
private final IAppSteadyAssService appSteadyAssService;
private final IAppDevMsgService appDevMsgService;
+ private final EventDetailFeignClient eventDetailFeignClient;
+ private final IAppStatisticsService appStatisticsService;
+ private final IAppEventInfoService appEventInfoService;
@Scheduled(cron = "0 0 10 * * ?")
public void timer() {
- System.out.println("开始执行++++++++++++++++++++++++"+new Date());
- Date date = DateUtil.offsetDay(new Date(), -1);
+ System.out.println("开始执行++++++++++++++++++++++++" + new Date());
+ Date date = DateUtil.offsetDay(new Date(), -1);
String time = DateUtil.format(date, DatePattern.NORM_DATE_PATTERN);
//开始时间
@@ -52,41 +56,44 @@ public class SteadyMsgTask {
String endTime = DateUtil.endOfDay(date).toString();
//执行稳态消息推送
- steadyMsg(time,startTime,endTime);
+ steadyMsg(time, startTime, endTime);
//终端消息推送
- devDegree(time,startTime,endTime);
+ devDegree(time, startTime, endTime);
+ //统计消息推送
+ statisticsData(time, startTime, endTime);
}
+
/**
* @Description: 稳态消息
* @Date: 2023/11/17 15:07
*/
- public void steadyMsg(String time,String startTime,String endTime) {
+ public void steadyMsg(String time, String startTime, String endTime) {
List users = userFeignClient.getUserByIdList(new ArrayList<>()).getData();
// List users = userFeignClient.getUserByIdList(Arrays.asList("5434cc08dc9d4b7cba5e856de52f0dda")).getData();
- if(CollUtil.isNotEmpty(users)){
+ if (CollUtil.isNotEmpty(users)) {
StatSubstationBizBaseParam param;
for (User user : users) {
//根据单位获取投运监测点
List lineIds = generalDeviceInfoClient.deptGetRunLine(user.getDeptId()).getData();
- param=new StatSubstationBizBaseParam();
+ param = new StatSubstationBizBaseParam();
param.setIds(lineIds);
param.setStartTime(startTime);
param.setEndTime(endTime);
List linesTargets = harmDataFeignClient.getLinesTarget(param).getData();
- if(CollUtil.isNotEmpty(linesTargets)){
+ if (CollUtil.isNotEmpty(linesTargets)) {
param.setIds(linesTargets);
List limitRates = harmDataFeignClient.getLinesRate(param).getData();
//获取稳态消息guid
String msgIndex = msgService.sendSteadyMsg(user.getId(), time, linesTargets.size());
- LocalDateTime date = LocalDateTimeUtil.parse(time,DatePattern.NORM_DATE_PATTERN);
+ LocalDateTime date = LocalDateTimeUtil.parse(time, DatePattern.NORM_DATE_PATTERN);
AppSteadyAss steadyAss;
for (RStatLimitRateDPO line : limitRates) {
- steadyAss=new AppSteadyAss();
+ steadyAss = new AppSteadyAss();
steadyAss.setSteadyIndex(msgIndex);
steadyAss.setLineIndex(line.getLineId());
steadyAss.setTimeId(date);
appSteadyAssService.save(steadyAss);
- saveSteadyUrl(line,date);
+ saveSteadyUrl(line, date);
}
}
@@ -98,14 +105,14 @@ public class SteadyMsgTask {
* @Description: 新增终端异常通告
* @Date: 2023/11/17 15:08
*/
- public void devDegree(String time,String startTime,String endTime){
- LocalDateTime date = LocalDateTimeUtil.parse(time,DatePattern.NORM_DATE_PATTERN);
+ public void devDegree(String time, String startTime, String endTime) {
+ LocalDateTime date = LocalDateTimeUtil.parse(time, DatePattern.NORM_DATE_PATTERN);
List users = userFeignClient.getUserByIdList(new ArrayList<>()).getData();
- if(CollUtil.isNotEmpty(users)){
+ if (CollUtil.isNotEmpty(users)) {
for (User user : users) {
List devIds = generalDeviceInfoClient.deptGetRunDev(user.getDeptId()).getData();
//获取消息信息
- OnlineRateParam top=new OnlineRateParam();
+ OnlineRateParam top = new OnlineRateParam();
top.setIds(devIds);
top.setType(1);
top.setStartTime(startTime);
@@ -113,17 +120,17 @@ public class SteadyMsgTask {
List topMsgList = generalDeviceInfoClient.getTopMsgInfoByIds(top).getData();
AppDevMsg appDevMsg;
for (TopMsgPO topMsgPO : topMsgList) {
- appDevMsg=new AppDevMsg();
+ appDevMsg = new AppDevMsg();
appDevMsg.setDevmsgIndex(IdUtil.simpleUUID());
appDevMsg.setTopId(topMsgPO.getTopId());
appDevMsg.setUserIndex(user.getId());
appDevMsg.setTimeId(date);
appDevMsg.setState(0);
appDevMsgService.save(appDevMsg);
- msgService.sendTerminalMsg(user.getId(),user.getDevCode(),time,
- topMsgPO.getDeviceAbnormalNum(),
- topMsgPO.getAlarmCount(),
- topMsgPO.getComOutCount()
+ msgService.sendTerminalMsg(user.getId(), user.getDevCode(), time,
+ topMsgPO.getDeviceAbnormalNum(),
+ topMsgPO.getAlarmCount(),
+ topMsgPO.getComOutCount()
);
}
@@ -131,9 +138,104 @@ public class SteadyMsgTask {
}
}
+ /**
+ * @param
+ * @Description: 统计数据
+ * @Author: wr
+ * @Date: 2024/1/4 13:48
+ */
+ public void statisticsData(String time, String startTime, String endTime) {
+ LocalDateTime timeDay = LocalDateTimeUtil.parse(time, DatePattern.NORM_DATE_PATTERN);
+ List users = userFeignClient.getUserByIdList(new ArrayList<>()).getData();
+// List users = userFeignClient.getUserByIdList(Arrays.asList("5434cc08dc9d4b7cba5e856de52f0dda")).getData();
+ if (CollUtil.isNotEmpty(users)) {
+ StatSubstationBizBaseParam baseParam;
+ EventCountParam param;
+ for (User user : users) {
+ //根据单位获取投运监测点
+ List lineIds = generalDeviceInfoClient.deptGetRunLine(user.getDeptId()).getData();
+ //1.根据监测点层级进行统计数据
+ for (String lineId : lineIds) {
+ List list = appStatisticsService.list(new LambdaQueryWrapper()
+ .eq(AppStatistics::getLineIndex, lineId)
+ );
+ List eventIndexS = new ArrayList<>();
+ //2.查询数据库中是否有统计数据,没有则进行补录
+ if (CollUtil.isNotEmpty(list)) {
+ eventIndexS.addAll(statisticsMethod(startTime, endTime, timeDay, lineId));
+ } else {
+ List dates = getListDate(lineId);
+ for (String date : dates) {
+ LocalDateTime dateDay = LocalDateTimeUtil.parse(date, DatePattern.NORM_DATE_PATTERN);
+ String startDate = DateUtil.beginOfDay(DateUtil.parse(date)).toString();
+ String endDate = DateUtil.endOfDay(DateUtil.parse(date)).toString();
+ eventIndexS.addAll(statisticsMethod(startDate, endDate, dateDay, lineId));
+ }
+ }
+ saveEventInfo(eventIndexS);
+ }
+ }
+ }
+ }
+
+ /**
+ * 获取暂态时间和谐波时间
+ *
+ * @param lineId
+ * @return
+ */
+ private List getListDate(String lineId) {
+ EventCountParam param;
+ StatSubstationBizBaseParam baseParam;
+ List dates = new ArrayList<>();
+ baseParam = new StatSubstationBizBaseParam();
+ baseParam.setIds(Collections.singletonList(lineId));
+ //获取谐波数据
+ List limitRates = harmDataFeignClient.getLinesRate(baseParam).getData();
+ if (CollUtil.isNotEmpty(limitRates)) {
+ dates.addAll(limitRates.stream().map(x -> x.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)))
+ .distinct().collect(Collectors.toList()));
+ }
+ param = new EventCountParam();
+ param.setIds(Collections.singletonList(lineId));
+ List detailPOList = eventDetailFeignClient.getAppEventDetailLtAmplitude(param).getData();
+ if (CollUtil.isNotEmpty(limitRates)) {
+ dates.addAll(detailPOList.stream().map(x -> x.getStartTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)))
+ .distinct().collect(Collectors.toList()));
+ }
+ return dates;
+ }
+
+ /**
+ * 查询方法信息
+ *
+ * @param startTime
+ * @param endTime
+ * @param timeDay
+ * @param lineId
+ */
+ private List statisticsMethod(String startTime, String endTime, LocalDateTime timeDay, String lineId) {
+ EventCountParam param;
+ StatSubstationBizBaseParam baseParam;
+ //获取谐波数据
+ baseParam = new StatSubstationBizBaseParam();
+ baseParam.setIds(Collections.singletonList(lineId));
+ baseParam.setStartTime(startTime);
+ baseParam.setEndTime(endTime);
+ List limitRates = harmDataFeignClient.getLinesRate(baseParam).getData();
+ //获取暂态数据
+ param = new EventCountParam();
+ param.setIds(Collections.singletonList(lineId));
+ param.setStartTime(startTime);
+ param.setEndTime(endTime);
+ //获取特征增幅小于0.9的暂态信息
+ List detailPOList = eventDetailFeignClient.getAppEventDetailLtAmplitude(param).getData();
+ saveStatistics(lineId, timeDay, detailPOList.size(), limitRates.get(0));
+ return detailPOList.stream().map(RmpEventDetailPO::getEventId).distinct().collect(Collectors.toList());
+ }
public void saveSteadyUrl(RStatLimitRateDPO limit, LocalDateTime timeId) {
- String lineIndex=limit.getLineId();
+ String lineIndex = limit.getLineId();
if (limit.getFreqDevOvertime() > 0) {
insertUrlDate(lineIndex, timeId, 2, limit.getFreqDevOvertime());
}
@@ -294,6 +396,7 @@ public class SteadyMsgTask {
insertUrlDate(lineIndex, timeId, 54, limit.getIharm25Overtime());
}
}
+
public void insertUrlDate(String lineIndex, LocalDateTime timeId, Integer typeCode, Integer limitNum) {
AppSteadyUrl url = new AppSteadyUrl();
url.setLineIndex(lineIndex);
@@ -310,4 +413,92 @@ public class SteadyMsgTask {
appSteadyUrlService.save(url);
}
}
+
+ public void saveStatistics(String lineIndex, LocalDateTime time, Integer count, RStatLimitRateDPO limit) {
+ List list = appStatisticsService.list(new LambdaQueryWrapper()
+ .eq(AppStatistics::getLineIndex, lineIndex)
+ .eq(AppStatistics::getTimeId, time)
+ );
+ if (CollUtil.isEmpty(list)) {
+ AppStatistics statistics = new AppStatistics();
+ statistics.setLineIndex(lineIndex);
+ statistics.setTimeId(time);
+ statistics.setEventCount(count);
+ if (ObjectUtil.isNotNull(limit)) {
+ if (limit.getAllTime() > 0) {
+ Integer times = limit.getAllTime();
+ statistics.setFreqDevRate((float) Math.round((times - limit.getFreqDevOvertime()) * 10000 / times) / 100);
+ statistics.setVoltageDevRate((float) Math.round((times - limit.getVoltageDevOvertime()) * 10000 / times) / 100);
+ statistics.setUbalanceRate((float) Math.round((times - limit.getUbalanceOvertime()) * 10000 / times) / 100);
+ statistics.setFlickerRate((float) Math.round((times - limit.getFlickerOvertime()) * 10000 / times) / 100);
+ statistics.setUaberranceRate((float) Math.round((times - limit.getUaberranceOvertime()) * 10000 / times) / 100);
+ statistics.setUharm2Rate((float) Math.round((times - limit.getUharm2Overtime()) * 10000 / times) / 100);
+ statistics.setUharm3Rate((float) Math.round((times - limit.getUharm3Overtime()) * 10000 / times) / 100);
+ statistics.setUharm4Rate((float) Math.round((times - limit.getUharm4Overtime()) * 10000 / times) / 100);
+ statistics.setUharm5Rate((float) Math.round((times - limit.getUharm5Overtime()) * 10000 / times) / 100);
+ statistics.setUharm6Rate((float) Math.round((times - limit.getUharm6Overtime()) * 10000 / times) / 100);
+ statistics.setUharm7Rate((float) Math.round((times - limit.getUharm7Overtime()) * 10000 / times) / 100);
+ statistics.setUharm8Rate((float) Math.round((times - limit.getUharm8Overtime()) * 10000 / times) / 100);
+ statistics.setUharm9Rate((float) Math.round((times - limit.getUharm9Overtime()) * 10000 / times) / 100);
+ statistics.setUharm10Rate((float) Math.round((times - limit.getUharm10Overtime()) * 10000 / times) / 100);
+ statistics.setUharm11Rate((float) Math.round((times - limit.getUharm11Overtime()) * 10000 / times) / 100);
+ statistics.setUharm12Rate((float) Math.round((times - limit.getUharm12Overtime()) * 10000 / times) / 100);
+ statistics.setUharm13Rate((float) Math.round((times - limit.getUharm13Overtime()) * 10000 / times) / 100);
+ statistics.setUharm14Rate((float) Math.round((times - limit.getUharm14Overtime()) * 10000 / times) / 100);
+ statistics.setUharm15Rate((float) Math.round((times - limit.getUharm15Overtime()) * 10000 / times) / 100);
+ statistics.setUharm16Rate((float) Math.round((times - limit.getUharm16Overtime()) * 10000 / times) / 100);
+ statistics.setUharm17Rate((float) Math.round((times - limit.getUharm17Overtime()) * 10000 / times) / 100);
+ statistics.setUharm18Rate((float) Math.round((times - limit.getUharm18Overtime()) * 10000 / times) / 100);
+ statistics.setUharm19Rate((float) Math.round((times - limit.getUharm19Overtime()) * 10000 / times) / 100);
+ statistics.setUharm20Rate((float) Math.round((times - limit.getUharm20Overtime()) * 10000 / times) / 100);
+ statistics.setUharm21Rate((float) Math.round((times - limit.getUharm21Overtime()) * 10000 / times) / 100);
+ statistics.setUharm22Rate((float) Math.round((times - limit.getUharm22Overtime()) * 10000 / times) / 100);
+ statistics.setUharm23Rate((float) Math.round((times - limit.getUharm23Overtime()) * 10000 / times) / 100);
+ statistics.setUharm24Rate((float) Math.round((times - limit.getUharm24Overtime()) * 10000 / times) / 100);
+ statistics.setUharm25Rate((float) Math.round((times - limit.getUharm25Overtime()) * 10000 / times) / 100);
+ statistics.setIharm2Rate((float) Math.round((times - limit.getIharm2Overtime()) * 10000 / times) / 100);
+ statistics.setIharm3Rate((float) Math.round((times - limit.getIharm3Overtime()) * 10000 / times) / 100);
+ statistics.setIharm4Rate((float) Math.round((times - limit.getIharm4Overtime()) * 10000 / times) / 100);
+ statistics.setIharm5Rate((float) Math.round((times - limit.getIharm5Overtime()) * 10000 / times) / 100);
+ statistics.setIharm6Rate((float) Math.round((times - limit.getIharm6Overtime()) * 10000 / times) / 100);
+ statistics.setIharm7Rate((float) Math.round((times - limit.getIharm7Overtime()) * 10000 / times) / 100);
+ statistics.setIharm8Rate((float) Math.round((times - limit.getIharm8Overtime()) * 10000 / times) / 100);
+ statistics.setIharm9Rate((float) Math.round((times - limit.getIharm9Overtime()) * 10000 / times) / 100);
+ statistics.setIharm10Rate((float) Math.round((times - limit.getIharm10Overtime()) * 10000 / times) / 100);
+ statistics.setIharm11Rate((float) Math.round((times - limit.getIharm11Overtime()) * 10000 / times) / 100);
+ statistics.setIharm12Rate((float) Math.round((times - limit.getIharm12Overtime()) * 10000 / times) / 100);
+ statistics.setIharm13Rate((float) Math.round((times - limit.getIharm13Overtime()) * 10000 / times) / 100);
+ statistics.setIharm14Rate((float) Math.round((times - limit.getIharm14Overtime()) * 10000 / times) / 100);
+ statistics.setIharm15Rate((float) Math.round((times - limit.getIharm15Overtime()) * 10000 / times) / 100);
+ statistics.setIharm16Rate((float) Math.round((times - limit.getIharm16Overtime()) * 10000 / times) / 100);
+ statistics.setIharm17Rate((float) Math.round((times - limit.getIharm17Overtime()) * 10000 / times) / 100);
+ statistics.setIharm18Rate((float) Math.round((times - limit.getIharm18Overtime()) * 10000 / times) / 100);
+ statistics.setIharm19Rate((float) Math.round((times - limit.getIharm19Overtime()) * 10000 / times) / 100);
+ statistics.setIharm20Rate((float) Math.round((times - limit.getIharm20Overtime()) * 10000 / times) / 100);
+ statistics.setIharm21Rate((float) Math.round((times - limit.getIharm21Overtime()) * 10000 / times) / 100);
+ statistics.setIharm22Rate((float) Math.round((times - limit.getIharm22Overtime()) * 10000 / times) / 100);
+ statistics.setIharm23Rate((float) Math.round((times - limit.getIharm23Overtime()) * 10000 / times) / 100);
+ statistics.setIharm24Rate((float) Math.round((times - limit.getIharm24Overtime()) * 10000 / times) / 100);
+ statistics.setIharm25Rate((float) Math.round((times - limit.getIharm25Overtime()) * 10000 / times) / 100);
+ saveSteadyUrl(limit, time);
+ }
+ }
+ appStatisticsService.save(statistics);
+ }
+ }
+ public void saveEventInfo(List indexList) {
+ if (indexList != null && indexList.size() > 0) {
+ for (String eventDetail_index : indexList) {
+ AppEventInfo byId = appEventInfoService.getById(eventDetail_index);
+ if (ObjectUtil.isNull(byId)) {
+ AppEventInfo info=new AppEventInfo();
+ info.setEventdetailIndex(eventDetail_index);
+ info.setEvaluate(0);
+ info.setUpdateTime(LocalDateTime.now());
+ info.setReportState(0);
+ appEventInfoService.save(info);
+ }
+ }
+ }
+ }
}
diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/IAppEventMsgService.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/IAppEventMsgService.java
index 4dd14e1..5a4d4fa 100644
--- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/IAppEventMsgService.java
+++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/IAppEventMsgService.java
@@ -1,6 +1,5 @@
package com.njcn.cloud.service;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.cloud.pojo.dto.AppEventMsg;
import com.njcn.cloud.pojo.vo.EventInfoDetailVO;
diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/IAppStatisticsService.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/IAppStatisticsService.java
index 76e971a..e1f0767 100644
--- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/IAppStatisticsService.java
+++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/IAppStatisticsService.java
@@ -17,7 +17,26 @@ import java.util.List;
*/
public interface IAppStatisticsService extends IService {
+ /**
+ * @Description: 统计数据
+ * @param lineIndex
+ * @param startTime
+ * @param endTime
+ * @param page
+ * @param num
+ * @return: java.util.List
+ * @Author: wr
+ * @Date: 2024/1/4 9:23
+ */
List queryData(String lineIndex, String startTime, String endTime, int page, int num);
+ /**
+ * @Description: 统计数据详情
+ * @param lineIndex
+ * @param timeID
+ * @return: com.njcn.cloud.pojo.vo.StatisticsDetail
+ * @Author: wr
+ * @Date: 2024/1/4 10:48
+ */
StatisticsDetail queryDetail(String lineIndex, String timeID);
}
diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/AppStatisticsServiceImpl.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/AppStatisticsServiceImpl.java
index a136cf6..08081bc 100644
--- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/AppStatisticsServiceImpl.java
+++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/AppStatisticsServiceImpl.java
@@ -1,13 +1,33 @@
package com.njcn.cloud.service.impl;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.date.LocalDateTimeUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.njcn.cloud.enums.app.TypeCodeEnum;
import com.njcn.cloud.mapper.AppStatisticsMapper;
import com.njcn.cloud.pojo.dto.AppStatistics;
+import com.njcn.cloud.pojo.dto.AppSteadyUrl;
import com.njcn.cloud.pojo.vo.StatisticsData;
import com.njcn.cloud.pojo.vo.StatisticsDetail;
+import com.njcn.cloud.pojo.vo.StatisticsEvent;
import com.njcn.cloud.service.IAppStatisticsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.njcn.cloud.service.IAppSteadyUrlService;
+import com.njcn.common.pojo.exception.BusinessException;
+import com.njcn.device.pq.api.LineFeignClient;
+import com.njcn.device.pq.pojo.vo.LineDetailVO;
+import com.njcn.event.api.EventDetailFeignClient;
+import com.njcn.event.pojo.param.EventCountParam;
+import com.njcn.event.pojo.po.RmpEventDetailPO;
+import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
/**
@@ -19,15 +39,276 @@ import java.util.List;
* @since 2024-01-03
*/
@Service
+@RequiredArgsConstructor
public class AppStatisticsServiceImpl extends ServiceImpl implements IAppStatisticsService {
+ private final LineFeignClient lineFeignClient;
+ private final IAppSteadyUrlService appSteadyUrlService;
+ private final EventDetailFeignClient eventDetailFeignClient;
+
@Override
public List queryData(String lineIndex, String startTime, String endTime, int page, int num) {
- return null;
+ List lineDetail = lineFeignClient.getLineDetailByIds(Collections.singletonList(lineIndex)).getData();
+ if (CollUtil.isEmpty(lineDetail)) {
+ throw new BusinessException("监测点信息不存在,监测点编号有误!");
+ }
+ List info = new ArrayList<>();
+ Page statisticsPage = this.page(new Page<>(page, num), new LambdaQueryWrapper()
+ .eq(AppStatistics::getLineIndex, lineIndex)
+ .ge(StrUtil.isNotBlank(startTime), AppStatistics::getTimeId, DateUtil.beginOfDay(DateUtil.parse(startTime)))
+ .le(StrUtil.isNotBlank(endTime), AppStatistics::getTimeId, DateUtil.endOfDay(DateUtil.parse(endTime)))
+ .orderByDesc(AppStatistics::getTimeId)
+ );
+ //数据整理
+ List records = statisticsPage.getRecords();
+ if (CollUtil.isNotEmpty(records)) {
+ for (AppStatistics statistics : records) {
+ StatisticsData data = new StatisticsData();
+ data.setLineName(lineDetail.get(0).getLineName());
+ data.setTime(statistics.getTimeId());
+ String describe = "";
+ String describe1 = "";
+ if (statistics.getEventCount() != null && statistics.getEventCount() > 0) {
+ describe = describe + "暂降次数:" + statistics.getEventCount().toString() + "次;";
+ }
+ if (statistics.getFreqDevRate() != null && statistics.getFreqDevRate() > 0 && statistics.getFreqDevRate() < 100) {
+ describe1 = describe1 + "频率偏差合格率" + statistics.getFreqDevRate().toString() + "%;";
+ }
+ if (statistics.getVoltageDevRate() != null && statistics.getVoltageDevRate() > 0 && statistics.getVoltageDevRate() < 100) {
+ describe1 = describe1 + "电压偏差合格率" + statistics.getVoltageDevRate().toString() + "%;";
+ }
+ if (statistics.getUbalanceRate() != null && statistics.getUbalanceRate() > 0 && statistics.getUbalanceRate() < 100) {
+ describe1 = describe1 + "电压不平衡合格率" + statistics.getUbalanceRate().toString() + "%;";
+ }
+ if (statistics.getFlickerRate() != null && statistics.getFlickerRate() > 0 && statistics.getFlickerRate() < 100) {
+ describe1 = describe1 + "闪变合格率" + statistics.getFlickerRate().toString() + "%;";
+ }
+ if (statistics.getUaberranceRate() != null && statistics.getUaberranceRate() > 0 && statistics.getUaberranceRate() < 100) {
+ describe1 = describe1 + "电压谐波畸变率合格率" + statistics.getUaberranceRate().toString() + "%;";
+ }
+ if (statistics.getUharm2Rate() != null && statistics.getUharm2Rate() > 0 && statistics.getUharm2Rate() < 100) {
+ describe1 = describe1 + "2次电压谐波含有率合格率" + statistics.getUharm2Rate().toString() + "%;";
+ }
+ if (statistics.getUharm3Rate() != null && statistics.getUharm3Rate() > 0 && statistics.getUharm3Rate() < 100) {
+ describe1 = describe1 + "3次电压谐波含有率合格率" + statistics.getUharm3Rate().toString() + "%;";
+ }
+ if (statistics.getUharm4Rate() != null && statistics.getUharm4Rate() > 0 && statistics.getUharm4Rate() < 100) {
+ describe1 = describe1 + "4次电压谐波含有率合格率" + statistics.getUharm4Rate().toString() + "%;";
+ }
+ if (statistics.getUharm5Rate() != null && statistics.getUharm5Rate() > 0 && statistics.getUharm5Rate() < 100) {
+ describe1 = describe1 + "5次电压谐波含有率合格率" + statistics.getUharm5Rate().toString() + "%;";
+ }
+ if (statistics.getUharm6Rate() != null && statistics.getUharm6Rate() > 0 && statistics.getUharm6Rate() < 100) {
+ describe1 = describe1 + "6次电压谐波含有率合格率" + statistics.getUharm6Rate().toString() + "%;";
+ }
+ if (statistics.getUharm7Rate() != null && statistics.getUharm7Rate() > 0 && statistics.getUharm7Rate() < 100) {
+ describe1 = describe1 + "7次电压谐波含有率合格率" + statistics.getUharm7Rate().toString() + "%;";
+ }
+ if (statistics.getUharm8Rate() != null && statistics.getUharm8Rate() > 0 && statistics.getUharm8Rate() < 100) {
+ describe1 = describe1 + "8次电压谐波含有率合格率" + statistics.getUharm8Rate().toString() + "%;";
+ }
+ if (statistics.getUharm9Rate() != null && statistics.getUharm9Rate() > 0 && statistics.getUharm9Rate() < 100) {
+ describe1 = describe1 + "9次电压谐波含有率合格率" + statistics.getUharm9Rate().toString() + "%;";
+ }
+ if (statistics.getUharm10Rate() != null && statistics.getUharm10Rate() > 0 && statistics.getUharm10Rate() < 100) {
+ describe1 = describe1 + "10次电压谐波含有率合格率" + statistics.getUharm10Rate().toString() + "%;";
+ }
+ if (statistics.getUharm11Rate() != null && statistics.getUharm11Rate() > 0 && statistics.getUharm11Rate() < 100) {
+ describe1 = describe1 + "11次电压谐波含有率合格率" + statistics.getUharm11Rate().toString() + "%;";
+ }
+ if (statistics.getUharm12Rate() != null && statistics.getUharm12Rate() > 0 && statistics.getUharm12Rate() < 100) {
+ describe1 = describe1 + "12次电压谐波含有率合格率" + statistics.getUharm12Rate().toString() + "%;";
+ }
+ if (statistics.getUharm13Rate() != null && statistics.getUharm13Rate() > 0 && statistics.getUharm13Rate() < 100) {
+ describe1 = describe1 + "13次电压谐波含有率合格率" + statistics.getUharm13Rate().toString() + "%;";
+ }
+ if (statistics.getUharm14Rate() != null && statistics.getUharm14Rate() > 0 && statistics.getUharm14Rate() < 100) {
+ describe1 = describe1 + "14次电压谐波含有率合格率" + statistics.getUharm14Rate().toString() + "%;";
+ }
+ if (statistics.getUharm15Rate() != null && statistics.getUharm15Rate() > 0 && statistics.getUharm15Rate() < 100) {
+ describe1 = describe1 + "15次电压谐波含有率合格率" + statistics.getUharm15Rate().toString() + "%;";
+ }
+ if (statistics.getUharm16Rate() != null && statistics.getUharm16Rate() > 0 && statistics.getUharm16Rate() < 100) {
+ describe1 = describe1 + "16次电压谐波含有率合格率" + statistics.getUharm16Rate().toString() + "%;";
+ }
+ if (statistics.getUharm17Rate() != null && statistics.getUharm17Rate() > 0 && statistics.getUharm17Rate() < 100) {
+ describe1 = describe1 + "17次电压谐波含有率合格率" + statistics.getUharm17Rate().toString() + "%;";
+ }
+ if (statistics.getUharm18Rate() != null && statistics.getUharm18Rate() > 0 && statistics.getUharm18Rate() < 100) {
+ describe1 = describe1 + "18次电压谐波含有率合格率" + statistics.getUharm18Rate().toString() + "%;";
+ }
+ if (statistics.getUharm19Rate() != null && statistics.getUharm19Rate() > 0 && statistics.getUharm19Rate() < 100) {
+ describe1 = describe1 + "19次电压谐波含有率合格率" + statistics.getUharm19Rate().toString() + "%;";
+ }
+ if (statistics.getUharm20Rate() != null && statistics.getUharm20Rate() > 0 && statistics.getUharm20Rate() < 100) {
+ describe1 = describe1 + "20次电压谐波含有率合格率" + statistics.getUharm20Rate().toString() + "%;";
+ }
+ if (statistics.getUharm21Rate() != null && statistics.getUharm21Rate() > 0 && statistics.getUharm21Rate() < 100) {
+ describe1 = describe1 + "21次电压谐波含有率合格率" + statistics.getUharm21Rate().toString() + "%;";
+ }
+ if (statistics.getUharm22Rate() != null && statistics.getUharm22Rate() > 0 && statistics.getUharm22Rate() < 100) {
+ describe1 = describe1 + "22次电压谐波含有率合格率" + statistics.getUharm22Rate().toString() + "%;";
+ }
+ if (statistics.getUharm23Rate() != null && statistics.getUharm23Rate() > 0 && statistics.getUharm23Rate() < 100) {
+ describe1 = describe1 + "23次电压谐波含有率合格率" + statistics.getUharm23Rate().toString() + "%;";
+ }
+ if (statistics.getUharm24Rate() != null && statistics.getUharm24Rate() > 0 && statistics.getUharm24Rate() < 100) {
+ describe1 = describe1 + "24次电压谐波含有率合格率" + statistics.getUharm24Rate().toString() + "%;";
+ }
+ if (statistics.getUharm25Rate() != null && statistics.getUharm25Rate() > 0 && statistics.getUharm25Rate() < 100) {
+ describe1 = describe1 + "25次电压谐波含有率合格率" + statistics.getUharm25Rate().toString() + "%;";
+ }
+ if (statistics.getIharm2Rate() != null && statistics.getIharm2Rate() > 0 && statistics.getIharm2Rate() < 100) {
+ describe1 = describe1 + "2次电流谐波幅值合格率" + statistics.getIharm2Rate().toString() + "%;";
+ }
+ if (statistics.getIharm3Rate() != null && statistics.getIharm3Rate() > 0 && statistics.getIharm3Rate() < 100) {
+ describe1 = describe1 + "3次电流谐波幅值合格率" + statistics.getIharm3Rate().toString() + "%;";
+ }
+ if (statistics.getIharm4Rate() != null && statistics.getIharm4Rate() > 0 && statistics.getIharm4Rate() < 100) {
+ describe1 = describe1 + "4次电流谐波幅值合格率" + statistics.getIharm4Rate().toString() + "%;";
+ }
+ if (statistics.getIharm5Rate() != null && statistics.getIharm5Rate() > 0 && statistics.getIharm5Rate() < 100) {
+ describe1 = describe1 + "5次电流谐波幅值合格率" + statistics.getIharm5Rate().toString() + "%;";
+ }
+ if (statistics.getIharm6Rate() != null && statistics.getIharm6Rate() > 0 && statistics.getIharm6Rate() < 100) {
+ describe1 = describe1 + "6次电流谐波幅值合格率" + statistics.getIharm6Rate().toString() + "%;";
+ }
+ if (statistics.getIharm7Rate() != null && statistics.getIharm7Rate() > 0 && statistics.getIharm7Rate() < 100) {
+ describe1 = describe1 + "7次电流谐波幅值合格率" + statistics.getIharm7Rate().toString() + "%;";
+ }
+ if (statistics.getIharm8Rate() != null && statistics.getIharm8Rate() > 0 && statistics.getIharm8Rate() < 100) {
+ describe1 = describe1 + "8次电流谐波幅值合格率" + statistics.getIharm8Rate().toString() + "%;";
+ }
+ if (statistics.getIharm9Rate() != null && statistics.getIharm9Rate() > 0 && statistics.getIharm9Rate() < 100) {
+ describe1 = describe1 + "9次电流谐波幅值合格率" + statistics.getIharm9Rate().toString() + "%;";
+ }
+ if (statistics.getIharm10Rate() != null && statistics.getIharm10Rate() > 0 && statistics.getIharm10Rate() < 100) {
+ describe1 = describe1 + "10次电流谐波幅值合格率" + statistics.getIharm10Rate().toString() + "%;";
+ }
+ if (statistics.getIharm11Rate() != null && statistics.getIharm11Rate() > 0 && statistics.getIharm11Rate() < 100) {
+ describe1 = describe1 + "11次电流谐波幅值合格率" + statistics.getIharm11Rate().toString() + "%;";
+ }
+ if (statistics.getIharm12Rate() != null && statistics.getIharm12Rate() > 0 && statistics.getIharm12Rate() < 100) {
+ describe1 = describe1 + "12次电流谐波幅值合格率" + statistics.getIharm12Rate().toString() + "%;";
+ }
+ if (statistics.getIharm13Rate() != null && statistics.getIharm13Rate() > 0 && statistics.getIharm13Rate() < 100) {
+ describe1 = describe1 + "13次电流谐波幅值合格率" + statistics.getIharm13Rate().toString() + "%;";
+ }
+ if (statistics.getIharm14Rate() != null && statistics.getIharm14Rate() > 0 && statistics.getIharm14Rate() < 100) {
+ describe1 = describe1 + "14次电流谐波幅值合格率" + statistics.getIharm14Rate().toString() + "%;";
+ }
+ if (statistics.getIharm15Rate() != null && statistics.getIharm15Rate() > 0 && statistics.getIharm15Rate() < 100) {
+ describe1 = describe1 + "15次电流谐波幅值合格率" + statistics.getIharm15Rate().toString() + "%;";
+ }
+ if (statistics.getIharm16Rate() != null && statistics.getIharm16Rate() > 0 && statistics.getIharm16Rate() < 100) {
+ describe1 = describe1 + "16次电流谐波幅值合格率" + statistics.getIharm16Rate().toString() + "%;";
+ }
+ if (statistics.getIharm17Rate() != null && statistics.getIharm17Rate() > 0 && statistics.getIharm17Rate() < 100) {
+ describe1 = describe1 + "17次电流谐波幅值合格率" + statistics.getIharm17Rate().toString() + "%;";
+ }
+ if (statistics.getIharm18Rate() != null && statistics.getIharm18Rate() > 0 && statistics.getIharm18Rate() < 100) {
+ describe1 = describe1 + "18次电流谐波幅值合格率" + statistics.getIharm18Rate().toString() + "%;";
+ }
+ if (statistics.getIharm19Rate() != null && statistics.getIharm19Rate() > 0 && statistics.getIharm19Rate() < 100) {
+ describe1 = describe1 + "19次电流谐波幅值合格率" + statistics.getIharm19Rate().toString() + "%;";
+ }
+ if (statistics.getIharm20Rate() != null && statistics.getIharm20Rate() > 0 && statistics.getIharm20Rate() < 100) {
+ describe1 = describe1 + "20次电流谐波幅值合格率" + statistics.getIharm20Rate().toString() + "%;";
+ }
+ if (statistics.getIharm21Rate() != null && statistics.getIharm21Rate() > 0 && statistics.getIharm21Rate() < 100) {
+ describe1 = describe1 + "21次电流谐波幅值合格率" + statistics.getIharm21Rate().toString() + "%;";
+ }
+ if (statistics.getIharm22Rate() != null && statistics.getIharm22Rate() > 0 && statistics.getIharm22Rate() < 100) {
+ describe1 = describe1 + "22次电流谐波幅值合格率" + statistics.getIharm22Rate().toString() + "%;";
+ }
+ if (statistics.getIharm23Rate() != null && statistics.getIharm23Rate() > 0 && statistics.getIharm23Rate() < 100) {
+ describe1 = describe1 + "23次电流谐波幅值合格率" + statistics.getIharm23Rate().toString() + "%;";
+ }
+ if (statistics.getIharm24Rate() != null && statistics.getIharm24Rate() > 0 && statistics.getIharm24Rate() < 100) {
+ describe1 = describe1 + "24次电流谐波幅值合格率" + statistics.getIharm24Rate().toString() + "%;";
+ }
+ if (statistics.getIharm25Rate() != null && statistics.getIharm25Rate() > 0 && statistics.getIharm25Rate() < 100) {
+ describe1 = describe1 + "25次电流谐波幅值合格率" + statistics.getIharm25Rate().toString() + "%;";
+ }
+ boolean flag = false;
+ if (describe.length() > 0) {
+ describe = describe.substring(0, describe.length() - 1);
+ data.setEventDescribe(describe);
+ flag = true;
+ }
+ if (describe1.length() > 0) {
+ describe1 = "越限详情:" + describe1;
+ describe1 = describe1.substring(0, describe1.length() - 1);
+ data.setSteadyDescribe(describe1);
+ flag = true;
+ }
+ if (flag) {
+ info.add(data);
+ }
+ }
+ }
+ return info;
}
@Override
public StatisticsDetail queryDetail(String lineIndex, String timeID) {
- return null;
+ List lineDetail = lineFeignClient.getLineDetailByIds(Collections.singletonList(lineIndex)).getData();
+ if (CollUtil.isEmpty(lineDetail)) {
+ throw new BusinessException("监测点信息不存在,监测点编号有误!");
+ }
+ StatisticsDetail result = new StatisticsDetail();
+ //获取监测点完整名称
+ result.setName(lineDetail.get(0).getGdName() + "->" +
+ lineDetail.get(0).getSubName() + "->" +
+ lineDetail.get(0).getDevName() + "->" +
+ lineDetail.get(0).getLineName());
+ //获取稳态消息详情
+ String steadyDescribe = "";
+ List steadyUrlList = appSteadyUrlService.list(new LambdaQueryWrapper()
+ .eq(AppSteadyUrl::getLineIndex, lineIndex)
+ .eq(AppSteadyUrl::getTimeId, timeID)
+ .orderByAsc(AppSteadyUrl::getTypeCode)
+
+ );
+ if (CollUtil.isNotEmpty(steadyUrlList)) {
+ for (int n = 0; n < steadyUrlList.size(); n++) {
+ String typename = TypeCodeEnum.getMsgByCode(steadyUrlList.get(n).getTypeCode());
+ if (n == steadyUrlList.size() - 1) {
+ steadyDescribe = steadyDescribe + typename + steadyUrlList.get(n).getLimitNum() + "次";
+ } else {
+ steadyDescribe = steadyDescribe + typename + steadyUrlList.get(n).getLimitNum() + "次,";
+ }
+
+ }
+ result.setSteadyInfo(steadyDescribe);
+ }
+ //获取暂态消息详情
+ List eventInfo = new ArrayList<>();
+ //获取监测点暂态消息信息
+ String startTime = DateUtil.beginOfDay(DateUtil.parse(timeID)).toString();
+ String endTime = DateUtil.endOfDay(DateUtil.parse(timeID)).toString();
+ EventCountParam param=new EventCountParam();
+ param.setIds(Collections.singletonList(lineIndex));
+ param.setStartTime(startTime);
+ param.setEndTime(endTime);
+
+ List eventDetailList = eventDetailFeignClient.getAppEventDetailLtAmplitude(param).getData();
+ if (CollUtil.isNotEmpty(eventDetailList)) {
+ for (RmpEventDetailPO event : eventDetailList) {
+ StatisticsEvent eventData = new StatisticsEvent();
+ String describe = "";
+ describe = describe + lineDetail.get(0).getLineName() + "于"
+ + LocalDateTimeUtil.format(event.getStartTime(), DatePattern.NORM_DATETIME_MS_PATTERN)
+ + "发生暂降事件,特征幅值:" + event.getFeatureAmplitude()
+ + "%,持续时间:" + event.getDuration() + "s";
+ eventData.setDescribe(describe);
+ eventData.setEventDetail_index(event.getEventId());
+ eventInfo.add(eventData);
+ }
+ result.setEventInfo(eventInfo);
+
+ }
+
+ return result;
}
}