冀北一张图监测点界面接口
This commit is contained in:
@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
|
|||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author denghuajun
|
* @author denghuajun
|
||||||
* @date 2022/2/23
|
* @date 2022/2/23
|
||||||
@@ -107,4 +109,7 @@ public class LineDetailDataVO {
|
|||||||
@ApiModelProperty(name = "ptPhaseType",value = "监测点接线相别(0,单相,1,三相,默认三相)")
|
@ApiModelProperty(name = "ptPhaseType",value = "监测点接线相别(0,单相,1,三相,默认三相)")
|
||||||
private Integer ptPhaseType;
|
private Integer ptPhaseType;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "投运日期")
|
||||||
|
private LocalDate loginTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -137,6 +137,7 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
|||||||
lineDetailDataVO.setComFlag(PubUtils.comFlag(device.getComFlag()));
|
lineDetailDataVO.setComFlag(PubUtils.comFlag(device.getComFlag()));
|
||||||
lineDetailDataVO.setRunFlag(PubUtils.runFlag(device.getRunFlag()));
|
lineDetailDataVO.setRunFlag(PubUtils.runFlag(device.getRunFlag()));
|
||||||
lineDetailDataVO.setIp(device.getIp());
|
lineDetailDataVO.setIp(device.getIp());
|
||||||
|
lineDetailDataVO.setLoginTime(device.getLoginTime());
|
||||||
lineDetailDataVO.setBusinessType(dicDataFeignClient.getDicDataById(lineDetail.getBusinessType()).getData().getName());
|
lineDetailDataVO.setBusinessType(dicDataFeignClient.getDicDataById(lineDetail.getBusinessType()).getData().getName());
|
||||||
lineDetailDataVO.setLoadType(dicDataFeignClient.getDicDataById(lineDetail.getLoadType()).getData().getName());
|
lineDetailDataVO.setLoadType(dicDataFeignClient.getDicDataById(lineDetail.getLoadType()).getData().getName());
|
||||||
lineDetailDataVO.setObjName(lineDetail.getObjName());
|
lineDetailDataVO.setObjName(lineDetail.getObjName());
|
||||||
|
|||||||
@@ -12,16 +12,11 @@ import com.njcn.harmonic.pojo.vo.hebeinorth.EvaluationLevelVo;
|
|||||||
import com.njcn.harmonic.pojo.vo.hebeinorth.EvaluationVo;
|
import com.njcn.harmonic.pojo.vo.hebeinorth.EvaluationVo;
|
||||||
import com.njcn.harmonic.service.hebeinorth.IGridService;
|
import com.njcn.harmonic.service.hebeinorth.IGridService;
|
||||||
import com.njcn.web.controller.BaseController;
|
import com.njcn.web.controller.BaseController;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.*;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
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;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -72,6 +67,20 @@ public class GridController extends BaseController {
|
|||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/getLineAssess")
|
||||||
|
@ApiOperation("监测点评估")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "lineId", value = "监测点id"),
|
||||||
|
@ApiImplicitParam(name = "startTime", value = "开始时间"),
|
||||||
|
@ApiImplicitParam(name = "endTime", value = "结束时间")
|
||||||
|
})
|
||||||
|
public HttpResult<AssessDetailVo> getLineAssess(@RequestParam(value = "lineId") String lineId, @RequestParam(value = "startTime") String startTime, @RequestParam(value = "endTime") String endTime){
|
||||||
|
String methodDescribe = getMethodDescribe("getLineAssess");
|
||||||
|
AssessDetailVo vo = gridService.getLineAssess(lineId,startTime,endTime);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, vo, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/getEvaluationOverview")
|
@PostMapping("/getEvaluationOverview")
|
||||||
@ApiOperation("稳态电能质量水平评价概览数据")
|
@ApiOperation("稳态电能质量水平评价概览数据")
|
||||||
@@ -121,4 +130,18 @@ public class GridController extends BaseController {
|
|||||||
List<EvaluationLevelVo.QualifiedDetail> result = gridService.getQualifiedDetail(param);
|
List<EvaluationLevelVo.QualifiedDetail> result = gridService.getQualifiedDetail(param);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/lineQualifiedDetail")
|
||||||
|
@ApiOperation("监测点稳态指标合格率详情")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "lineId", value = "监测点id"),
|
||||||
|
@ApiImplicitParam(name = "startTime", value = "开始时间"),
|
||||||
|
@ApiImplicitParam(name = "endTime", value = "结束时间")
|
||||||
|
})
|
||||||
|
public HttpResult<EvaluationLevelVo.QualifiedDetail> getLineQualifiedDetail(@RequestParam(value = "lineId") String lineId, @RequestParam(value = "startTime") String startTime, @RequestParam(value = "endTime") String endTime){
|
||||||
|
String methodDescribe = getMethodDescribe("getLineQualifiedDetail");
|
||||||
|
EvaluationLevelVo.QualifiedDetail result = gridService.getLineQualifiedDetail(lineId,startTime,endTime);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,12 @@ public interface IGridService {
|
|||||||
* 综合评估趋势数据(当前时间统计前三个月时间)
|
* 综合评估趋势数据(当前时间统计前三个月时间)
|
||||||
*/
|
*/
|
||||||
List<AssessVo.AssessTrendVo> getAssessTrend(AssessParam param);
|
List<AssessVo.AssessTrendVo> getAssessTrend(AssessParam param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监测点综合评估和各指标评估得分
|
||||||
|
*/
|
||||||
|
AssessDetailVo getLineAssess(String lineId, String startTime, String endTime);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询稳态电能质量水平评价
|
* 查询稳态电能质量水平评价
|
||||||
* @param param
|
* @param param
|
||||||
@@ -79,4 +85,10 @@ public interface IGridService {
|
|||||||
*/
|
*/
|
||||||
List<EvaluationLevelVo.QualifiedDetail> getQualifiedDetail(AssessParam param);
|
List<EvaluationLevelVo.QualifiedDetail> getQualifiedDetail(AssessParam param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监测点稳态指标超标合格率详情
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
EvaluationLevelVo.QualifiedDetail getLineQualifiedDetail(String lineId, String startTime, String endTime);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.njcn.harmonic.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
import com.njcn.common.utils.PubUtils;
|
import com.njcn.common.utils.PubUtils;
|
||||||
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
@@ -35,6 +36,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.YearMonth;
|
import java.time.YearMonth;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.time.temporal.TemporalAdjusters;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
@@ -212,6 +214,27 @@ public class GridServiceImpl implements IGridService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AssessDetailVo getLineAssess(String lineId, String startTime, String endTime) {
|
||||||
|
AssessDetailVo vo = new AssessDetailVo();
|
||||||
|
vo.setDeptId(lineId);
|
||||||
|
List<String> lineList = Collections.singletonList(lineId);
|
||||||
|
//获取监测点r_stat_asses_d数据 各指标评估
|
||||||
|
List<RStatAssesDPO> list1 = rStatAssesDMapper.getData(startTime,endTime,lineList);
|
||||||
|
//获取监测点r_stat_comasses_d数据 综合评估
|
||||||
|
List<PQSComAssesPO> list2 = rStatComassesDMapper.getAvgCount(lineList,startTime,endTime);
|
||||||
|
if (CollUtil.isNotEmpty(list1)) {
|
||||||
|
this.chanelTargetAssess(list1,vo);
|
||||||
|
}
|
||||||
|
if (CollUtil.isNotEmpty(list2)) {
|
||||||
|
List<PqsComasses> communicateList = BeanUtil.copyToList(list2,PqsComasses.class);
|
||||||
|
float synData = comAssesUtil.getAllComAss(communicateList);
|
||||||
|
vo.setAssessData(PubUtils.floatRound(2,synData));
|
||||||
|
vo.setAssessLevel(getLevel(synData));
|
||||||
|
}
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EvaluationVo getEvaluationOverview(AssessParam param) {
|
public EvaluationVo getEvaluationOverview(AssessParam param) {
|
||||||
EvaluationVo result = new EvaluationVo();
|
EvaluationVo result = new EvaluationVo();
|
||||||
@@ -483,11 +506,15 @@ public class GridServiceImpl implements IGridService {
|
|||||||
if (map.containsKey(item.getId())) {
|
if (map.containsKey(item.getId())) {
|
||||||
RStatLimitRateDPO item2 = map.get(item.getId());
|
RStatLimitRateDPO item2 = map.get(item.getId());
|
||||||
if (!Objects.isNull(item2) && item2.getAllTime() > 0) {
|
if (!Objects.isNull(item2) && item2.getAllTime() > 0) {
|
||||||
qualifiedDetail.setFreqDev(PubUtils.doubleRound(2,100.0-(item2.getFreqDevOvertime()*100.0/item2.getAllTime())));
|
if (item2.getAllTime() > 0) {
|
||||||
qualifiedDetail.setVDev(PubUtils.doubleRound(2,100.0-(item2.getVoltageDevOvertime()*100.0/item2.getAllTime())));
|
qualifiedDetail.setFreqDev(PubUtils.doubleRound(2,100.0-(item2.getFreqDevOvertime()*100.0/item2.getAllTime())));
|
||||||
qualifiedDetail.setVThd(PubUtils.doubleRound(2,100.0-(item2.getVoltageDevOvertime()*100.0/item2.getAllTime())));
|
qualifiedDetail.setVDev(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.setVThd(PubUtils.doubleRound(2,100.0-(item2.getVoltageDevOvertime()*100.0/item2.getAllTime())));
|
||||||
qualifiedDetail.setUbalance(PubUtils.doubleRound(2,100.0-(item2.getUbalanceOvertime()*100.0/item2.getAllTime())));
|
qualifiedDetail.setUbalance(PubUtils.doubleRound(2,100.0-(item2.getUbalanceOvertime()*100.0/item2.getAllTime())));
|
||||||
|
}
|
||||||
|
if (item2.getFlickerAllTime() > 0) {
|
||||||
|
qualifiedDetail.setPlt(PubUtils.doubleRound(2,100.0-(item2.getFlickerOvertime()*100.0/item2.getFlickerAllTime())));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
result.add(qualifiedDetail);
|
result.add(qualifiedDetail);
|
||||||
@@ -500,6 +527,26 @@ public class GridServiceImpl implements IGridService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EvaluationLevelVo.QualifiedDetail getLineQualifiedDetail(String lineId, String startTime, String endTime) {
|
||||||
|
EvaluationLevelVo.QualifiedDetail detail = new EvaluationLevelVo.QualifiedDetail();
|
||||||
|
List<String> lineList = Collections.singletonList(lineId);
|
||||||
|
List<RStatLimitRateDPO> overLimitList = rStatLimitRateDMapper.getAssessTargetRate(lineList,startTime,endTime);
|
||||||
|
if (CollUtil.isNotEmpty(overLimitList)) {
|
||||||
|
RStatLimitRateDPO dpo = overLimitList.get(0);
|
||||||
|
if (dpo.getAllTime() > 0) {
|
||||||
|
detail.setFreqDev(PubUtils.doubleRound(2,100.0-(dpo.getFreqDevOvertime()*100.0/dpo.getAllTime())));
|
||||||
|
detail.setVDev(PubUtils.doubleRound(2,100.0-(dpo.getVoltageDevOvertime()*100.0/dpo.getAllTime())));
|
||||||
|
detail.setVThd(PubUtils.doubleRound(2,100.0-(dpo.getVoltageDevOvertime()*100.0/dpo.getAllTime())));
|
||||||
|
detail.setUbalance(PubUtils.doubleRound(2,100.0-(dpo.getUbalanceOvertime()*100.0/dpo.getAllTime())));
|
||||||
|
}
|
||||||
|
if (dpo.getFlickerAllTime() > 0) {
|
||||||
|
detail.setPlt(PubUtils.doubleRound(2,100.0-(dpo.getFlickerOvertime()*100.0/dpo.getFlickerAllTime())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return detail;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取监测点频率偏差 T相最大值\获取监测点三相电压不平衡度 T相最大值
|
* 获取监测点频率偏差 T相最大值\获取监测点三相电压不平衡度 T相最大值
|
||||||
*/
|
*/
|
||||||
@@ -598,36 +645,7 @@ public class GridServiceImpl implements IGridService {
|
|||||||
if (CollUtil.isNotEmpty(list1)){
|
if (CollUtil.isNotEmpty(list1)){
|
||||||
List<RStatAssesDPO> list11 = list1.stream().filter(it->lineList.contains(it.getLineId())).collect(Collectors.toList());
|
List<RStatAssesDPO> list11 = list1.stream().filter(it->lineList.contains(it.getLineId())).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(list11)) {
|
if (CollUtil.isNotEmpty(list11)) {
|
||||||
double vuDev = list11.stream()
|
this.chanelTargetAssess(list11,comAssess);
|
||||||
.mapToDouble(RStatAssesDPO::getVuDev)
|
|
||||||
.average()
|
|
||||||
.orElse(0.0);
|
|
||||||
comAssess.setVDevAssessData(PubUtils.doubleRound(2,vuDev));
|
|
||||||
comAssess.setVDevAssessLevel(getLevel(vuDev,0f,2.5f,5f,7.5f,10f,12.5f,15f,17.5f));
|
|
||||||
double freqDev = list11.stream()
|
|
||||||
.mapToDouble(RStatAssesDPO::getFreqDev)
|
|
||||||
.average()
|
|
||||||
.orElse(0.0);
|
|
||||||
comAssess.setFreqAssessData(PubUtils.doubleRound(2,freqDev));
|
|
||||||
comAssess.setFreqAssessLevel(getLevel(freqDev,0f,0.05f,0.1f,0.15f,0.2f,0.25f,0.30f,0.35f));
|
|
||||||
double dataPlt = list11.stream()
|
|
||||||
.mapToDouble(RStatAssesDPO::getDataPlt)
|
|
||||||
.average()
|
|
||||||
.orElse(0.0);
|
|
||||||
comAssess.setFlickerAssessData(PubUtils.doubleRound(2,dataPlt));
|
|
||||||
comAssess.setFlickerAssessLevel(getLevel(dataPlt,0f,0.05f,0.1f,0.15f,0.2f,0.25f,0.30f,0.35f));
|
|
||||||
double vUnbalanceCp95 = list11.stream()
|
|
||||||
.mapToDouble(RStatAssesDPO::getVUnbalanceCp95)
|
|
||||||
.average()
|
|
||||||
.orElse(0.0);
|
|
||||||
comAssess.setUnbalanceAssessData(PubUtils.doubleRound(2,vUnbalanceCp95));
|
|
||||||
comAssess.setUnbalanceAssessLevel(getLevel(vUnbalanceCp95,0f,0.5f,1f,1.5f,2f,2.5f,3f,3.5f));
|
|
||||||
double vThdCp95 = list11.stream()
|
|
||||||
.mapToDouble(RStatAssesDPO::getVThdCp95)
|
|
||||||
.average()
|
|
||||||
.orElse(0.0);
|
|
||||||
comAssess.setHarmAssessData(PubUtils.doubleRound(2,vThdCp95));
|
|
||||||
comAssess.setHarmAssessLevel(getLevel(vThdCp95,0f,0.5f,1f,1.5f,2f,2.5f,3f,3.5f));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//处理区域综合稳态评估
|
//处理区域综合稳态评估
|
||||||
@@ -679,6 +697,40 @@ public class GridServiceImpl implements IGridService {
|
|||||||
return comAssess;
|
return comAssess;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void chanelTargetAssess(List<RStatAssesDPO> list, AssessDetailVo comAssess) {
|
||||||
|
double vuDev = list.stream()
|
||||||
|
.mapToDouble(RStatAssesDPO::getVuDev)
|
||||||
|
.average()
|
||||||
|
.orElse(0.0);
|
||||||
|
comAssess.setVDevAssessData(PubUtils.doubleRound(2,vuDev));
|
||||||
|
comAssess.setVDevAssessLevel(getLevel(vuDev,0f,2.5f,5f,7.5f,10f,12.5f,15f,17.5f));
|
||||||
|
double freqDev = list.stream()
|
||||||
|
.mapToDouble(RStatAssesDPO::getFreqDev)
|
||||||
|
.average()
|
||||||
|
.orElse(0.0);
|
||||||
|
comAssess.setFreqAssessData(PubUtils.doubleRound(2,freqDev));
|
||||||
|
comAssess.setFreqAssessLevel(getLevel(freqDev,0f,0.05f,0.1f,0.15f,0.2f,0.25f,0.30f,0.35f));
|
||||||
|
double dataPlt = list.stream()
|
||||||
|
.mapToDouble(RStatAssesDPO::getDataPlt)
|
||||||
|
.average()
|
||||||
|
.orElse(0.0);
|
||||||
|
comAssess.setFlickerAssessData(PubUtils.doubleRound(2,dataPlt));
|
||||||
|
comAssess.setFlickerAssessLevel(getLevel(dataPlt,0f,0.05f,0.1f,0.15f,0.2f,0.25f,0.30f,0.35f));
|
||||||
|
double vUnbalanceCp95 = list.stream()
|
||||||
|
.mapToDouble(RStatAssesDPO::getVUnbalanceCp95)
|
||||||
|
.average()
|
||||||
|
.orElse(0.0);
|
||||||
|
comAssess.setUnbalanceAssessData(PubUtils.doubleRound(2,vUnbalanceCp95));
|
||||||
|
comAssess.setUnbalanceAssessLevel(getLevel(vUnbalanceCp95,0f,0.5f,1f,1.5f,2f,2.5f,3f,3.5f));
|
||||||
|
double vThdCp95 = list.stream()
|
||||||
|
.mapToDouble(RStatAssesDPO::getVThdCp95)
|
||||||
|
.average()
|
||||||
|
.orElse(0.0);
|
||||||
|
comAssess.setHarmAssessData(PubUtils.doubleRound(2,vThdCp95));
|
||||||
|
comAssess.setHarmAssessLevel(getLevel(vThdCp95,0f,0.5f,1f,1.5f,2f,2.5f,3f,3.5f));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取综合评估等级
|
* 获取综合评估等级
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user