1.稳态告警查询优化 2.在线监测数据异常排查
This commit is contained in:
@@ -0,0 +1,26 @@
|
|||||||
|
package com.njcn.device.pq.api;
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.constant.ServerInfo;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.device.pq.api.fallback.dataVerifyCountFallbackFactory;
|
||||||
|
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
|
||||||
|
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xy
|
||||||
|
*/
|
||||||
|
@FeignClient(value = ServerInfo.DEVICE, path = "/dataVerifyCount", fallbackFactory = dataVerifyCountFallbackFactory.class, contextId = "dataVerifyCount")
|
||||||
|
public interface PqDataVerifyCountClient {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取有异常数据的监测点相关信息
|
||||||
|
*/
|
||||||
|
@PostMapping("/getAnomalousData")
|
||||||
|
HttpResult<List<OnlineMonitorVo>> getAnomalousData(@RequestBody LineBaseQueryParam param);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
package com.njcn.device.pq.api.fallback;
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.device.biz.utils.DeviceEnumUtil;
|
||||||
|
import com.njcn.device.pq.api.PqDataVerifyCountClient;
|
||||||
|
import com.njcn.device.pq.api.PqDevTypeClient;
|
||||||
|
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
|
||||||
|
import com.njcn.device.pq.pojo.po.PqDevType;
|
||||||
|
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
|
||||||
|
import feign.hystrix.FallbackFactory;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class dataVerifyCountFallbackFactory implements FallbackFactory<PqDataVerifyCountClient> {
|
||||||
|
@Override
|
||||||
|
public PqDataVerifyCountClient create(Throwable throwable) {
|
||||||
|
//判断抛出异常是否为解码器抛出的业务异常
|
||||||
|
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
|
||||||
|
if (throwable.getCause() instanceof BusinessException) {
|
||||||
|
BusinessException businessException = (BusinessException) throwable.getCause();
|
||||||
|
exceptionEnum = DeviceEnumUtil.getExceptionEnum(businessException.getResult());
|
||||||
|
}
|
||||||
|
Enum<?> finalExceptionEnum = exceptionEnum;
|
||||||
|
return new PqDataVerifyCountClient()
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HttpResult<List<OnlineMonitorVo>> getAnomalousData(LineBaseQueryParam param) {
|
||||||
|
log.error("{}异常,降级处理,异常为:{}", "获取有异常数据的监测点相关信息异常", throwable.toString());
|
||||||
|
throw new BusinessException(finalExceptionEnum);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
package com.njcn.device.pq.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
|
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
|
||||||
|
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
|
||||||
|
import com.njcn.device.pq.service.IPqDataVerifyCountService;
|
||||||
|
import com.njcn.web.controller.BaseController;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 异常数据功能
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author xy
|
||||||
|
* @since 2025-12-10
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/dataVerifyCount")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Api(tags = "异常数据数量统计")
|
||||||
|
public class PqDataVerifyCountController extends BaseController {
|
||||||
|
|
||||||
|
private final IPqDataVerifyCountService pqDataVerifyCountService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取有异常数据的监测点相关信息
|
||||||
|
*/
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/getAnomalousData")
|
||||||
|
@ApiOperation("异常-获取异常数据主页面")
|
||||||
|
public HttpResult<List<OnlineMonitorVo>> getAnomalousData(@RequestBody LineBaseQueryParam param){
|
||||||
|
String methodDescribe = getMethodDescribe("getMonitorVerifyData");
|
||||||
|
List<OnlineMonitorVo> list = pqDataVerifyCountService.getAnomalousData(param);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -3,6 +3,7 @@ package com.njcn.device.pq.mapper;
|
|||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.po.PqDataVerifyCount;
|
import com.njcn.device.pq.pojo.po.PqDataVerifyCount;
|
||||||
|
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -19,4 +20,6 @@ public interface PqDataVerifyCountMapper extends BaseMapper<PqDataVerifyCount> {
|
|||||||
|
|
||||||
|
|
||||||
List<PqDataVerifyCount> selectSumVerify(@Param("param") OnlineRateParam param);
|
List<PqDataVerifyCount> selectSumVerify(@Param("param") OnlineRateParam param);
|
||||||
|
|
||||||
|
List<OnlineMonitorVo> getAnomalousData(@Param("lineIds")List<String> lineIds, @Param("startTime")String startTime, @Param("endTime")String endTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,4 +29,44 @@
|
|||||||
</where>
|
</where>
|
||||||
group by line_id ;
|
group by line_id ;
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getAnomalousData" resultType="OnlineMonitorVo">
|
||||||
|
SELECT DISTINCT
|
||||||
|
t6.`Name` gdName,
|
||||||
|
t5.`Name` subName,
|
||||||
|
t4.`Name` deviceName,
|
||||||
|
t1.Line_Id lineId,
|
||||||
|
t2.`Name` lineName,
|
||||||
|
t8.`Name` monitorObjType,
|
||||||
|
t7.Obj_Name monitorObj,
|
||||||
|
"异常数据" as target,
|
||||||
|
count(t1.time_id) lastDay
|
||||||
|
FROM
|
||||||
|
pq_data_verify_count t1
|
||||||
|
left join pq_line t2 on t1.Line_Id = t2.Id
|
||||||
|
left join pq_line t3 on t2.Pid = t3.Id
|
||||||
|
left join pq_line t4 on t3.Pid = t4.Id
|
||||||
|
left join pq_line t5 on t4.Pid = t5.Id
|
||||||
|
left join pq_line t6 on t5.Pid = t6.Id
|
||||||
|
left join pq_line_detail t7 on t1.Line_Id = t7.Id
|
||||||
|
left join sys_dict_data t8 on t7.Load_Type = t8.Id
|
||||||
|
WHERE
|
||||||
|
(t1.total + t1.flicker) > 0
|
||||||
|
<if test="lineIds!=null and lineIds.size > 0">
|
||||||
|
and Line_Id in
|
||||||
|
<foreach collection="lineIds" item="item" open="(" close=")" separator=",">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
<if test=" startTime != null and startTime !=''">
|
||||||
|
and time_id >= #{startTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime != null and endTime != ''">
|
||||||
|
and time_id <= #{endTime}
|
||||||
|
</if>
|
||||||
|
GROUP BY
|
||||||
|
Line_Id
|
||||||
|
order by lastDay desc
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
package com.njcn.device.pq.service;
|
package com.njcn.device.pq.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
|
||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.po.PqDataVerifyCount;
|
import com.njcn.device.pq.pojo.po.PqDataVerifyCount;
|
||||||
|
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -17,8 +19,8 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface IPqDataVerifyCountService extends IService<PqDataVerifyCount> {
|
public interface IPqDataVerifyCountService extends IService<PqDataVerifyCount> {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
List<PqDataVerifyCount> getSumVerify( OnlineRateParam param);
|
List<PqDataVerifyCount> getSumVerify( OnlineRateParam param);
|
||||||
|
|
||||||
|
List<OnlineMonitorVo> getAnomalousData(LineBaseQueryParam par);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ import com.njcn.device.pq.mapper.DataVerifyMapper;
|
|||||||
import com.njcn.device.pq.mapper.PqDataVerifyBakMapper;
|
import com.njcn.device.pq.mapper.PqDataVerifyBakMapper;
|
||||||
import com.njcn.device.pq.pojo.param.dataClean.MonitorBaseParam;
|
import com.njcn.device.pq.pojo.param.dataClean.MonitorBaseParam;
|
||||||
import com.njcn.device.pq.pojo.po.DataVerify;
|
import com.njcn.device.pq.pojo.po.DataVerify;
|
||||||
|
|
||||||
import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
|
import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
|
||||||
import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
|
import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
|
||||||
import com.njcn.device.pq.pojo.vo.dataClean.*;
|
import com.njcn.device.pq.pojo.vo.dataClean.*;
|
||||||
@@ -214,7 +213,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
lineCountEvaluateParam.setStartTime(monitorBaseParam.getSearchBeginTime());
|
lineCountEvaluateParam.setStartTime(monitorBaseParam.getSearchBeginTime());
|
||||||
lineCountEvaluateParam.setEndTime(monitorBaseParam.getSearchEndTime());
|
lineCountEvaluateParam.setEndTime(monitorBaseParam.getSearchEndTime());
|
||||||
List<DataLimitTargetDto> limitTarget = dataLimitTargetFeignClient.getRawData(lineCountEvaluateParam).getData();
|
List<DataLimitTargetDto> limitTarget = dataLimitTargetFeignClient.getRawData(lineCountEvaluateParam).getData();
|
||||||
List<DataLimitTargetDto> limitList = limitTarget.stream().filter(it -> it.getAllTime() > 0).collect(Collectors.toList());
|
List<DataLimitTargetDto> limitList = limitTarget.stream().filter(it -> (it.getAllTime() > 0 || it.getFlickerAllTime() > 0)).collect(Collectors.toList());
|
||||||
long abnormalCount = limitList.stream().map(DataLimitTargetDto::getLineId).distinct().count();
|
long abnormalCount = limitList.stream().map(DataLimitTargetDto::getLineId).distinct().count();
|
||||||
VerifyMonitorVO verifyMonitorVO = new VerifyMonitorVO();
|
VerifyMonitorVO verifyMonitorVO = new VerifyMonitorVO();
|
||||||
verifyMonitorVO.setRunNum(monitorIds.size());
|
verifyMonitorVO.setRunNum(monitorIds.size());
|
||||||
@@ -235,7 +234,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
lineCountEvaluateParam.setStartTime(monitorBaseParam.getSearchBeginTime());
|
lineCountEvaluateParam.setStartTime(monitorBaseParam.getSearchBeginTime());
|
||||||
lineCountEvaluateParam.setEndTime(monitorBaseParam.getSearchEndTime());
|
lineCountEvaluateParam.setEndTime(monitorBaseParam.getSearchEndTime());
|
||||||
List<DataLimitTargetDto> limitTarget = dataLimitTargetFeignClient.getRawData(lineCountEvaluateParam).getData();
|
List<DataLimitTargetDto> limitTarget = dataLimitTargetFeignClient.getRawData(lineCountEvaluateParam).getData();
|
||||||
List<DataLimitTargetDto> limitList = limitTarget.stream().filter(it -> it.getAllTime() > 0).collect(Collectors.toList());
|
List<DataLimitTargetDto> limitList = limitTarget.stream().filter(it -> (it.getAllTime() > 0 || it.getFlickerAllTime() > 0)).collect(Collectors.toList());
|
||||||
return getLimitTable(limitList, monitorBaseParam);
|
return getLimitTable(limitList, monitorBaseParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -559,18 +558,22 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
for (int i = 2; i <= 25; i++) {
|
for (int i = 2; i <= 25; i++) {
|
||||||
String uHarmKey = "uharm" + i + "Overtime";
|
String uHarmKey = "uharm" + i + "Overtime";
|
||||||
String iHarmKey = "iharm" + i + "Overtime";
|
String iHarmKey = "iharm" + i + "Overtime";
|
||||||
String inuHarmKey = "inuharm" + i + "Overtime";
|
|
||||||
if (getFieldValue(it, uHarmKey) != null && getFieldValue(it, uHarmKey) == 1) {
|
if (getFieldValue(it, uHarmKey) != null && getFieldValue(it, uHarmKey) == 1) {
|
||||||
HARMONIC_VOLTAGE.add(it.getLineId());
|
HARMONIC_VOLTAGE.add(it.getLineId());
|
||||||
}
|
}
|
||||||
if (getFieldValue(it, iHarmKey) != null && getFieldValue(it, iHarmKey) == 1) {
|
if (getFieldValue(it, iHarmKey) != null && getFieldValue(it, iHarmKey) == 1) {
|
||||||
HARMONIC_CURRENT.add(it.getLineId());
|
HARMONIC_CURRENT.add(it.getLineId());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
for (int i = 1; i <= 16; i++) {
|
||||||
|
String inuHarmKey = "inuharm" + i + "Overtime";
|
||||||
if (getFieldValue(it, inuHarmKey) != null && getFieldValue(it, inuHarmKey) == 1) {
|
if (getFieldValue(it, inuHarmKey) != null && getFieldValue(it, inuHarmKey) == 1) {
|
||||||
INTERHARMONIC_VOLTAGE.add(it.getLineId());
|
INTERHARMONIC_VOLTAGE.add(it.getLineId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
//谐波电压指标包含 各次谐波电压含有率 + 电压总谐波畸变率
|
||||||
|
HARMONIC_VOLTAGE.addAll(THD_V);
|
||||||
|
|
||||||
Map<String, Set<String>> overLimitCount = new HashMap<>();
|
Map<String, Set<String>> overLimitCount = new HashMap<>();
|
||||||
overLimitCount.put(DicDataEnum.FLICKER.getCode() + SEPARATOR + DicDataEnum.FLICKER.getName(), FLICKER);
|
overLimitCount.put(DicDataEnum.FLICKER.getCode() + SEPARATOR + DicDataEnum.FLICKER.getName(), FLICKER);
|
||||||
|
|||||||
@@ -3,8 +3,10 @@ package com.njcn.device.pq.service.impl;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.njcn.device.pq.mapper.PqDataVerifyCountMapper;
|
import com.njcn.device.pq.mapper.PqDataVerifyCountMapper;
|
||||||
|
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
|
||||||
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
import com.njcn.device.pq.pojo.param.OnlineRateParam;
|
||||||
import com.njcn.device.pq.pojo.po.PqDataVerifyCount;
|
import com.njcn.device.pq.pojo.po.PqDataVerifyCount;
|
||||||
|
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
|
||||||
import com.njcn.device.pq.service.IPqDataVerifyCountService;
|
import com.njcn.device.pq.service.IPqDataVerifyCountService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -31,4 +33,9 @@ public class PqDataVerifyCountServiceImpl extends ServiceImpl<PqDataVerifyCountM
|
|||||||
public List<PqDataVerifyCount> getSumVerify(OnlineRateParam param) {
|
public List<PqDataVerifyCount> getSumVerify(OnlineRateParam param) {
|
||||||
return this.baseMapper.selectSumVerify(param);
|
return this.baseMapper.selectSumVerify(param);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<OnlineMonitorVo> getAnomalousData(LineBaseQueryParam par) {
|
||||||
|
return this.baseMapper.getAnomalousData(par.getLineIds(),par.getStartTime(),par.getEndTime());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,6 +119,7 @@
|
|||||||
t2.`Name` lineName,
|
t2.`Name` lineName,
|
||||||
t8.`Name` monitorObjType,
|
t8.`Name` monitorObjType,
|
||||||
t7.Obj_Name monitorObj,
|
t7.Obj_Name monitorObj,
|
||||||
|
"完整性为0" as target,
|
||||||
count(t1.time_id) lastDay
|
count(t1.time_id) lastDay
|
||||||
FROM
|
FROM
|
||||||
r_stat_integrity_d t1
|
r_stat_integrity_d t1
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class RStatLimitRateDController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 来源于RStatLimitController的getOverData
|
* 来源于RStatLimitController的getOverData
|
||||||
*/
|
*/
|
||||||
@PostMapping("/getOverData")
|
@PostMapping("/limitRateD/getOverData")
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@ApiOperation("查询单监测点超标数据")
|
@ApiOperation("查询单监测点超标数据")
|
||||||
@ApiImplicitParams({
|
@ApiImplicitParams({
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ import com.njcn.common.pojo.enums.common.LogEnum;
|
|||||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
import com.njcn.common.pojo.response.HttpResult;
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
import com.njcn.common.utils.HttpResultUtil;
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
|
|
||||||
import com.njcn.supervision.pojo.param.device.OnlineParam;
|
import com.njcn.supervision.pojo.param.device.OnlineParam;
|
||||||
import com.njcn.supervision.pojo.vo.device.LineLimitDetailVo;
|
import com.njcn.supervision.pojo.vo.device.LineLimitDetailVo;
|
||||||
|
import com.njcn.supervision.pojo.vo.device.OnlineVo;
|
||||||
import com.njcn.supervision.service.device.ILineWarningService;
|
import com.njcn.supervision.service.device.ILineWarningService;
|
||||||
import com.njcn.web.controller.BaseController;
|
import com.njcn.web.controller.BaseController;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import springfox.documentation.annotations.ApiIgnore;
|
import springfox.documentation.annotations.ApiIgnore;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -67,9 +68,9 @@ public class LineWarningController extends BaseController {
|
|||||||
@PostMapping("/list")
|
@PostMapping("/list")
|
||||||
@ApiOperation("分页查询在线监测数据")
|
@ApiOperation("分页查询在线监测数据")
|
||||||
@ApiImplicitParam(name = "param", value = "参数", required = true)
|
@ApiImplicitParam(name = "param", value = "参数", required = true)
|
||||||
public HttpResult<List<OnlineMonitorVo>> lineWarningList(@RequestBody @Validated OnlineParam param) {
|
public HttpResult<Page<OnlineVo>> lineWarningList(@RequestBody @Validated OnlineParam param) {
|
||||||
String methodDescribe = getMethodDescribe("lineWarningList");
|
String methodDescribe = getMethodDescribe("lineWarningList");
|
||||||
List<OnlineMonitorVo> list = lineWarningService.getLineWarningList(param);
|
Page<OnlineVo> list = lineWarningService.getLineWarningList(param);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,13 +2,11 @@ package com.njcn.supervision.service.device;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
|
|
||||||
import com.njcn.supervision.pojo.param.device.OnlineParam;
|
import com.njcn.supervision.pojo.param.device.OnlineParam;
|
||||||
import com.njcn.supervision.pojo.po.device.LineWarning;
|
import com.njcn.supervision.pojo.po.device.LineWarning;
|
||||||
import com.njcn.supervision.pojo.vo.device.LineLimitDetailVo;
|
import com.njcn.supervision.pojo.vo.device.LineLimitDetailVo;
|
||||||
import com.njcn.supervision.pojo.vo.device.OnlineVo;
|
import com.njcn.supervision.pojo.vo.device.OnlineVo;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -36,7 +34,7 @@ public interface ILineWarningService extends IService<LineWarning> {
|
|||||||
* @param param
|
* @param param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<OnlineMonitorVo> getLineWarningList(OnlineParam param);
|
Page<OnlineVo> getLineWarningList(OnlineParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发起预告警单
|
* 发起预告警单
|
||||||
|
|||||||
@@ -5,7 +5,10 @@ import cn.hutool.core.date.DatePattern;
|
|||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||||
import com.njcn.common.pojo.enums.common.ServerEnum;
|
import com.njcn.common.pojo.enums.common.ServerEnum;
|
||||||
import com.njcn.common.utils.HarmonicTimesUtil;
|
import com.njcn.common.utils.HarmonicTimesUtil;
|
||||||
@@ -15,12 +18,11 @@ import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
|||||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||||
import com.njcn.device.biz.pojo.po.Overlimit;
|
import com.njcn.device.biz.pojo.po.Overlimit;
|
||||||
import com.njcn.device.pq.api.DeptLineFeignClient;
|
import com.njcn.device.pq.api.*;
|
||||||
import com.njcn.device.pq.api.LineFeignClient;
|
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||||
import com.njcn.device.pq.api.LineIntegrityClient;
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
|
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
|
||||||
import com.njcn.device.pq.pojo.po.DeptLine;
|
import com.njcn.device.pq.pojo.po.DeptLine;
|
||||||
import com.njcn.device.pq.pojo.vo.LineDetailVO;
|
|
||||||
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
|
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
|
||||||
import com.njcn.device.pq.pojo.vo.ReportLineInfoVo;
|
import com.njcn.device.pq.pojo.vo.ReportLineInfoVo;
|
||||||
import com.njcn.harmonic.api.RStatLimitRateDClient;
|
import com.njcn.harmonic.api.RStatLimitRateDClient;
|
||||||
@@ -41,6 +43,7 @@ import com.njcn.supervision.pojo.param.device.OnlineParam;
|
|||||||
import com.njcn.supervision.pojo.po.device.LineWarning;
|
import com.njcn.supervision.pojo.po.device.LineWarning;
|
||||||
import com.njcn.supervision.pojo.po.leaflet.WarningLeaflet;
|
import com.njcn.supervision.pojo.po.leaflet.WarningLeaflet;
|
||||||
import com.njcn.supervision.pojo.vo.device.LineLimitDetailVo;
|
import com.njcn.supervision.pojo.vo.device.LineLimitDetailVo;
|
||||||
|
import com.njcn.supervision.pojo.vo.device.OnlineVo;
|
||||||
import com.njcn.supervision.service.device.ILineWarningService;
|
import com.njcn.supervision.service.device.ILineWarningService;
|
||||||
import com.njcn.supervision.service.leaflet.IWarningLeafletService;
|
import com.njcn.supervision.service.leaflet.IWarningLeafletService;
|
||||||
import com.njcn.system.api.DicDataFeignClient;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
@@ -48,6 +51,7 @@ import com.njcn.system.enums.DicDataEnum;
|
|||||||
import com.njcn.system.enums.DicDataTypeEnum;
|
import com.njcn.system.enums.DicDataTypeEnum;
|
||||||
import com.njcn.system.pojo.po.DictData;
|
import com.njcn.system.pojo.po.DictData;
|
||||||
import com.njcn.user.api.DeptFeignClient;
|
import com.njcn.user.api.DeptFeignClient;
|
||||||
|
import com.njcn.web.factory.PageFactory;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -97,6 +101,8 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
|||||||
private final DataInHarmVMapper dataInHarmVMapper;
|
private final DataInHarmVMapper dataInHarmVMapper;
|
||||||
private final DataPltMapper dataPltMapper;
|
private final DataPltMapper dataPltMapper;
|
||||||
private final LineIntegrityClient lineIntegrityClient;
|
private final LineIntegrityClient lineIntegrityClient;
|
||||||
|
private final PqDataVerifyCountClient pqDataVerifyCountClient;
|
||||||
|
private final GeneralDeviceInfoClient generalDeviceInfoClient;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@@ -196,95 +202,97 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
|||||||
result.addAll(Arrays.asList(l1, l2, l3, l4, l5, l6, l7, l8, l9, l10));
|
result.addAll(Arrays.asList(l1, l2, l3, l4, l5, l6, l7, l8, l9, l10));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//将装置无数据的统计入库 按运维要求,判断装置的最新数据不是当天,则认为装置无数据
|
//完整性为0的数据
|
||||||
List<LineDetailVO.noDataLineInfo> noDataLineInfo = lineFeignClient.getNoDataLine().getData();
|
LineBaseQueryParam param = new LineBaseQueryParam();
|
||||||
if (CollUtil.isNotEmpty(noDataLineInfo)) {
|
param.setStartTime(date);
|
||||||
LambdaQueryWrapper<LineWarning> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
param.setEndTime(endDate);
|
||||||
lambdaQueryWrapper.eq(LineWarning::getTargetType, "0").eq(LineWarning::getAlarmTime, date);
|
List<OnlineMonitorVo> list = lineIntegrityClient.getNoData(param).getData();
|
||||||
this.baseMapper.delete(lambdaQueryWrapper);
|
if (CollUtil.isNotEmpty(list)) {
|
||||||
noDataLineInfo.forEach(item -> {
|
list.forEach(item -> {
|
||||||
String deptId = Objects.isNull(deptLineMap.get(item.getLineId())) ? null : deptLineMap.get(item.getLineId()).get(0).getId();
|
String deptId = Objects.isNull(deptLineMap.get(item.getLineId())) ? null : deptLineMap.get(item.getLineId()).get(0).getId();
|
||||||
LineWarning lineWarning = new LineWarning();
|
LineWarning lineWarning = new LineWarning();
|
||||||
lineWarning.setAlarmTime(firstDayOfMonth);
|
lineWarning.setAlarmTime(firstDayOfMonth);
|
||||||
lineWarning.setDeptId(deptId);
|
lineWarning.setDeptId(deptId);
|
||||||
lineWarning.setLineId(item.getLineId());
|
lineWarning.setLineId(item.getLineId());
|
||||||
lineWarning.setTargetType("0");
|
lineWarning.setTargetType("0");
|
||||||
|
lineWarning.setOverLimitDay(item.getLastDay());
|
||||||
result.add(lineWarning);
|
result.add(lineWarning);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
//异常数据
|
||||||
|
List<OnlineMonitorVo> list2 = pqDataVerifyCountClient.getAnomalousData(param).getData();
|
||||||
|
if (CollUtil.isNotEmpty(list2)) {
|
||||||
|
list2.forEach(item -> {
|
||||||
|
String deptId = Objects.isNull(deptLineMap.get(item.getLineId())) ? null : deptLineMap.get(item.getLineId()).get(0).getId();
|
||||||
|
LineWarning lineWarning = new LineWarning();
|
||||||
|
lineWarning.setAlarmTime(firstDayOfMonth);
|
||||||
|
lineWarning.setDeptId(deptId);
|
||||||
|
lineWarning.setLineId(item.getLineId());
|
||||||
|
lineWarning.setTargetType("2");
|
||||||
|
lineWarning.setOverLimitDay(item.getLastDay());
|
||||||
|
result.add(lineWarning);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// //将装置无数据的统计入库 按运维要求,判断装置的最新数据不是当天,则认为装置无数据
|
||||||
|
// List<LineDetailVO.noDataLineInfo> noDataLineInfo = lineFeignClient.getNoDataLine().getData();
|
||||||
|
// if (CollUtil.isNotEmpty(noDataLineInfo)) {
|
||||||
|
// LambdaQueryWrapper<LineWarning> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
// lambdaQueryWrapper.eq(LineWarning::getTargetType, "0").eq(LineWarning::getAlarmTime, date);
|
||||||
|
// this.baseMapper.delete(lambdaQueryWrapper);
|
||||||
|
// noDataLineInfo.forEach(item -> {
|
||||||
|
// String deptId = Objects.isNull(deptLineMap.get(item.getLineId())) ? null : deptLineMap.get(item.getLineId()).get(0).getId();
|
||||||
|
// LineWarning lineWarning = new LineWarning();
|
||||||
|
// lineWarning.setAlarmTime(firstDayOfMonth);
|
||||||
|
// lineWarning.setDeptId(deptId);
|
||||||
|
// lineWarning.setLineId(item.getLineId());
|
||||||
|
// lineWarning.setTargetType("0");
|
||||||
|
// result.add(lineWarning);
|
||||||
|
// });
|
||||||
|
// }
|
||||||
this.saveOrUpdateBatchByMultiId(result);
|
this.saveOrUpdateBatchByMultiId(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<OnlineMonitorVo> getLineWarningList(OnlineParam param) {
|
public Page<OnlineVo> getLineWarningList(OnlineParam param) {
|
||||||
List<OnlineMonitorVo> result = new ArrayList<>();
|
|
||||||
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
|
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
|
||||||
deptGetLineParam.setDeptId(param.getDeptId());
|
deptGetLineParam.setDeptId(param.getDeptId());
|
||||||
deptGetLineParam.setServerName(ServerEnum.HARMONIC.getName());
|
deptGetLineParam.setServerName(ServerEnum.HARMONIC.getName());
|
||||||
deptGetLineParam.setLineRunFlag(0);
|
|
||||||
if (ObjectUtil.isNotNull(param.getLineType()) && !Objects.equals(param.getLineType(), "")) {
|
|
||||||
deptGetLineParam.setIsUpToGrid(Integer.valueOf(param.getLineType()));
|
|
||||||
}
|
|
||||||
List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetAllLine(deptGetLineParam).getData();
|
List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetAllLine(deptGetLineParam).getData();
|
||||||
List<String> lineList = list.stream()
|
List<String> lineList = list.stream()
|
||||||
.flatMap(dto -> dto.getLineBaseList().stream().map(LineDevGetDTO::getPointId))
|
.flatMap(dto -> dto.getLineBaseList().stream().map(LineDevGetDTO::getPointId))
|
||||||
.distinct()
|
.distinct()
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
//数据完整性为0的数据
|
QueryWrapper<LineWarning> queryWrapper = new QueryWrapper<>();
|
||||||
if (param.getDataType() == 0) {
|
if (Objects.nonNull(param.getSearchBeginTime()) && Objects.nonNull(param.getSearchEndTime())) {
|
||||||
LineBaseQueryParam par = new LineBaseQueryParam();
|
queryWrapper.between("A.alarm_time", param.getSearchBeginTime(), param.getSearchEndTime());
|
||||||
par.setLineIds(lineList);
|
}
|
||||||
par.setStartTime(param.getSearchBeginTime());
|
//监测点id
|
||||||
par.setEndTime(param.getSearchEndTime());
|
if (CollUtil.isNotEmpty(lineList)) {
|
||||||
result = lineIntegrityClient.getNoData(par).getData();
|
queryWrapper.in("A.line_id", lineList);
|
||||||
|
}
|
||||||
|
//监测点类型
|
||||||
|
if (StringUtils.isNotBlank(param.getLineType())) {
|
||||||
|
queryWrapper.eq("B.Power_Flag", Integer.parseInt(param.getLineType()));
|
||||||
|
}
|
||||||
|
//查询无数据的监测点
|
||||||
|
if (Objects.equals(param.getDataType(), 0)) {
|
||||||
|
queryWrapper.eq("A.target_type", "0");
|
||||||
}
|
}
|
||||||
//异常数据
|
//异常数据
|
||||||
else if (param.getDataType() == 1) {
|
else if (Objects.equals(param.getDataType(), 2)) {
|
||||||
|
queryWrapper.eq("A.target_type", "2");
|
||||||
}
|
}
|
||||||
//告警数据
|
//查询指标超标的监测点
|
||||||
else {
|
else {
|
||||||
|
queryWrapper.ge("A.over_limit_day", param.getAlarmThreshold());
|
||||||
|
if (CollUtil.isNotEmpty(param.getTargetList())) {
|
||||||
|
queryWrapper.in("A.target_type", param.getTargetList());
|
||||||
}
|
}
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
queryWrapper.orderBy(true, true, "D.Name", "p4.Name", "p3.Name");
|
||||||
// @Override
|
return this.baseMapper.page(new Page<>(PageFactory.getPageNum(param), PageFactory.getPageSize(param)), queryWrapper);
|
||||||
// public Page<OnlineVo> getLineWarningList(OnlineParam param) {
|
}
|
||||||
// DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
|
|
||||||
// deptGetLineParam.setDeptId(param.getDeptId());
|
|
||||||
// deptGetLineParam.setServerName(ServerEnum.HARMONIC.getName());
|
|
||||||
// List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
|
|
||||||
// List<String> lineList = list.stream()
|
|
||||||
// .flatMap(dto -> dto.getLineBaseList().stream().map(LineDevGetDTO::getPointId))
|
|
||||||
// .distinct()
|
|
||||||
// .collect(Collectors.toList());
|
|
||||||
// QueryWrapper<LineWarning> queryWrapper = new QueryWrapper<>();
|
|
||||||
// if (Objects.nonNull(param.getSearchBeginTime()) && Objects.nonNull(param.getSearchEndTime())) {
|
|
||||||
// queryWrapper.between("A.alarm_time", param.getSearchBeginTime(), param.getSearchEndTime());
|
|
||||||
// }
|
|
||||||
// //监测点id
|
|
||||||
// if (CollUtil.isNotEmpty(lineList)) {
|
|
||||||
// queryWrapper.in("A.line_id", lineList);
|
|
||||||
// }
|
|
||||||
// //监测点类型
|
|
||||||
// if (StringUtils.isNotBlank(param.getLineType())) {
|
|
||||||
// queryWrapper.eq("B.Power_Flag", Integer.parseInt(param.getLineType()));
|
|
||||||
// }
|
|
||||||
// //查询无数据的监测点
|
|
||||||
// if (Objects.equals(param.getDataType(), 0)) {
|
|
||||||
// queryWrapper.eq("A.target_type", "0");
|
|
||||||
// }
|
|
||||||
// //查询指标超标的监测点
|
|
||||||
// else {
|
|
||||||
// queryWrapper.ge("A.over_limit_day", param.getAlarmThreshold());
|
|
||||||
// if (CollUtil.isNotEmpty(param.getTargetList())) {
|
|
||||||
// queryWrapper.in("A.target_type", param.getTargetList());
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// queryWrapper.orderBy(true, true, "D.Name", "p4.Name", "p3.Name");
|
|
||||||
// return this.baseMapper.page(new Page<>(PageFactory.getPageNum(param), PageFactory.getPageSize(param)), queryWrapper);
|
|
||||||
// }
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
|||||||
Reference in New Issue
Block a user