达梦数据库兼容调整
This commit is contained in:
@@ -27,24 +27,27 @@
|
||||
manufacturerId.name as manufacturer,
|
||||
dev.name as devName,
|
||||
device.IP as ip,
|
||||
case linedetail.Run_Flag when 0 then "投运"
|
||||
when 1 then "检修"
|
||||
when 2 then "停运"
|
||||
when 3 then "调试"
|
||||
when 4 then "退运"
|
||||
case linedetail.Run_Flag
|
||||
when 0 then '投运'
|
||||
when 1 then '检修'
|
||||
when 2 then '停运'
|
||||
when 3 then '调试'
|
||||
when 4 then '退运'
|
||||
end as runFlag,
|
||||
case device.Com_Flag when 0 then "中断"
|
||||
when 1 then "正常"
|
||||
case device.Com_Flag
|
||||
when 0 then '中断'
|
||||
when 1 then '正常'
|
||||
end as comFlag,
|
||||
loadtypeId.Name as loadType,
|
||||
businesstypeId.name as businessType,
|
||||
IFNULL(linedetail.Obj_Name,"/") as objName,
|
||||
case linedetail.PT_Type when 0 then "星型接线"
|
||||
when 1 then "三角型接线"
|
||||
when 2 then "开口三角型接线"
|
||||
IFNULL(linedetail.Obj_Name,'/') as objName,
|
||||
case linedetail.PT_Type
|
||||
when 0 then '星型接线'
|
||||
when 1 then '三角型接线'
|
||||
when 2 then '开口三角型接线'
|
||||
end as ptType,
|
||||
CONCAT(linedetail.PT1,"/", linedetail.PT2) as pt,
|
||||
CONCAT(linedetail.CT1,"/", linedetail.CT2) as ct,
|
||||
CONCAT(linedetail.PT1,'/', linedetail.PT2) as pt,
|
||||
CONCAT(linedetail.CT1,'/', linedetail.CT2) as ct,
|
||||
linedetail.Standard_Capacity as standardCapacity,
|
||||
linedetail.Short_Capacity as shortCapacity,
|
||||
linedetail.Dev_Capacity as devCapacity,
|
||||
@@ -143,18 +146,18 @@
|
||||
CASE
|
||||
device.Run_Flag
|
||||
WHEN 0 THEN
|
||||
"投运"
|
||||
'投运'
|
||||
WHEN 1 THEN
|
||||
"热备用"
|
||||
'热备用'
|
||||
WHEN 2 THEN
|
||||
"停运"
|
||||
'停运'
|
||||
END AS runFlag,
|
||||
CASE
|
||||
device.Com_Flag
|
||||
WHEN 0 THEN
|
||||
"中断"
|
||||
'中断'
|
||||
WHEN 1 THEN
|
||||
"正常"
|
||||
'正常'
|
||||
END AS comFlag,
|
||||
device.Update_Time AS updateTime
|
||||
FROM
|
||||
|
||||
@@ -1490,7 +1490,7 @@
|
||||
<select id="getCustomDetailByLineId" resultType="map">
|
||||
SELECT
|
||||
line.id AS lineId,
|
||||
concat(sub.name,"_",vo.name,"_",line.name) as lineName,
|
||||
concat(sub.name,'_',vo.name,'_',line.name) as lineName,
|
||||
concat(round(detail.pt1,0),concat(':',round(detail.pt2,0))) as pt,
|
||||
concat(round(detail.ct1,0),concat(':',round(detail.ct2,0))) as ct,
|
||||
detail.Dev_Capacity as Dev_Capacity,
|
||||
|
||||
@@ -127,8 +127,6 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
||||
@Override
|
||||
public List<DetailAbnormalVO> monitorAbnormalTable(MonitorBaseParam monitorBaseParam) {
|
||||
List<DetailAbnormalVO> result = new ArrayList<>();
|
||||
LambdaQueryWrapper<LineDetail> lineDetailQuery = new LambdaQueryWrapper<>();
|
||||
lineDetailQuery.select(LineDetail::getId, LineDetail::getTimeInterval).in(LineDetail::getId, monitorBaseParam.getMonitorIds());
|
||||
List<LineDevGetDTO> lineDetailList = lineMapper.getMonitorListDetail(monitorBaseParam.getMonitorIds());
|
||||
Map<String, LineDevGetDTO> lineDetailMap = lineDetailList.stream().collect(Collectors.toMap(LineDevGetDTO::getPointId, Function.identity()));
|
||||
|
||||
@@ -180,7 +178,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
||||
Map<String, List<DataVerify>> indexMap = timeList.stream().collect(Collectors.groupingBy(it -> it.getIndexCode() + SEPARATOR + it.getIndexTable() + SEPARATOR + it.getIndexName()));
|
||||
indexMap.forEach((target, list) -> {
|
||||
String[] temKey = target.split(SEPARATOR);
|
||||
PqReasonableRangeDto pqReasonableRangeDto = dtoMap.get(temKey[0] + temKey[1]);
|
||||
PqReasonableRangeDto pqReasonableRangeDto = dtoMap.get(temKey[0] +SEPARATOR+ temKey[1]);
|
||||
String unit;
|
||||
if(StrUtil.isNotBlank(pqReasonableRangeDto.getUnit())){
|
||||
unit = pqReasonableRangeDto.getUnit();
|
||||
@@ -256,8 +254,6 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
||||
@Override
|
||||
public List<DetailAbnormalVO> monitorLimitTable(MonitorBaseParam monitorBaseParam) {
|
||||
List<DetailAbnormalVO> result = new ArrayList<>();
|
||||
LambdaQueryWrapper<LineDetail> lineDetailQuery = new LambdaQueryWrapper<>();
|
||||
lineDetailQuery.select(LineDetail::getId, LineDetail::getTimeInterval).in(LineDetail::getId, monitorBaseParam.getMonitorIds());
|
||||
List<LineDevGetDTO> lineDetailList = lineMapper.getMonitorListDetail(monitorBaseParam.getMonitorIds());
|
||||
Map<String, LineDevGetDTO> lineDetailMap = lineDetailList.stream().collect(Collectors.toMap(LineDevGetDTO::getPointId, Function.identity()));
|
||||
|
||||
@@ -622,7 +618,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
||||
*/
|
||||
public List<VerifyTargetVO> getAbnormalTarget(List<DataVerify> dataVerifyList) {
|
||||
Map<String, Set<String>> dataMap = dataVerifyList.stream().collect(Collectors.groupingBy(it ->
|
||||
it.getIndexCode() + it.getIndexTable(), Collectors.mapping(DataVerify::getLineId, Collectors.toSet())));
|
||||
it.getIndexCode() +SEPARATOR+ it.getIndexTable(), Collectors.mapping(DataVerify::getLineId, Collectors.toSet())));
|
||||
Map<String,PqReasonableRangeDto> rangeMap = getStandRange();
|
||||
//正序、负序和零序电压
|
||||
List<VerifyTargetVO> result = new ArrayList<>();
|
||||
@@ -672,7 +668,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
||||
DataCleanParam dataCleanParam = new DataCleanParam();
|
||||
dataCleanParam.setSystemType(DataCleanEnum.Pqs.getCode());
|
||||
List<PqReasonableRangeDto> pqReasonableRangeDtoList = pqReasonableRangeFeignClient.getData(dataCleanParam).getData();
|
||||
return pqReasonableRangeDtoList.stream().collect(Collectors.toMap(it -> it.getIndexCode() + it.getInfluxdbTableName(), Function.identity()));
|
||||
return pqReasonableRangeDtoList.stream().collect(Collectors.toMap(it -> it.getIndexCode() +SEPARATOR+ it.getInfluxdbTableName(), Function.identity()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import java.time.Instant;
|
||||
*/
|
||||
@Data
|
||||
@Measurement(name = "pqs_eventdetail")
|
||||
@Deprecated
|
||||
public class EventDetail {
|
||||
|
||||
@Column(name = "time")
|
||||
|
||||
@@ -17,6 +17,7 @@ import java.time.Instant;
|
||||
@Data
|
||||
@Measurement(name = "limit_rate")
|
||||
@TableName(value = "limit_rate")
|
||||
@Deprecated
|
||||
public class LimitRatePO {
|
||||
//时间索引
|
||||
@MppMultiId
|
||||
|
||||
@@ -17,6 +17,7 @@ import java.time.Instant;
|
||||
*/
|
||||
@Data
|
||||
@Measurement(name = "limit_target")
|
||||
@Deprecated
|
||||
public class LimitTarget {
|
||||
|
||||
@Column(name = "time")
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.njcn.harmonic.mapper.report;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@@ -20,7 +21,7 @@ public interface QualifiedReportMapper {
|
||||
* @author cdf
|
||||
* @date 2023/6/8
|
||||
*/
|
||||
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);
|
||||
Page<RStatLimitTargetDPO> getLimitRateData(@Param("page") Page<List<Map<String,Object>>> page, @Param("lineIds")List<String> lineIds, @Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime);
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.njcn.harmonic.mapper.report.QualifiedReportMapper">
|
||||
|
||||
<select id="getLimitRateData" resultType="map">
|
||||
select my_index,
|
||||
<select id="getLimitRateData" resultType="RStatLimitTargetDPO">
|
||||
select my_index as lineId,
|
||||
SUM( UHARM_2_OVERTIME ) UHARM_2_OVERTIME,
|
||||
SUM( IHARM_2_OVERTIME ) IHARM_2_OVERTIME,
|
||||
SUM( UHARM_3_OVERTIME ) UHARM_3_OVERTIME,
|
||||
@@ -56,7 +56,7 @@
|
||||
SUM( UABERRANCE_OVERTIME ) UABERRANCE_OVERTIME,
|
||||
SUM( UBALANCE_OVERTIME ) UBALANCE_OVERTIME,
|
||||
SUM( FLICKER_OVERTIME ) FLICKER_OVERTIME,
|
||||
SUM( flicker_all_time ) FLICKET_ALL_TIME,
|
||||
SUM( flicker_all_time ) FLICKER_ALL_TIME,
|
||||
sum( Freq_Dev_OverTime ) FREQ_DEV_OVERTIME,
|
||||
SUM( ALL_TIME ) ALLTIME
|
||||
FROM
|
||||
|
||||
@@ -18,13 +18,17 @@ import com.njcn.harmonic.mapper.report.QualifiedReportMapper;
|
||||
import com.njcn.harmonic.pojo.dto.FpyReportDTO;
|
||||
import com.njcn.harmonic.pojo.dto.FpyTagContent;
|
||||
import com.njcn.harmonic.pojo.param.QualifiedReportParam;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
||||
import com.njcn.harmonic.pojo.po.report.EnumPass;
|
||||
import com.njcn.harmonic.service.majornetwork.QualifiedReportService;
|
||||
import com.njcn.web.factory.PageFactory;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.beanutils.BeanUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
@@ -45,6 +49,8 @@ import java.util.stream.Collectors;
|
||||
@RequiredArgsConstructor
|
||||
public class QualifiedReportServiceImpl implements QualifiedReportService {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(QualifiedReportServiceImpl.class);
|
||||
|
||||
private final QualifiedReportMapper qualifiedReportMapper;
|
||||
|
||||
private final GeneralDeviceInfoClient generalDeviceInfoClient;
|
||||
@@ -55,6 +61,10 @@ public class QualifiedReportServiceImpl implements QualifiedReportService {
|
||||
|
||||
private final OverLimitClient overLimitClient;
|
||||
|
||||
// 谐波计算的起始次数
|
||||
private static final int HARMONIC_START = 2;
|
||||
// 谐波计算的结束次数
|
||||
private static final int HARMONIC_END = 26;
|
||||
|
||||
@Override
|
||||
public Page<FpyReportDTO> pageTable(QualifiedReportParam qualifiedReportParam) {
|
||||
@@ -69,36 +79,46 @@ public class QualifiedReportServiceImpl implements QualifiedReportService {
|
||||
lineBaseQueryParam.setLineIds(lineIds);
|
||||
lineBaseQueryParam.setSearchValue(qualifiedReportParam.getSearchValue());
|
||||
List<AreaLineInfoVO> areaLineInfoVOList = lineFeignClient.getRichLineInfo(lineBaseQueryParam).getData();
|
||||
if(CollUtil.isEmpty(areaLineInfoVOList)){
|
||||
if (CollUtil.isEmpty(areaLineInfoVOList)) {
|
||||
return pageResult;
|
||||
}
|
||||
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<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()));
|
||||
Page<RStatLimitTargetDPO> 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<String> realLineIds = page.getRecords().stream()
|
||||
.map(RStatLimitTargetDPO::getLineId)
|
||||
.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()));
|
||||
Map<String, Map<String, Object>> lineIhMap = dayIhMapList.stream()
|
||||
.collect(Collectors.toMap(it -> it.get("MYINDEX").toString(), Function.identity()));
|
||||
|
||||
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();
|
||||
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 : page.getRecords()) {
|
||||
String lineId = map.get("my_index").toString();
|
||||
for (RStatLimitTargetDPO map : page.getRecords()) {
|
||||
String lineId = map.getLineId();
|
||||
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();
|
||||
logger.error("合格率报告查询_处理Overlimit数据时发生异常", e);
|
||||
}
|
||||
//获取平均值的最大值
|
||||
Map<String, Object> iM = mapMap.get(lineId);
|
||||
FpyTagContent fpyTagContent = calAllTag(map, mapOverLimit, iM);
|
||||
Map<String, Object> lineIh = lineIhMap.get(lineId);
|
||||
FpyTagContent fpyTagContent = calAllTag(map, mapOverLimit, lineIh);
|
||||
|
||||
FpyReportDTO fpyReportData = new FpyReportDTO();
|
||||
if (lineMap.containsKey(lineId)) {
|
||||
@@ -106,7 +126,6 @@ public class QualifiedReportServiceImpl implements QualifiedReportService {
|
||||
BeanUtil.copyProperties(areaLineInfoVO, fpyReportData);
|
||||
fpyReportData.setHarmDes(fpyTagContent.getPassFlag());
|
||||
fpyReportData.setPowerDes(fpyTagContent.getContent());
|
||||
|
||||
}
|
||||
|
||||
if (rStatIntegrityMap.containsKey(lineId)) {
|
||||
@@ -123,55 +142,59 @@ public class QualifiedReportServiceImpl implements QualifiedReportService {
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算合格率
|
||||
*
|
||||
* @param alltime 总时间
|
||||
* @param overTime 超标时间
|
||||
* @param description 描述信息
|
||||
* @return 合格率字符串
|
||||
*/
|
||||
private String calculateRate(BigDecimal alltime, BigDecimal overTime, String description) {
|
||||
if (alltime.intValue() > 0 && overTime.intValue() > 0) {
|
||||
BigDecimal rate = alltime.subtract(overTime).divide(alltime, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
||||
return description + rate.floatValue() + "%;";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 其他指标计算
|
||||
*/
|
||||
private FpyTagContent calAllTag(Map<String, Object> map, Map<String, Object> mapOverLimit, Map<String, Object> iMap) {
|
||||
private FpyTagContent calAllTag(RStatLimitTargetDPO map, Map<String, Object> mapOverLimit, Map<String, Object> lineIhMap) {
|
||||
StrBuilder content = new StrBuilder();
|
||||
BigDecimal alltime = (BigDecimal) map.get("ALLTIME");
|
||||
BigDecimal flicketAllTime = (BigDecimal) map.get("FLICKET_ALL_TIME");
|
||||
BigDecimal alltime = new BigDecimal(map.getAllTime()) ;
|
||||
BigDecimal flicketAllTime =new BigDecimal(map.getFlickerAllTime());
|
||||
|
||||
FpyTagContent fpyTagContent = new FpyTagContent();
|
||||
if (alltime.intValue() > 0) {
|
||||
//频率偏差
|
||||
BigDecimal freq = (BigDecimal) map.get("FREQ_DEV_OVERTIME");
|
||||
if (freq.intValue() > 0) {
|
||||
BigDecimal freqRate = alltime.subtract(freq).divide(alltime, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
||||
content.append("频率偏差合格率").append(String.valueOf(freqRate.floatValue())).append("%;");
|
||||
}
|
||||
BigDecimal freq = new BigDecimal(map.getFreqDevOvertime());
|
||||
content.append(calculateRate(alltime, freq, "频率偏差合格率"));
|
||||
|
||||
//电压偏差
|
||||
BigDecimal voltageDev = (BigDecimal) map.get("VOLTAGE_DEV_OVERTIME");
|
||||
if (voltageDev.intValue() > 0) {
|
||||
BigDecimal voltageDevRate = alltime.subtract(voltageDev).divide(alltime, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
||||
content.append("电压偏差合格率").append(String.valueOf(voltageDevRate.floatValue())).append("%;");
|
||||
}
|
||||
BigDecimal voltageDev = new BigDecimal(map.getVoltageDevOvertime());
|
||||
content.append(calculateRate(alltime, voltageDev, "电压偏差合格率"));
|
||||
|
||||
//三项不平衡
|
||||
BigDecimal ubalance = (BigDecimal) map.get("UBALANCE_OVERTIME");
|
||||
if (ubalance.intValue() > 0) {
|
||||
BigDecimal ubalanceRate = alltime.subtract(ubalance).divide(alltime, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
||||
content.append("三相电压不平衡合格率").append(String.valueOf(ubalanceRate.floatValue())).append("%;");
|
||||
}
|
||||
BigDecimal ubalance = new BigDecimal(map.getUbalanceOvertime());
|
||||
content.append(calculateRate(alltime, ubalance, "三相电压不平衡合格率"));
|
||||
|
||||
//闪变
|
||||
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("%;");
|
||||
}
|
||||
BigDecimal flickOver = new BigDecimal(map.getFlickerOvertime());
|
||||
content.append(calculateRate(flicketAllTime, flickOver, "长时闪变合格率"));
|
||||
|
||||
//电压畸变
|
||||
BigDecimal uab = (BigDecimal) map.get("UABERRANCE_OVERTIME");
|
||||
BigDecimal uab = new BigDecimal(map.getUaberranceOvertime());
|
||||
BigDecimal uabRate = alltime.subtract(uab).divide(alltime, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
||||
if (uabRate.floatValue() < 95) {
|
||||
content.append("电压总畸变率").append(String.valueOf(uabRate.floatValue())).append("%;");
|
||||
}
|
||||
|
||||
//计算组装谐波含电压有率
|
||||
int flagV = 0;
|
||||
for (int i = 2; i < 26; i++) {
|
||||
BigDecimal v = (BigDecimal) map.get("UHARM_" + i + "_OVERTIME");
|
||||
int flagV = 0;
|
||||
for (int i = HARMONIC_START; i < HARMONIC_END; i++) {
|
||||
BigDecimal v = new BigDecimal(getUharmOvertime(i));
|
||||
BigDecimal hegeRate = alltime.subtract(v).divide(alltime, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
|
||||
if (hegeRate.floatValue() < 95) {
|
||||
content.append(String.valueOf(i)).append("次谐波电压含有率合格率").append(String.valueOf(hegeRate.floatValue())).append("%;");
|
||||
@@ -181,12 +204,12 @@ public class QualifiedReportServiceImpl implements QualifiedReportService {
|
||||
|
||||
//计算组装谐波电流幅值
|
||||
int flagI = 0;
|
||||
for (int i = 2; i < 26; i++) {
|
||||
for (int i = HARMONIC_START; i < HARMONIC_END; i++) {
|
||||
String key = "IHARM_" + i + "_OVERTIME";
|
||||
BigDecimal ih = (BigDecimal) map.get(key);
|
||||
BigDecimal ih = new BigDecimal(getIharmOvertime(i));
|
||||
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) lineIhMap.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;");
|
||||
flagI++;
|
||||
@@ -214,4 +237,27 @@ public class QualifiedReportServiceImpl implements QualifiedReportService {
|
||||
|
||||
return fpyTagContent;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Integer getUharmOvertime(int harmonicOrder) {
|
||||
try {
|
||||
Field field = this.getClass().getDeclaredField("uharm" + harmonicOrder + "Overtime");
|
||||
field.setAccessible(true);
|
||||
return (Integer) field.get(this);
|
||||
} catch (NoSuchFieldException | IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public Integer getIharmOvertime(int harmonicOrder) {
|
||||
try {
|
||||
Field field = this.getClass().getDeclaredField("iharm" + harmonicOrder + "Overtime");
|
||||
field.setAccessible(true);
|
||||
return (Integer) field.get(this);
|
||||
} catch (NoSuchFieldException | IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user