冀北一张图监测点界面接口

This commit is contained in:
xy
2024-05-04 18:15:17 +08:00
parent 8750b4f35f
commit 5bd554172b
5 changed files with 135 additions and 42 deletions

View File

@@ -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;
} }

View File

@@ -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());

View File

@@ -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);
}
} }

View File

@@ -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);
} }

View File

@@ -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,12 +506,16 @@ 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) {
if (item2.getAllTime() > 0) {
qualifiedDetail.setFreqDev(PubUtils.doubleRound(2,100.0-(item2.getFreqDevOvertime()*100.0/item2.getAllTime()))); 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.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.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()))); 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));
}
/** /**
* 获取综合评估等级 * 获取综合评估等级
*/ */