代码调整

This commit is contained in:
2023-06-08 16:33:53 +08:00
parent ec6e27a4eb
commit 91df5cb181
20 changed files with 279 additions and 110 deletions

View File

@@ -213,11 +213,14 @@ public class COverlimitUtil {
private static float iHarmCalculate(int nHarm, Float voltageLevel,float protocolCapacity, float devCapacity,float calCap) { private static float iHarmCalculate(int nHarm, Float voltageLevel,float protocolCapacity, float devCapacity,float calCap) {
double tag = calCap*getHarmTag(nHarm,voltageLevel); double tag = calCap*getHarmTag(nHarm,voltageLevel);
Double limit = getHarmonicLimit(nHarm,tag,new BigDecimal(String.valueOf(devCapacity)).doubleValue(),new BigDecimal(String.valueOf(protocolCapacity)).doubleValue()); Double limit = getHarmonicLimit(nHarm,tag,new BigDecimal(String.valueOf(devCapacity)).doubleValue(),new BigDecimal(String.valueOf(protocolCapacity)).doubleValue());
BigDecimal bigDecimal = new BigDecimal(limit).setScale(4,RoundingMode.HALF_UP); BigDecimal bigDecimal = BigDecimal.valueOf(limit).setScale(4,RoundingMode.HALF_UP);
return bigDecimal.floatValue(); return bigDecimal.floatValue();
} }
//电流谐波限值
/**
* 电流谐波限值
*/
private static Double getHarmTag(Integer iCount, Float voltageLevel) { private static Double getHarmTag(Integer iCount, Float voltageLevel) {
int x, y; int x, y;
if (voltageLevel < DicDataEnum.KV6.getValue()) { if (voltageLevel < DicDataEnum.KV6.getValue()) {

View File

@@ -7,7 +7,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.LogUtil; import com.njcn.common.utils.LogUtil;
import com.njcn.device.pms.service.DeptLineService; import com.njcn.device.pms.service.ledgerManger.DeptLineService;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import com.njcn.web.pojo.param.DeptLineParam; import com.njcn.web.pojo.param.DeptLineParam;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;

View File

@@ -20,17 +20,17 @@ import com.njcn.device.pms.service.majornetwork.IMonitorService;
import com.njcn.device.biz.pojo.po.Overlimit; import com.njcn.device.biz.pojo.po.Overlimit;
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.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
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.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.io.File;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@@ -283,6 +283,22 @@ public class PmsMonitorController extends BaseController {
} }
/**
* oracle系统监测点转mysql主网监测点
* @author cdf
* @date 2023/6/8
*/
@PostMapping("/importOracleLedgerToMysql")
@ApiOperation("获取台账和终端信息(波形专用)")
@ApiImplicitParam(name = "param", value = "主网监测点实体", required = true)
public void importOracleLedgerToMysql(@ApiParam(value = "文件", required = true) @RequestPart("file") MultipartFile file, HttpServletResponse response) {
String methodDescribe = getMethodDescribe("importOracleLedgerToMysql");
monitorService.importOracleLedgerToMysql(file,response);
}
} }

View File

@@ -1,4 +1,4 @@
package com.njcn.device.pms.service; package com.njcn.device.pms.service.ledgerManger;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.pq.pojo.po.DeptLine; import com.njcn.device.pq.pojo.po.DeptLine;

View File

@@ -1,6 +1,5 @@
package com.njcn.device.pms.service.ledgerManger.impl; package com.njcn.device.pms.service.ledgerManger.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.enums.common.ServerEnum; import com.njcn.common.pojo.enums.common.ServerEnum;
@@ -15,7 +14,7 @@ import com.njcn.device.biz.utils.COverlimitUtil;
import com.njcn.device.pms.mapper.majornetwork.*; import com.njcn.device.pms.mapper.majornetwork.*;
import com.njcn.device.pms.pojo.dto.PmsMonitorBaseDTO; import com.njcn.device.pms.pojo.dto.PmsMonitorBaseDTO;
import com.njcn.device.pms.pojo.po.*; import com.njcn.device.pms.pojo.po.*;
import com.njcn.device.pms.service.DeptLineService; import com.njcn.device.pms.service.ledgerManger.DeptLineService;
import com.njcn.device.pms.service.ledgerManger.CommTerminalService; import com.njcn.device.pms.service.ledgerManger.CommTerminalService;
import com.njcn.redis.utils.RedisUtil; import com.njcn.redis.utils.RedisUtil;
import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.DicDataFeignClient;

View File

@@ -1,10 +1,10 @@
package com.njcn.device.pms.service.impl; package com.njcn.device.pms.service.ledgerManger.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.device.pms.mapper.DeptLineMapper; import com.njcn.device.pms.mapper.DeptLineMapper;
import com.njcn.device.pq.pojo.po.DeptLine; import com.njcn.device.pq.pojo.po.DeptLine;
import com.njcn.device.pms.service.DeptLineService; import com.njcn.device.pms.service.ledgerManger.DeptLineService;
import com.njcn.web.pojo.param.DeptLineParam; import com.njcn.web.pojo.param.DeptLineParam;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@@ -13,8 +13,10 @@ import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.vo.MonitorVO; import com.njcn.device.pms.pojo.vo.MonitorVO;
import com.njcn.device.pms.pojo.vo.PmsMonitorVO; import com.njcn.device.pms.pojo.vo.PmsMonitorVO;
import com.njcn.device.biz.pojo.po.Overlimit; import com.njcn.device.biz.pojo.po.Overlimit;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
/** /**
@@ -144,5 +146,12 @@ public interface IMonitorService extends IService<Monitor> {
List<DeptGetChildrenDTO> deptMonitor(DeptGetLineParam param); List<DeptGetChildrenDTO> deptMonitor(DeptGetLineParam param);
/**
*
* @author cdf
* @date 2023/6/8
*/
void importOracleLedgerToMysql(MultipartFile file, HttpServletResponse response);
} }

View File

@@ -1,5 +1,8 @@
package com.njcn.device.pms.service.majornetwork.impl; package com.njcn.device.pms.service.majornetwork.impl;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -10,6 +13,7 @@ import com.njcn.common.pojo.dto.SimpleDTO;
import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO; import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.device.biz.pojo.param.DeptGetLineParam; import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.device.biz.utils.COverlimit; import com.njcn.device.biz.utils.COverlimit;
@@ -25,9 +29,12 @@ import com.njcn.device.pms.pojo.vo.MonitorVO;
import com.njcn.device.pms.pojo.vo.PmsMonitorVO; import com.njcn.device.pms.pojo.vo.PmsMonitorVO;
import com.njcn.device.pms.service.majornetwork.IDistributionMonitorService; import com.njcn.device.pms.service.majornetwork.IDistributionMonitorService;
import com.njcn.device.pms.service.majornetwork.IMonitorService; import com.njcn.device.pms.service.majornetwork.IMonitorService;
import com.njcn.device.pq.pojo.bo.excel.NodeExcel;
import com.njcn.device.pq.pojo.bo.excel.OverLimitExcel;
import com.njcn.device.pq.pojo.po.Line; import com.njcn.device.pq.pojo.po.Line;
import com.njcn.device.pq.pojo.po.LineDetail; import com.njcn.device.pq.pojo.po.LineDetail;
import com.njcn.device.pq.pojo.po.Voltage; import com.njcn.device.pq.pojo.po.Voltage;
import com.njcn.poi.util.PoiUtil;
import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
@@ -44,7 +51,9 @@ import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -369,6 +378,41 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
return deviceInfos; return deviceInfos;
} }
@Override
public void importOracleLedgerToMysql(MultipartFile file, HttpServletResponse response) {
/* ImportParams importParams = new ImportParams();
importParams.setHeadRows(1);
importParams.setTitleRows(1);
importParams.setNeedVerify(true);
try {
ExcelImportResult<OracleTerminalExcel> terminalExcelExcelImportResult = ExcelImportUtil.importExcelMore(file.getInputStream(), OracleTerminalExcel.class, importParams);
//如果存在非法数据,将不合格的数据导出
if (terminalExcelExcelImportResult.isVerifyFail()) {
PoiUtil.exportFileByWorkbook(terminalExcelExcelImportResult.getFailWorkbook(), "非法台账信息.xlsx", response);
} else {
//执行台账信息导入(不考虑,存在监测点却不存在限值信息)
}
} catch (Exception e) {
throw new BusinessException(DeviceResponseEnum.IMPORT_ORACLE_EXCEPTION);
}*/
}
/*private void dealData(List<OracleTerminalExcel> oracleTerminalExcelList){
List<DeptDTO> allDept = deptFeignClient.getDeptDescendantIndexes(deptFeignClient.getRootDept().getData().getId(),Stream.of(0,1,2).collect(Collectors.toList())).getData();
Map<String, DeptDTO> mapDept = allDept.stream().collect(Collectors.toMap(DeptDTO::getName,Function.identity()));
for(OracleTerminalExcel oracleTerminalExcel : oracleTerminalExcelList){
//单位
if(oracleTerminalExcel.get)
//电站
}
}*/
/** /**
* 获取主配网监测点id集合 * 获取主配网监测点id集合
* @param deptDTO * @param deptDTO

View File

@@ -152,9 +152,38 @@ public class LineParam {
@NotNull(message = "电压下偏差限值不能为空") @NotNull(message = "电压下偏差限值不能为空")
private Float uvoltageDev; private Float uvoltageDev;
@ApiModelProperty(name = "powerSubstationName",value = "电网侧变电站")
private String powerSubstationName;
/** /**
* 修改标识 * 分类等级
*/ */
@ApiModelProperty(name = "calssificationGrade",value = "分类等级")
private String calssificationGrade;
@ApiModelProperty(name = "superiorsSubstation",value = "上级电站")
private String superiorsSubstation;
@ApiModelProperty(name = "hangLine",value = "挂接线路")
private String hangLine;
@ApiModelProperty(name = "owner",value = "监测点拥有者")
private String owner;
@ApiModelProperty(name = "ownerDuty",value = "拥有者职务")
private String ownerDuty;
@ApiModelProperty(name = "ownerTel",value = "拥有者联系方式")
private String ownerTel;
@ApiModelProperty(name = "wiringDiagram",value = "接线图")
private String wiringDiagram;
@ApiModelProperty(name = "updateFlag",value = "修改标识") @ApiModelProperty(name = "updateFlag",value = "修改标识")
private Integer updateFlag; private Integer updateFlag;

View File

@@ -1,6 +1,7 @@
package com.njcn.device.pq.pojo.po; package com.njcn.device.pq.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -124,4 +125,45 @@ public class LineDetail{
private String remark; private String remark;
/**
* 电网侧变电站
*/
private String powerSubstationName;
/**
* 分类等级
*/
private String calssificationGrade;
/**
* 上级电站
*/
private String superiorsSubstation;
/**
* 挂接线路
*/
private String hangLine;
/**
* 监测点拥有者
*/
private String owner;
/**
* 拥有者职务
*/
private String ownerDuty;
/**
* 拥有者联系方式
*/
private String ownerTel;
/**
* 接线图
*/
private String wiringDiagram;
} }

View File

@@ -81,4 +81,28 @@ public class LineDetailDataVO {
@ApiModelProperty(name = "timeInterval",value = "测量间隔1-10分钟") @ApiModelProperty(name = "timeInterval",value = "测量间隔1-10分钟")
private Integer timeInterval; private Integer timeInterval;
/**
* 监测点拥有者
*/
@ApiModelProperty(name = "owner",value = "监测点拥有者")
private String owner;
/**
* 拥有者职务
*/
@ApiModelProperty(name = "ownerDuty",value = "拥有者职务")
private String ownerDuty;
/**
* 拥有者联系方式
*/
@ApiModelProperty(name = "ownerTel",value = "拥有者联系方式")
private String ownerTel;
/**
* 接线图
*/
@ApiModelProperty(name = "wiringDiagram",value = "接线图")
private String wiringDiagram;
} }

View File

@@ -502,6 +502,7 @@
detail.Short_Capacity, detail.Short_Capacity,
detail.Standard_Capacity, detail.Standard_Capacity,
detail.Deal_Capacity, detail.Deal_Capacity,
detail.Business_Type,
detail.Calssification_Grade, detail.Calssification_Grade,
detail.Superiors_Substation, detail.Superiors_Substation,
detail.Hang_Line, detail.Hang_Line,

View File

@@ -142,6 +142,10 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
lineDetailDataVO.setShortCapacity(lineDetail.getShortCapacity()); lineDetailDataVO.setShortCapacity(lineDetail.getShortCapacity());
lineDetailDataVO.setStandardCapacity(lineDetail.getStandardCapacity()); lineDetailDataVO.setStandardCapacity(lineDetail.getStandardCapacity());
lineDetailDataVO.setTimeInterval (lineDetail.getTimeInterval ()); lineDetailDataVO.setTimeInterval (lineDetail.getTimeInterval ());
lineDetailDataVO.setOwner(lineDetail.getOwner());
lineDetailDataVO.setOwnerDuty(lineDetail.getOwnerDuty());
lineDetailDataVO.setOwnerTel(lineDetail.getOwnerTel());
lineDetailDataVO.setWiringDiagram(lineDetail.getWiringDiagram());
return lineDetailDataVO; return lineDetailDataVO;
} }

View File

@@ -1,6 +1,7 @@
package com.njcn.harmonic.controller.report; package com.njcn.harmonic.controller.report;
import cn.hutool.core.date.TimeInterval; import cn.hutool.core.date.TimeInterval;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
@@ -50,10 +51,10 @@ public class QualifiedReport extends BaseController {
@PostMapping("/pageTable") @PostMapping("/pageTable")
@ApiOperation("合格率报告_列表") @ApiOperation("合格率报告_列表")
@ApiImplicitParam(name = "qualifiedReportParam", value = "合格率报告参数", required = true) @ApiImplicitParam(name = "qualifiedReportParam", value = "合格率报告参数", required = true)
public HttpResult<List<FpyReportDTO>> pageTable(@RequestBody @Validated QualifiedReportParam qualifiedReportParam) { public HttpResult<Page<FpyReportDTO>> pageTable(@RequestBody @Validated QualifiedReportParam qualifiedReportParam) {
TimeInterval timeInterval = new TimeInterval(); TimeInterval timeInterval = new TimeInterval();
String methodDescribe = getMethodDescribe("pageTable"); String methodDescribe = getMethodDescribe("pageTable");
List<FpyReportDTO> result = qualifiedReportService.pageTable(qualifiedReportParam); Page<FpyReportDTO> result = qualifiedReportService.pageTable(qualifiedReportParam);
log.info("合格率报告执行时长:"+timeInterval.interval()); log.info("合格率报告执行时长:"+timeInterval.interval());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);

View File

@@ -20,7 +20,7 @@ public interface QualifiedReportMapper {
* @author cdf * @author cdf
* @date 2023/6/8 * @date 2023/6/8
*/ */
List<Map<String,Object>> getLimitRateData(@Param("page") Page<List<Map<String,Object>>> page, @Param("lineIds")List<String> lineIds, @Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime); Page<Map<String,Object>> getLimitRateData(@Param("page") Page<List<Map<String,Object>>> page, @Param("lineIds")List<String> lineIds, @Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime);
/** /**
* *

View File

@@ -1,5 +1,6 @@
package com.njcn.harmonic.service.majornetwork; package com.njcn.harmonic.service.majornetwork;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.harmonic.pojo.dto.FpyReportDTO; import com.njcn.harmonic.pojo.dto.FpyReportDTO;
import com.njcn.harmonic.pojo.param.QualifiedReportParam; import com.njcn.harmonic.pojo.param.QualifiedReportParam;
@@ -21,5 +22,5 @@ public interface QualifiedReportService {
* @author cdf * @author cdf
* @date 2023/6/7 * @date 2023/6/7
*/ */
List<FpyReportDTO> pageTable(QualifiedReportParam qualifiedReportParam); Page<FpyReportDTO> pageTable(QualifiedReportParam qualifiedReportParam);
} }

View File

@@ -56,41 +56,39 @@ public class QualifiedReportServiceImpl implements QualifiedReportService {
private final OverLimitClient overLimitClient; private final OverLimitClient overLimitClient;
@Override @Override
public List<FpyReportDTO> pageTable(QualifiedReportParam qualifiedReportParam) { public Page<FpyReportDTO> pageTable(QualifiedReportParam qualifiedReportParam) {
Page<FpyReportDTO> pageResult = new Page<>(PageFactory.getPageNum(qualifiedReportParam), PageFactory.getPageSize(qualifiedReportParam));
List<FpyReportDTO> fpyReportDTOList = new ArrayList<>(); List<FpyReportDTO> fpyReportDTOList = new ArrayList<>();
List<String> lineIds = generalDeviceInfoClient.deptGetRunLine(qualifiedReportParam.getDeptId()).getData(); List<String> lineIds = generalDeviceInfoClient.deptGetRunLine(qualifiedReportParam.getDeptId()).getData();
if (CollUtil.isEmpty(lineIds)) { if (CollUtil.isEmpty(lineIds)) {
return fpyReportDTOList; return pageResult;
} }
LineBaseQueryParam lineBaseQueryParam = new LineBaseQueryParam(); LineBaseQueryParam lineBaseQueryParam = new LineBaseQueryParam();
lineBaseQueryParam.setLineIds(lineIds); lineBaseQueryParam.setLineIds(lineIds);
lineBaseQueryParam.setSearchValue(qualifiedReportParam.getSearchValue()); lineBaseQueryParam.setSearchValue(qualifiedReportParam.getSearchValue());
List<AreaLineInfoVO> areaLineInfoVOList = lineFeignClient.getRichLineInfo(lineBaseQueryParam).getData(); List<AreaLineInfoVO> areaLineInfoVOList = lineFeignClient.getRichLineInfo(lineBaseQueryParam).getData();
if(CollUtil.isEmpty(areaLineInfoVOList)){
return pageResult;
}
List<String> lineNewIds = areaLineInfoVOList.stream().map(AreaLineInfoVO::getLineId).distinct().collect(Collectors.toList()); List<String> lineNewIds = areaLineInfoVOList.stream().map(AreaLineInfoVO::getLineId).distinct().collect(Collectors.toList());
Map<String, AreaLineInfoVO> lineMap = areaLineInfoVOList.stream().collect(Collectors.toMap(AreaLineInfoVO::getLineId, Function.identity())); Map<String, AreaLineInfoVO> lineMap = areaLineInfoVOList.stream().collect(Collectors.toMap(AreaLineInfoVO::getLineId, Function.identity()));
List<Map<String,Object>> limitMap = qualifiedReportMapper.getLimitRateData(new Page<>(PageFactory.getPageNum(qualifiedReportParam),PageFactory.getPageSize(qualifiedReportParam)),lineNewIds, PubUtils.beginTimeToLocalDateTime(qualifiedReportParam.getBeginTime()),PubUtils.endTimeToLocalDateTime(qualifiedReportParam.getEndTime())); Page<Map<String, Object>> page = qualifiedReportMapper.getLimitRateData(new Page<>(PageFactory.getPageNum(qualifiedReportParam), PageFactory.getPageSize(qualifiedReportParam)), lineNewIds, PubUtils.beginTimeToLocalDateTime(qualifiedReportParam.getBeginTime()), PubUtils.endTimeToLocalDateTime(qualifiedReportParam.getEndTime()));
List<String> realLineIds = limitMap.stream().map(item->item.get("my_index").toString()).distinct().collect(Collectors.toList()); if (CollUtil.isNotEmpty(page.getRecords())) {
List<String> realLineIds = page.getRecords().stream().map(item -> item.get("my_index").toString()).distinct().collect(Collectors.toList());
List<Map<String, Object>> dayIhMapList = qualifiedReportMapper.getLimitRateDataIHarm(lineIds, qualifiedReportParam.getBeginTime(), qualifiedReportParam.getEndTime()); List<Map<String, Object>> dayIhMapList = qualifiedReportMapper.getLimitRateDataIHarm(lineIds, qualifiedReportParam.getBeginTime(), qualifiedReportParam.getEndTime());
Map<String, Map<String, Object>> mapMap = dayIhMapList.stream().collect(Collectors.toMap(it -> it.get("MYINDEX").toString(), Function.identity())); Map<String, Map<String, Object>> mapMap = dayIhMapList.stream().collect(Collectors.toMap(it -> it.get("MYINDEX").toString(), Function.identity()));
if(CollUtil.isNotEmpty(limitMap)){
}
List<RStatIntegrityD> rStatIntegrityList = lineIntegrityClient.getIntegrityByLineIds(realLineIds, qualifiedReportParam.getBeginTime(), qualifiedReportParam.getEndTime()).getData(); List<RStatIntegrityD> rStatIntegrityList = lineIntegrityClient.getIntegrityByLineIds(realLineIds, qualifiedReportParam.getBeginTime(), qualifiedReportParam.getEndTime()).getData();
Map<String, RStatIntegrityD> rStatIntegrityMap = rStatIntegrityList.stream().collect(Collectors.toMap(RStatIntegrityD::getLineIndex, Function.identity())); Map<String, RStatIntegrityD> rStatIntegrityMap = rStatIntegrityList.stream().collect(Collectors.toMap(RStatIntegrityD::getLineIndex, Function.identity()));
List<Overlimit> overLimitList = overLimitClient.getOverLimitByLineIds(realLineIds).getData(); List<Overlimit> overLimitList = overLimitClient.getOverLimitByLineIds(realLineIds).getData();
Map<String, Overlimit> overLimitMap = overLimitList.stream().collect(Collectors.toMap(Overlimit::getId, Function.identity())); Map<String, Overlimit> overLimitMap = overLimitList.stream().collect(Collectors.toMap(Overlimit::getId, Function.identity()));
for(Map<String, Object> map:limitMap){ for (Map<String, Object> map : page.getRecords()) {
String lineId = map.get("my_index").toString(); String lineId = map.get("my_index").toString();
Map<String, Object> mapOverLimit = new HashMap<>(); Map<String, Object> mapOverLimit = new HashMap<>();
try { try {
@@ -98,20 +96,17 @@ public class QualifiedReportServiceImpl implements QualifiedReportService {
} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { } catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
e.printStackTrace(); e.printStackTrace();
} }
//获取平均值的最大值 //获取平均值的最大值
Map<String, Object> iM = mapMap.get(lineId); Map<String, Object> iM = mapMap.get(lineId);
FpyTagContent fpyTagContent = calAllTag(map, mapOverLimit, iM); FpyTagContent fpyTagContent = calAllTag(map, mapOverLimit, iM);
FpyReportDTO fpyReportData = new FpyReportDTO(); FpyReportDTO fpyReportData = new FpyReportDTO();
if (lineMap.containsKey(lineId)) { if (lineMap.containsKey(lineId)) {
AreaLineInfoVO areaLineInfoVO = lineMap.get(lineId); AreaLineInfoVO areaLineInfoVO = lineMap.get(lineId);
BeanUtil.copyProperties(areaLineInfoVO, fpyReportData); BeanUtil.copyProperties(areaLineInfoVO, fpyReportData);
fpyReportData.setHarmDes(fpyTagContent.getPassFlag()); fpyReportData.setHarmDes(fpyTagContent.getPassFlag());
fpyReportData.setPowerDes(fpyTagContent.getContent()); fpyReportData.setPowerDes(fpyTagContent.getContent());
fpyReportDTOList.add(fpyReportData);
} }
if (rStatIntegrityMap.containsKey(lineId)) { if (rStatIntegrityMap.containsKey(lineId)) {
@@ -120,8 +115,12 @@ public class QualifiedReportServiceImpl implements QualifiedReportService {
} else { } else {
fpyReportData.setIntegrityValue(3.14159f); fpyReportData.setIntegrityValue(3.14159f);
} }
fpyReportDTOList.add(fpyReportData);
} }
return fpyReportDTOList; }
pageResult.setRecords(fpyReportDTOList);
pageResult.setTotal(page.getTotal());
return pageResult;
} }
/** /**
@@ -159,7 +158,7 @@ public class QualifiedReportServiceImpl implements QualifiedReportService {
BigDecimal flickOver = (BigDecimal) map.get("FLICKER_OVERTIME"); BigDecimal flickOver = (BigDecimal) map.get("FLICKER_OVERTIME");
if (flickOver.intValue() > 0) { if (flickOver.intValue() > 0) {
BigDecimal flickOverRate = flicketAllTime.subtract(flickOver).divide(flicketAllTime, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)); BigDecimal flickOverRate = flicketAllTime.subtract(flickOver).divide(flicketAllTime, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
content.append("闪变合格率").append(String.valueOf(flickOverRate.floatValue())).append("%;"); content.append("长时闪变合格率").append(String.valueOf(flickOverRate.floatValue())).append("%;");
} }
//电压畸变 //电压畸变

View File

@@ -152,15 +152,15 @@ public class RStatOrgMServiceImpl extends ServiceImpl<RStatOrgMMapper, RStatOrgM
if (dictDataMap.containsKey(statOrgM.getMeasurementTypeClass())) { if (dictDataMap.containsKey(statOrgM.getMeasurementTypeClass())) {
DictData data = dictDataMap.get(statOrgM.getMeasurementTypeClass()); DictData data = dictDataMap.get(statOrgM.getMeasurementTypeClass());
//一类监测点 //一类监测点
if(DicDataEnum.LINE_ONE.getCode().equals(data.getCode())){ if(DicDataEnum.ONE_LINE.getCode().equals(data.getCode())){
groupVO.setOneLine(statOrgM.getEffectiveMeasurementAccrued()); groupVO.setOneLine(statOrgM.getEffectiveMeasurementAccrued());
} }
//二类监测点 //二类监测点
if(DicDataEnum.LINE_TWO.getCode().equals(data.getCode())){ if(DicDataEnum.TWO_LINE.getCode().equals(data.getCode())){
groupVO.setTwoLine(statOrgM.getEffectiveMeasurementAccrued()); groupVO.setTwoLine(statOrgM.getEffectiveMeasurementAccrued());
} }
//三类监测点 //三类监测点
if(DicDataEnum.LINE_THREE.getCode().equals(data.getCode())){ if(DicDataEnum.THREE_LINE.getCode().equals(data.getCode())){
groupVO.setThreeLine(statOrgM.getEffectiveMeasurementAccrued()); groupVO.setThreeLine(statOrgM.getEffectiveMeasurementAccrued());
} }
} }

View File

@@ -129,13 +129,13 @@ public class AreaCountServiceImpl implements AreaCountService {
/*在运的字典表id配网123类监测点字典表id用于for循环中过滤*/ /*在运的字典表id配网123类监测点字典表id用于for循环中过滤*/
String lineTypeOneId = redisUtil.getStringByKey (NAME_KEY + String lineTypeOneId = redisUtil.getStringByKey (NAME_KEY +
SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) + SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) +
SPLIT_SIGN + DicDataEnum.LINE_ONE.getCode ( )); SPLIT_SIGN + DicDataEnum.ONE_LINE.getCode ( ));
String lineTypeTwoId = redisUtil.getStringByKey (NAME_KEY + String lineTypeTwoId = redisUtil.getStringByKey (NAME_KEY +
SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) + SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) +
SPLIT_SIGN + DicDataEnum.LINE_TWO.getCode ( )); SPLIT_SIGN + DicDataEnum.TWO_LINE.getCode ( ));
String lineTypeThreeId = redisUtil.getStringByKey (NAME_KEY + String lineTypeThreeId = redisUtil.getStringByKey (NAME_KEY +
SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) + SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) +
SPLIT_SIGN + DicDataEnum.LINE_THREE.getCode ( )); SPLIT_SIGN + DicDataEnum.THREE_LINE.getCode ( ));
if ( if (
StringUtils.isEmpty (lineTypeOneId) || StringUtils.isEmpty (lineTypeOneId) ||
StringUtils.isEmpty (lineTypeTwoId) || StringUtils.isEmpty (lineTypeTwoId) ||
@@ -194,13 +194,13 @@ public class AreaCountServiceImpl implements AreaCountService {
/*在运的字典表id配网123类监测点字典表id用于for循环中过滤*/ /*在运的字典表id配网123类监测点字典表id用于for循环中过滤*/
String lineTypeOneId = redisUtil.getStringByKey (NAME_KEY + String lineTypeOneId = redisUtil.getStringByKey (NAME_KEY +
SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) + SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) +
SPLIT_SIGN + DicDataEnum.LINE_ONE.getCode ( )); SPLIT_SIGN + DicDataEnum.ONE_LINE.getCode ( ));
String lineTypeTwoId = redisUtil.getStringByKey (NAME_KEY + String lineTypeTwoId = redisUtil.getStringByKey (NAME_KEY +
SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) + SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) +
SPLIT_SIGN + DicDataEnum.LINE_TWO.getCode ( )); SPLIT_SIGN + DicDataEnum.TWO_LINE.getCode ( ));
String lineTypeThreeId = redisUtil.getStringByKey (NAME_KEY + String lineTypeThreeId = redisUtil.getStringByKey (NAME_KEY +
SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) + SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) +
SPLIT_SIGN + DicDataEnum.LINE_THREE.getCode ( )); SPLIT_SIGN + DicDataEnum.THREE_LINE.getCode ( ));
if ( if (
StringUtils.isEmpty (lineTypeOneId) || StringUtils.isEmpty (lineTypeOneId) ||
StringUtils.isEmpty (lineTypeTwoId) || StringUtils.isEmpty (lineTypeTwoId) ||

View File

@@ -3,7 +3,7 @@ package com.njcn.system.enums;
import lombok.Getter; import lombok.Getter;
/** /**
* 类的介绍: * 类的介绍:字典数据名称
* *
* @author xuyang * @author xuyang
* @version 1.0.0 * @version 1.0.0
@@ -13,17 +13,31 @@ import lombok.Getter;
public enum DicDataEnum { public enum DicDataEnum {
/** /**
* 字典数据名称 * 数据中心稳态统计指标
*/ */
PLPC_ENUM("频率偏差", "PLPC"), PLPC_ENUM("频率偏差", "PLPC"),
DYPC_ENUM("电压偏差", "DYPC"), DYPC_ENUM("电压偏差", "DYPC"),
SXDYBPHD_ENUM("三相电压不平衡度", "SXDYBPHD"), SXDYBPHD_ENUM("负序电压不平衡度", "SXDYBPHD"),
XBDY_ENUM("谐波电压", "XBDY"), XBDY_ENUM("谐波电压", "XBDY"),
CSSB_ENUM("长时闪变", "CSSB"), CSSB_ENUM("长时闪变", "CSSB"),
XBDL_ENUM("谐波电流", "XBDL"), XBDL_ENUM("谐波电流", "XBDL"),
FXDL_ENUM("负序电流", "FXDL"), FXDL_ENUM("负序电流", "FXDL"),
JXBDY_ENUM("间谐波电压", "JXBDY"), JXBDY_ENUM("间谐波电压", "JXBDY"),
/**
* 稳态统计指标
*/
VOLTAGE_DEV("电压偏差", "Voltage_Dev"),
FLICKER("长时闪变", "Flicker"),
HARMONIC_VOLTAGE("谐波电压", "Harmonic_Voltage"),
HARMONIC_CURRENT("谐波电流", "Harmonic_Current"),
INTERHARMONIC_VOLTAGE("间谐波电压", "Interharmonic_Voltage"),
PHASE_VOLTAGE("负序电压不平衡度", "phase_Voltage"),
FREQUENCY_DEV("频率偏差", "Frequency_Dev"),
NEG_CURRENT("负序电流", "Neg_Current"),
TOTAL_INDICATOR("总稳态指标", "Total_Indicator"),
/** /**
* 污区图统计类型 * 污区图统计类型
*/ */
@@ -38,6 +52,8 @@ public enum DicDataEnum {
TWO_LINE("II类监测点", "Two_Line"), TWO_LINE("II类监测点", "Two_Line"),
THREE_LINE("III类监测点", "Three_Line"), THREE_LINE("III类监测点", "Three_Line"),
/** /**
* 终端类型 * 终端类型
*/ */
@@ -156,7 +172,7 @@ public enum DicDataEnum {
SCRAP("报废", "Scrap"), SCRAP("报废", "Scrap"),
/** /**
* 监测点标签 * 监测点标签(废弃,统一使用监测点对象类型)
*/ */
ONSHORE_WIND("陆上风电", "Onshore_Wind"), ONSHORE_WIND("陆上风电", "Onshore_Wind"),
POWER_STATION("光伏电站", "Power_Station"), POWER_STATION("光伏电站", "Power_Station"),
@@ -177,9 +193,6 @@ public enum DicDataEnum {
/** /**
* 电压等级 * 电压等级
* 此电压用于计算,真实code请使用上面枚举 * 此电压用于计算,真实code请使用上面枚举
*
* @author cdf
* @date 2023/3/24
*/ */
V100("100V", "0.1",0.1f), V100("100V", "0.1",0.1f),
@@ -231,25 +244,9 @@ public enum DicDataEnum {
YN_V_TRANS("YN v联结平衡牵引变压器", "YN_V_Trans"), YN_V_TRANS("YN v联结平衡牵引变压器", "YN_V_Trans"),
YN_A_TRANS("YN A联结平衡牵引变压器", "YN_A_Trans"), YN_A_TRANS("YN A联结平衡牵引变压器", "YN_A_Trans"),
/**
* 监测点类别
*/
LINE_ONE("Ⅰ类监测点", "One_Line"),
LINE_TWO("Ⅱ类监测点", "Two_Line"),
LINE_THREE("Ⅲ类监测点", "Three_Line"),
/**
* 稳态统计指标
*/
VOLTAGE_DEV("电压偏差", "Voltage_Dev"),
FLICKER("闪变", "Flicker"),
HARMONIC_VOLTAGE("谐波电压", "Harmonic_Voltage"),
HARMONIC_CURRENT("谐波电流", "Harmonic_Current"),
INTERHARMONIC_VOLTAGE("间谐波电压", "Interharmonic_Voltage"),
PHASE_VOLTAGE("三相电压不平衡度", "phase_Voltage"),
FREQUENCY_DEV("频率偏差", "Frequency_Dev"),
NEG_CURRENT("负序电流", "Neg_Current"),
TOTAL_INDICATOR("总稳态指标", "Total_Indicator"),
/** /**
* 监测对象 * 监测对象
*/ */