定版bug修改
This commit is contained in:
@@ -6,9 +6,13 @@ import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
||||||
import com.njcn.db.handler.AutoFillValueHandler;
|
import com.njcn.db.handler.AutoFillValueHandler;
|
||||||
import com.njcn.db.handler.BatchInjector;
|
import com.njcn.db.handler.BatchInjector;
|
||||||
|
import org.apache.ibatis.mapping.DatabaseIdProvider;
|
||||||
|
import org.apache.ibatis.mapping.VendorDatabaseIdProvider;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author hongawen
|
* @author hongawen
|
||||||
* @version 1.0.0
|
* @version 1.0.0
|
||||||
@@ -48,5 +52,14 @@ public class MybatisConfig {
|
|||||||
return new BatchInjector();
|
return new BatchInjector();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public DatabaseIdProvider databaseIdProvider() {
|
||||||
|
VendorDatabaseIdProvider provider = new VendorDatabaseIdProvider();
|
||||||
|
Properties properties = new Properties();
|
||||||
|
properties.setProperty("MySQL", "mysql"); // MySQL 驱动返回的数据库产品名
|
||||||
|
properties.setProperty("DM", "dm"); // 达梦驱动返回的数据库产品名
|
||||||
|
properties.setProperty("ORACLE", "oracle");
|
||||||
|
provider.setProperties(properties);
|
||||||
|
return provider;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,9 @@ import org.springframework.util.CollectionUtils;
|
|||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -194,26 +196,38 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CommunicateVO getComFlagInfoData(String id, String searchBeginTime, String searchEndTime) {
|
public CommunicateVO getComFlagInfoData(String id, String searchBeginTime, String searchEndTime) {
|
||||||
|
CommunicateVO communicateVOList = new CommunicateVO();
|
||||||
String devId = lineMapper.getDevIndex(id);
|
String devId = lineMapper.getDevIndex(id);
|
||||||
Device device = deviceMapper.selectById(devId);
|
Device device = deviceMapper.selectById(devId);
|
||||||
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
DateTime begin = DateUtil.beginOfDay(DateUtil.parse(searchBeginTime));
|
||||||
List<PqsCommunicate> communicateList = getCommunicate(devId, searchBeginTime, searchEndTime);
|
DateTime end = DateUtil.endOfDay(DateUtil.parse(searchEndTime));
|
||||||
CommunicateVO communicateVOList = new CommunicateVO();
|
DateTime login = DateUtil.parse(device.getLoginTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)));
|
||||||
|
if (end.isBefore(login)) {
|
||||||
|
//结束时间比终端投运时间前,则直接返回空
|
||||||
|
return communicateVOList;
|
||||||
|
}
|
||||||
|
if(begin.isBefore(login)){
|
||||||
|
//开始时间大于投运时间,取投运时间
|
||||||
|
begin = login;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<PqsCommunicate> communicateList = getCommunicate(devId, begin, end);
|
||||||
List<String> updateTime = new ArrayList<>();
|
List<String> updateTime = new ArrayList<>();
|
||||||
List<Integer> comType = new ArrayList<>();
|
List<Integer> comType = new ArrayList<>();
|
||||||
//开始时间
|
//开始时间
|
||||||
Boolean beginFly = false;
|
boolean beginFly = false;
|
||||||
if (CollUtil.isNotEmpty(communicateList)) {
|
if (CollUtil.isNotEmpty(communicateList)) {
|
||||||
if (!communicateList.get(0).getTime().equals(DateUtil.beginOfDay(DateUtil.parse(searchBeginTime)).toInstant())) {
|
if (!communicateList.get(0).getTime().equals(begin.toInstant())) {
|
||||||
beginFly = true;
|
beginFly = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
beginFly = true;
|
beginFly = true;
|
||||||
}
|
}
|
||||||
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
if (beginFly) {
|
if (beginFly) {
|
||||||
Instant instant = DateUtil.beginOfDay(DateUtil.parse(searchBeginTime)).toInstant();
|
Instant instant = begin.toInstant();
|
||||||
Long time = instant.toEpochMilli();
|
Long time = instant.toEpochMilli();
|
||||||
|
|
||||||
String timeText = df.format(time);
|
String timeText = df.format(time);
|
||||||
updateTime.add(timeText);
|
updateTime.add(timeText);
|
||||||
//取反(正常来时,有变动才会有数据)
|
//取反(正常来时,有变动才会有数据)
|
||||||
@@ -242,7 +256,7 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
|||||||
String format = times.format(date);
|
String format = times.format(date);
|
||||||
Instant endTime = DateUtil.parse(searchEndTime + " " + format).toInstant();
|
Instant endTime = DateUtil.parse(searchEndTime + " " + format).toInstant();
|
||||||
|
|
||||||
Boolean endFly = false;
|
boolean endFly = false;
|
||||||
if (CollUtil.isNotEmpty(communicateList)) {
|
if (CollUtil.isNotEmpty(communicateList)) {
|
||||||
if (!communicateList.get(communicateList.size() - 1).getTime().equals(endTime)) {
|
if (!communicateList.get(communicateList.size() - 1).getTime().equals(endTime)) {
|
||||||
endFly = true;
|
endFly = true;
|
||||||
@@ -751,7 +765,7 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
|||||||
List<String> ids = result.stream().map(LineDetail::getId).distinct().collect(Collectors.toList());
|
List<String> ids = result.stream().map(LineDetail::getId).distinct().collect(Collectors.toList());
|
||||||
List<Line> lineList = lineMapper.selectList(new LambdaQueryWrapper<Line>().in(Line::getId, ids).eq(Line::getState, DataStateEnum.ENABLE.getCode()));
|
List<Line> lineList = lineMapper.selectList(new LambdaQueryWrapper<Line>().in(Line::getId, ids).eq(Line::getState, DataStateEnum.ENABLE.getCode()));
|
||||||
Map<String, Line> lineMap = lineList.stream().collect(Collectors.toMap(Line::getId, Function.identity()));
|
Map<String, Line> lineMap = lineList.stream().collect(Collectors.toMap(Line::getId, Function.identity()));
|
||||||
result.forEach(item->item.setMonitorName(lineMap.getOrDefault(item.getId(),new Line()).getName()));
|
result.forEach(item -> item.setMonitorName(lineMap.getOrDefault(item.getId(), new Line()).getName()));
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -760,17 +774,17 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
|||||||
public List<PollutionSubstationDTO> getPowerStationByMonitorIds(List<String> ids) {
|
public List<PollutionSubstationDTO> getPowerStationByMonitorIds(List<String> ids) {
|
||||||
List<PollutionSubstationDTO> result = new ArrayList<>();
|
List<PollutionSubstationDTO> result = new ArrayList<>();
|
||||||
List<LineDetail> lineDetailList = lineDetailMapper.selectList(new LambdaQueryWrapper<LineDetail>().in(LineDetail::getId, ids));
|
List<LineDetail> lineDetailList = lineDetailMapper.selectList(new LambdaQueryWrapper<LineDetail>().in(LineDetail::getId, ids));
|
||||||
List<LineDetail> userLedgerList = lineDetailList.stream().filter(it->StrUtil.isNotBlank(it.getObjId())).collect(Collectors.toList());
|
List<LineDetail> userLedgerList = lineDetailList.stream().filter(it -> StrUtil.isNotBlank(it.getObjId())).collect(Collectors.toList());
|
||||||
List<LineDetail> powerLedgerList = lineDetailList.stream().filter(it->StrUtil.isBlank(it.getObjId())).collect(Collectors.toList());
|
List<LineDetail> powerLedgerList = lineDetailList.stream().filter(it -> StrUtil.isBlank(it.getObjId())).collect(Collectors.toList());
|
||||||
|
|
||||||
if(CollUtil.isNotEmpty(userLedgerList)){
|
if (CollUtil.isNotEmpty(userLedgerList)) {
|
||||||
List<String> objIds = userLedgerList.stream().map(LineDetail::getObjId).distinct().collect(Collectors.toList());
|
List<String> objIds = userLedgerList.stream().map(LineDetail::getObjId).distinct().collect(Collectors.toList());
|
||||||
List<NewUserReportVO> newUserReportVOList = userLedgerFeignClient.getUserReportByIds(objIds).getData();
|
List<NewUserReportVO> newUserReportVOList = userLedgerFeignClient.getUserReportByIds(objIds).getData();
|
||||||
Map<String,NewUserReportVO> map = newUserReportVOList.stream().collect(Collectors.toMap(NewUserReportVO::getId,Function.identity()));
|
Map<String, NewUserReportVO> map = newUserReportVOList.stream().collect(Collectors.toMap(NewUserReportVO::getId, Function.identity()));
|
||||||
|
|
||||||
List<DictData> dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE_STAND.getCode()).getData();
|
List<DictData> dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE_STAND.getCode()).getData();
|
||||||
Map<String,DictData> dictDataMap = dictDataList.stream().collect(Collectors.toMap(DictData::getId,Function.identity()));
|
Map<String, DictData> dictDataMap = dictDataList.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
|
||||||
map.forEach((objId,item)->{
|
map.forEach((objId, item) -> {
|
||||||
PollutionSubstationDTO pollutionSubstationDTO = new PollutionSubstationDTO();
|
PollutionSubstationDTO pollutionSubstationDTO = new PollutionSubstationDTO();
|
||||||
pollutionSubstationDTO.setPowerFlag(PowerFlagEnum.NO_GRID_SIDE.getCode());
|
pollutionSubstationDTO.setPowerFlag(PowerFlagEnum.NO_GRID_SIDE.getCode());
|
||||||
pollutionSubstationDTO.setId(objId);
|
pollutionSubstationDTO.setId(objId);
|
||||||
@@ -782,11 +796,11 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
|||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
if(CollUtil.isNotEmpty(powerLedgerList)){
|
if (CollUtil.isNotEmpty(powerLedgerList)) {
|
||||||
List<Line> lineList = lineMapper.selectList(new LambdaQueryWrapper<Line>().in(Line::getId, powerLedgerList.stream().map(LineDetail::getId).distinct().collect(Collectors.toList())).eq(Line::getState, DataStateEnum.ENABLE.getCode()));
|
List<Line> lineList = lineMapper.selectList(new LambdaQueryWrapper<Line>().in(Line::getId, powerLedgerList.stream().map(LineDetail::getId).distinct().collect(Collectors.toList())).eq(Line::getState, DataStateEnum.ENABLE.getCode()));
|
||||||
List<String> stationIds = lineList.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]).collect(Collectors.toList());
|
List<String> stationIds = lineList.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]).collect(Collectors.toList());
|
||||||
List<SubstationDTO> stationList = substationMapper.getSubstationById(stationIds);
|
List<SubstationDTO> stationList = substationMapper.getSubstationById(stationIds);
|
||||||
stationList.forEach(item->{
|
stationList.forEach(item -> {
|
||||||
PollutionSubstationDTO pollutionSubstationDTO = new PollutionSubstationDTO();
|
PollutionSubstationDTO pollutionSubstationDTO = new PollutionSubstationDTO();
|
||||||
pollutionSubstationDTO.setPowerFlag(PowerFlagEnum.GRID_SIDE.getCode());
|
pollutionSubstationDTO.setPowerFlag(PowerFlagEnum.GRID_SIDE.getCode());
|
||||||
pollutionSubstationDTO.setId(item.getId());
|
pollutionSubstationDTO.setId(item.getId());
|
||||||
@@ -881,10 +895,9 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
|||||||
return child.stream().filter(allItem -> allItem.getPid().equals(item.getId())).collect(Collectors.toList());
|
return child.stream().filter(allItem -> allItem.getPid().equals(item.getId())).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<PqsCommunicate> getCommunicate(String devId, String startTime, String endTime) {
|
public List<PqsCommunicate> getCommunicate(String devId, DateTime startTime, DateTime endTime) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(PqsCommunicate.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(PqsCommunicate.class);
|
||||||
influxQueryWrapper.between(InfluxDbSqlConstant.TIME, DateUtil.beginOfDay(DateUtil.parse(startTime)).toString(), DateUtil.endOfDay(DateUtil.parse(endTime)).toString())
|
influxQueryWrapper.eq(PqsCommunicate::getDevId, devId).between(InfluxDbSqlConstant.TIME, startTime.toString(), endTime.toString());
|
||||||
.eq(PqsCommunicate::getDevId, devId);
|
|
||||||
return pqsCommunicateMapper.selectByQueryWrapper(influxQueryWrapper);
|
return pqsCommunicateMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -901,8 +914,8 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
|||||||
}
|
}
|
||||||
NewUserReportVO newUserReportVO;
|
NewUserReportVO newUserReportVO;
|
||||||
for (AreaLineInfoVO areaLineInfoVO : resList) {
|
for (AreaLineInfoVO areaLineInfoVO : resList) {
|
||||||
if(StrUtil.isNotBlank(areaLineInfoVO.getObjId())){
|
if (StrUtil.isNotBlank(areaLineInfoVO.getObjId())) {
|
||||||
if(userReportVOMap.containsKey(areaLineInfoVO.getObjId())){
|
if (userReportVOMap.containsKey(areaLineInfoVO.getObjId())) {
|
||||||
newUserReportVO = userReportVOMap.get(areaLineInfoVO.getObjId());
|
newUserReportVO = userReportVOMap.get(areaLineInfoVO.getObjId());
|
||||||
areaLineInfoVO.setSubId(newUserReportVO.getId());
|
areaLineInfoVO.setSubId(newUserReportVO.getId());
|
||||||
areaLineInfoVO.setSubName(newUserReportVO.getProjectName());
|
areaLineInfoVO.setSubName(newUserReportVO.getProjectName());
|
||||||
|
|||||||
@@ -55,6 +55,14 @@ import java.util.zip.ZipOutputStream;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class EventAnalysisServiceImpl implements EventAnalysisService {
|
public class EventAnalysisServiceImpl implements EventAnalysisService {
|
||||||
|
|
||||||
|
// 定义阈值常量(单位:百分比)
|
||||||
|
final double[] EVENT_VALUE_THRESHOLDS = {90, 85, 70, 40, 10};
|
||||||
|
// 定义持续时间阈值(单位:毫秒)
|
||||||
|
final double[] DURATION_THRESHOLDS = {0.02, 0.1, 0.5, 1, 3, 20, 60, 180};
|
||||||
|
|
||||||
|
String[] labels = {"90%", "85%", "70%", "40%", "10%"};
|
||||||
|
|
||||||
|
|
||||||
private final InfluxDbUtils influxDbUtils;
|
private final InfluxDbUtils influxDbUtils;
|
||||||
|
|
||||||
private final LineFeignClient lineFeignClient;
|
private final LineFeignClient lineFeignClient;
|
||||||
@@ -66,76 +74,6 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
private final DicDataFeignClient dicDataFeignClient;
|
private final DicDataFeignClient dicDataFeignClient;
|
||||||
|
|
||||||
|
|
||||||
/*@Override
|
|
||||||
public Page<EventDetail> getEventAnalyse(EventBaseParam eventBaseParam) {
|
|
||||||
|
|
||||||
//查询sql语句
|
|
||||||
StringBuilder stringResult = new StringBuilder(Param.SELECT).append(Param.EVENT_DETAIL).append(Param.WHERE).
|
|
||||||
append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse(eventBaseParam.getSearchBeginTime()))).append("' and ").append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(eventBaseParam.getSearchEndTime()))).append("' and ")
|
|
||||||
.append("line_id= '").append(eventBaseParam.getLineId()).append("'");
|
|
||||||
|
|
||||||
int i = (eventBaseParam.getPageNum() - 1) * eventBaseParam.getPageSize();
|
|
||||||
stringResult.append("LIMIT ").append(eventBaseParam.getPageSize()).append(" OFFSET ").append(i).append(" tz('Asia/Shanghai')");
|
|
||||||
|
|
||||||
//查询sql语句总条数
|
|
||||||
StringBuilder stringTotal = new StringBuilder("SELECT COUNT(num) as aa FROM ").append(Param.EVENT_DETAIL).append(" WHERE ").append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse(eventBaseParam.getSearchBeginTime()))).append("' and ")
|
|
||||||
.append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(eventBaseParam.getSearchEndTime()))).append("' and ");
|
|
||||||
stringTotal.append("line_id= '").append(eventBaseParam.getLineId()).append("' tz('Asia/Shanghai')");
|
|
||||||
|
|
||||||
//结果集
|
|
||||||
QueryResult result = influxDbUtils.query(stringResult.toString());
|
|
||||||
|
|
||||||
//总条数
|
|
||||||
QueryResult resultTotal = influxDbUtils.query(stringTotal.toString());
|
|
||||||
//结果集映射到对象中
|
|
||||||
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
|
||||||
List<EventDetail> eventDetailList = influxDBResultMapper.toPOJO(result, EventDetail.class);
|
|
||||||
|
|
||||||
Page<EventDetail> page = new Page<>();
|
|
||||||
long total = new BigDecimal(resultTotal.getResults().get(0).getSeries().get(0).getValues().get(0).get(1).toString()).longValue();
|
|
||||||
page.setTotal(total);
|
|
||||||
page.setRecords(eventDetailList);
|
|
||||||
page.setCurrent(eventBaseParam.getPageNum());
|
|
||||||
page.setSize(eventBaseParam.getPageSize());
|
|
||||||
return page;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 时间无ID全查询
|
|
||||||
*
|
|
||||||
* @param startTime
|
|
||||||
* @param endTime
|
|
||||||
* @return
|
|
||||||
* @author xxy
|
|
||||||
*/
|
|
||||||
public QueryResult TimeQuery(String startTime, String endTime) {
|
|
||||||
//构建sql语句
|
|
||||||
String stringResult = Param.SELECT + Param.EVENT_DETAIL + Param.WHERE + "time >= '" +
|
|
||||||
DateUtil.beginOfDay(DateUtil.parse(startTime)) +
|
|
||||||
"' and " + "time <= '" +
|
|
||||||
DateUtil.endOfDay(DateUtil.parse(endTime)) + "'" + Param.TZ_ASIA_SHANGHAI;
|
|
||||||
//结果集映射到对象中
|
|
||||||
return influxDbUtils.query(stringResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return
|
|
||||||
* @author xxy
|
|
||||||
* 时间区间查询监测点抽取
|
|
||||||
*/
|
|
||||||
public QueryResult MonitorQuery(StatisticsParam statisticsParam) {
|
|
||||||
//构建sql语句
|
|
||||||
String stringResult = Param.SELECT + Param.EVENT_DETAIL + Param.WHERE + "" + "time >= '" +
|
|
||||||
DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime().toString())) +
|
|
||||||
"' and " + "time <= '" +
|
|
||||||
DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getEndTime().toString())) +
|
|
||||||
"' and " + "line_id= '" +
|
|
||||||
statisticsParam.getLineIndex() + "' " +
|
|
||||||
Param.TZ_ASIA_SHANGHAI;
|
|
||||||
//结果集映射到对象中
|
|
||||||
return influxDbUtils.query(stringResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取电压暂态表及密度坐标图
|
* 获取电压暂态表及密度坐标图
|
||||||
*
|
*
|
||||||
@@ -377,139 +315,76 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DISDIPVO> eventDisdip(StatisticsParam statisticsParam) {
|
public List<DISDIPVO> eventDisdip(StatisticsParam statisticsParam) {
|
||||||
List<DISDIPVO> result = new ArrayList<>();
|
// 初始化结果数组(默认值为0)
|
||||||
|
int[][] arr = new int[5][8];
|
||||||
|
|
||||||
/*List<EventDetail> info = new ArrayList<>();
|
// 查询事件数据
|
||||||
QueryResult query = MonitorQuery(statisticsParam);
|
List<RmpEventDetailPO> events = eventDetailService.list(
|
||||||
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||||
info = influxDBResultMapper.toPOJO(query, EventDetail.class);*/
|
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||||
|
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()),
|
||||||
//查询监测点未处理暂态事件
|
RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
||||||
List<RmpEventDetailPO> info = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()),
|
||||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
||||||
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime,DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
|
||||||
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
|
||||||
);
|
);
|
||||||
|
|
||||||
int[][] arr = new int[5][8];
|
// 分类统计事件
|
||||||
for (int i = 0; i < 5; i++) {
|
for (RmpEventDetailPO event : events) {
|
||||||
for (int j = 0; j < 8; j++) {
|
double eventValue = event.getFeatureAmplitude() * 100; // 转换为百分比
|
||||||
arr[i][j] = 0;
|
double duration = event.getDuration();
|
||||||
|
|
||||||
|
// 确定事件等级(0=90%, 1=85%, ..., 4=10%)
|
||||||
|
int level = getEventLevel(eventValue, EVENT_VALUE_THRESHOLDS);
|
||||||
|
// 确定持续时间区间索引
|
||||||
|
int durationIndex = getDurationIndex(duration, DURATION_THRESHOLDS);
|
||||||
|
|
||||||
|
if (level != -1 && durationIndex != -1) {
|
||||||
|
arr[level][durationIndex]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (int i = 0; i < info.size(); i++) {
|
|
||||||
Double eventvalue = info.get(i).getFeatureAmplitude();
|
// 构建结果列表
|
||||||
double persisttime = info.get(i).getDuration();
|
List<DISDIPVO> result = new ArrayList<>();
|
||||||
if (eventvalue * 100 < 10) {
|
for (int i = 0; i < labels.length; i++) {
|
||||||
if (persisttime < 20) {
|
result.add(new DISDIPVO(
|
||||||
arr[4][0]++;
|
labels[i],
|
||||||
} else if (persisttime < 100) {
|
String.valueOf(arr[i][0]), String.valueOf(arr[i][1]), String.valueOf(arr[i][2]), String.valueOf(arr[i][3]),
|
||||||
arr[4][1]++;
|
String.valueOf(arr[i][4]), String.valueOf(arr[i][5]), String.valueOf(arr[i][6]), String.valueOf(arr[i][7])
|
||||||
} else if (persisttime < 500) {
|
));
|
||||||
arr[4][2]++;
|
|
||||||
} else if (persisttime < 1000) {
|
|
||||||
arr[4][3]++;
|
|
||||||
} else if (persisttime < 3000) {
|
|
||||||
arr[4][4]++;
|
|
||||||
} else if (persisttime < 20000) {
|
|
||||||
arr[4][5]++;
|
|
||||||
} else if (persisttime < 60000) {
|
|
||||||
arr[4][6]++;
|
|
||||||
} else if (persisttime < 180000) {
|
|
||||||
arr[4][7]++;
|
|
||||||
}
|
|
||||||
} else if (eventvalue * 100 < 40) {
|
|
||||||
if (persisttime < 20) {
|
|
||||||
arr[3][0]++;
|
|
||||||
} else if (persisttime < 100) {
|
|
||||||
arr[3][1]++;
|
|
||||||
} else if (persisttime < 500) {
|
|
||||||
arr[3][2]++;
|
|
||||||
} else if (persisttime < 1000) {
|
|
||||||
arr[3][3]++;
|
|
||||||
} else if (persisttime < 3000) {
|
|
||||||
arr[3][4]++;
|
|
||||||
} else if (persisttime < 20000) {
|
|
||||||
arr[3][5]++;
|
|
||||||
} else if (persisttime < 60000) {
|
|
||||||
arr[3][6]++;
|
|
||||||
} else if (persisttime < 180000) {
|
|
||||||
arr[3][7]++;
|
|
||||||
}
|
|
||||||
} else if (eventvalue * 100 < 70) {
|
|
||||||
if (persisttime < 20) {
|
|
||||||
arr[2][0]++;
|
|
||||||
} else if (persisttime < 100) {
|
|
||||||
arr[2][1]++;
|
|
||||||
} else if (persisttime < 500) {
|
|
||||||
arr[2][2]++;
|
|
||||||
} else if (persisttime < 1000) {
|
|
||||||
arr[2][3]++;
|
|
||||||
} else if (persisttime < 3000) {
|
|
||||||
arr[2][4]++;
|
|
||||||
} else if (persisttime < 20000) {
|
|
||||||
arr[2][5]++;
|
|
||||||
} else if (persisttime < 60000) {
|
|
||||||
arr[2][6]++;
|
|
||||||
} else if (persisttime < 180000) {
|
|
||||||
arr[2][7]++;
|
|
||||||
}
|
|
||||||
} else if (eventvalue * 100 < 85) {
|
|
||||||
if (persisttime < 20) {
|
|
||||||
arr[1][0]++;
|
|
||||||
} else if (persisttime < 100) {
|
|
||||||
arr[1][1]++;
|
|
||||||
} else if (persisttime < 500) {
|
|
||||||
arr[1][2]++;
|
|
||||||
} else if (persisttime < 1000) {
|
|
||||||
arr[1][3]++;
|
|
||||||
} else if (persisttime < 3000) {
|
|
||||||
arr[1][4]++;
|
|
||||||
} else if (persisttime < 20000) {
|
|
||||||
arr[1][5]++;
|
|
||||||
} else if (persisttime < 60000) {
|
|
||||||
arr[1][6]++;
|
|
||||||
} else if (persisttime < 180000) {
|
|
||||||
arr[1][7]++;
|
|
||||||
}
|
|
||||||
} else if (eventvalue * 100 <= 90) {
|
|
||||||
if (persisttime < 20) {
|
|
||||||
arr[0][0]++;
|
|
||||||
} else if (persisttime < 100) {
|
|
||||||
arr[0][1]++;
|
|
||||||
} else if (persisttime < 500) {
|
|
||||||
arr[0][2]++;
|
|
||||||
} else if (persisttime < 1000) {
|
|
||||||
arr[0][3]++;
|
|
||||||
} else if (persisttime < 3000) {
|
|
||||||
arr[0][4]++;
|
|
||||||
} else if (persisttime < 20000) {
|
|
||||||
arr[0][5]++;
|
|
||||||
} else if (persisttime < 60000) {
|
|
||||||
arr[0][6]++;
|
|
||||||
} else if (persisttime < 180000) {
|
|
||||||
arr[0][7]++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
result.add(new DISDIPVO("90%", String.valueOf(arr[0][0]), String.valueOf(arr[0][1]), String.valueOf(arr[0][2]), String.valueOf(arr[0][3]), String.valueOf(arr[0][4]), String.valueOf(arr[0][5]), String.valueOf(arr[0][6]), String.valueOf(arr[0][7])));
|
|
||||||
result.add(new DISDIPVO("85%", String.valueOf(arr[1][0]), String.valueOf(arr[1][1]), String.valueOf(arr[1][2]), String.valueOf(arr[1][3]), String.valueOf(arr[1][4]), String.valueOf(arr[1][5]), String.valueOf(arr[1][6]), String.valueOf(arr[1][7])));
|
|
||||||
result.add(new DISDIPVO("70%", String.valueOf(arr[2][0]), String.valueOf(arr[2][1]), String.valueOf(arr[2][2]), String.valueOf(arr[2][3]), String.valueOf(arr[2][4]), String.valueOf(arr[2][5]), String.valueOf(arr[2][6]), String.valueOf(arr[2][7])));
|
|
||||||
result.add(new DISDIPVO("40%", String.valueOf(arr[3][0]), String.valueOf(arr[3][1]), String.valueOf(arr[3][2]), String.valueOf(arr[3][3]), String.valueOf(arr[3][4]), String.valueOf(arr[3][5]), String.valueOf(arr[3][6]), String.valueOf(arr[3][7])));
|
|
||||||
result.add(new DISDIPVO("10%", String.valueOf(arr[4][0]), String.valueOf(arr[4][1]), String.valueOf(arr[4][2]), String.valueOf(arr[4][3]), String.valueOf(arr[4][4]), String.valueOf(arr[4][5]), String.valueOf(arr[4][6]), String.valueOf(arr[4][7])));
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据事件值获取等级索引(从高到低匹配)
|
||||||
|
*/
|
||||||
|
private int getEventLevel(double eventValue, double[] thresholds) {
|
||||||
|
for (int i = 0; i < thresholds.length; i++) {
|
||||||
|
if (eventValue >= thresholds[i]) {
|
||||||
|
return i; // 返回匹配的等级索引
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return thresholds.length - 1; // 默认最低等级
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据持续时间获取区间索引
|
||||||
|
*/
|
||||||
|
private int getDurationIndex(double duration, double[] thresholds) {
|
||||||
|
for (int i = 0; i < thresholds.length; i++) {
|
||||||
|
if (duration < thresholds[i]) {
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return thresholds.length - 1; // 超过最大阈值时返回最后一个区间
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<IEC411VO> IEC411(StatisticsParam statisticsParam) {
|
public List<IEC411VO> IEC411(StatisticsParam statisticsParam) {
|
||||||
List<IEC411VO> result = new ArrayList<>();
|
List<IEC411VO> result = new ArrayList<>();
|
||||||
// List<EventDetail> info = new ArrayList<>();
|
|
||||||
// QueryResult query = MonitorQuery(statisticsParam);
|
|
||||||
// InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
|
||||||
// info = influxDBResultMapper.toPOJO(query, EventDetail.class);
|
|
||||||
|
|
||||||
//查询监测点未处理暂态事件
|
//查询监测点未处理暂态事件
|
||||||
List<RmpEventDetailPO> info = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
List<RmpEventDetailPO> events = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||||
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
||||||
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
||||||
@@ -520,51 +395,18 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
arr[i][j] = 0;
|
arr[i][j] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (int i = 0; i < info.size(); i++) {
|
// 分类统计事件
|
||||||
Double eventvalue = info.get(i).getFeatureAmplitude();
|
for (RmpEventDetailPO event : events) {
|
||||||
double persisttime = info.get(i).getDuration();
|
double eventValue = event.getFeatureAmplitude(); // 转换为百分比
|
||||||
if (eventvalue * 100 < 1) {
|
double duration = event.getDuration();
|
||||||
if (persisttime < 20 && persisttime >= 10) {
|
|
||||||
arr[2][0]++;
|
// 确定事件等级(0=90%, 1=85%, ..., 4=10%)
|
||||||
} else if (persisttime < 100) {
|
int level = getIEC411_EventLevel(eventValue);
|
||||||
arr[2][1]++;
|
// 确定持续时间区间索引
|
||||||
} else if (persisttime < 200) {
|
int durationIndex = getDurationIndex(duration, DURATION_THRESHOLDS);
|
||||||
arr[2][2]++;
|
|
||||||
} else if (persisttime < 400) {
|
if (level != -1 && durationIndex != -1) {
|
||||||
arr[2][3]++;
|
arr[level][durationIndex]++;
|
||||||
} else if (persisttime < 1000) {
|
|
||||||
arr[2][4]++;
|
|
||||||
} else {
|
|
||||||
arr[2][5]++;
|
|
||||||
}
|
|
||||||
} else if (eventvalue * 100 < 40) {
|
|
||||||
if (persisttime < 20 && persisttime >= 10) {
|
|
||||||
arr[1][0]++;
|
|
||||||
} else if (persisttime < 100) {
|
|
||||||
arr[1][1]++;
|
|
||||||
} else if (persisttime < 200) {
|
|
||||||
arr[1][2]++;
|
|
||||||
} else if (persisttime < 400) {
|
|
||||||
arr[1][3]++;
|
|
||||||
} else if (persisttime < 1000) {
|
|
||||||
arr[1][4]++;
|
|
||||||
} else {
|
|
||||||
arr[1][5]++;
|
|
||||||
}
|
|
||||||
} else if (eventvalue * 100 <= 70) {
|
|
||||||
if (persisttime < 20 && persisttime >= 10) {
|
|
||||||
arr[0][0]++;
|
|
||||||
} else if (persisttime < 100) {
|
|
||||||
arr[0][1]++;
|
|
||||||
} else if (persisttime < 200) {
|
|
||||||
arr[0][2]++;
|
|
||||||
} else if (persisttime < 400) {
|
|
||||||
arr[0][3]++;
|
|
||||||
} else if (persisttime < 1000) {
|
|
||||||
arr[0][4]++;
|
|
||||||
} else {
|
|
||||||
arr[0][5]++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
result.add(new IEC411VO("40~70%", String.valueOf(arr[0][0]), String.valueOf(arr[0][1]), String.valueOf(arr[0][2]), String.valueOf(arr[0][3]), String.valueOf(arr[0][4]), String.valueOf(arr[0][5])));
|
result.add(new IEC411VO("40~70%", String.valueOf(arr[0][0]), String.valueOf(arr[0][1]), String.valueOf(arr[0][2]), String.valueOf(arr[0][3]), String.valueOf(arr[0][4]), String.valueOf(arr[0][5])));
|
||||||
@@ -573,15 +415,25 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据事件值获取等级索引(从高到低匹配)
|
||||||
|
*/
|
||||||
|
private int getIEC411_EventLevel(double eventValue) {
|
||||||
|
if (eventValue >= 0.1 && eventValue < 0.4) {
|
||||||
|
return 1;
|
||||||
|
} else if (eventValue >= 0.4 && eventValue < 0.7) {
|
||||||
|
return 0;
|
||||||
|
} else if (eventValue >= 0.7 && eventValue < 1) {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<IEC28VO> IEC28(StatisticsParam statisticsParam) {
|
public List<IEC28VO> IEC28(StatisticsParam statisticsParam) {
|
||||||
|
|
||||||
List<IEC28VO> result = new ArrayList<>();
|
List<IEC28VO> result = new ArrayList<>();
|
||||||
|
|
||||||
/*QueryResult query = MonitorQuery(statisticsParam);
|
|
||||||
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
|
||||||
List<EventDetail> info = influxDBResultMapper.toPOJO(query, EventDetail.class);*/
|
|
||||||
|
|
||||||
//查询监测点未处理暂态事件
|
//查询监测点未处理暂态事件
|
||||||
List<RmpEventDetailPO> info = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
List<RmpEventDetailPO> info = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||||
@@ -951,7 +803,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
Integer endMonth = Integer.parseInt(endTime.substring(5, 7));
|
Integer endMonth = Integer.parseInt(endTime.substring(5, 7));
|
||||||
Integer startYear = Integer.parseInt(startTime.substring(0, 4));
|
Integer startYear = Integer.parseInt(startTime.substring(0, 4));
|
||||||
Integer endYear = Integer.parseInt(endTime.substring(0, 4));
|
Integer endYear = Integer.parseInt(endTime.substring(0, 4));
|
||||||
if (statisticsParam.getFlag()==0) {
|
if (statisticsParam.getFlag() == 0) {
|
||||||
while (startYear != endYear && startMonth != endMonth) {
|
while (startYear != endYear && startMonth != endMonth) {
|
||||||
builder1.delete(0, builder1.length());
|
builder1.delete(0, builder1.length());
|
||||||
builder2.delete(0, builder2.length());
|
builder2.delete(0, builder2.length());
|
||||||
@@ -968,7 +820,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
// long count = eventDetailList.stream().filter(x -> x.getWaveType() == 1).count();
|
// long count = eventDetailList.stream().filter(x -> x.getWaveType() == 1).count();
|
||||||
List<RmpEventDetailPO> eventDetailList = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
List<RmpEventDetailPO> eventDetailList = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||||
.eq(StringUtils.isNotBlank(dataDto.getId()),RmpEventDetailPO::getEventType, dataDto.getId())
|
.eq(StringUtils.isNotBlank(dataDto.getId()), RmpEventDetailPO::getEventType, dataDto.getId())
|
||||||
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
||||||
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
||||||
);
|
);
|
||||||
@@ -994,7 +846,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
// long count1 = eventDetailList.stream().filter(x -> x.getWaveType() == 1).count();
|
// long count1 = eventDetailList.stream().filter(x -> x.getWaveType() == 1).count();
|
||||||
List<RmpEventDetailPO> eventDetailList = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
List<RmpEventDetailPO> eventDetailList = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||||
.eq(StringUtils.isNotBlank(dataDto.getId()),RmpEventDetailPO::getEventType, dataDto.getId())
|
.eq(StringUtils.isNotBlank(dataDto.getId()), RmpEventDetailPO::getEventType, dataDto.getId())
|
||||||
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
||||||
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
||||||
);
|
);
|
||||||
@@ -1013,18 +865,18 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
|
|
||||||
List<RmpEventDetailPO> eventDetailList = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
List<RmpEventDetailPO> eventDetailList = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||||
.eq(StringUtils.isNotBlank(dataDto.getId()),RmpEventDetailPO::getEventType, dataDto.getId())
|
.eq(StringUtils.isNotBlank(dataDto.getId()), RmpEventDetailPO::getEventType, dataDto.getId())
|
||||||
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
||||||
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
||||||
);
|
);
|
||||||
|
|
||||||
Map<String, List<RmpEventDetailPO>> map = eventDetailList.stream().filter(x -> dataDto.getId().equals(x.getEventType()))
|
Map<String, List<RmpEventDetailPO>> map = eventDetailList.stream().filter(x -> dataDto.getId().equals(x.getEventType()))
|
||||||
.peek(t ->t.setFormatTime(t.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))))
|
.peek(t -> t.setFormatTime(t.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))))
|
||||||
.collect(Collectors.groupingBy(RmpEventDetailPO::getFormatTime));
|
.collect(Collectors.groupingBy(RmpEventDetailPO::getFormatTime));
|
||||||
Set<String> keySet = map.keySet();
|
Set<String> keySet = map.keySet();
|
||||||
LocalDate parse1 = LocalDate.parse(startTime);
|
LocalDate parse1 = LocalDate.parse(startTime);
|
||||||
LocalDate parse2 = LocalDate.parse(endTime);
|
LocalDate parse2 = LocalDate.parse(endTime);
|
||||||
while (!parse1.equals(parse2.plus(1, ChronoUnit.DAYS))){
|
while (!parse1.equals(parse2.plus(1, ChronoUnit.DAYS))) {
|
||||||
if (keySet.contains(parse1.toString())) {
|
if (keySet.contains(parse1.toString())) {
|
||||||
// List<EventDetailNew> eventDetailNews = map.get(parse1.toString());
|
// List<EventDetailNew> eventDetailNews = map.get(parse1.toString());
|
||||||
List<RmpEventDetailPO> eventDetailNews = map.get(parse1.toString());
|
List<RmpEventDetailPO> eventDetailNews = map.get(parse1.toString());
|
||||||
@@ -1067,21 +919,17 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public StatisticVO getStatistic (StatisticsParam statisticsParam) {
|
public StatisticVO getStatistic(StatisticsParam statisticsParam) {
|
||||||
StatisticVO result = new StatisticVO();
|
StatisticVO result = new StatisticVO();
|
||||||
List<EventDetail> list = new ArrayList<>();
|
List<EventDetail> list = new ArrayList<>();
|
||||||
List<ReasonsVO> reasonsVOS = new ArrayList<>();
|
List<ReasonsVO> reasonsVOS = new ArrayList<>();
|
||||||
List<TypesVO> typesVOS = new ArrayList<>();
|
List<TypesVO> typesVOS = new ArrayList<>();
|
||||||
// List<EventDetail> info = new ArrayList<>();
|
|
||||||
// QueryResult query = MonitorQuery(statisticsParam);
|
|
||||||
// InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
|
||||||
// info = influxDBResultMapper.toPOJO(query, EventDetail.class);
|
|
||||||
//获取暂降字典信息
|
//获取暂降字典信息
|
||||||
DictData dataDto = dicDataFeignClient.getDicDataByCode(DicDataEnum.VOLTAGE_DIP.getCode()).getData();
|
DictData dataDto = dicDataFeignClient.getDicDataByCode(DicDataEnum.VOLTAGE_DIP.getCode()).getData();
|
||||||
//数据暂降查询
|
//数据暂降查询
|
||||||
List<RmpEventDetailPO> info = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
List<RmpEventDetailPO> info = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||||
.eq(StringUtils.isNotBlank(dataDto.getId()),RmpEventDetailPO::getEventType, dataDto.getId())
|
.eq(StringUtils.isNotBlank(dataDto.getId()), RmpEventDetailPO::getEventType, dataDto.getId())
|
||||||
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
||||||
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
||||||
);
|
);
|
||||||
@@ -1155,9 +1003,6 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
|
|
||||||
ProbabilityVO result = new ProbabilityVO();
|
ProbabilityVO result = new ProbabilityVO();
|
||||||
List<EventDetail> info = new ArrayList<>();
|
List<EventDetail> info = new ArrayList<>();
|
||||||
// QueryResult query = MonitorQuery(statisticsParam);
|
|
||||||
// InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
|
||||||
// List<EventDetail> info2 = influxDBResultMapper.toPOJO(query, EventDetail.class);
|
|
||||||
//数据暂降查询
|
//数据暂降查询
|
||||||
List<RmpEventDetailPO> infos = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
List<RmpEventDetailPO> infos = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||||
@@ -1265,7 +1110,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
for (String s : subsectionSet) {
|
for (String s : subsectionSet) {
|
||||||
if (strings1.get(i).equals(s)) {
|
if (strings1.get(i).equals(s)) {
|
||||||
if (subsectionMap.get(s) == 0) {
|
if (subsectionMap.get(s) == 0) {
|
||||||
pereventvalue.add(".00");
|
pereventvalue.add("0.00");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (subsectionMap.get(s) / count.doubleValue() == 1.0) {
|
if (subsectionMap.get(s) / count.doubleValue() == 1.0) {
|
||||||
@@ -1296,7 +1141,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
for (String s : countSet) {
|
for (String s : countSet) {
|
||||||
if (strings.get(i).equals(s)) {
|
if (strings.get(i).equals(s)) {
|
||||||
if (countMap.get(s) == 0) {
|
if (countMap.get(s) == 0) {
|
||||||
eventvalue.add(".00");
|
eventvalue.add("0.00");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (countMap.get(s) / count.floatValue() == 1.0) {
|
if (countMap.get(s) / count.floatValue() == 1.0) {
|
||||||
@@ -1357,7 +1202,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
for (String s : timeSet) {
|
for (String s : timeSet) {
|
||||||
if (strings2.get(i).equals(s)) {
|
if (strings2.get(i).equals(s)) {
|
||||||
if (timeMap.get(s) == 0) {
|
if (timeMap.get(s) == 0) {
|
||||||
persisttime.add(".00");
|
persisttime.add("0.00");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (timeMap.get(s) / count.floatValue() == 1.0) {
|
if (timeMap.get(s) / count.floatValue() == 1.0) {
|
||||||
@@ -1414,7 +1259,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
for (String s : time2Set) {
|
for (String s : time2Set) {
|
||||||
if (strings2.get(i).equals(s)) {
|
if (strings2.get(i).equals(s)) {
|
||||||
if (timeMap2.get(s) == 0) {
|
if (timeMap2.get(s) == 0) {
|
||||||
sisttime.add(".00");
|
sisttime.add("0.00");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (timeMap2.get(s) / count.floatValue() == 1.0) {
|
if (timeMap2.get(s) / count.floatValue() == 1.0) {
|
||||||
@@ -1464,7 +1309,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
//查询监测点未处理暂态事件
|
//查询监测点未处理暂态事件
|
||||||
List<RmpEventDetailPO> eventDetails = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
List<RmpEventDetailPO> eventDetails = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||||
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
.eq(RmpEventDetailPO::getMeasurementPointId, statisticsParam.getLineIndex())
|
||||||
.eq(StrUtil.isNotBlank(data.getId()),RmpEventDetailPO::getEventType, data.getId())
|
.eq(StrUtil.isNotBlank(data.getId()), RmpEventDetailPO::getEventType, data.getId())
|
||||||
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
.ge(StringUtils.isNotBlank(statisticsParam.getStartTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(statisticsParam.getStartTime())))
|
||||||
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
.le(StringUtils.isNotBlank(statisticsParam.getEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(statisticsParam.getEndTime())))
|
||||||
);
|
);
|
||||||
@@ -1524,7 +1369,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
|
|||||||
voltageToleranceCurve.setLineId(dto.getLineId());
|
voltageToleranceCurve.setLineId(dto.getLineId());
|
||||||
voltageToleranceCurve.setEventId(dto.getEventId());
|
voltageToleranceCurve.setEventId(dto.getEventId());
|
||||||
voltageToleranceCurve.setPersistTime(dto.getDuration());
|
voltageToleranceCurve.setPersistTime(dto.getDuration());
|
||||||
voltageToleranceCurve.setEventValue(dto.getFeatureAmplitude()*100);
|
voltageToleranceCurve.setEventValue(dto.getFeatureAmplitude() * 100);
|
||||||
voltageToleranceCurve.setTime(dto.getStartTime());
|
voltageToleranceCurve.setTime(dto.getStartTime());
|
||||||
voltageToleranceCurve.setGdName(info.getGdName());
|
voltageToleranceCurve.setGdName(info.getGdName());
|
||||||
voltageToleranceCurve.setSubName(info.getSubName());
|
voltageToleranceCurve.setSubName(info.getSubName());
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ import java.util.regex.Pattern;
|
|||||||
@RequestMapping("/qualifiedReport")
|
@RequestMapping("/qualifiedReport")
|
||||||
@Api(tags = "报告-合格率报告")
|
@Api(tags = "报告-合格率报告")
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class QualifiedReport extends BaseController {
|
public class QualifiedReportController extends BaseController {
|
||||||
|
|
||||||
private final QualifiedReportService qualifiedReportService;
|
private final QualifiedReportService qualifiedReportService;
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ public class QualifiedReport extends BaseController {
|
|||||||
TimeInterval timeInterval = new TimeInterval();
|
TimeInterval timeInterval = new TimeInterval();
|
||||||
String searchValue = qualifiedReportParam.getSearchValue();
|
String searchValue = qualifiedReportParam.getSearchValue();
|
||||||
Pattern pattern = Pattern.compile(PatternRegex.SPECIAL_REGEX);
|
Pattern pattern = Pattern.compile(PatternRegex.SPECIAL_REGEX);
|
||||||
if(pattern.matcher(searchValue).find()){
|
if(!pattern.matcher(searchValue).find()){
|
||||||
throw new BusinessException(ValidMessage.SPECIAL_REGEX);
|
throw new BusinessException(ValidMessage.SPECIAL_REGEX);
|
||||||
}
|
}
|
||||||
String methodDescribe = getMethodDescribe("pageTable");
|
String methodDescribe = getMethodDescribe("pageTable");
|
||||||
@@ -185,34 +185,78 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getPercentages" resultType="com.njcn.harmonic.pojo.vo.MonitorOverLimitVO$DataVO">
|
<select id="getPercentages" resultType="com.njcn.harmonic.pojo.vo.MonitorOverLimitVO$DataVO">
|
||||||
SELECT
|
SELECT
|
||||||
TO_CHAR(time_id, 'YYYY-MM-DD') AS time,
|
<choose>
|
||||||
NVL(TRUNCATE(
|
<when test="_databaseId == 'mysql'">
|
||||||
CASE
|
DATE_FORMAT(time_id, '%Y-%m-%d')
|
||||||
WHEN SUM(all_time) = 0 THEN 0
|
</when>
|
||||||
ELSE (1 - (
|
<otherwise>
|
||||||
sum( flicker_overtime )+ sum( flicker_all_time )+ sum( freq_dev_overtime )+ sum( voltage_dev_overtime )+ sum( ubalance_overtime )+ sum( uaberrance_overtime )+ sum( i_neg_overtime )+ sum( uharm_2_overtime )+ sum( uharm_3_overtime )+ sum( uharm_4_overtime )+ sum( uharm_5_overtime )+ sum( uharm_6_overtime )+ sum( uharm_7_overtime )+ sum( uharm_8_overtime )+ sum( uharm_9_overtime )+ sum( uharm_10_overtime )+ sum( uharm_11_overtime )+ sum( uharm_12_overtime )+ sum( uharm_13_overtime )+ sum( uharm_14_overtime )+ sum( uharm_15_overtime )+ sum( uharm_16_overtime )+ sum( uharm_17_overtime )+ sum( uharm_18_overtime )+ sum( uharm_19_overtime )+ sum( uharm_20_overtime )+ sum( uharm_21_overtime )+ sum( uharm_22_overtime )+ sum( uharm_23_overtime )+ sum( uharm_24_overtime )+ sum( uharm_25_overtime )+ sum( iharm_2_overtime )+ sum( iharm_3_overtime )+ sum( iharm_4_overtime )+ sum( iharm_5_overtime )+ sum( iharm_6_overtime )+ sum( iharm_7_overtime )+ sum( iharm_8_overtime )+ sum( iharm_9_overtime )+ sum( iharm_10_overtime )+ sum( iharm_11_overtime )+ sum( iharm_12_overtime )+ sum( iharm_13_overtime )+ sum( iharm_14_overtime )+ sum( iharm_15_overtime )+ sum( iharm_16_overtime )+ sum( iharm_17_overtime )+ sum( iharm_18_overtime )+ sum( iharm_19_overtime )+ sum( iharm_20_overtime )+ sum( iharm_21_overtime )+ sum( iharm_22_overtime )+ sum( iharm_23_overtime )+ sum( iharm_24_overtime )+ sum( iharm_25_overtime )+ sum( inuharm_1_overtime )+ sum( inuharm_2_overtime )+ sum( inuharm_3_overtime )+ sum( inuharm_4_overtime )+ sum( inuharm_5_overtime )+ sum( inuharm_6_overtime )+ sum( inuharm_7_overtime )+ sum( inuharm_8_overtime )+ sum( inuharm_9_overtime )+ sum( inuharm_10_overtime )+ sum( inuharm_11_overtime )+ sum( inuharm_12_overtime )+ sum( inuharm_13_overtime )+ sum( inuharm_14_overtime )+ sum( inuharm_15_overtime )+ sum( inuharm_16_overtime ))
|
TO_CHAR(time_id, 'YYYY-MM-DD')
|
||||||
/ NULLIF(SUM(all_time) * 71, 0)) * 100
|
</otherwise>
|
||||||
END, 2), 0) AS data
|
</choose> AS time,
|
||||||
FROM
|
<choose>
|
||||||
r_stat_limit_rate_d
|
<when test="_databaseId == 'mysql'">
|
||||||
<where>
|
IFNULL(ROUND(
|
||||||
phasic_type = 'T'
|
</when>
|
||||||
<if test=" ids != null and ids.size > 0">
|
<otherwise>
|
||||||
AND my_index IN
|
NVL(TRUNC(
|
||||||
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
|
</otherwise>
|
||||||
#{item}
|
</choose>
|
||||||
</foreach>
|
CASE
|
||||||
</if>
|
WHEN SUM(all_time) = 0 THEN 0
|
||||||
<if test=" statTime != null and statTime !=''">
|
ELSE (1 - (
|
||||||
AND time_id >= #{statTime}
|
-- 各类指标求和(保持原有逻辑不变)
|
||||||
</if>
|
SUM(flicker_overtime) + SUM(flicker_all_time) + SUM(freq_dev_overtime) +
|
||||||
<if test="endTime != null and endTime != ''">
|
SUM(voltage_dev_overtime) + SUM(ubalance_overtime) + SUM(uaberrance_overtime) +
|
||||||
AND time_id <= #{endTime}
|
SUM(i_neg_overtime) +
|
||||||
</if>
|
-- 电压谐波 (2-25)
|
||||||
</where>
|
SUM(uharm_2_overtime) + SUM(uharm_3_overtime) + SUM(uharm_4_overtime) + SUM(uharm_5_overtime) +
|
||||||
GROUP BY
|
SUM(uharm_6_overtime) + SUM(uharm_7_overtime) + SUM(uharm_8_overtime) + SUM(uharm_9_overtime) +
|
||||||
TO_CHAR(time_id, 'YYYY-MM-DD')
|
SUM(uharm_10_overtime) + SUM(uharm_11_overtime) + SUM(uharm_12_overtime) + SUM(uharm_13_overtime) +
|
||||||
|
SUM(uharm_14_overtime) + SUM(uharm_15_overtime) + SUM(uharm_16_overtime) + SUM(uharm_17_overtime) +
|
||||||
|
SUM(uharm_18_overtime) + SUM(uharm_19_overtime) + SUM(uharm_20_overtime) + SUM(uharm_21_overtime) +
|
||||||
|
SUM(uharm_22_overtime) + SUM(uharm_23_overtime) + SUM(uharm_24_overtime) + SUM(uharm_25_overtime) +
|
||||||
|
-- 电流谐波 (2-25)
|
||||||
|
SUM(iharm_2_overtime) + SUM(iharm_3_overtime) + SUM(iharm_4_overtime) + SUM(iharm_5_overtime) +
|
||||||
|
SUM(iharm_6_overtime) + SUM(iharm_7_overtime) + SUM(iharm_8_overtime) + SUM(iharm_9_overtime) +
|
||||||
|
SUM(iharm_10_overtime) + SUM(iharm_11_overtime) + SUM(iharm_12_overtime) + SUM(iharm_13_overtime) +
|
||||||
|
SUM(iharm_14_overtime) + SUM(iharm_15_overtime) + SUM(iharm_16_overtime) + SUM(iharm_17_overtime) +
|
||||||
|
SUM(iharm_18_overtime) + SUM(iharm_19_overtime) + SUM(iharm_20_overtime) + SUM(iharm_21_overtime) +
|
||||||
|
SUM(iharm_22_overtime) + SUM(iharm_23_overtime) + SUM(iharm_24_overtime) + SUM(iharm_25_overtime) +
|
||||||
|
-- 间谐波 (1-16)
|
||||||
|
SUM(inuharm_1_overtime) + SUM(inuharm_2_overtime) + SUM(inuharm_3_overtime) + SUM(inuharm_4_overtime) +
|
||||||
|
SUM(inuharm_5_overtime) + SUM(inuharm_6_overtime) + SUM(inuharm_7_overtime) + SUM(inuharm_8_overtime) +
|
||||||
|
SUM(inuharm_9_overtime) + SUM(inuharm_10_overtime) + SUM(inuharm_11_overtime) + SUM(inuharm_12_overtime) +
|
||||||
|
SUM(inuharm_13_overtime) + SUM(inuharm_14_overtime) + SUM(inuharm_15_overtime) + SUM(inuharm_16_overtime)
|
||||||
|
) / NULLIF(SUM(all_time) * 71, 0)) * 100
|
||||||
|
END, 2), 0) AS data
|
||||||
|
FROM
|
||||||
|
r_stat_limit_rate_d
|
||||||
|
<where>
|
||||||
|
phasic_type = 'T'
|
||||||
|
<if test="ids != null and ids.size > 0">
|
||||||
|
AND my_index IN
|
||||||
|
<foreach collection="ids" item="item" index="index" open="(" separator="," close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
<if test="statTime != null and statTime != ''">
|
||||||
|
AND time_id >= #{statTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime != null and endTime != ''">
|
||||||
|
AND time_id <= #{endTime}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
GROUP BY
|
||||||
|
<choose>
|
||||||
|
<when test="_databaseId == 'mysql'">
|
||||||
|
DATE_FORMAT(time_id, '%Y-%m-%d')
|
||||||
|
</when>
|
||||||
|
<otherwise>
|
||||||
|
TO_CHAR(time_id, 'YYYY-MM-DD')
|
||||||
|
</otherwise>
|
||||||
|
</choose>
|
||||||
|
ORDER BY time
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -78,29 +78,37 @@ public class HarmInHarmServiceImpl implements HarmInHarmService {
|
|||||||
if (StrUtil.isNotBlank(lineId)) {
|
if (StrUtil.isNotBlank(lineId)) {
|
||||||
if (harmState == 0) {
|
if (harmState == 0) {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmRateV.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmRateV.class);
|
||||||
influxQueryWrapper.meanSamePrefixAndSuffix("v_","", HarmonicTimesUtil.harmonicTimesList(2,50,1))
|
influxQueryWrapper.meanSamePrefixAndSuffix("v_", "", HarmonicTimesUtil.harmonicTimesList(2, 50, 1))
|
||||||
.between(DataHarmRateV::getTime,startTime,endTime)
|
.between(DataHarmRateV::getTime, startTime, endTime)
|
||||||
.eq(DataHarmRateV::getLineId,lineId)
|
.eq(DataHarmRateV::getLineId, lineId)
|
||||||
.eq(DataHarmRateV::getValueType, InfluxDBTableConstant.CP95)
|
.eq(DataHarmRateV::getValueType, InfluxDBTableConstant.CP95)
|
||||||
.ne(DataHarmRateV::getPhaseType,InfluxDBTableConstant.PHASE_TYPE_T);
|
.ne(DataHarmRateV::getPhaseType, InfluxDBTableConstant.PHASE_TYPE_T);
|
||||||
DataHarmRateV dataHarmRateV = dataHarmRateVService.getMeanAllTimesData(influxQueryWrapper);
|
DataHarmRateV dataHarmRateV = dataHarmRateVService.getMeanAllTimesData(influxQueryWrapper);
|
||||||
if(Objects.nonNull(dataHarmRateV)){
|
if (Objects.nonNull(dataHarmRateV)) {
|
||||||
for (int i = 2; i < 51; i++) {
|
for (int i = 2; i < 51; i++) {
|
||||||
floatList.add(PubUtils.getValueByMethodDouble(dataHarmRateV, "getV", i).floatValue());
|
floatList.add(PubUtils.getValueByMethodDouble(dataHarmRateV, "getV", i).floatValue());
|
||||||
}
|
}
|
||||||
|
}else {
|
||||||
|
for (int i = 2; i < 51; i++) {
|
||||||
|
floatList.add(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class);
|
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class);
|
||||||
influxQueryWrapper.meanSamePrefixAndSuffix("i_","", HarmonicTimesUtil.harmonicTimesList(2,50,1))
|
influxQueryWrapper.meanSamePrefixAndSuffix("i_", "", HarmonicTimesUtil.harmonicTimesList(2, 50, 1))
|
||||||
.between(DataHarmRateV::getTime,startTime,endTime)
|
.between(DataHarmRateV::getTime, startTime, endTime)
|
||||||
.eq(DataHarmRateV::getLineId,lineId)
|
.eq(DataHarmRateV::getLineId, lineId)
|
||||||
.eq(DataHarmRateV::getValueType, InfluxDBTableConstant.CP95)
|
.eq(DataHarmRateV::getValueType, InfluxDBTableConstant.CP95)
|
||||||
.ne(DataHarmRateV::getPhaseType,InfluxDBTableConstant.PHASE_TYPE_T);
|
.ne(DataHarmRateV::getPhaseType, InfluxDBTableConstant.PHASE_TYPE_T);
|
||||||
DataI dataI = dataIService.getMeanAllTimesData(influxQueryWrapper);
|
DataI dataI = dataIService.getMeanAllTimesData(influxQueryWrapper);
|
||||||
if(Objects.nonNull(dataI)){
|
if (Objects.nonNull(dataI)) {
|
||||||
for (int i = 2; i < 51; i++) {
|
for (int i = 2; i < 51; i++) {
|
||||||
floatList.add(PubUtils.getValueByMethodDouble(dataI, "getI", i).floatValue());
|
floatList.add(PubUtils.getValueByMethodDouble(dataI, "getI", i).floatValue());
|
||||||
}
|
}
|
||||||
|
}else {
|
||||||
|
for (int i = 2; i < 51; i++) {
|
||||||
|
floatList.add(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,7 +72,6 @@ public class HarmonicServiceImpl implements IHarmonicService {
|
|||||||
public List<PollutionVO> getDeptSubstationRelations(HarmonicPublicParam harmonicPublicParam) {
|
public List<PollutionVO> getDeptSubstationRelations(HarmonicPublicParam harmonicPublicParam) {
|
||||||
harmonicPublicParam.setServerName(generalInfo.getMicroServiceName());
|
harmonicPublicParam.setServerName(generalInfo.getMicroServiceName());
|
||||||
List<PollutionVO> list = new ArrayList<>();
|
List<PollutionVO> list = new ArrayList<>();
|
||||||
List<String> lineList = new ArrayList<>();
|
|
||||||
if (StringUtils.isBlank(RequestUtil.getDeptIndex())) {
|
if (StringUtils.isBlank(RequestUtil.getDeptIndex())) {
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
@@ -83,25 +82,23 @@ public class HarmonicServiceImpl implements IHarmonicService {
|
|||||||
} else {
|
} else {
|
||||||
userLedgerVOMap = new HashMap<>();
|
userLedgerVOMap = new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
List<GeneralDeviceDTO> deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(harmonicPublicParam).getData();
|
List<GeneralDeviceDTO> deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(harmonicPublicParam).getData();
|
||||||
deptList.forEach(dept -> lineList.addAll(dept.getLineIndexes()));
|
|
||||||
//获取所有的数据信息
|
|
||||||
List<RStatLimitTargetDPO> limitTargetNew = getLimitTargetNew(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime());
|
|
||||||
//聚合查询
|
|
||||||
List<RStatLimitTargetDPO> finalAllData;
|
|
||||||
if (Objects.equals(harmonicPublicParam.getStatisticalType().getCode(), DicDataEnum.XBDY_ENUM.getCode())) {
|
|
||||||
finalAllData = getAllDataV(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime());
|
|
||||||
} else if (Objects.equals(harmonicPublicParam.getStatisticalType().getCode(), DicDataEnum.XBDL_ENUM.getCode())) {
|
|
||||||
finalAllData = getAllDataI(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime());
|
|
||||||
} else {
|
|
||||||
finalAllData = new ArrayList<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
for (GeneralDeviceDTO dept : deptList) {
|
for (GeneralDeviceDTO dept : deptList) {
|
||||||
if (CollUtil.isEmpty(dept.getLineIndexes())) {
|
if (CollUtil.isEmpty(dept.getLineIndexes())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
//获取所有的数据信息
|
||||||
|
List<RStatLimitTargetDPO> limitTargetNew = getLimitTargetNew(dept.getLineIndexes(), harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime());
|
||||||
|
//聚合查询
|
||||||
|
List<RStatLimitTargetDPO> finalAllData;
|
||||||
|
if (Objects.equals(harmonicPublicParam.getStatisticalType().getCode(), DicDataEnum.XBDY_ENUM.getCode())) {
|
||||||
|
finalAllData = getAllDataV(dept.getLineIndexes(), harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime());
|
||||||
|
} else if (Objects.equals(harmonicPublicParam.getStatisticalType().getCode(), DicDataEnum.XBDL_ENUM.getCode())) {
|
||||||
|
finalAllData = getAllDataI(dept.getLineIndexes(), harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime());
|
||||||
|
} else {
|
||||||
|
finalAllData = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
PollutionParamDTO paramDTO = new PollutionParamDTO();
|
PollutionParamDTO paramDTO = new PollutionParamDTO();
|
||||||
paramDTO.setLineList(dept.getLineIndexes());
|
paramDTO.setLineList(dept.getLineIndexes());
|
||||||
List<PollutionLineDTO> pollutionLineDTOList = lineFeignClient.getLineInfo(paramDTO).getData();
|
List<PollutionLineDTO> pollutionLineDTOList = lineFeignClient.getLineInfo(paramDTO).getData();
|
||||||
@@ -127,10 +124,7 @@ public class HarmonicServiceImpl implements IHarmonicService {
|
|||||||
children.setPowerFlag(PowerFlagEnum.GRID_SIDE.getCode());
|
children.setPowerFlag(PowerFlagEnum.GRID_SIDE.getCode());
|
||||||
children.setName(monitList.get(0).getSubstation());
|
children.setName(monitList.get(0).getSubstation());
|
||||||
//监测点id
|
//监测点id
|
||||||
List<String> lineIds = monitList.stream().map(PollutionLineDTO::getId).collect(Collectors.toList());
|
children.setData(handleDataNew(limitTargetNew, finalAllData, harmonicPublicParam.getStatisticalType().getCode()).getRatio());
|
||||||
List<RStatLimitTargetDPO> collect = limitTargetNew.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
|
|
||||||
List<RStatLimitTargetDPO> sumList = finalAllData.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
|
|
||||||
children.setData(handleDataNew(collect, sumList, harmonicPublicParam.getStatisticalType().getCode()).getRatio());
|
|
||||||
childrenList.add(children);
|
childrenList.add(children);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -144,10 +138,7 @@ public class HarmonicServiceImpl implements IHarmonicService {
|
|||||||
children.setName(StrUtil.isNotBlank(userLedgerVO.getProjectName()) ? userLedgerVO.getProjectName() : "异常数据");
|
children.setName(StrUtil.isNotBlank(userLedgerVO.getProjectName()) ? userLedgerVO.getProjectName() : "异常数据");
|
||||||
children.setPowerFlag(PowerFlagEnum.NO_GRID_SIDE.getCode());
|
children.setPowerFlag(PowerFlagEnum.NO_GRID_SIDE.getCode());
|
||||||
//监测点id
|
//监测点id
|
||||||
List<String> lineIds = mList.stream().map(PollutionLineDTO::getId).collect(Collectors.toList());
|
children.setData(handleDataNew(limitTargetNew, finalAllData, harmonicPublicParam.getStatisticalType().getCode()).getRatio());
|
||||||
List<RStatLimitTargetDPO> collect = limitTargetNew.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
|
|
||||||
List<RStatLimitTargetDPO> sumList = finalAllData.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList());
|
|
||||||
children.setData(handleDataNew(collect, sumList, harmonicPublicParam.getStatisticalType().getCode()).getRatio());
|
|
||||||
childrenList.add(children);
|
childrenList.add(children);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -173,33 +164,26 @@ public class HarmonicServiceImpl implements IHarmonicService {
|
|||||||
param.setServerName(generalInfo.getMicroServiceName());
|
param.setServerName(generalInfo.getMicroServiceName());
|
||||||
List<HarmonicDeptVO> list = new ArrayList<>();
|
List<HarmonicDeptVO> list = new ArrayList<>();
|
||||||
List<GeneralDeviceDTO> deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData();
|
List<GeneralDeviceDTO> deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData();
|
||||||
|
for(GeneralDeviceDTO dept : deptList){
|
||||||
//获取所有监测点
|
if (!CollectionUtils.isEmpty(dept.getLineIndexes())) {
|
||||||
List<String> lineIds = deptList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList());
|
|
||||||
//获取所有的数据信息
|
|
||||||
List<RStatLimitTargetDPO> limitTargetNew = getLimitTargetNew(lineIds, param.getSearchBeginTime(), param.getSearchEndTime());
|
|
||||||
//聚合查询
|
|
||||||
List<RStatLimitTargetDPO> allData = new ArrayList<>();
|
|
||||||
if (Objects.equals(param.getStatisticalType().getCode(), DicDataEnum.XBDY_ENUM.getCode())) {
|
|
||||||
allData = getAllDataV(lineIds, param.getSearchBeginTime(), param.getSearchEndTime());
|
|
||||||
} else if (Objects.equals(param.getStatisticalType().getCode(), DicDataEnum.XBDL_ENUM.getCode())) {
|
|
||||||
allData = getAllDataI(lineIds, param.getSearchBeginTime(), param.getSearchEndTime());
|
|
||||||
|
|
||||||
}
|
|
||||||
List<RStatLimitTargetDPO> finalAllData = allData;
|
|
||||||
deptList.forEach(item -> {
|
|
||||||
List<String> lineList = item.getLineIndexes();
|
|
||||||
if (!CollectionUtils.isEmpty(lineList)) {
|
|
||||||
HarmonicDeptVO harmonicDeptVO = new HarmonicDeptVO();
|
HarmonicDeptVO harmonicDeptVO = new HarmonicDeptVO();
|
||||||
List<RStatLimitTargetDPO> collect = limitTargetNew.stream().filter(x -> lineList.contains(x.getLineId())).collect(Collectors.toList());
|
harmonicDeptVO.setId(dept.getIndex());
|
||||||
List<RStatLimitTargetDPO> sumList = finalAllData.stream().filter(x -> lineList.contains(x.getLineId())).collect(Collectors.toList());
|
harmonicDeptVO.setName(dept.getName());
|
||||||
AreaDTO areaDTO = handleDataNew(collect, sumList, param.getStatisticalType().getCode());
|
//获取所有的数据信息
|
||||||
|
List<RStatLimitTargetDPO> limitTargetNew = getLimitTargetNew(dept.getLineIndexes(), param.getSearchBeginTime(), param.getSearchEndTime());
|
||||||
|
//聚合查询
|
||||||
|
List<RStatLimitTargetDPO> allData = new ArrayList<>();
|
||||||
|
if (Objects.equals(param.getStatisticalType().getCode(), DicDataEnum.XBDY_ENUM.getCode())) {
|
||||||
|
allData = getAllDataV(dept.getLineIndexes(), param.getSearchBeginTime(), param.getSearchEndTime());
|
||||||
|
} else if (Objects.equals(param.getStatisticalType().getCode(), DicDataEnum.XBDL_ENUM.getCode())) {
|
||||||
|
allData = getAllDataI(dept.getLineIndexes(), param.getSearchBeginTime(), param.getSearchEndTime());
|
||||||
|
}
|
||||||
|
AreaDTO areaDTO = handleDataNew(limitTargetNew, allData, param.getStatisticalType().getCode());
|
||||||
BeanUtil.copyProperties(areaDTO, harmonicDeptVO);
|
BeanUtil.copyProperties(areaDTO, harmonicDeptVO);
|
||||||
harmonicDeptVO.setId(item.getIndex());
|
|
||||||
harmonicDeptVO.setName(item.getName());
|
|
||||||
list.add(harmonicDeptVO);
|
list.add(harmonicDeptVO);
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
if (!CollectionUtils.isEmpty(list)) {
|
if (!CollectionUtils.isEmpty(list)) {
|
||||||
List<HarmonicDeptVO> collect = list.stream().filter(x -> x.getRatio() != 3.14159 && x.getOnlineCount() != 0 && x.getOverLineCount() != 0)
|
List<HarmonicDeptVO> collect = list.stream().filter(x -> x.getRatio() != 3.14159 && x.getOnlineCount() != 0 && x.getOverLineCount() != 0)
|
||||||
.sorted(Comparator.comparing(HarmonicDeptVO::getRatio).reversed().thenComparing(HarmonicDeptVO::getOnlineCount).thenComparing(HarmonicDeptVO::getOverLineCount)).collect(Collectors.toList());
|
.sorted(Comparator.comparing(HarmonicDeptVO::getRatio).reversed().thenComparing(HarmonicDeptVO::getOnlineCount).thenComparing(HarmonicDeptVO::getOverLineCount)).collect(Collectors.toList());
|
||||||
@@ -352,26 +336,31 @@ public class HarmonicServiceImpl implements IHarmonicService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
Map<LocalDate, List<RStatLimitTargetDPO>> map = list.stream().collect(Collectors.groupingBy(RStatLimitTargetDPO::getTime));
|
Map<LocalDate, List<RStatLimitTargetDPO>> map = list.stream().collect(Collectors.groupingBy(RStatLimitTargetDPO::getTime));
|
||||||
for (LocalDate key : map.keySet()) {
|
for (LocalDate key : map.keySet()) {
|
||||||
int overDay = 0;
|
int overDay = 0;
|
||||||
List<RStatLimitTargetDPO> l = map.get(key);
|
List<RStatLimitTargetDPO> l = map.get(key);
|
||||||
for (RStatLimitTargetDPO pojo : l) {
|
for (RStatLimitTargetDPO pojo : l) {
|
||||||
if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) {
|
if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) {
|
||||||
if (pojo.getUaberranceOvertime() > 0 || pojo.getUharm20Overtime() > 0 || pojo.getUharm3Overtime() > 0 || pojo.getUharm4Overtime() > 0 || pojo.getUharm5Overtime() > 0 || pojo.getUharm6Overtime() > 0 || pojo.getUharm7Overtime() > 0 || pojo.getUharm8Overtime() > 0 || pojo.getUharm9Overtime() > 0 || pojo.getUharm10Overtime() > 0 || pojo.getUharm11Overtime() > 0 || pojo.getUharm12Overtime() > 0 || pojo.getUharm13Overtime() > 0 || pojo.getUharm14Overtime() > 0 || pojo.getUharm15Overtime() > 0 || pojo.getUharm16Overtime() > 0 || pojo.getUharm17Overtime() > 0 || pojo.getUharm18Overtime() > 0 || pojo.getUharm19Overtime() > 0 || pojo.getUharm20Overtime() > 0 || pojo.getUharm21Overtime() > 0 || pojo.getUharm22Overtime() > 0 || pojo.getUharm23Overtime() > 0 || pojo.getUharm24Overtime() > 0 || pojo.getUharm25Overtime() > 0) {
|
if (pojo.getUaberranceOvertime() > 0 || pojo.getUharm20Overtime() > 0 || pojo.getUharm3Overtime() > 0 || pojo.getUharm4Overtime() > 0 || pojo.getUharm5Overtime() > 0 || pojo.getUharm6Overtime() > 0 || pojo.getUharm7Overtime() > 0 || pojo.getUharm8Overtime() > 0 || pojo.getUharm9Overtime() > 0 || pojo.getUharm10Overtime() > 0 || pojo.getUharm11Overtime() > 0 || pojo.getUharm12Overtime() > 0 || pojo.getUharm13Overtime() > 0 || pojo.getUharm14Overtime() > 0 || pojo.getUharm15Overtime() > 0 || pojo.getUharm16Overtime() > 0 || pojo.getUharm17Overtime() > 0 || pojo.getUharm18Overtime() > 0 || pojo.getUharm19Overtime() > 0 || pojo.getUharm20Overtime() > 0 || pojo.getUharm21Overtime() > 0 || pojo.getUharm22Overtime() > 0 || pojo.getUharm23Overtime() > 0 || pojo.getUharm24Overtime() > 0 || pojo.getUharm25Overtime() > 0) {
|
||||||
overCountByDay = overCountByDay + 1;
|
overCountByDay = overCountByDay + 1;
|
||||||
overDay = overDay + 1;
|
overDay = overDay + 1;
|
||||||
}
|
}
|
||||||
} else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) {
|
} else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) {
|
||||||
if (pojo.getIharm2Overtime() > 0 || pojo.getIharm3Overtime() > 0 || pojo.getIharm4Overtime() > 0 || pojo.getIharm5Overtime() > 0 || pojo.getIharm6Overtime() > 0 || pojo.getIharm7Overtime() > 0 || pojo.getIharm8Overtime() > 0 || pojo.getIharm9Overtime() > 0 || pojo.getIharm10Overtime() > 0 || pojo.getIharm11Overtime() > 0 || pojo.getIharm12Overtime() > 0 || pojo.getIharm13Overtime() > 0 || pojo.getIharm14Overtime() > 0 || pojo.getIharm15Overtime() > 0 || pojo.getIharm16Overtime() > 0 || pojo.getIharm17Overtime() > 0 || pojo.getIharm18Overtime() > 0 || pojo.getIharm19Overtime() > 0 || pojo.getIharm20Overtime() > 0 || pojo.getIharm21Overtime() > 0 || pojo.getIharm22Overtime() > 0 || pojo.getIharm23Overtime() > 0 || pojo.getIharm24Overtime() > 0 || pojo.getIharm25Overtime() > 0) {
|
if (pojo.getIharm2Overtime() > 0 || pojo.getIharm3Overtime() > 0 || pojo.getIharm4Overtime() > 0 || pojo.getIharm5Overtime() > 0 || pojo.getIharm6Overtime() > 0 || pojo.getIharm7Overtime() > 0 || pojo.getIharm8Overtime() > 0 || pojo.getIharm9Overtime() > 0 || pojo.getIharm10Overtime() > 0 || pojo.getIharm11Overtime() > 0 || pojo.getIharm12Overtime() > 0 || pojo.getIharm13Overtime() > 0 || pojo.getIharm14Overtime() > 0 || pojo.getIharm15Overtime() > 0 || pojo.getIharm16Overtime() > 0 || pojo.getIharm17Overtime() > 0 || pojo.getIharm18Overtime() > 0 || pojo.getIharm19Overtime() > 0 || pojo.getIharm20Overtime() > 0 || pojo.getIharm21Overtime() > 0 || pojo.getIharm22Overtime() > 0 || pojo.getIharm23Overtime() > 0 || pojo.getIharm24Overtime() > 0 || pojo.getIharm25Overtime() > 0) {
|
||||||
overCountByDay = overCountByDay + 1;
|
overCountByDay = overCountByDay + 1;
|
||||||
overDay = overDay + 1;
|
overDay = overDay + 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ratio = ratio + overDay * 1.0 / l.size();
|
||||||
}
|
}
|
||||||
ratio = ratio + overDay * 1.0 / l.size();
|
ratio = map.isEmpty() ? 0 : BigDecimal.valueOf(ratio * 100.0 / map.size()).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||||
|
}else {
|
||||||
|
ratio = 3.14159;
|
||||||
}
|
}
|
||||||
|
|
||||||
//平均超标天数
|
//平均超标天数
|
||||||
if (CollectionUtils.isEmpty(list)) {
|
if (CollectionUtils.isEmpty(list)) {
|
||||||
avgOverDay = 0;
|
avgOverDay = 0;
|
||||||
@@ -379,7 +368,6 @@ public class HarmonicServiceImpl implements IHarmonicService {
|
|||||||
avgOverDay = overLineCount == 0 ? 0.0 : BigDecimal.valueOf(overCountByDay * 1.0 / overLineCount).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
avgOverDay = overLineCount == 0 ? 0.0 : BigDecimal.valueOf(overCountByDay * 1.0 / overLineCount).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||||
}
|
}
|
||||||
//月监测点符合性超标占比
|
//月监测点符合性超标占比
|
||||||
ratio = map.size() == 0 ? 0 : BigDecimal.valueOf(ratio * 100.0 / map.size()).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
|
||||||
areaDTO.setOnlineCount(onlineCount);
|
areaDTO.setOnlineCount(onlineCount);
|
||||||
areaDTO.setOverLineCount(overLineCount);
|
areaDTO.setOverLineCount(overLineCount);
|
||||||
//平均超标天数
|
//平均超标天数
|
||||||
|
|||||||
@@ -282,7 +282,6 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
|||||||
|
|
||||||
|
|
||||||
List<PollutionVO> subPollutionVO = new ArrayList<>();
|
List<PollutionVO> subPollutionVO = new ArrayList<>();
|
||||||
|
|
||||||
List<LineDetail> lineDetailList = lineFeignClient.getLineDetail(temp.getLineIndexes()).getData();
|
List<LineDetail> lineDetailList = lineFeignClient.getLineDetail(temp.getLineIndexes()).getData();
|
||||||
if (CollUtil.isNotEmpty(lineDetailList)) {
|
if (CollUtil.isNotEmpty(lineDetailList)) {
|
||||||
List<LineDetail> userLedgerList = lineDetailList.stream().filter(it -> StrUtil.isNotBlank(it.getObjId())).collect(Collectors.toList());
|
List<LineDetail> userLedgerList = lineDetailList.stream().filter(it -> StrUtil.isNotBlank(it.getObjId())).collect(Collectors.toList());
|
||||||
@@ -323,6 +322,8 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
double exe = subPollutionVO.stream().mapToDouble(PollutionVO::getData).filter(it->it != 3.14159).max().orElse(3.14159);
|
||||||
|
pollutionVO.setData(exe);
|
||||||
pollutionVO.setChildren(subPollutionVO);
|
pollutionVO.setChildren(subPollutionVO);
|
||||||
list.add(pollutionVO);
|
list.add(pollutionVO);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,8 +80,12 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService {
|
|||||||
//组装子集数据树
|
//组装子集数据树
|
||||||
List<SteadyExceedRateVO> treeList = getTreeData(lineIndexes, steadyExceedParam,userLedgerVOMap,steadyExceedParam.getPowerFlag());
|
List<SteadyExceedRateVO> treeList = getTreeData(lineIndexes, steadyExceedParam,userLedgerVOMap,steadyExceedParam.getPowerFlag());
|
||||||
//父级数据
|
//父级数据
|
||||||
steadyExceedRateVO.setSteadyExceedRate(PubUtils.dataLimits(NumberUtil.round(treeList.stream().mapToDouble(SteadyExceedRateVO::getSteadyExceedRate).average().orElse(0), 2).doubleValue()));
|
double parentRate = treeList.stream().mapToDouble(SteadyExceedRateVO::getSteadyExceedRate).average().orElse(0);
|
||||||
|
if(parentRate == 3.14159){
|
||||||
|
steadyExceedRateVO.setSteadyExceedRate(parentRate);
|
||||||
|
}else {
|
||||||
|
steadyExceedRateVO.setSteadyExceedRate(PubUtils.dataLimits(NumberUtil.round(parentRate, 2).doubleValue()));
|
||||||
|
}
|
||||||
steadyExceedRateVO.setChildren(treeList);
|
steadyExceedRateVO.setChildren(treeList);
|
||||||
steadyExceedRateVOS.add(steadyExceedRateVO);
|
steadyExceedRateVOS.add(steadyExceedRateVO);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ public class TerminalServiceImpl implements TerminalService {
|
|||||||
public List<TerminalVO> getTerminalData(DeviceInfoParam.BusinessParam terminalParam) {
|
public List<TerminalVO> getTerminalData(DeviceInfoParam.BusinessParam terminalParam) {
|
||||||
List<TerminalVO> terminalList = new ArrayList<>();
|
List<TerminalVO> terminalList = new ArrayList<>();
|
||||||
//按照条件获取所有终端综合信息
|
//按照条件获取所有终端综合信息
|
||||||
List<GeneralDeviceDTO> deviceDataList = generalDeviceInfoClient.getPracticalRunDeviceInfo(new DeviceInfoParam(terminalParam.getStatisticalType(), terminalParam.getDeptIndex(), generalInfo.getMicroServiceName(), null, terminalParam.getManufacturer(), null)).getData();
|
List<GeneralDeviceDTO> deviceDataList = generalDeviceInfoClient.getPracticalAllDeviceInfo(new DeviceInfoParam(terminalParam.getStatisticalType(), terminalParam.getDeptIndex(), generalInfo.getMicroServiceName(), null, terminalParam.getManufacturer(), null)).getData();
|
||||||
//组装终端Top层集合
|
//组装终端Top层集合
|
||||||
for (GeneralDeviceDTO generalDeviceDTO : deviceDataList) {
|
for (GeneralDeviceDTO generalDeviceDTO : deviceDataList) {
|
||||||
List<String> deviceIndexes = generalDeviceDTO.getDeviceIndexes();
|
List<String> deviceIndexes = generalDeviceDTO.getDeviceIndexes();
|
||||||
@@ -85,7 +85,7 @@ public class TerminalServiceImpl implements TerminalService {
|
|||||||
if (CollectionUtils.isEmpty(generalDeviceDTO.getDeviceIndexes())) {
|
if (CollectionUtils.isEmpty(generalDeviceDTO.getDeviceIndexes())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
type.add(generalDeviceDTO.getName()+"\n("+generalDeviceDTO.getLineIndexes().size()+")");
|
type.add(generalDeviceDTO.getName()+"\n("+generalDeviceDTO.getDeviceIndexes().size()+"台)");
|
||||||
List<String> deviceIndexes = generalDeviceDTO.getDeviceIndexes();
|
List<String> deviceIndexes = generalDeviceDTO.getDeviceIndexes();
|
||||||
//根据终端查询在线率
|
//根据终端查询在线率
|
||||||
List<PublicDTO> condition = getCondition(deviceIndexes, terminalCensusParam.getSearchBeginTime(), terminalCensusParam.getSearchEndTime());
|
List<PublicDTO> condition = getCondition(deviceIndexes, terminalCensusParam.getSearchBeginTime(), terminalCensusParam.getSearchEndTime());
|
||||||
|
|||||||
Reference in New Issue
Block a user