From 2117e16b617cefc5cec4c67c7440351bc016b246 Mon Sep 17 00:00:00 2001 From: xy <748613696@qq.com> Date: Wed, 10 Dec 2025 16:25:38 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=85=A8=E6=99=AF=E7=A8=B3?= =?UTF-8?q?=E6=80=81=E5=91=8A=E8=AD=A6=E6=95=B0=E6=8D=AE=E4=B8=8D=E4=B8=80?= =?UTF-8?q?=E8=87=B4=E9=97=AE=E9=A2=98=202.=E5=88=9D=E6=AD=A5=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=9C=A8=E7=BA=BF=E7=9B=91=E6=B5=8B=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commApi/CommTerminalGeneralClient.java | 3 + ...mTerminalGeneralClientFallbackFactory.java | 6 + .../device/biz/pojo/dto/LineDevGetDTO.java | 2 + .../device/pq/api/LineIntegrityClient.java | 7 + .../LineIntegrityClientFallbackFactory.java | 7 + .../device/pq/pojo/vo/OnlineMonitorVo.java | 41 +++++ .../pq/controller/CommTerminalController.java | 13 +- .../LineIntegrityDataController.java | 11 ++ .../pq/service/CommTerminalService.java | 5 +- .../pq/service/IRStatIntegrityDService.java | 3 + .../service/impl/CommTerminalServiceImpl.java | 39 +++++ .../impl/RStatIntegrityDServiceImpl.java | 7 +- .../device/line/mapper/DeptLineMapper.java | 2 + .../line/mapper/mapping/DeptLineMapper.xml | 65 ++++++++ .../device/line/service/DeptLineService.java | 2 +- .../service/impl/DeptLineServiceImpl.java | 6 + .../mapper/RStatIntegrityDMapper.java | 7 + .../mapper/mapping/RStatIntegrityDMapper.xml | 37 +++++ .../mapper/RStatLimitTargetDMapper.java | 4 + .../mapping/RStatLimitTargetDMapper.xml | 143 ++++++++++++++++++ .../service/impl/GridServiceImpl.java | 82 ++++++++-- .../impl/RStatLimitServiceImpl.java | 5 +- .../pojo/param/device/OnlineParam.java | 7 +- .../device/LineWarningController.java | 7 +- .../service/device/ILineWarningService.java | 3 +- .../device/impl/LineWarningServiceImpl.java | 92 +++++++---- 26 files changed, 551 insertions(+), 55 deletions(-) create mode 100644 pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/OnlineMonitorVo.java diff --git a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/CommTerminalGeneralClient.java b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/CommTerminalGeneralClient.java index b88178846..b051c2ee4 100644 --- a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/CommTerminalGeneralClient.java +++ b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/CommTerminalGeneralClient.java @@ -51,6 +51,9 @@ public interface CommTerminalGeneralClient { @PostMapping("deptGetLine") HttpResult> deptGetLine(@RequestBody @Validated DeptGetLineParam deptGetLineParam); + @PostMapping("deptGetAllLine") + HttpResult> deptGetAllLine(@RequestBody @Validated DeptGetLineParam deptGetLineParam); + /** * 根据单位获取所有变电站 diff --git a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java index f0d1744c3..32cbf11b6 100644 --- a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java +++ b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java @@ -50,6 +50,12 @@ public class CommTerminalGeneralClientFallbackFactory implements FallbackFactory throw new BusinessException(finalExceptionEnum); } + @Override + public HttpResult> deptGetAllLine(DeptGetLineParam deptGetLineParam) { + log.error("{}异常,降级处理,异常为:{}", "根据单位获取all监测点信息", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } + @Override public HttpResult> deptSubStation(DeptGetLineParam deptGetLineParam) { log.error("{}异常,降级处理,异常为:{}", "根据单位获取所有变电站", throwable.toString()); diff --git a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDevGetDTO.java b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDevGetDTO.java index 86b2d07b9..4540d7b25 100644 --- a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDevGetDTO.java +++ b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDevGetDTO.java @@ -28,6 +28,8 @@ public class LineDevGetDTO { private String pointName; + private Integer lineRunFlag; + /** * 装置监测点索引集合 */ diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/LineIntegrityClient.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/LineIntegrityClient.java index 07375c9c7..b08c5da3e 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/LineIntegrityClient.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/LineIntegrityClient.java @@ -3,7 +3,9 @@ package com.njcn.device.pq.api; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.ServerInfo; 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.api.fallback.DeviceTreeClientFallbackFactory; import com.njcn.device.pq.api.fallback.LineIntegrityClientFallbackFactory; import com.njcn.device.pq.pojo.dto.LineDataQualityDTO; @@ -11,6 +13,8 @@ import com.njcn.device.pq.pojo.param.LineBaseQueryParam; import com.njcn.device.pq.pojo.param.LineDataQualityParam; import com.njcn.device.pq.pojo.po.RStatIntegrityD; import com.njcn.device.pq.pojo.vo.AlarmStrategyVO; +import com.njcn.device.pq.pojo.vo.OnlineMonitorVo; +import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -51,4 +55,7 @@ public interface LineIntegrityClient { @PostMapping("/lineDataQuality") HttpResult> getLineDataQuality(@RequestBody LineDataQualityParam lineDataQualityParam); + + @PostMapping("/noData") + HttpResult> getNoData(@RequestBody LineBaseQueryParam param); } diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/fallback/LineIntegrityClientFallbackFactory.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/fallback/LineIntegrityClientFallbackFactory.java index 469fcc7c2..cd3ff33ed 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/fallback/LineIntegrityClientFallbackFactory.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/api/fallback/LineIntegrityClientFallbackFactory.java @@ -11,6 +11,7 @@ import com.njcn.device.pq.pojo.param.LineBaseQueryParam; import com.njcn.device.pq.pojo.param.LineDataQualityParam; import com.njcn.device.pq.pojo.po.RStatIntegrityD; import com.njcn.device.pq.pojo.vo.AlarmStrategyVO; +import com.njcn.device.pq.pojo.vo.OnlineMonitorVo; import feign.hystrix.FallbackFactory; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -54,6 +55,12 @@ public class LineIntegrityClientFallbackFactory implements FallbackFactory> getNoData(LineBaseQueryParam param) { + log.error("{}异常,降级处理,异常为:{}", "获取监测点数据完成性为0的数据", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } + }; } } diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/OnlineMonitorVo.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/OnlineMonitorVo.java new file mode 100644 index 000000000..0e517866d --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/OnlineMonitorVo.java @@ -0,0 +1,41 @@ +package com.njcn.device.pq.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author xy + */ +@Data +public class OnlineMonitorVo implements Serializable { + + @ApiModelProperty("负责单位") + private String gdName; + + @ApiModelProperty("变电站名称") + private String subName; + + @ApiModelProperty("终端名称") + private String deviceName; + + @ApiModelProperty("监测点id") + private String lineId; + + @ApiModelProperty("监测点名称") + private String lineName; + + @ApiModelProperty("监测对象类型") + private String monitorObjType; + + @ApiModelProperty("监测对象名称") + private String monitorObj; + + @ApiModelProperty("指标类型 ") + private String target; + + @ApiModelProperty("累计天数") + private Integer lastDay; + +} diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/CommTerminalController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/CommTerminalController.java index c7f00a15e..7ef8ce03e 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/CommTerminalController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/CommTerminalController.java @@ -108,8 +108,17 @@ public class CommTerminalController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } - - + @PostMapping("deptGetAllLine") + @ApiOperation("根据单位获取监测点信息(all line)") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true) + public HttpResult> deptGetAllLine(@RequestBody @Validated DeptGetLineParam deptGetLineParam) { + TimeInterval timer = new TimeInterval(); + String methodDescribe = getMethodDescribe("deptGetLine"); + List result = commTerminalService.deptGetAllLine(deptGetLineParam); + log.info("运行时长" + timer.intervalSecond()); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } /** * 根据单位获取所有变电站 diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineIntegrityDataController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineIntegrityDataController.java index 736482b39..400a0d71a 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineIntegrityDataController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineIntegrityDataController.java @@ -16,6 +16,7 @@ import com.njcn.device.pq.pojo.param.LineDataQualityParam; import com.njcn.device.pq.pojo.param.LineIntegrityDataParam; import com.njcn.device.pq.pojo.po.RStatIntegrityD; import com.njcn.device.pq.pojo.vo.LineIntegrityDataVO; +import com.njcn.device.pq.pojo.vo.OnlineMonitorVo; import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate; import com.njcn.device.pq.service.IRStatIntegrityDService; import com.njcn.device.pq.service.LineIntegrityDataService; @@ -159,4 +160,14 @@ public class LineIntegrityDataController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rate, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/noData") + @ApiOperation("监测点数据完整性为0的数据(冀北)") + @ApiImplicitParam(name = "param", value = "参数实体", required = true) + public HttpResult> getNoData(@RequestBody LineBaseQueryParam param) { + String methodDescribe = getMethodDescribe("getNoData"); + List rate = irStatIntegrityDService.getNoData(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rate, methodDescribe); + } + } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/CommTerminalService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/CommTerminalService.java index 496f35dd8..dbd61c3a0 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/CommTerminalService.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/CommTerminalService.java @@ -40,11 +40,10 @@ public interface CommTerminalService { */ List deptGetLine(DeptGetLineParam deptGetLineParam); + List deptGetAllLine(DeptGetLineParam deptGetLineParam); + List deptGetLineByIdList(List monitorIds); - - - /** * 根据单位获取所有变电站 * @author cdf diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IRStatIntegrityDService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IRStatIntegrityDService.java index 9023dc9a2..6eaf6650b 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IRStatIntegrityDService.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IRStatIntegrityDService.java @@ -9,6 +9,7 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.LineBaseQueryParam; import com.njcn.device.pq.pojo.param.LineDataQualityParam; import com.njcn.device.pq.pojo.po.RStatIntegrityD; +import com.njcn.device.pq.pojo.vo.OnlineMonitorVo; import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate; import java.util.List; @@ -37,4 +38,6 @@ public interface IRStatIntegrityDService extends IMppService { Boolean saveOrUpdateData(List monitorIntegrityDTOList); DeviceOnlineRate getData(DeviceInfoParam.BusinessParam param); + + List getNoData(LineBaseQueryParam param); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/CommTerminalServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/CommTerminalServiceImpl.java index 675396989..31482f63e 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/CommTerminalServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/CommTerminalServiceImpl.java @@ -121,6 +121,45 @@ public class CommTerminalServiceImpl implements CommTerminalService { return result; } + @Override + public List deptGetAllLine(DeptGetLineParam deptGetLineParam) { + List result = new ArrayList<>(); + List temDept = getDeptChildrenByParent(deptGetLineParam); + Map deptMap = temDept.stream().collect(Collectors.toMap(DeptGetBase::getUnitId, DeptGetBase::getUnitName)); + Map> map = deptLineService.lineDevAllGet(filterDataTypeNew(deptGetLineParam.getServerName()), + 1,deptGetLineParam.getLineRunFlag(),deptGetLineParam.getIsUpToGrid()); + temDept.forEach(item -> { + DeptGetChildrenMoreDTO deptGetChildrenMoreDTO = new DeptGetChildrenMoreDTO(); + deptGetChildrenMoreDTO.setUnitId(item.getUnitId()); + deptGetChildrenMoreDTO.setUnitName(item.getUnitName()); + deptGetChildrenMoreDTO.setUnitChildrenList(item.getUnitChildrenList()); + deptGetChildrenMoreDTO.setDeptLevel(item.getDeptLevel()); + List deptIds = item.getUnitChildrenList(); + if (CollectionUtil.isNotEmpty(deptIds)) { + List lineList = new ArrayList<>(); + deptIds.forEach(i -> { + if (map.containsKey(i)) { + map.get(i).forEach(x->{ + if(deptMap.containsKey(x.getUnitId())){ + x.setUnitName(deptMap.get(x.getUnitId())); + } + }); + lineList.addAll(map.get(i)); + } + }); + + //去重 + ArrayList collect = lineList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>( + Comparator.comparing(LineDevGetDTO::getPointId) + )), ArrayList::new)); + + deptGetChildrenMoreDTO.setLineBaseList(collect); + } + result.add(deptGetChildrenMoreDTO); + }); + return result; + } + @Override public List deptGetLineByIdList(List monitorIds) { return lineMapper.getMonitorListDetail(monitorIds); diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RStatIntegrityDServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RStatIntegrityDServiceImpl.java index 155c6e186..13bc21ede 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RStatIntegrityDServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RStatIntegrityDServiceImpl.java @@ -4,7 +4,6 @@ package com.njcn.device.pq.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -26,6 +25,7 @@ import com.njcn.device.pq.pojo.po.RStatIntegrityD; import com.njcn.device.pq.pojo.po.RStatOnlinerateD; import com.njcn.device.pq.pojo.vo.LineDetailDataVO; import com.njcn.device.pq.pojo.vo.LineDetailVO; +import com.njcn.device.pq.pojo.vo.OnlineMonitorVo; import com.njcn.device.pq.pojo.vo.RStatIntegrityVO; import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate; import com.njcn.device.pq.service.IRStatIntegrityDService; @@ -196,6 +196,11 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl getNoData(LineBaseQueryParam param) { + return this.baseMapper.getNoData(param.getLineIds(), param.getStartTime(), param.getEndTime()); + } + private BigDecimal calculateIntegrityRate(List lineIntegrityRateInfo, List deviceIds) { List list = lineIntegrityRateInfo.stream().filter(x -> deviceIds.contains(x.getLineIndex())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(list)) { diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/DeptLineMapper.java b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/DeptLineMapper.java index 80a2725c7..fe7a50ccb 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/DeptLineMapper.java +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/DeptLineMapper.java @@ -74,6 +74,8 @@ public interface DeptLineMapper extends BaseMapper { List lineDevGet(@Param("list")List devType,@Param("type")Integer type,@Param("lineRunFlag") Integer lineRunFlag); + List lineDevAllGet(@Param("list")List devType,@Param("type")Integer type,@Param("lineRunFlag") Integer lineRunFlag, @Param("lineType") Integer lineType); + List orgSubStationGet(@Param("list")List devType); List orgSubStationInfoGet(@Param("list")List devType, diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/DeptLineMapper.xml b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/DeptLineMapper.xml index cedc0e354..85619f42d 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/DeptLineMapper.xml +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/DeptLineMapper.xml @@ -74,6 +74,71 @@ + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitTargetDMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitTargetDMapper.java index 08af3d3ac..e53426446 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitTargetDMapper.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitTargetDMapper.java @@ -66,6 +66,10 @@ public interface RStatLimitTargetDMapper extends BaseMapper @Param("startTime") String startTime, @Param("endTime") String endTime); + List getSumTargetDetails2(@Param("ids") List ids, + @Param("startTime") String startTime, + @Param("endTime") String endTime); + List getSumTargetCountDayes(@Param("ids") List ids, @Param("startTime") String startTime, @Param("endTime") String endTime); diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitTargetDMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitTargetDMapper.xml index 177cb6aff..2f0805d82 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitTargetDMapper.xml +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitTargetDMapper.xml @@ -491,6 +491,149 @@ GROUP BY time_id,my_index) A GROUP BY A.lineId + + + +