冀北一张图监测点界面接口
This commit is contained in:
@@ -12,16 +12,11 @@ import com.njcn.harmonic.pojo.vo.hebeinorth.EvaluationLevelVo;
|
||||
import com.njcn.harmonic.pojo.vo.hebeinorth.EvaluationVo;
|
||||
import com.njcn.harmonic.service.hebeinorth.IGridService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
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 org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -72,6 +67,20 @@ public class GridController extends BaseController {
|
||||
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)
|
||||
@PostMapping("/getEvaluationOverview")
|
||||
@ApiOperation("稳态电能质量水平评价概览数据")
|
||||
@@ -121,4 +130,18 @@ public class GridController extends BaseController {
|
||||
List<EvaluationLevelVo.QualifiedDetail> result = gridService.getQualifiedDetail(param);
|
||||
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);
|
||||
|
||||
/**
|
||||
* 监测点综合评估和各指标评估得分
|
||||
*/
|
||||
AssessDetailVo getLineAssess(String lineId, String startTime, String endTime);
|
||||
|
||||
/**
|
||||
* 查询稳态电能质量水平评价
|
||||
* @param param
|
||||
@@ -79,4 +85,10 @@ public interface IGridService {
|
||||
*/
|
||||
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.collection.CollUtil;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import com.njcn.common.utils.PubUtils;
|
||||
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||
@@ -35,6 +36,7 @@ import org.springframework.stereotype.Service;
|
||||
import java.time.LocalDate;
|
||||
import java.time.YearMonth;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.TemporalAdjusters;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
@@ -212,6 +214,27 @@ public class GridServiceImpl implements IGridService {
|
||||
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
|
||||
public EvaluationVo getEvaluationOverview(AssessParam param) {
|
||||
EvaluationVo result = new EvaluationVo();
|
||||
@@ -483,11 +506,15 @@ public class GridServiceImpl implements IGridService {
|
||||
if (map.containsKey(item.getId())) {
|
||||
RStatLimitRateDPO item2 = map.get(item.getId());
|
||||
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())));
|
||||
if (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.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);
|
||||
@@ -500,6 +527,26 @@ public class GridServiceImpl implements IGridService {
|
||||
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相最大值
|
||||
*/
|
||||
@@ -598,36 +645,7 @@ public class GridServiceImpl implements IGridService {
|
||||
if (CollUtil.isNotEmpty(list1)){
|
||||
List<RStatAssesDPO> list11 = list1.stream().filter(it->lineList.contains(it.getLineId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(list11)) {
|
||||
double vuDev = list11.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 = 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));
|
||||
this.chanelTargetAssess(list11,comAssess);
|
||||
}
|
||||
}
|
||||
//处理区域综合稳态评估
|
||||
@@ -679,6 +697,40 @@ public class GridServiceImpl implements IGridService {
|
||||
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