代码提交

This commit is contained in:
2023-02-17 09:05:22 +08:00
parent 68f7de2731
commit 5ee0d5782e
15 changed files with 215 additions and 121 deletions

View File

@@ -19,6 +19,6 @@ public class PmsBaseParam {
@ApiModelProperty(value = "电站id")
private String stationId;
@ApiModelProperty(value = "线id")
@ApiModelProperty(value = "线id")
private String generatrixId;
}

View File

@@ -81,6 +81,10 @@ public class GeneratrixWireImpl extends ServiceImpl<PmsGeneratrixWireMapper, Gen
if(StrUtil.isNotBlank(pmsBaseParam.getGeneratrixId())){
lambdaQueryWrapper.eq(GeneratrixWire::getId,pmsBaseParam.getGeneratrixId());
}
if(StrUtil.isNotBlank(pmsBaseParam.getStationId())){
lambdaQueryWrapper.eq(GeneratrixWire::getStationId,pmsBaseParam.getStationId());
}
lambdaQueryWrapper.eq(GeneratrixWire::getStatus,DataStateEnum.ENABLE.getCode())
.orderByAsc(GeneratrixWire::getCreateTime);
return this.list(lambdaQueryWrapper);

View File

@@ -71,6 +71,10 @@ public class PowerDistributionareaServiceImpl extends ServiceImpl<PowerDistribut
List<String> deptIds = deptFeignClient.getDepSonSelfCodetByDeptId(powerDistributionareaParam.getOrgId()).getData();
lambdaQueryWrapper.in(PowerDistributionarea::getOrgId,deptIds).eq(PowerDistributionarea::getStatus,DataStateEnum.ENABLE.getCode());
}
if(StrUtil.isNotBlank(powerDistributionareaParam.getLineId())){
lambdaQueryWrapper.eq(PowerDistributionarea::getLineId,powerDistributionareaParam.getLineId());
}
lambdaQueryWrapper.select(PowerDistributionarea::getId,PowerDistributionarea::getName,PowerDistributionarea::getOrgId,PowerDistributionarea::getOrgName);
lambdaQueryWrapper.orderByDesc(PowerDistributionarea::getCreateTime);
return this.list(lambdaQueryWrapper);

View File

@@ -88,7 +88,10 @@ public enum DeviceResponseEnum {
QUERY_PROVINCE_DATA_EMPTY("A0358","查询区域数据为空"),
QUERY_ALARMSTRATEGY_DATA_EMPTY("A0359","查询告警策略数据为空"),
QUERY_DEVICELEVELANDID_DATA_EMPTY("A0360","查询终端等级和id数据为空"),
QUERY_DEVICE_DATA_EMPTY("A0360","查询终端数据数据为空")
QUERY_DEVICE_DATA_EMPTY("A0360","查询终端数据数据为空"),
SAME_ALARM_STRATEGY("A0361","当前等级策略已存在"),
LINE_GRADE_INDEX_ERR("A0362","异常等级索引"),
LINE_GRADE_LESS("A0363","监测点等级策略缺失")

View File

@@ -16,7 +16,7 @@ import javax.validation.constraints.NotBlank;
*/
@Data
@ApiModel
public class AlarmParam extends BaseParam {
public class AlarmParam {
@NotBlank(message = "起始时间不可为空")
@DateTimeStrValid
@@ -45,4 +45,12 @@ public class AlarmParam extends BaseParam {
@ApiModelProperty(name = "processTime",value = "处理时间")
private String processTime;
@ApiModelProperty("页码")
private Integer pageNum;
@ApiModelProperty("页面尺寸")
private Integer pageSize;
}

View File

@@ -19,7 +19,7 @@ public class LineDataIntegrity implements Serializable {
/**
* 监测点id
*/
@Column(name = "line_id")
@Column(name = "line_id",tag = true)
private String lineId;
/**
@@ -40,9 +40,11 @@ public class LineDataIntegrity implements Serializable {
@Column(name = "time")
private String time;
/**
* 监测点数据完整性
*/
@Column(name = "integrityData")
private Double integrityData;
}

View File

@@ -0,0 +1,57 @@
package com.njcn.device.pq.pojo.po.influxdb;
import lombok.Data;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
/**
* pqs
*
* @author cdf
* @date 2023/2/14
*/
@Data
@Measurement(name = "pas_alarm")
public class CldAlarm {
/**
* 告警信息表序号
*/
@Column(name = "time")
private String time;
/**
* 告警类型序号
*/
@Column(name = "type")
private String type;
/**
* 告警对应的装置或者监测点
*/
@Column(name = "line_id")
private String lineId;
@Column(name = "dev_line_type")
private Integer devLineType;
@Column(name = "process_time")
private LocalDateTime processTime;
/**
* 是否处理0-未处理 1-已处理)
*/
@Column(name = "flag")
private Integer flag;
/**
* 告警的详细描述
*/
@Column(name = "remark")
private String remark;
}

View File

@@ -109,6 +109,8 @@ public class LineIntegrityDataVO implements Serializable {
@ApiModelProperty(name = "lineGrade",value = "终端等级")
private String lineGrade;
private String lineGradeName;
@ApiModelProperty(name = "loadType",value = "干扰源类型")
@@ -125,7 +127,7 @@ public class LineIntegrityDataVO implements Serializable {
* 监测点合格率
*/
@ApiModelProperty(name = "LinePassRate",value = "监测点合格率 0不合格 1合格")
private Double linePassRate;
private Integer linePassRate;
/**

View File

@@ -21,27 +21,21 @@ public interface LineIntegrityDataMapper extends BaseMapper<LineIntegrityDataVO>
* @param gdIndexes 供电公司索引
* @return 省会信息
*/
List<LineIntegrityDataVO> getProvinceList(@Param("gdIndex")List<String> gdIndexes,
@Param("searchBeginTime") String searchBeginTime,
@Param("searchEndTime") String searchEndTime);
List<LineIntegrityDataVO> getProvinceList(@Param("gdIndex")List<String> gdIndexes);
/**
* 获取出供电公司的信息
* @param gdIndexes 供电公司索引
* @return 供电公司信息
*/
List<LineIntegrityDataVO> getGdList(@Param("gdIndex")List<String> gdIndexes,
@Param("searchBeginTime") String searchBeginTime,
@Param("searchEndTime") String searchEndTime);
List<LineIntegrityDataVO> getGdList(@Param("gdIndex")List<String> gdIndexes);
/**
* 获取出变电站的信息
* @param subIndexes 变电站索引
* @param lineIndexes 变电站索引
* @return 变电站信息
*/
List<LineIntegrityDataVO> getSubList(@Param("subIndex")List<String> subIndexes,
@Param("searchBeginTime") String searchBeginTime,
@Param("searchEndTime") String searchEndTime);
List<LineIntegrityDataVO> getSubList(@Param("lineIndexes")List<String> lineIndexes);
/**
* 根据监测点索引集合获取监测点详细参数
@@ -49,9 +43,7 @@ public interface LineIntegrityDataMapper extends BaseMapper<LineIntegrityDataVO>
* @return
*/
List<LineIntegrityDataVO> getDetailedParametersForLine(@Param("lineIndexes") List<String> lineIndexes,
@Param("lineGrade")String lineGrade,
@Param("searchBeginTime") String searchBeginTime,
@Param("searchEndTime") String searchEndTime);
@Param("lineGrade")String lineGrade);
}

View File

@@ -23,12 +23,6 @@
<foreach collection="gdIndex" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
<if test="searchBeginTime != null and searchBeginTime != ''"><!-- 开始创建时间 -->
and date_format(pro.update_Time,'%y%m%d') &gt;= date_format(#{searchBeginTime},'%y%m%d')
</if>
<if test="searchEndTime != null and searchEndTime != ''"><!-- -->
and date_format(pro.update_Time,'%y%m%d') &lt;= date_format(#{searchEndTime},'%y%m%d')
</if>
</select>
<!--获取出供电公司的信息-->
@@ -44,17 +38,12 @@
<foreach collection="gdIndex" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
<if test="searchBeginTime != null and searchBeginTime != ''"><!-- 开始创建时间 -->
and date_format(gd.update_Time,'%y%m%d') &gt;= date_format(#{searchBeginTime},'%y%m%d')
</if>
<if test="searchEndTime != null and searchEndTime != ''"><!-- -->
and date_format(gd.update_Time,'%y%m%d') &lt;= date_format(#{searchEndTime},'%y%m%d')
</if>
</select>
<!--获取出变电站的信息-->
<select id="getSubList" resultType="com.njcn.device.pq.pojo.vo.LineIntegrityDataVO">
SELECT
DISTINCT
sub.id,
sub.pid,
sub.`Level`,
@@ -62,20 +51,17 @@
sub.`Name`,
sdd.`Name` AS subScale
FROM
pq_line sub
LEFT JOIN pq_substation AS psub ON sub.id = psub.id
LEFT JOIN sys_dict_data AS sdd ON psub.Scale = sdd.id
pq_line line
INNER JOIN pq_line wire ON line.pid = wire.id
INNER JOIN pq_line dev ON wire.pid = dev.id
INNER JOIN pq_line sub ON dev.pid = sub.id
INNER JOIN pq_substation AS psub ON sub.id = psub.id
INNER JOIN sys_dict_data AS sdd ON psub.Scale = sdd.id
WHERE
sub.id in
<foreach collection="subIndex" item="item" open="(" close=")" separator=",">
line.id in
<foreach collection="lineIndexes" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
<if test="searchBeginTime != null and searchBeginTime != ''"><!-- 开始创建时间 -->
and date_format(sub.update_Time,'%y%m%d') &gt;= date_format(#{searchBeginTime},'%y%m%d')
</if>
<if test="searchEndTime != null and searchEndTime != ''"><!-- -->
and date_format(sub.update_Time,'%y%m%d') &lt;= date_format(#{searchEndTime},'%y%m%d')
</if>
</select>
<!--根据监测点索引集合获取监测点详细参数-->
@@ -93,7 +79,8 @@
device.`Name` AS 'deviceName',
pd.IP AS 'ip',
msdd.`Name` AS 'manufacturer',
pldsdd.`Name` AS 'lineGrade',
pldsdd.`Name` AS 'lineGradeName',
pldsdd.`id` AS 'lineGrade',
pld.Load_Type AS 'loadType'
FROM
pq_line AS line
@@ -115,12 +102,6 @@
<if test="lineGrade != null and lineGrade != ''">
and pld.Line_Grade = #{lineGrade}
</if>
<if test="searchBeginTime != null and searchBeginTime != ''"><!-- 开始创建时间 -->
and date_format(line.update_Time,'%y%m%d') &gt;= date_format(#{searchBeginTime},'%y%m%d')
</if>
<if test="searchEndTime != null and searchEndTime != ''"><!-- -->
and date_format(line.update_Time,'%y%m%d') &lt;= date_format(#{searchEndTime},'%y%m%d')
</if>
</select>
</mapper>
</mapper>

View File

@@ -1,17 +1,24 @@
package com.njcn.device.pq.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pq.enums.DeviceResponseEnum;
import com.njcn.device.pq.mapper.AlarmStrategyMapper;
import com.njcn.device.pq.pojo.param.AlarmStrategyParam;
import com.njcn.device.pq.pojo.po.AlarmStrategy;
import com.njcn.device.pq.pojo.vo.AlarmStrategyVO;
import com.njcn.device.pq.service.AlarmStrategyService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.pojo.po.DictData;
import com.njcn.web.utils.RequestUtil;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
/**
* @version 1.0.0
@@ -24,8 +31,11 @@ public class AlarmStrategyServiceImpl extends ServiceImpl<AlarmStrategyMapper, A
private final AlarmStrategyMapper alarmStrategyMapper;
private final DicDataFeignClient dicDataFeignClient;
/**
* 获取告警策略列表
*
* @return
*/
@Override
@@ -44,28 +54,37 @@ public class AlarmStrategyServiceImpl extends ServiceImpl<AlarmStrategyMapper, A
alarmStrategy.setWarnValue(alarmStrategyParam.getWarnValue());
alarmStrategy.setUpdateBy(RequestUtil.getUserIndex());
alarmStrategy.setUpdateTime(LocalDateTime.now());
alarmStrategy.setState(DataStateEnum.ENABLE.getCode());
alarmStrategyMapper.updateById(alarmStrategy);
return true;
}
@Override
public boolean addAlarmStrategyById(AlarmStrategyParam alarmStrategyParam) {
Integer result = alarmStrategyMapper.getAlarmStrategyById(alarmStrategyParam.getId());
if (result==0) {
AlarmStrategy alarmStrategy = new AlarmStrategy();
alarmStrategy.setId(alarmStrategyParam.getId());
alarmStrategy.setIntegrityValue(alarmStrategyParam.getIntegrityValue());
alarmStrategy.setOnlineValue(alarmStrategyParam.getOnlineValue());
alarmStrategy.setOfftimeValue(alarmStrategyParam.getOffTimeValue());
alarmStrategy.setWarnValue(alarmStrategyParam.getWarnValue());
alarmStrategy.setUpdateBy(RequestUtil.getUserIndex());
alarmStrategy.setUpdateTime(LocalDateTime.now());
alarmStrategy.setState(1);
alarmStrategyMapper.insert(alarmStrategy);
return true;
} else {
return false;
DictData result = dicDataFeignClient.getDicDataById(alarmStrategyParam.getId()).getData();
if (Objects.isNull(result)) {
throw new BusinessException(DeviceResponseEnum.LINE_GRADE_INDEX_ERR);
}
LambdaQueryWrapper<AlarmStrategy> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(AlarmStrategy::getId,alarmStrategyParam.getId());
int count = this.count(lambdaQueryWrapper);
if(count>0){
throw new BusinessException(DeviceResponseEnum.SAME_ALARM_STRATEGY);
}
AlarmStrategy alarmStrategy = new AlarmStrategy();
alarmStrategy.setId(alarmStrategyParam.getId());
alarmStrategy.setIntegrityValue(alarmStrategyParam.getIntegrityValue());
alarmStrategy.setOnlineValue(alarmStrategyParam.getOnlineValue());
alarmStrategy.setOfftimeValue(alarmStrategyParam.getOffTimeValue());
alarmStrategy.setWarnValue(alarmStrategyParam.getWarnValue());
alarmStrategy.setUpdateBy(RequestUtil.getUserIndex());
alarmStrategy.setUpdateTime(LocalDateTime.now());
alarmStrategy.setState(DataStateEnum.ENABLE.getCode());
alarmStrategyMapper.insert(alarmStrategy);
return true;
}
@Override

View File

@@ -1,6 +1,7 @@
package com.njcn.device.pq.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pq.api.AlarmClient;
@@ -29,6 +30,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -75,6 +77,8 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
if (CollectionUtil.isEmpty(alarmStrategyVos)) {
throw new BusinessException(DeviceResponseEnum.QUERY_ALARMSTRATEGY_DATA_EMPTY);
}
Map<String, Integer> mapA = alarmStrategyVos.stream().collect(Collectors.toMap(AlarmStrategyVO::getId, AlarmStrategyVO::getIntegrityValue));
// 遍历集合
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
@@ -87,17 +91,20 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
// 创建实体类
LineIntegrityDataVO lineIntegrityDataVO = new LineIntegrityDataVO();
// 通过供电公司索引查询省会
List<LineIntegrityDataVO> proList = lineIntegrityDataMapper.getProvinceList(generalDeviceDTO.getGdIndexes(), lineIntegrityDataParam.getSearchBeginTime(), lineIntegrityDataParam.getSearchEndTime());
// 通过供电公司索引查询供电公司信息
List<LineIntegrityDataVO> gdList = lineIntegrityDataMapper.getGdList(generalDeviceDTO.getGdIndexes(), lineIntegrityDataParam.getSearchBeginTime(), lineIntegrityDataParam.getSearchEndTime());
// 通过监测点索引查询监测点信息
List<LineIntegrityDataVO> lineList = lineIntegrityDataMapper.getDetailedParametersForLine(generalDeviceDTO.getLineIndexes(), lineIntegrityDataParam.getLineGrade());
List<String> lineIds = lineList.stream().map(LineIntegrityDataVO::getId).distinct().collect(Collectors.toList());
// 通过供电站索引查询供电站信息
List<LineIntegrityDataVO> subList = lineIntegrityDataMapper.getSubList(generalDeviceDTO.getSubIndexes(), lineIntegrityDataParam.getSearchBeginTime(), lineIntegrityDataParam.getSearchEndTime());
List<LineIntegrityDataVO> subList = lineIntegrityDataMapper.getSubList(lineIds);
List<String> gdIds = subList.stream().map(LineIntegrityDataVO::getPid).distinct().collect(Collectors.toList());
// 通过供电公司索引查询供电公司信息
List<LineIntegrityDataVO> gdList = lineIntegrityDataMapper.getGdList(gdIds);
// 通过供电公司索引查询省会
List<LineIntegrityDataVO> proList = lineIntegrityDataMapper.getProvinceList(gdIds);
// 通过监测点索引查询监测点信息
List<LineIntegrityDataVO> lineList = lineIntegrityDataMapper.getDetailedParametersForLine(generalDeviceDTO.getLineIndexes(), lineIntegrityDataParam.getLineGrade(), lineIntegrityDataParam.getSearchBeginTime(), lineIntegrityDataParam.getSearchEndTime());
// 通过工具类得到查询influxdb的条件相当于mysql中的in
@@ -105,42 +112,36 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
// 通过监测点id集合查询influxdb监测点数据完整性
List<LineDataIntegrity> percentageOfCompleteDatas = getPercentageOfCompleteData(lineIntegrityDataParam.getSearchBeginTime(), lineIntegrityDataParam.getSearchEndTime(), lineIdsForInfluxdb);
// 获取监测点数据完整性
DataStatisticsUtil.getLineDataIntegrity(percentageOfCompleteDatas,lineList);
// 通过告警策略列表匹配监测点数据完整性合格率
// 遍历告警策略列表集合
for (AlarmStrategyVO alarmStrategyVO : alarmStrategyVos) {
for (LineIntegrityDataVO vo : lineList) {
// 告警策略列表的监测点等级与监测点等级的匹配
if (alarmStrategyVO.getName().equals(vo.getLineGrade())) {
// 判断监测点数据完整性是否合格
if (vo.getIntegrityData() != null && !"3.14159".equals(vo.getIntegrityData().toString()) && vo.getIntegrityData() * 100 >= alarmStrategyVO.getIntegrityValue()) {
vo.setLinePassRate(1.0);
} else if (vo.getIntegrityData() != null && !"3.14159".equals(vo.getIntegrityData().toString()) && vo.getIntegrityData() * 100 <= alarmStrategyVO.getIntegrityValue()) {
vo.setLinePassRate(0.0);
for (LineIntegrityDataVO lineDataIntegrity : lineList) {
boolean flag = false;
for (LineDataIntegrity lineData : percentageOfCompleteDatas) {
if (lineDataIntegrity.getId().equals(lineData.getLineId())) {
flag = true;
Double temValue = lineData.getIntegrityData();
lineDataIntegrity.setIntegrityData(temValue);
//根据等级判断是否越限
if (StrUtil.isNotBlank(lineDataIntegrity.getLineGrade())) {
if (mapA.containsKey(lineDataIntegrity.getLineGrade())) {
if (temValue > mapA.get(lineDataIntegrity.getLineGrade())) {
lineDataIntegrity.setLinePassRate(1);
} else {
lineDataIntegrity.setLinePassRate(0);
}
} else {
throw new BusinessException(DeviceResponseEnum.LINE_GRADE_LESS);
}
} else {
vo.setLinePassRate(3.14159);
//默认没有设置等级的监测点标志为1 0.不合格 1.合格
lineDataIntegrity.setLinePassRate(1);
}
break;
}
}
}
// 判断前端传入的参数是否是合格或者是不合格
if (lineIntegrityDataParam.getLinePassRate() != null && lineIntegrityDataParam.getLinePassRate() == 1) {
List<LineIntegrityDataVO> qualified = lineList.stream().filter(integrityDataVO -> integrityDataVO.getLinePassRate() != null && integrityDataVO.getLinePassRate() == 1.0).collect(Collectors.toList());
if (CollectionUtil.isEmpty(qualified)) {
lineList = lineList.stream().filter(integrityDataVO -> integrityDataVO.getLinePassRate() != null && "3.14159".equals(integrityDataVO.getLinePassRate().toString())).collect(Collectors.toList());
} else {
lineList = qualified.stream().collect(Collectors.toList());
}
} else if (lineIntegrityDataParam.getLinePassRate() != null && lineIntegrityDataParam.getLinePassRate() == 0) {
List<LineIntegrityDataVO> unqualified = lineList.stream().filter(integrityDataVO -> integrityDataVO.getLinePassRate() != null && integrityDataVO.getLinePassRate() == 0.0).collect(Collectors.toList());
if (CollectionUtil.isEmpty(unqualified)) {
lineList = lineList.stream().filter(integrityDataVO -> integrityDataVO.getLinePassRate() != null && "3.14159".equals(integrityDataVO.getLinePassRate().toString())).collect(Collectors.toList());
} else {
lineList = unqualified.stream().collect(Collectors.toList());
if (!flag) {
//表示未匹配到数据完整性
lineDataIntegrity.setIntegrityData(3.14159);
lineDataIntegrity.setLinePassRate(0);
}
}
@@ -149,7 +150,7 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
//处理供电公司
dealChildrenData(gdList, subList, false);
double areaDataIntegrity = DataStatisticsUtil.getAreaDataIntegrity(percentageOfCompleteDatas);
//double areaDataIntegrity = DataStatisticsUtil.getAreaDataIntegrity(percentageOfCompleteDatas);
if (lineIntegrityDataParam.getStatisticalType().getCode().equalsIgnoreCase(StatisticsEnum.POWER_NETWORK.getCode())) {
lineIntegrityDataVO.setChildren(gdList);
@@ -159,11 +160,15 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
lineIntegrityDataVO.setChildren(proList);
}
// 数据封装
Double temValue = lineList.stream().filter(item->item.getIntegrityData()!=3.14159).mapToDouble(LineIntegrityDataVO::getIntegrityData).average().orElse(3.14159);
lineIntegrityDataVO.setId(generalDeviceDTO.getIndex());
lineIntegrityDataVO.setName(generalDeviceDTO.getName());
lineIntegrityDataVO.setLevel(0);
lineIntegrityDataVO.setIntegrityData(areaDataIntegrity);
lineIntegrityDataVO.setIntegrityData(temValue);
pro.add(lineIntegrityDataVO);
}
@@ -198,7 +203,12 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
Set<String> pids = groupLine.keySet();
for (String pid : pids) {
if (lineAdministrationTree.getId().equals(pid)) {
lineAdministrationTree.setChildren(groupLine.get(pid));
List<LineIntegrityDataVO> lineIntegrityDataVOList = groupLine.get(pid);
lineAdministrationTree.setChildren(lineIntegrityDataVOList);
//父级完整性匹配
Double temValue = lineIntegrityDataVOList.stream().filter(item->item.getIntegrityData()!=3.14159).mapToDouble(LineIntegrityDataVO::getIntegrityData).average().orElse(3.14159);
lineAdministrationTree.setIntegrityData(temValue);
}
}
}).collect(Collectors.toList());
@@ -229,7 +239,7 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
.append(InfluxDBPublicParam.END_TIME)
.append("'");
//sql语句
String sql = "SELECT real,due,time,line_id FROM pqs_integrity WHERE" + queryCriteria + " group by line_id " + InfluxDBPublicParam.TIME_ZONE;
String sql = "SELECT sum(real)/sum(due) as integrityData FROM pqs_integrity WHERE " + queryCriteria + " group by line_id " + InfluxDBPublicParam.TIME_ZONE;
// 结果集
QueryResult results = influxDbUtils.query(sql);
// 结果集映射到对象中

View File

@@ -28,8 +28,20 @@ public class TerminalAlarmServiceImpl implements TerminalAlarmService {
@Override
public Page<TerminalAlarmVO> alarmList(AlarmParam alarmParam) {
Page<TerminalAlarmVO> page = new Page<>(PageFactory.getPageNum(alarmParam),PageFactory.getPageSize(alarmParam));
return alarmMapper.getAlarmInfo(page,PubUtils.beginTimeToLocalDateTime(alarmParam.getStartTime()),PubUtils.endTimeToLocalDateTime(alarmParam.getEndTime()),alarmParam.getFlag(),alarmParam.getType(),alarmParam.getAlarmLevel(),alarmParam.getLineGrade());
String sql = "SELECT last(dev_line_type) as dev_line_type,line_id ,type FROM pqs_alarm group by type,line_id,dev_line_type";
//Page<TerminalAlarmVO> page = new Page<>(PageFactory.getPageNum(alarmParam),PageFactory.getPageSize(alarmParam));
//return alarmMapper.getAlarmInfo(page,PubUtils.beginTimeToLocalDateTime(alarmParam.getStartTime()),PubUtils.endTimeToLocalDateTime(alarmParam.getEndTime()),alarmParam.getFlag(),alarmParam.getType(),alarmParam.getAlarmLevel(),alarmParam.getLineGrade());
return null;
}
@Override