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 ...@@ -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_storage.DynamicQueryBasePowerLineStorageViewOutput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput; 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.DynamicQueryBasePowerLineWellheadViewOutput;
import pps.cloud.base.service.data.base_power_line_wellhead.GetBasePowerLineWellheadViewOutput;
import xstartup.annotation.XService; import xstartup.annotation.XService;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import xstartup.base.XContext; import xstartup.base.XContext;
...@@ -106,4 +107,15 @@ public interface IBasePowerLineCloudService { ...@@ -106,4 +107,15 @@ public interface IBasePowerLineCloudService {
@XText("输电线路配置Cloud模块--条件查询线路关联储能设备信息") @XText("输电线路配置Cloud模块--条件查询线路关联储能设备信息")
@XApiPost @XApiPost
XListResult<DynamicQueryBasePowerLineStorageOutput> queryPowerLineStorageListByLineIds(XContext context, DynamicQueryBasePowerLineStorageInput input); 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; package pps.cloud.base.service.data.base_power_line_wellhead;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -12,6 +15,9 @@ import java.math.BigDecimal; ...@@ -12,6 +15,9 @@ import java.math.BigDecimal;
* @date 2023/08/25 * @date 2023/08/25
*/ */
@Data @Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GetBasePowerLineWellheadViewOutput { public class GetBasePowerLineWellheadViewOutput {
@XText("ID") @XText("ID")
...@@ -32,6 +38,9 @@ public class GetBasePowerLineWellheadViewOutput { ...@@ -32,6 +38,9 @@ public class GetBasePowerLineWellheadViewOutput {
@XText("运行功率(KW)") @XText("运行功率(KW)")
private BigDecimal serviceRating; private BigDecimal serviceRating;
/**
* 启动顺序
*/
@XText("启动顺序") @XText("启动顺序")
private Integer startSeq; private Integer startSeq;
} }
...@@ -2,6 +2,7 @@ package pps.core.base.service; ...@@ -2,6 +2,7 @@ package pps.core.base.service;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import pps.cloud.base.service.IBasePowerLineCloudService; import pps.cloud.base.service.IBasePowerLineCloudService;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInput; 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 ...@@ -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_storage.DynamicQueryBasePowerLineStorageViewOutput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput; 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.DynamicQueryBasePowerLineWellheadViewOutput;
import pps.cloud.base.service.data.base_power_line_wellhead.GetBasePowerLineWellheadViewOutput;
import pps.core.base.entity.*; import pps.core.base.entity.*;
import pps.core.base.enums.BusinessError; import pps.core.base.enums.BusinessError;
import pps.core.base.mapper.*; import pps.core.base.mapper.*;
...@@ -26,8 +28,10 @@ import xstartup.base.util.XCopyUtils; ...@@ -26,8 +28,10 @@ import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult; import xstartup.data.XListResult;
import xstartup.data.XSingleResult; import xstartup.data.XSingleResult;
import java.math.BigDecimal;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Optional;
/** /**
* 输电线路配置Cloud模块 * 输电线路配置Cloud模块
...@@ -189,4 +193,28 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService ...@@ -189,4 +193,28 @@ public class BasePowerLineCloudServiceImpl implements IBasePowerLineCloudService
DynamicQueryBasePowerLineStorageOutput.class 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 ...@@ -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_photovoltaic_plant.GetBasePhotovoltaicPlantCloudOutput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput; import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantOutput; 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.GetEnergyConsumptionCurveInput;
import pps.core.prediction.service.data.energy_consumption_curve.GetEnergyConsumptionCurveOutput; import pps.core.prediction.service.data.energy_consumption_curve.GetEnergyConsumptionCurveOutput;
import xstartup.annotation.XService; import xstartup.annotation.XService;
...@@ -14,14 +15,13 @@ import xstartup.annotation.XText; ...@@ -14,14 +15,13 @@ import xstartup.annotation.XText;
import xstartup.base.XContext; import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils; import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult; import xstartup.data.XListResult;
import xstartup.data.XSingleResult;
import xstartup.feature.api.annotation.XApiAnonymous; import xstartup.feature.api.annotation.XApiAnonymous;
import xstartup.feature.api.annotation.XApiGet; import xstartup.feature.api.annotation.XApiGet;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -70,24 +70,9 @@ public class EnergyConsumptionCurveService extends StatisticAnalysisBaseService ...@@ -70,24 +70,9 @@ public class EnergyConsumptionCurveService extends StatisticAnalysisBaseService
.map(GetBasePhotovoltaicPlantCloudOutput::getTotalPower) .map(GetBasePhotovoltaicPlantCloudOutput::getTotalPower)
.reduce(BigDecimal::add); .reduce(BigDecimal::add);
if (reduce.isPresent()) { if (reduce.isPresent()) {
//负荷率=实际发电量/理论最大发电量x100% BigDecimal productionLoad = this.queryLineSumServiceRatingByLineId(context, input.getLineId());
BigDecimal maximumPowerGeneration = reduce.get();
BigDecimal power;
BigDecimal oneHundred = new BigDecimal(100);
for (GetEnergyConsumptionCurveOutput output : outputList) { for (GetEnergyConsumptionCurveOutput output : outputList) {
power = output.getPower(); output.setProductionLoad(productionLoad);
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)
);
} }
} }
} }
...@@ -113,4 +98,22 @@ public class EnergyConsumptionCurveService extends StatisticAnalysisBaseService ...@@ -113,4 +98,22 @@ public class EnergyConsumptionCurveService extends StatisticAnalysisBaseService
result.throwIfFail(); result.throwIfFail();
return result.getResult(); 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