Commit ea8a884c authored by ZWT's avatar ZWT

feat(能源管理系统): 修改架构

1.修改架构添加nacos;
2.修改间开模块启动程序,使其能独立启动并注册到nacos;
3.修改光伏预测模块启动程序,使其能独立启动并注册到nacos;
4.修改系统用户模块启动程序,使其能独立启动并注册到nacos;
5.修改定时任务模块启动程序,使其能独立启动并注册到nacos;
6.添加基础信息配置模块启动程序,使其能独立启动并注册到nacos;
7.光伏预测--用能曲线模块查询用能曲线逻辑修改,修改生产负荷计算方式,同时在线路Cloud模块增加计算方法;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 777c802a
......@@ -12,6 +12,7 @@ import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePower
import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageViewOutput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadViewOutput;
import pps.cloud.base.service.data.base_power_line_wellhead.GetBasePowerLineWellheadViewOutput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
......@@ -106,4 +107,15 @@ public interface IBasePowerLineCloudService {
@XText("输电线路配置Cloud模块--条件查询线路关联储能设备信息")
@XApiPost
XListResult<DynamicQueryBasePowerLineStorageOutput> queryPowerLineStorageListByLineIds(XContext context, DynamicQueryBasePowerLineStorageInput input);
/**
* 输电线路配置Cloud模块-查询线路井口运行总功率
*
* @param context 上下文
* @param input 输入
* @return {@link XSingleResult}<{@link GetBasePowerLineWellheadViewOutput}>
*/
@XText("输电线路配置Cloud模块--查询线路井口运行总功率")
@XApiPost
XSingleResult<GetBasePowerLineWellheadViewOutput> queryLineSumServiceRatingByLineId(XContext context, DynamicQueryBasePowerLineWellheadInput input);
}
package pps.cloud.base.service.data.base_power_line_wellhead;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
import java.math.BigDecimal;
......@@ -12,6 +15,9 @@ import java.math.BigDecimal;
* @date 2023/08/25
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GetBasePowerLineWellheadViewOutput {
@XText("ID")
......@@ -32,6 +38,9 @@ public class GetBasePowerLineWellheadViewOutput {
@XText("运行功率(KW)")
private BigDecimal serviceRating;
/**
* 启动顺序
*/
@XText("启动顺序")
private Integer startSeq;
}
......@@ -2,6 +2,7 @@ package pps.core.base.service;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils;
import pps.cloud.base.service.IBasePowerLineCloudService;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInput;
......@@ -15,6 +16,7 @@ import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePower
import pps.cloud.base.service.data.base_power_line_storage.DynamicQueryBasePowerLineStorageViewOutput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadViewOutput;
import pps.cloud.base.service.data.base_power_line_wellhead.GetBasePowerLineWellheadViewOutput;
import pps.core.base.entity.*;
import pps.core.base.enums.BusinessError;
import pps.core.base.mapper.*;
......@@ -26,8 +28,10 @@ import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult;
import xstartup.data.XSingleResult;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
/**
* 输电线路配置Cloud模块
......@@ -189,4 +193,28 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService
DynamicQueryBasePowerLineStorageOutput.class
));
}
/**
* 输电线路配置Cloud模块-查询线路井口运行总功率
*
* @param context 上下文
* @param input 输入
* @return {@link XSingleResult}<{@link GetBasePowerLineWellheadViewOutput}>
*/
@Override
public XSingleResult<GetBasePowerLineWellheadViewOutput> queryLineSumServiceRatingByLineId(XContext context, DynamicQueryBasePowerLineWellheadInput input) {
BaseWellheadMapper mapper = context.getBean(BaseWellheadMapper.class);
BaseWellheadEnt baseWellheadEnt = mapper.selectOne(
new QueryWrapper<BaseWellheadEnt>()
.select("IFNULL( SUM( service_rating ), 0 ) AS service_rating")
.lambda()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.apply("id IN ( SELECT wellhead_id FROM base_power_line_wellhead WHERE line_id = {0} AND is_deleted = 1 )", input.getLineId())
);
return XSingleResult.success(GetBasePowerLineWellheadViewOutput.builder()
.serviceRating(Optional.ofNullable(baseWellheadEnt)
.map(BaseWellheadEnt::getServiceRating)
.orElse(BigDecimal.ZERO))
.build());
}
}
\ No newline at end of file
......@@ -6,7 +6,8 @@ import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPl
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudOutput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantOutput;
import pps.core.common.constant.BusinessConstant;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput;
import pps.cloud.base.service.data.base_power_line_wellhead.GetBasePowerLineWellheadViewOutput;
import pps.core.prediction.service.data.energy_consumption_curve.GetEnergyConsumptionCurveInput;
import pps.core.prediction.service.data.energy_consumption_curve.GetEnergyConsumptionCurveOutput;
import xstartup.annotation.XService;
......@@ -14,14 +15,13 @@ import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult;
import xstartup.data.XSingleResult;
import xstartup.feature.api.annotation.XApiAnonymous;
import xstartup.feature.api.annotation.XApiGet;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
......@@ -70,24 +70,9 @@ public class EnergyConsumptionCurveService extends StatisticAnalysisBaseService
.map(GetBasePhotovoltaicPlantCloudOutput::getTotalPower)
.reduce(BigDecimal::add);
if (reduce.isPresent()) {
//负荷率=实际发电量/理论最大发电量x100%
BigDecimal maximumPowerGeneration = reduce.get();
BigDecimal power;
BigDecimal oneHundred = new BigDecimal(100);
BigDecimal productionLoad = this.queryLineSumServiceRatingByLineId(context, input.getLineId());
for (GetEnergyConsumptionCurveOutput output : outputList) {
power = output.getPower();
if (Objects.isNull(power) ||
power.compareTo(BigDecimal.ZERO) <= BusinessConstant.ZERO ||
maximumPowerGeneration.compareTo(BigDecimal.ZERO) == BusinessConstant.ZERO
) {
output.setProductionLoad(BigDecimal.ZERO);
continue;
}
//计算负荷
output.setProductionLoad(
power.divide(maximumPowerGeneration, 4, RoundingMode.HALF_UP)
.multiply(oneHundred)
);
output.setProductionLoad(productionLoad);
}
}
}
......@@ -113,4 +98,22 @@ public class EnergyConsumptionCurveService extends StatisticAnalysisBaseService
result.throwIfFail();
return result.getResult();
}
/**
* 查询线路井口运行总功率
*
* @param context 上下文
* @param lineId 线路id
* @return {@link BigDecimal}
*/
private BigDecimal queryLineSumServiceRatingByLineId(XContext context, String lineId) {
IBasePowerLineCloudService cloudService = context.getBean(IBasePowerLineCloudService.class);
XSingleResult<GetBasePowerLineWellheadViewOutput> result = cloudService.queryLineSumServiceRatingByLineId(context,
DynamicQueryBasePowerLineWellheadInput.builder()
.lineId(lineId)
.build()
);
result.throwIfFail();
return result.getResult().getServiceRating();
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment