Merge remote-tracking branch 'origin/master'

This commit is contained in:
wurui
2023-02-17 09:06:17 +08:00
16 changed files with 216 additions and 122 deletions

View File

@@ -23,7 +23,7 @@ import java.util.List;
@FeignClient( @FeignClient(
value = ServerInfo.DEVICE, value = ServerInfo.DEVICE,
path = "/pms/monitor", path = "/pms/monitor",
contextId = "/pms/monitor", contextId = "pms/monitor",
fallbackFactory = MonitorClientFallbackFactory.class) fallbackFactory = MonitorClientFallbackFactory.class)
public interface MonitorClient { public interface MonitorClient {

View File

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

View File

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

View File

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

View File

@@ -88,7 +88,10 @@ public enum DeviceResponseEnum {
QUERY_PROVINCE_DATA_EMPTY("A0358","查询区域数据为空"), QUERY_PROVINCE_DATA_EMPTY("A0358","查询区域数据为空"),
QUERY_ALARMSTRATEGY_DATA_EMPTY("A0359","查询告警策略数据为空"), QUERY_ALARMSTRATEGY_DATA_EMPTY("A0359","查询告警策略数据为空"),
QUERY_DEVICELEVELANDID_DATA_EMPTY("A0360","查询终端等级和id数据为空"), 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 @Data
@ApiModel @ApiModel
public class AlarmParam extends BaseParam { public class AlarmParam {
@NotBlank(message = "起始时间不可为空") @NotBlank(message = "起始时间不可为空")
@DateTimeStrValid @DateTimeStrValid
@@ -45,4 +45,12 @@ public class AlarmParam extends BaseParam {
@ApiModelProperty(name = "processTime",value = "处理时间") @ApiModelProperty(name = "processTime",value = "处理时间")
private String processTime; private String processTime;
@ApiModelProperty("页码")
private Integer pageNum;
@ApiModelProperty("页面尺寸")
private Integer pageSize;
} }

View File

@@ -19,7 +19,7 @@ public class LineDataIntegrity implements Serializable {
/** /**
* 监测点id * 监测点id
*/ */
@Column(name = "line_id") @Column(name = "line_id",tag = true)
private String lineId; private String lineId;
/** /**
@@ -40,9 +40,11 @@ public class LineDataIntegrity implements Serializable {
@Column(name = "time") @Column(name = "time")
private String time; private String time;
/** /**
* 监测点数据完整性 * 监测点数据完整性
*/ */
@Column(name = "integrityData")
private Double 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 = "终端等级") @ApiModelProperty(name = "lineGrade",value = "终端等级")
private String lineGrade; private String lineGrade;
private String lineGradeName;
@ApiModelProperty(name = "loadType",value = "干扰源类型") @ApiModelProperty(name = "loadType",value = "干扰源类型")
@@ -125,7 +127,7 @@ public class LineIntegrityDataVO implements Serializable {
* 监测点合格率 * 监测点合格率
*/ */
@ApiModelProperty(name = "LinePassRate",value = "监测点合格率 0不合格 1合格") @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 供电公司索引 * @param gdIndexes 供电公司索引
* @return 省会信息 * @return 省会信息
*/ */
List<LineIntegrityDataVO> getProvinceList(@Param("gdIndex")List<String> gdIndexes, List<LineIntegrityDataVO> getProvinceList(@Param("gdIndex")List<String> gdIndexes);
@Param("searchBeginTime") String searchBeginTime,
@Param("searchEndTime") String searchEndTime);
/** /**
* 获取出供电公司的信息 * 获取出供电公司的信息
* @param gdIndexes 供电公司索引 * @param gdIndexes 供电公司索引
* @return 供电公司信息 * @return 供电公司信息
*/ */
List<LineIntegrityDataVO> getGdList(@Param("gdIndex")List<String> gdIndexes, List<LineIntegrityDataVO> getGdList(@Param("gdIndex")List<String> gdIndexes);
@Param("searchBeginTime") String searchBeginTime,
@Param("searchEndTime") String searchEndTime);
/** /**
* 获取出变电站的信息 * 获取出变电站的信息
* @param subIndexes 变电站索引 * @param lineIndexes 变电站索引
* @return 变电站信息 * @return 变电站信息
*/ */
List<LineIntegrityDataVO> getSubList(@Param("subIndex")List<String> subIndexes, List<LineIntegrityDataVO> getSubList(@Param("lineIndexes")List<String> lineIndexes);
@Param("searchBeginTime") String searchBeginTime,
@Param("searchEndTime") String searchEndTime);
/** /**
* 根据监测点索引集合获取监测点详细参数 * 根据监测点索引集合获取监测点详细参数
@@ -49,9 +43,7 @@ public interface LineIntegrityDataMapper extends BaseMapper<LineIntegrityDataVO>
* @return * @return
*/ */
List<LineIntegrityDataVO> getDetailedParametersForLine(@Param("lineIndexes") List<String> lineIndexes, List<LineIntegrityDataVO> getDetailedParametersForLine(@Param("lineIndexes") List<String> lineIndexes,
@Param("lineGrade")String lineGrade, @Param("lineGrade")String lineGrade);
@Param("searchBeginTime") String searchBeginTime,
@Param("searchEndTime") String searchEndTime);
} }

View File

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

View File

@@ -1,17 +1,24 @@
package com.njcn.device.pq.service.impl; 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.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.mapper.AlarmStrategyMapper;
import com.njcn.device.pq.pojo.param.AlarmStrategyParam; import com.njcn.device.pq.pojo.param.AlarmStrategyParam;
import com.njcn.device.pq.pojo.po.AlarmStrategy; import com.njcn.device.pq.pojo.po.AlarmStrategy;
import com.njcn.device.pq.pojo.vo.AlarmStrategyVO; import com.njcn.device.pq.pojo.vo.AlarmStrategyVO;
import com.njcn.device.pq.service.AlarmStrategyService; 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 com.njcn.web.utils.RequestUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* @version 1.0.0 * @version 1.0.0
@@ -24,8 +31,11 @@ public class AlarmStrategyServiceImpl extends ServiceImpl<AlarmStrategyMapper, A
private final AlarmStrategyMapper alarmStrategyMapper; private final AlarmStrategyMapper alarmStrategyMapper;
private final DicDataFeignClient dicDataFeignClient;
/** /**
* 获取告警策略列表 * 获取告警策略列表
*
* @return * @return
*/ */
@Override @Override
@@ -44,28 +54,37 @@ public class AlarmStrategyServiceImpl extends ServiceImpl<AlarmStrategyMapper, A
alarmStrategy.setWarnValue(alarmStrategyParam.getWarnValue()); alarmStrategy.setWarnValue(alarmStrategyParam.getWarnValue());
alarmStrategy.setUpdateBy(RequestUtil.getUserIndex()); alarmStrategy.setUpdateBy(RequestUtil.getUserIndex());
alarmStrategy.setUpdateTime(LocalDateTime.now()); alarmStrategy.setUpdateTime(LocalDateTime.now());
alarmStrategy.setState(DataStateEnum.ENABLE.getCode());
alarmStrategyMapper.updateById(alarmStrategy); alarmStrategyMapper.updateById(alarmStrategy);
return true; return true;
} }
@Override @Override
public boolean addAlarmStrategyById(AlarmStrategyParam alarmStrategyParam) { public boolean addAlarmStrategyById(AlarmStrategyParam alarmStrategyParam) {
Integer result = alarmStrategyMapper.getAlarmStrategyById(alarmStrategyParam.getId()); DictData result = dicDataFeignClient.getDicDataById(alarmStrategyParam.getId()).getData();
if (result==0) { if (Objects.isNull(result)) {
AlarmStrategy alarmStrategy = new AlarmStrategy(); throw new BusinessException(DeviceResponseEnum.LINE_GRADE_INDEX_ERR);
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;
} }
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 @Override

View File

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

View File

@@ -28,8 +28,20 @@ public class TerminalAlarmServiceImpl implements TerminalAlarmService {
@Override @Override
public Page<TerminalAlarmVO> alarmList(AlarmParam alarmParam) { 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 @Override

View File

@@ -239,8 +239,7 @@ public class TransientServiceImpl implements TransientService {
Page<EventDetailNew> page = new Page<>(); Page<EventDetailNew> page = new Page<>();
page.setSize(transientParam.getPageSize()); page.setSize(transientParam.getPageSize());
page.setCurrent(transientParam.getPageNum()); page.setCurrent(transientParam.getPageNum());
//List<TransientVO> transientVos = new ArrayList<>();
//transientParam.setServerName(ServerEnum.HARMONIC.getName());
//按部门分类的实际运行终端综合信息 //按部门分类的实际运行终端综合信息
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(transientParam).getData(); List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(transientParam).getData();
if (!CollectionUtils.isEmpty(generalDeviceDTOList)) { if (!CollectionUtils.isEmpty(generalDeviceDTOList)) {
@@ -266,7 +265,7 @@ public class TransientServiceImpl implements TransientService {
List<DictData> reasonList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.EVENT_REASON.getName()).getData(); List<DictData> reasonList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.EVENT_REASON.getName()).getData();
List<DictData> typeList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.EVENT_TYPE.getName()).getData(); List<DictData> typeList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.EVENT_TYPE.getName()).getData();
//List<TransientVO> transientData = transientMapper.getTransientData(lineIds);
for (EventDetailNew eventDetail : eventDetailData) { for (EventDetailNew eventDetail : eventDetailData) {
for(AreaLineInfoVO areaLineInfoVO : r){ for(AreaLineInfoVO areaLineInfoVO : r){
if(eventDetail.getLineId().equals(areaLineInfoVO.getLineId())){ if(eventDetail.getLineId().equals(areaLineInfoVO.getLineId())){
@@ -276,6 +275,7 @@ public class TransientServiceImpl implements TransientService {
eventDetail.setSubName(areaLineInfoVO.getSubName()); eventDetail.setSubName(areaLineInfoVO.getSubName());
eventDetail.setIp(areaLineInfoVO.getIp()); eventDetail.setIp(areaLineInfoVO.getIp());
eventDetail.setScale(areaLineInfoVO.getVoltageScale()); eventDetail.setScale(areaLineInfoVO.getVoltageScale());
eventDetail.setIp(areaLineInfoVO.getIp());
break; break;
} }
} }
@@ -405,7 +405,7 @@ public class TransientServiceImpl implements TransientService {
stringBuilder.append("LIMIT ").append(transientParam.getPageSize()).append(" OFFSET ").append(i).append(" tz('Asia/Shanghai')"); stringBuilder.append("LIMIT ").append(transientParam.getPageSize()).append(" OFFSET ").append(i).append(" tz('Asia/Shanghai')");
//sql语句 //sql语句
String sql = "SELECT * FROM pqs_eventdetail WHERE " + stringBuilder; String sql = "SELECT * FROM pqs_eventdetail WHERE " + stringBuilder;
System.out.println("sql====================="+sql);
//结果集 //结果集
QueryResult queryresult = influxDbUtils.query(sql); QueryResult queryresult = influxDbUtils.query(sql);
//结果集映射到对象中 //结果集映射到对象中

View File

@@ -142,14 +142,14 @@ whitelist:
- /favicon.ico - /favicon.ico
- /system-boot/theme/getTheme - /system-boot/theme/getTheme
- /device-boot/** #- /device-boot/**
- /system-boot/** #- /system-boot/**
- /harmonic-boot/** #- /harmonic-boot/**
- /energy-boot/** #- /energy-boot/**
- /event-boot/** #- /event-boot/**
- /quality-boot/** #- /quality-boot/**
- /harmonic-prepare/** #- /harmonic-prepare/**
- /process-boot/** #- /process-boot/**
mqtt: mqtt: