diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml index ad55e32ba..0fd77cba6 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml @@ -426,54 +426,100 @@ diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/hebeinorth/AssessParam.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/hebeinorth/AssessParam.java index 443f257cf..cc4687776 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/hebeinorth/AssessParam.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/hebeinorth/AssessParam.java @@ -18,7 +18,7 @@ public class AssessParam { @ApiModelProperty("部门id") @NotBlank(message = "部门索引不可为空") - private String deptId; + private String deptIndex; @ApiModelProperty("起始时间") @NotBlank(message = "起始时间不可为空") @@ -30,7 +30,7 @@ public class AssessParam { @ApiModelProperty("监测点类型- 0:冀北 1:国网上报") @NotNull(message = "监测点类型不可为空") - private Integer lineType; + private Integer isUpToGrid; @ApiModelProperty("稳态类型-全指标、电压偏差、频率偏差、电压总谐波畸变率、电压闪变、三相电压不平衡度") private Integer harmonicType; diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/hebeinorth/EvaluationLevelVo.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/hebeinorth/EvaluationLevelVo.java index 8ae61af41..e84e73e8f 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/hebeinorth/EvaluationLevelVo.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/hebeinorth/EvaluationLevelVo.java @@ -73,4 +73,29 @@ public class EvaluationLevelVo { private Integer overDay; } + @Data + public static class QualifiedDetail { + + @ApiModelProperty("监测点名称") + private String lineName; + + @ApiModelProperty("变电站名称") + private String substationName; + + @ApiModelProperty("频率偏差合格率") + private Double freqDev = 3.14159; + + @ApiModelProperty("电压偏差合格率") + private Double vDev = 3.14159; + + @ApiModelProperty("电压总谐波畸变率合格率") + private Double vThd = 3.14159; + + @ApiModelProperty("三相电压不平衡度合格率") + private Double ubalance = 3.14159; + + @ApiModelProperty("闪变合格率") + private Double plt = 3.14159; + } + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/hebeinorth/GridController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/hebeinorth/GridController.java index 4699a8837..3c499e133 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/hebeinorth/GridController.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/hebeinorth/GridController.java @@ -102,4 +102,14 @@ public class GridController extends BaseController { List result = gridService.getEvaluationDetail(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/qualifiedDetail") + @ApiOperation("稳态指标合格率详情") + @ApiImplicitParam(name = "param", value = "参数", required = true) + public HttpResult> getQualifiedDetail(@RequestBody @Validated AssessParam param){ + String methodDescribe = getMethodDescribe("getQualifiedDetail"); + List result = gridService.getQualifiedDetail(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/hebeinorth/IGridService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/hebeinorth/IGridService.java index 91ee2b479..f8707e8d4 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/hebeinorth/IGridService.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/hebeinorth/IGridService.java @@ -67,4 +67,11 @@ public interface IGridService { */ List getEvaluationDetail(AssessParam param); + /** + * 稳态指标超标合格率详情 + * @param param + * @return + */ + List getQualifiedDetail(AssessParam param); + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/GridServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/GridServiceImpl.java index 9879183c6..351b2a733 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/GridServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/GridServiceImpl.java @@ -7,7 +7,9 @@ import com.njcn.device.biz.commApi.CommTerminalGeneralClient; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO; import com.njcn.device.biz.pojo.param.DeptGetLineParam; +import com.njcn.device.pq.api.GeneralDeviceInfoClient; import com.njcn.device.pq.api.LineFeignClient; +import com.njcn.device.pq.pojo.bo.BaseLineInfo; import com.njcn.device.pq.pojo.po.LineDetail; import com.njcn.harmonic.mapper.*; import com.njcn.harmonic.pojo.param.hebeinorth.AssessParam; @@ -54,12 +56,13 @@ public class GridServiceImpl implements IGridService { private final RStatDataVDMapper statDataVDMapper; private final RStatDataPltDMapper statDataPltDMapper; private final RStatLimitTargetDMapper rStatLimitTargetDMapper; + private final GeneralDeviceInfoClient generalDeviceInfoClient; @Override public List getAssessOverview(AssessParam param) { List result = new ArrayList<>(); DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); - deptGetLineParam.setDeptId(param.getDeptId()); + deptGetLineParam.setDeptId(param.getDeptIndex()); deptGetLineParam.setServerName("harmonic-boot"); List list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); //获取所有监测点 @@ -69,7 +72,7 @@ public class GridServiceImpl implements IGridService { .distinct() .collect(Collectors.toList()); //上报国网监测点 - if (Objects.equals(param.getLineType(), 1)){ + if (Objects.equals(param.getIsUpToGrid(), 1)){ List lineDetails = lineFeignClient.getLineDetail(lineList).getData(); lineList = lineDetails.stream().filter(o-> Objects.equals(o.getMonitorFlag(), 1)).map(LineDetail::getId).collect(Collectors.toList()); } @@ -102,7 +105,7 @@ public class GridServiceImpl implements IGridService { List result = new ArrayList<>(); //查询部门监测点关系 DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); - deptGetLineParam.setDeptId(param.getDeptId()); + deptGetLineParam.setDeptId(param.getDeptIndex()); deptGetLineParam.setServerName("harmonic-boot"); List list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); //获取所有监测点 @@ -112,7 +115,7 @@ public class GridServiceImpl implements IGridService { .distinct() .collect(Collectors.toList()); //上报国网监测点 - if (Objects.equals(param.getLineType(), 1)){ + if (Objects.equals(param.getIsUpToGrid(), 1)){ List lineDetails = lineFeignClient.getLineDetail(lineList).getData(); lineList = lineDetails.stream().filter(o-> Objects.equals(o.getMonitorFlag(), 1)).map(LineDetail::getId).collect(Collectors.toList()); } @@ -141,7 +144,7 @@ public class GridServiceImpl implements IGridService { List childrenList = new ArrayList<>(); DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); - deptGetLineParam.setDeptId(param.getDeptId()); + deptGetLineParam.setDeptId(param.getDeptIndex()); deptGetLineParam.setServerName("harmonic-boot"); List list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); //获取所有监测点 @@ -151,7 +154,7 @@ public class GridServiceImpl implements IGridService { .distinct() .collect(Collectors.toList()); //上报国网监测点 - if (Objects.equals(param.getLineType(), 1)){ + if (Objects.equals(param.getIsUpToGrid(), 1)){ //获取国网监测点 List lineDetails = lineFeignClient.getLineDetail(lineList).getData(); lineList = lineDetails.stream().filter(o-> Objects.equals(o.getMonitorFlag(), 1)).map(LineDetail::getId).collect(Collectors.toList()); @@ -190,7 +193,7 @@ public class GridServiceImpl implements IGridService { public List getEvaluationData(AssessParam param) { List result = new ArrayList<>(); DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); - deptGetLineParam.setDeptId(param.getDeptId()); + deptGetLineParam.setDeptId(param.getDeptIndex()); deptGetLineParam.setServerName("harmonic-boot"); List list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); //获取符合电压等级的监测点 @@ -201,7 +204,7 @@ public class GridServiceImpl implements IGridService { //监测点处理 List line = new ArrayList<>(); if (CollUtil.isNotEmpty(lineList)) { - if (Objects.equals(param.getLineType(), 1)) { + if (Objects.equals(param.getIsUpToGrid(), 1)) { line = lineList.stream().filter(o->Objects.equals(o.getIsUpToGrid(), 1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList()); } else { line = lineList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); @@ -267,7 +270,7 @@ public class GridServiceImpl implements IGridService { public List evaluationRatio(AssessParam param) { List result = new ArrayList<>(); DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); - deptGetLineParam.setDeptId(param.getDeptId()); + deptGetLineParam.setDeptId(param.getDeptIndex()); deptGetLineParam.setServerName("harmonic-boot"); List list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); //获取所有监测点数据 @@ -277,7 +280,7 @@ public class GridServiceImpl implements IGridService { //筛选监测点 List line = new ArrayList<>(); if (CollUtil.isNotEmpty(lineList)) { - if (Objects.equals(param.getLineType(), 1)) { + if (Objects.equals(param.getIsUpToGrid(), 1)) { line = lineList.stream().filter(o->Objects.equals(o.getIsUpToGrid(), 1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList()); } else { line = lineList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); @@ -317,7 +320,7 @@ public class GridServiceImpl implements IGridService { public List getEvaluationDetail(AssessParam param) { List result = new ArrayList<>(); DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); - deptGetLineParam.setDeptId(param.getDeptId()); + deptGetLineParam.setDeptId(param.getDeptIndex()); deptGetLineParam.setServerName("harmonic-boot"); List list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); //获取所有监测点数据 @@ -327,7 +330,7 @@ public class GridServiceImpl implements IGridService { //筛选监测点 List line = new ArrayList<>(); if (CollUtil.isNotEmpty(lineList)) { - if (Objects.equals(param.getLineType(), 1)) { + if (Objects.equals(param.getIsUpToGrid(), 1)) { line = lineList.stream().filter(o->Objects.equals(o.getIsUpToGrid(), 1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList()); } else { line = lineList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); @@ -406,6 +409,50 @@ public class GridServiceImpl implements IGridService { return result; } + @Override + public List getQualifiedDetail(AssessParam param) { + List result = new ArrayList<>(); + DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); + deptGetLineParam.setDeptId(param.getDeptIndex()); + deptGetLineParam.setServerName("harmonic-boot"); + List list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); + //获取所有监测点数据 + Set lineList = list.stream() + .flatMap(item -> item.getLineBaseList().stream()) + .collect(Collectors.toSet()); + //筛选监测点 + List line = new ArrayList<>(); + if (CollUtil.isNotEmpty(lineList)) { + if (Objects.equals(param.getIsUpToGrid(), 1)) { + line = lineList.stream().filter(o->Objects.equals(o.getIsUpToGrid(), 1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + } else { + line = lineList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + } + } + //获取基础台账信息 + List baseLineInfos = generalDeviceInfoClient.getBaseLineInfo(line).getData(); + //获取越限详情 + List overLimitList = rStatLimitRateDMapper.getAssessTargetRate(line,param.getStartTime(),param.getEndTime()); + Map> map = overLimitList.stream().collect(Collectors.groupingBy(RStatLimitRateDPO::getLineId)); + baseLineInfos.forEach(item->{ + EvaluationLevelVo.QualifiedDetail qualifiedDetail = new EvaluationLevelVo.QualifiedDetail(); + qualifiedDetail.setLineName(item.getLineName()); + qualifiedDetail.setSubstationName(item.getSubName()); + if(CollUtil.isNotEmpty(map.get(item.getId()))) { + RStatLimitRateDPO item2 = map.get(item.getId()).get(0); + if (!Objects.isNull(item2) && item2.getAllTime() > 0) { + qualifiedDetail.setFreqDev(PubUtils.doubleRound(2,100.0-(item2.getFreqDevOvertime()*100.0/item2.getAllTime()))); + qualifiedDetail.setVDev(PubUtils.doubleRound(2,100.0-(item2.getVoltageDevOvertime()*100.0/item2.getAllTime()))); + qualifiedDetail.setVThd(PubUtils.doubleRound(2,100.0-(item2.getVoltageDevOvertime()*100.0/item2.getAllTime()))); + qualifiedDetail.setPlt(PubUtils.doubleRound(2,100.0-(item2.getFlickerOvertime()*100.0/item2.getAllTime()))); + qualifiedDetail.setUbalance(PubUtils.doubleRound(2,100.0-(item2.getUbalanceOvertime()*100.0/item2.getAllTime()))); + } + result.add(qualifiedDetail); + } + }); + return result; + } + /** * 获取监测点频率偏差 T相最大值\获取监测点三相电压不平衡度 T相最大值 */ diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/UserBootApplication.java b/pqs-user/user-boot/src/main/java/com/njcn/user/UserBootApplication.java index 7772a8573..7b8ae0d74 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/UserBootApplication.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/UserBootApplication.java @@ -20,10 +20,8 @@ import org.springframework.context.annotation.DependsOn; @SpringBootApplication(scanBasePackages = "com.njcn") public class UserBootApplication { - public static void main(String[] args) { SpringApplication.run(UserBootApplication.class, args); } - }