电能质量问题修改

This commit is contained in:
hzj
2024-04-03 11:20:33 +08:00
parent 8a416bab4d
commit e0d508c7d8
4 changed files with 35 additions and 18 deletions

View File

@@ -128,7 +128,10 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
dataHarmPowerQ2List = (List<CarryCapcityData>) redisUtil.getObjectByKey(lineId + "#" + LocalDateTimeUtil.format(startDate2, formatter) + "#" + LocalDateTimeUtil.format(endDate2, formatter) + "#" + "Q"); dataHarmPowerQ2List = (List<CarryCapcityData>) redisUtil.getObjectByKey(lineId + "#" + LocalDateTimeUtil.format(startDate2, formatter) + "#" + LocalDateTimeUtil.format(endDate2, formatter) + "#" + "Q");
dataHarmPowerU2List = (List<CarryCapcityData>) redisUtil.getObjectByKey(lineId + "#" + LocalDateTimeUtil.format(startDate2, formatter) + "#" + LocalDateTimeUtil.format(endDate2, formatter) + "#" + "U"); dataHarmPowerU2List = (List<CarryCapcityData>) redisUtil.getObjectByKey(lineId + "#" + LocalDateTimeUtil.format(startDate2, formatter) + "#" + LocalDateTimeUtil.format(endDate2, formatter) + "#" + "U");
if(CollectionUtil.isEmpty(dataHarmPowerPList)){ if(CollectionUtil.isEmpty(dataHarmPowerPList)||
CollectionUtil.isEmpty(dataHarmPowerP2List)||
CollectionUtil.isEmpty(dataHarmPowerQ2List)||
CollectionUtil.isEmpty(dataHarmPowerU2List)){
CarryCapacityDataPO one = carryCapacityDataPOService.lambdaQuery().eq(CarryCapacityDataPO::getLineId, lineId) CarryCapacityDataPO one = carryCapacityDataPOService.lambdaQuery().eq(CarryCapacityDataPO::getLineId, lineId)
.eq(CarryCapacityDataPO::getStartTime, startTime) .eq(CarryCapacityDataPO::getStartTime, startTime)
.eq(CarryCapacityDataPO::getEndTime, endTime).one(); .eq(CarryCapacityDataPO::getEndTime, endTime).one();

View File

@@ -157,21 +157,21 @@ public class CZNLPG {
* 结论【拟接入光伏容量】为入参【A/B/C相有功功率】和【A/B/C相无功功率值】95%小值从A/B/C相历史数据中计算得出 为枚举参数;能够计算三相配变首端电压 、 、 从而得出U 。 * 结论【拟接入光伏容量】为入参【A/B/C相有功功率】和【A/B/C相无功功率值】95%小值从A/B/C相历史数据中计算得出 为枚举参数;能够计算三相配变首端电压 、 、 从而得出U 。
* 380v -U=C-a(p_min -k*S_pv/3)-b*q_min * 380v -U=C-a(p_min -k*S_pv/3)-b*q_min
* 220v -U=C-a(p_min -k*S_pv)-b*q_min * 220v -U=C-a(p_min -k*S_pv)-b*q_min
* *(后续咨询只分单项三项,目前数据都是三项)
* @Param: * @Param:
* @return: double * @return: double
* @Author: clam * @Author: clam
* @Date: 2024/2/2 * @Date: 2024/2/2
*/ */
public static double calculateU(double C, double a, double b, double p_min, double K, double q_min,double S_pv, double voltage) { public static double calculateU(double C, double a, double b, double p_min, double K, double q_min,double S_pv, double voltage) {
if (voltage == 220) { // if (voltage == 220) {
return C-a*(p_min-K*S_pv)-b*q_min; // return C-a*(p_min-K*S_pv)-b*q_min;
} else if (voltage == 380) { // } else if (voltage == 380) {
return C-a*(p_min-K*S_pv/3)-b*q_min; return C-a*(p_min-K*S_pv/3)-b*q_min;
} else { // } else {
return 0; // return 0;
} // }
} }
@@ -181,19 +181,20 @@ public class CZNLPG {
* k为修正系数徐工提供海南k系数是否需要考虑不同季节台区日照系数。 * k为修正系数徐工提供海南k系数是否需要考虑不同季节台区日照系数。
* 结论【电压等级】为入参I_(stock,h)为台区一周内的h次谐波电流95%概率大值I_"inv" ^h%为光伏逆变器第h次的典型谐波电流含有率 * 结论【电压等级】为入参I_(stock,h)为台区一周内的h次谐波电流95%概率大值I_"inv" ^h%为光伏逆变器第h次的典型谐波电流含有率
* 为枚举参数k为枚举参数能够计算各次的谐波电流幅值 、 、 ,从而得出 。 * 为枚举参数k为枚举参数能够计算各次的谐波电流幅值 、 、 ,从而得出 。
* (后续咨询只分单项三项,目前数据都是三项)
*/ */
public static double calculateITm(double I_cp95, double k, double voltage, double S_pv, double K, double I_inv) { public static double calculateITm(double I_cp95, double k, double voltage, double S_pv, double K, double I_inv) {
double term1 = Math.pow(I_cp95, 2); double term1 = Math.pow(I_cp95, 2);
double term2 = 0, term3 = 0; double term2 = 0, term3 = 0;
if (voltage == 220) { // if (voltage == 220) {
term2 = Math.pow(k * S_pv * I_inv / 220, 2); // term2 = Math.pow(k * S_pv * I_inv / 220, 2);
term3 = K * I_cp95 * (k * S_pv * I_inv / 220); // term3 = K * I_cp95 * (k * S_pv * I_inv / 220);
} else if (voltage == 380) { // } else if (voltage == 380) {
term2 = Math.pow(k * S_pv * I_inv / 3 * 220, 2); term2 = Math.pow(k * S_pv * I_inv / 3 * 220, 2);
term3 = K * I_cp95 * (k * S_pv * I_inv / 3 * 220); term3 = K * I_cp95 * (k * S_pv * I_inv / 3 * 220);
} else { // } else {
return 0; // return 0;
} // }
double sumOfTerms = term1 + term2 + term3; double sumOfTerms = term1 + term2 + term3;

View File

@@ -1,5 +1,7 @@
package com.njcn.process.pojo.po; package com.njcn.process.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
@@ -23,6 +25,7 @@ public class RMpElectricQualityProblemFlowDetails implements Serializable {
/** /**
* 电能质量问题编号 * 电能质量问题编号
*/ */
@TableId(type = IdType.INPUT)
private String powerQualityProblemNo; private String powerQualityProblemNo;
/** /**

View File

@@ -240,7 +240,11 @@ public class IssuesServiceImpl implements IssuesService {
private RMpElectricQualityProblemFlowDetails flowDetailSelectOne(String powerQualityProblemNo) { private RMpElectricQualityProblemFlowDetails flowDetailSelectOne(String powerQualityProblemNo) {
LambdaQueryWrapper<RMpElectricQualityProblemFlowDetails> flowQuery = new LambdaQueryWrapper<>(); LambdaQueryWrapper<RMpElectricQualityProblemFlowDetails> flowQuery = new LambdaQueryWrapper<>();
flowQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo, powerQualityProblemNo); flowQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo, powerQualityProblemNo);
return flowDetailsMapper.selectOne(flowQuery); RMpElectricQualityProblemFlowDetails rMpElectricQualityProblemFlowDetails = flowDetailsMapper.selectOne(flowQuery);
if(Objects.isNull(rMpElectricQualityProblemFlowDetails)){
rMpElectricQualityProblemFlowDetails = new RMpElectricQualityProblemFlowDetails();
}
return rMpElectricQualityProblemFlowDetails;
} }
/** /**
@@ -399,7 +403,13 @@ public class IssuesServiceImpl implements IssuesService {
details.setDataDateYyfx(local); details.setDataDateYyfx(local);
details.setReportProcessContentYyfx(ArrayUtil.toString(processParam.getReportProcessContentYyfx())); details.setReportProcessContentYyfx(ArrayUtil.toString(processParam.getReportProcessContentYyfx()));
details.setUserReportProcessContentYyfx(ArrayUtil.toString(processParam.getUserReportProcessContentYyfx())); details.setUserReportProcessContentYyfx(ArrayUtil.toString(processParam.getUserReportProcessContentYyfx()));
flowDetailsMapper.insert(details); RMpElectricQualityProblemFlowDetails rMpElectricQualityProblemFlowDetails = flowDetailsMapper.selectById(details.getPowerQualityProblemNo());
if (rMpElectricQualityProblemFlowDetails != null) {
flowDetailsMapper.updateById(details);
}else {
flowDetailsMapper.insert(details);
}
LambdaQueryWrapper<RStatElectricQualityProblemFlow> issuesQuery = new LambdaQueryWrapper<>(); LambdaQueryWrapper<RStatElectricQualityProblemFlow> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo, processParam.getPowerQualityProblemNo()); issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo, processParam.getPowerQualityProblemNo());
RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(issuesQuery); RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(issuesQuery);