代码调整
This commit is contained in:
@@ -213,11 +213,14 @@ public class COverlimitUtil {
|
||||
private static float iHarmCalculate(int nHarm, Float voltageLevel,float protocolCapacity, float devCapacity,float calCap) {
|
||||
double tag = calCap*getHarmTag(nHarm,voltageLevel);
|
||||
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();
|
||||
}
|
||||
|
||||
//电流谐波限值
|
||||
|
||||
/**
|
||||
* 电流谐波限值
|
||||
*/
|
||||
private static Double getHarmTag(Integer iCount, Float voltageLevel) {
|
||||
int x, y;
|
||||
if (voltageLevel < DicDataEnum.KV6.getValue()) {
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
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.pojo.param.DeptLineParam;
|
||||
import io.swagger.annotations.Api;
|
||||
|
||||
@@ -20,17 +20,17 @@ import com.njcn.device.pms.service.majornetwork.IMonitorService;
|
||||
|
||||
import com.njcn.device.biz.pojo.po.Overlimit;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.*;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
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.NotNull;
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
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);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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.njcn.device.pq.pojo.po.DeptLine;
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.njcn.device.pms.service.ledgerManger.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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.pojo.dto.PmsMonitorBaseDTO;
|
||||
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.redis.utils.RedisUtil;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
|
||||
@@ -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.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.device.pms.mapper.DeptLineMapper;
|
||||
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 lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -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.PmsMonitorVO;
|
||||
import com.njcn.device.biz.pojo.po.Overlimit;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -144,5 +146,12 @@ public interface IMonitorService extends IService<Monitor> {
|
||||
List<DeptGetChildrenDTO> deptMonitor(DeptGetLineParam param);
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2023/6/8
|
||||
*/
|
||||
void importOracleLedgerToMysql(MultipartFile file, HttpServletResponse response);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
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.util.StrUtil;
|
||||
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.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
|
||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
|
||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||
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.service.majornetwork.IDistributionMonitorService;
|
||||
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.LineDetail;
|
||||
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.DicDataTypeEnum;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
@@ -44,7 +51,9 @@ import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -369,6 +378,41 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
||||
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集合
|
||||
* @param deptDTO
|
||||
|
||||
@@ -152,9 +152,38 @@ public class LineParam {
|
||||
@NotNull(message = "电压下偏差限值不能为空")
|
||||
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 = "修改标识")
|
||||
private Integer updateFlag;
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.njcn.device.pq.pojo.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@@ -124,4 +125,45 @@ public class LineDetail{
|
||||
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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -81,4 +81,28 @@ public class LineDetailDataVO {
|
||||
@ApiModelProperty(name = "timeInterval",value = "测量间隔(1-10分钟)")
|
||||
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;
|
||||
|
||||
}
|
||||
|
||||
@@ -502,6 +502,7 @@
|
||||
detail.Short_Capacity,
|
||||
detail.Standard_Capacity,
|
||||
detail.Deal_Capacity,
|
||||
detail.Business_Type,
|
||||
detail.Calssification_Grade,
|
||||
detail.Superiors_Substation,
|
||||
detail.Hang_Line,
|
||||
|
||||
@@ -142,6 +142,10 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
||||
lineDetailDataVO.setShortCapacity(lineDetail.getShortCapacity());
|
||||
lineDetailDataVO.setStandardCapacity(lineDetail.getStandardCapacity());
|
||||
lineDetailDataVO.setTimeInterval (lineDetail.getTimeInterval ());
|
||||
lineDetailDataVO.setOwner(lineDetail.getOwner());
|
||||
lineDetailDataVO.setOwnerDuty(lineDetail.getOwnerDuty());
|
||||
lineDetailDataVO.setOwnerTel(lineDetail.getOwnerTel());
|
||||
lineDetailDataVO.setWiringDiagram(lineDetail.getWiringDiagram());
|
||||
return lineDetailDataVO;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.njcn.harmonic.controller.report;
|
||||
|
||||
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.enums.common.LogEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
@@ -50,10 +51,10 @@ public class QualifiedReport extends BaseController {
|
||||
@PostMapping("/pageTable")
|
||||
@ApiOperation("合格率报告_列表")
|
||||
@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();
|
||||
String methodDescribe = getMethodDescribe("pageTable");
|
||||
List<FpyReportDTO> result = qualifiedReportService.pageTable(qualifiedReportParam);
|
||||
Page<FpyReportDTO> result = qualifiedReportService.pageTable(qualifiedReportParam);
|
||||
log.info("合格率报告执行时长:"+timeInterval.interval());
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ public interface QualifiedReportMapper {
|
||||
* @author cdf
|
||||
* @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);
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.njcn.harmonic.service.majornetwork;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.harmonic.pojo.dto.FpyReportDTO;
|
||||
import com.njcn.harmonic.pojo.param.QualifiedReportParam;
|
||||
@@ -21,5 +22,5 @@ public interface QualifiedReportService {
|
||||
* @author cdf
|
||||
* @date 2023/6/7
|
||||
*/
|
||||
List<FpyReportDTO> pageTable(QualifiedReportParam qualifiedReportParam);
|
||||
Page<FpyReportDTO> pageTable(QualifiedReportParam qualifiedReportParam);
|
||||
}
|
||||
|
||||
@@ -56,84 +56,83 @@ public class QualifiedReportServiceImpl implements QualifiedReportService {
|
||||
private final OverLimitClient overLimitClient;
|
||||
|
||||
|
||||
|
||||
|
||||
@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<String> lineIds = generalDeviceInfoClient.deptGetRunLine(qualifiedReportParam.getDeptId()).getData();
|
||||
if(CollUtil.isEmpty(lineIds)){
|
||||
return fpyReportDTOList;
|
||||
if (CollUtil.isEmpty(lineIds)) {
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
LineBaseQueryParam lineBaseQueryParam = new LineBaseQueryParam();
|
||||
lineBaseQueryParam.setLineIds(lineIds);
|
||||
lineBaseQueryParam.setSearchValue(qualifiedReportParam.getSearchValue());
|
||||
List<AreaLineInfoVO> areaLineInfoVOList = lineFeignClient.getRichLineInfo(lineBaseQueryParam).getData();
|
||||
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()));
|
||||
|
||||
List<Map<String,Object>> limitMap = 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());
|
||||
|
||||
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()));
|
||||
|
||||
|
||||
if(CollUtil.isNotEmpty(limitMap)){
|
||||
|
||||
if(CollUtil.isEmpty(areaLineInfoVOList)){
|
||||
return pageResult;
|
||||
}
|
||||
List<RStatIntegrityD> rStatIntegrityList = lineIntegrityClient.getIntegrityByLineIds(realLineIds,qualifiedReportParam.getBeginTime(),qualifiedReportParam.getEndTime()).getData();
|
||||
Map<String, RStatIntegrityD> rStatIntegrityMap = rStatIntegrityList.stream().collect(Collectors.toMap(RStatIntegrityD::getLineIndex, Function.identity()));
|
||||
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()));
|
||||
|
||||
Page<Map<String, Object>> page = qualifiedReportMapper.getLimitRateData(new Page<>(PageFactory.getPageNum(qualifiedReportParam), PageFactory.getPageSize(qualifiedReportParam)), lineNewIds, PubUtils.beginTimeToLocalDateTime(qualifiedReportParam.getBeginTime()), PubUtils.endTimeToLocalDateTime(qualifiedReportParam.getEndTime()));
|
||||
if (CollUtil.isNotEmpty(page.getRecords())) {
|
||||
List<String> realLineIds = page.getRecords().stream().map(item -> item.get("my_index").toString()).distinct().collect(Collectors.toList());
|
||||
|
||||
List<Overlimit> overLimitList = overLimitClient.getOverLimitByLineIds(realLineIds).getData();
|
||||
Map<String, Overlimit> overLimitMap = overLimitList.stream().collect(Collectors.toMap(Overlimit::getId, Function.identity()));
|
||||
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()));
|
||||
|
||||
for(Map<String, Object> map:limitMap){
|
||||
String lineId = map.get("my_index").toString();
|
||||
Map<String, Object> mapOverLimit = new HashMap<>();
|
||||
try {
|
||||
BeanUtils.describe(overLimitMap.get(lineId)).forEach((key, value) -> mapOverLimit.put((String) key, value));
|
||||
} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
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, Object> iM = mapMap.get(lineId);
|
||||
List<Overlimit> overLimitList = overLimitClient.getOverLimitByLineIds(realLineIds).getData();
|
||||
Map<String, Overlimit> overLimitMap = overLimitList.stream().collect(Collectors.toMap(Overlimit::getId, Function.identity()));
|
||||
|
||||
FpyTagContent fpyTagContent = calAllTag(map, mapOverLimit,iM);
|
||||
for (Map<String, Object> map : page.getRecords()) {
|
||||
String lineId = map.get("my_index").toString();
|
||||
Map<String, Object> mapOverLimit = new HashMap<>();
|
||||
try {
|
||||
BeanUtils.describe(overLimitMap.get(lineId)).forEach((key, value) -> mapOverLimit.put((String) key, value));
|
||||
} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
//获取平均值的最大值
|
||||
Map<String, Object> iM = mapMap.get(lineId);
|
||||
FpyTagContent fpyTagContent = calAllTag(map, mapOverLimit, iM);
|
||||
|
||||
FpyReportDTO fpyReportData = new FpyReportDTO();
|
||||
if (lineMap.containsKey(lineId)) {
|
||||
AreaLineInfoVO areaLineInfoVO = lineMap.get(lineId);
|
||||
FpyReportDTO fpyReportData = new FpyReportDTO();
|
||||
if (lineMap.containsKey(lineId)) {
|
||||
AreaLineInfoVO areaLineInfoVO = lineMap.get(lineId);
|
||||
BeanUtil.copyProperties(areaLineInfoVO, fpyReportData);
|
||||
fpyReportData.setHarmDes(fpyTagContent.getPassFlag());
|
||||
fpyReportData.setPowerDes(fpyTagContent.getContent());
|
||||
|
||||
BeanUtil.copyProperties(areaLineInfoVO, fpyReportData);
|
||||
fpyReportData.setHarmDes(fpyTagContent.getPassFlag());
|
||||
fpyReportData.setPowerDes(fpyTagContent.getContent());
|
||||
}
|
||||
|
||||
if (rStatIntegrityMap.containsKey(lineId)) {
|
||||
RStatIntegrityD rStatIntegrityD = rStatIntegrityMap.get(lineId);
|
||||
fpyReportData.setIntegrityValue(rStatIntegrityD.getIntegrityData());
|
||||
} else {
|
||||
fpyReportData.setIntegrityValue(3.14159f);
|
||||
}
|
||||
fpyReportDTOList.add(fpyReportData);
|
||||
}
|
||||
|
||||
if(rStatIntegrityMap.containsKey(lineId)) {
|
||||
RStatIntegrityD rStatIntegrityD = rStatIntegrityMap.get(lineId);
|
||||
fpyReportData.setIntegrityValue(rStatIntegrityD.getIntegrityData());
|
||||
}else {
|
||||
fpyReportData.setIntegrityValue(3.14159f);
|
||||
}
|
||||
}
|
||||
return fpyReportDTOList;
|
||||
pageResult.setRecords(fpyReportDTOList);
|
||||
pageResult.setTotal(page.getTotal());
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 其他指标计算
|
||||
*/
|
||||
private FpyTagContent calAllTag(Map<String, Object> map, Map<String, Object> mapOverLimit,Map<String, Object> iMap) {
|
||||
private FpyTagContent calAllTag(Map<String, Object> map, Map<String, Object> mapOverLimit, Map<String, Object> iMap) {
|
||||
StrBuilder content = new StrBuilder();
|
||||
BigDecimal alltime = (BigDecimal) map.get("ALLTIME");
|
||||
BigDecimal flicketAllTime = (BigDecimal)map.get("FLICKET_ALL_TIME");
|
||||
BigDecimal flicketAllTime = (BigDecimal) map.get("FLICKET_ALL_TIME");
|
||||
|
||||
FpyTagContent fpyTagContent = new FpyTagContent();
|
||||
if(alltime.intValue() > 0) {
|
||||
if (alltime.intValue() > 0) {
|
||||
//频率偏差
|
||||
BigDecimal freq = (BigDecimal) map.get("FREQ_DEV_OVERTIME");
|
||||
if (freq.intValue() > 0) {
|
||||
@@ -159,7 +158,7 @@ public class QualifiedReportServiceImpl implements QualifiedReportService {
|
||||
BigDecimal flickOver = (BigDecimal) map.get("FLICKER_OVERTIME");
|
||||
if (flickOver.intValue() > 0) {
|
||||
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("%;");
|
||||
}
|
||||
|
||||
//电压畸变
|
||||
@@ -187,28 +186,28 @@ public class QualifiedReportServiceImpl implements QualifiedReportService {
|
||||
BigDecimal ih = (BigDecimal) map.get(key);
|
||||
BigDecimal hegeRate = alltime.subtract(ih).divide(alltime, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
||||
if (hegeRate.floatValue() < 95) {
|
||||
BigDecimal maxI = (BigDecimal)iMap.get(key);
|
||||
BigDecimal maxI = (BigDecimal) iMap.get(key);
|
||||
BigDecimal overLimit = new BigDecimal(mapOverLimit.get("iharm" + i).toString());
|
||||
content.append(String.valueOf(i)).append("次谐波电流合格率").append(String.valueOf(hegeRate.floatValue())).append("%,限值为").append(String.valueOf(overLimit.floatValue())).append("A," + "最大值为").append(String.valueOf(maxI.setScale(2,RoundingMode.HALF_UP))).append("A;");
|
||||
content.append(String.valueOf(i)).append("次谐波电流合格率").append(String.valueOf(hegeRate.floatValue())).append("%,限值为").append(String.valueOf(overLimit.floatValue())).append("A," + "最大值为").append(String.valueOf(maxI.setScale(2, RoundingMode.HALF_UP))).append("A;");
|
||||
flagI++;
|
||||
}
|
||||
}
|
||||
|
||||
if(flagV==0 && flagI==0){
|
||||
if (flagV == 0 && flagI == 0) {
|
||||
fpyTagContent.setPassFlag(EnumPass.PASS.getDescribe());
|
||||
}else if(flagV>0 && flagI==0){
|
||||
} else if (flagV > 0 && flagI == 0) {
|
||||
fpyTagContent.setPassFlag("谐波电压");
|
||||
}else if(flagV==0 && flagI>0){
|
||||
} else if (flagV == 0 && flagI > 0) {
|
||||
fpyTagContent.setPassFlag("谐波电流");
|
||||
}else {
|
||||
} else {
|
||||
fpyTagContent.setPassFlag("谐波电压;谐波电流");
|
||||
}
|
||||
if(StrUtil.isBlank(content)){
|
||||
if (StrUtil.isBlank(content)) {
|
||||
fpyTagContent.setContent("合格;");
|
||||
}else {
|
||||
} else {
|
||||
fpyTagContent.setContent(content.toString());
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
fpyTagContent.setPassFlag("暂无数据");
|
||||
fpyTagContent.setContent("暂无数据;");
|
||||
}
|
||||
|
||||
@@ -152,15 +152,15 @@ public class RStatOrgMServiceImpl extends ServiceImpl<RStatOrgMMapper, RStatOrgM
|
||||
if (dictDataMap.containsKey(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());
|
||||
}
|
||||
//二类监测点
|
||||
if(DicDataEnum.LINE_TWO.getCode().equals(data.getCode())){
|
||||
if(DicDataEnum.TWO_LINE.getCode().equals(data.getCode())){
|
||||
groupVO.setTwoLine(statOrgM.getEffectiveMeasurementAccrued());
|
||||
}
|
||||
//三类监测点
|
||||
if(DicDataEnum.LINE_THREE.getCode().equals(data.getCode())){
|
||||
if(DicDataEnum.THREE_LINE.getCode().equals(data.getCode())){
|
||||
groupVO.setThreeLine(statOrgM.getEffectiveMeasurementAccrued());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,13 +129,13 @@ public class AreaCountServiceImpl implements AreaCountService {
|
||||
/*在运的字典表id,配网1,2,3类监测点字典表id用于for循环中过滤*/
|
||||
String lineTypeOneId = redisUtil.getStringByKey (NAME_KEY +
|
||||
SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) +
|
||||
SPLIT_SIGN + DicDataEnum.LINE_ONE.getCode ( ));
|
||||
SPLIT_SIGN + DicDataEnum.ONE_LINE.getCode ( ));
|
||||
String lineTypeTwoId = redisUtil.getStringByKey (NAME_KEY +
|
||||
SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) +
|
||||
SPLIT_SIGN + DicDataEnum.LINE_TWO.getCode ( ));
|
||||
SPLIT_SIGN + DicDataEnum.TWO_LINE.getCode ( ));
|
||||
String lineTypeThreeId = redisUtil.getStringByKey (NAME_KEY +
|
||||
SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) +
|
||||
SPLIT_SIGN + DicDataEnum.LINE_THREE.getCode ( ));
|
||||
SPLIT_SIGN + DicDataEnum.THREE_LINE.getCode ( ));
|
||||
if (
|
||||
StringUtils.isEmpty (lineTypeOneId) ||
|
||||
StringUtils.isEmpty (lineTypeTwoId) ||
|
||||
@@ -194,13 +194,13 @@ public class AreaCountServiceImpl implements AreaCountService {
|
||||
/*在运的字典表id,配网1,2,3类监测点字典表id用于for循环中过滤*/
|
||||
String lineTypeOneId = redisUtil.getStringByKey (NAME_KEY +
|
||||
SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) +
|
||||
SPLIT_SIGN + DicDataEnum.LINE_ONE.getCode ( ));
|
||||
SPLIT_SIGN + DicDataEnum.ONE_LINE.getCode ( ));
|
||||
String lineTypeTwoId = redisUtil.getStringByKey (NAME_KEY +
|
||||
SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) +
|
||||
SPLIT_SIGN + DicDataEnum.LINE_TWO.getCode ( ));
|
||||
SPLIT_SIGN + DicDataEnum.TWO_LINE.getCode ( ));
|
||||
String lineTypeThreeId = redisUtil.getStringByKey (NAME_KEY +
|
||||
SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) +
|
||||
SPLIT_SIGN + DicDataEnum.LINE_THREE.getCode ( ));
|
||||
SPLIT_SIGN + DicDataEnum.THREE_LINE.getCode ( ));
|
||||
if (
|
||||
StringUtils.isEmpty (lineTypeOneId) ||
|
||||
StringUtils.isEmpty (lineTypeTwoId) ||
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.njcn.system.enums;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 类的介绍:
|
||||
* 类的介绍:字典数据名称
|
||||
*
|
||||
* @author xuyang
|
||||
* @version 1.0.0
|
||||
@@ -13,17 +13,31 @@ import lombok.Getter;
|
||||
public enum DicDataEnum {
|
||||
|
||||
/**
|
||||
* 字典数据名称
|
||||
* 数据中心稳态统计指标
|
||||
*/
|
||||
PLPC_ENUM("频率偏差", "PLPC"),
|
||||
DYPC_ENUM("电压偏差", "DYPC"),
|
||||
SXDYBPHD_ENUM("三相电压不平衡度", "SXDYBPHD"),
|
||||
SXDYBPHD_ENUM("负序电压不平衡度", "SXDYBPHD"),
|
||||
XBDY_ENUM("谐波电压", "XBDY"),
|
||||
CSSB_ENUM("长时闪变", "CSSB"),
|
||||
XBDL_ENUM("谐波电流", "XBDL"),
|
||||
FXDL_ENUM("负序电流", "FXDL"),
|
||||
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"),
|
||||
THREE_LINE("III类监测点", "Three_Line"),
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 终端类型
|
||||
*/
|
||||
@@ -156,7 +172,7 @@ public enum DicDataEnum {
|
||||
SCRAP("报废", "Scrap"),
|
||||
|
||||
/**
|
||||
* 监测点标签
|
||||
* 监测点标签(废弃,统一使用监测点对象类型)
|
||||
*/
|
||||
ONSHORE_WIND("陆上风电", "Onshore_Wind"),
|
||||
POWER_STATION("光伏电站", "Power_Station"),
|
||||
@@ -177,9 +193,6 @@ public enum DicDataEnum {
|
||||
/**
|
||||
* 电压等级
|
||||
* 此电压用于计算,真实code请使用上面枚举
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2023/3/24
|
||||
*/
|
||||
|
||||
V100("100V", "0.1",0.1f),
|
||||
@@ -231,25 +244,9 @@ public enum DicDataEnum {
|
||||
YN_V_TRANS("YN v联结平衡牵引变压器", "YN_V_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"),
|
||||
|
||||
|
||||
/**
|
||||
* 监测对象
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user