Commit 167cf779 authored by ZWT's avatar ZWT

feat(能源管理系统): 测试问题修复

1.修改间开制度管理-长期/中长期间开优化定时任务,解决未设置区间的井口不展示时间区间问题;
2.开发间开制度管理-校准周期模块,间开制度跟踪接口,完成接口冒烟测试,并生成接口文档;
3.修改间开制度管理-短期间开模块,短期间开制度详情接口,解决井口间开时间段展示异常问题;
4.开发间开制度管理-校准周期模块,井口生产情况分页列表接口,创建测试数据表,添加模拟数据,生成映射类,完成接口冒烟测试,并生成接口文档;
5.开发统计分析-能耗分析模块,发电列表接口;
6.修改统计分析-能耗分析模块,发电列表接口,添加计算生产负荷逻辑,修改光伏电站Cloud模块查询电站列表接口,增加电站ID集合查询条件,添加接口文档,并完成接口冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 356beaeb
......@@ -7,12 +7,22 @@ import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XListResult;
/**
* 光伏电站Cloud模块
*
* @author TianChao
* @date 2023/09/27
*/
@XService
public interface BasePhotovoltaicPlantCloudService {
@XText("获取电站")
XListResult<GetBasePhotovoltaicPlantCloudOutput> getBasePhotovoltaicPlantViewList(XContext context, GetBasePhotovoltaicPlantCloudInput input);
@XText("获取电站")
/**
* 光伏电站Cloud模块-获取电站列表
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link GetBasePhotovoltaicPlantCloudOutput}>
*/
@XText("光伏电站Cloud模块-获取电站列表")
XListResult<GetBasePhotovoltaicPlantCloudOutput> getBasePhotovoltaicPlantList(XContext context, GetBasePhotovoltaicPlantCloudInput input);
}
package pps.cloud.base.service.data.base_photovoltaic_plant;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
import java.util.List;
/**
* 光伏电站Cloud模块
*
* @author ZWT
* @date 2023/09/27
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GetBasePhotovoltaicPlantCloudInput {
@XText("ID")
private String id;
......@@ -11,4 +25,6 @@ public class GetBasePhotovoltaicPlantCloudInput {
@XText("是否删除(1_是;0_否)")
private Integer isDeleted;
@XText("电站ID集合")
private List<String> plantIds;
}
package pps.cloud.base.service.data.base_photovoltaic_plant;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
/**
* 光伏电站Cloud模块
*
* @author ZWT
* @date 2023/09/27
*/
@Data
public class GetBasePhotovoltaicPlantCloudOutput {
@XText("ID")
......@@ -65,5 +70,4 @@ public class GetBasePhotovoltaicPlantCloudOutput {
@XText("所属省份")
private String provinceCode;
}
package pps.core.base.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.cloud.base.service.BasePhotovoltaicPlantCloudService;
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudInput;
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudOutput;
import pps.core.base.constant.ScadaConstant;
import pps.core.base.entity.BasePhotovoltaicPlantEnt;
import pps.core.base.entity.BasePhotovoltaicPlantView;
import pps.core.base.mapper.BasePhotovoltaicPlantMapper;
import pps.core.base.mapper.BasePhotovoltaicPlantViewMapper;
import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel;
import xstartup.annotation.XService;
import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils;
......@@ -17,24 +16,31 @@ import xstartup.data.XListResult;
import java.util.List;
/**
* 光伏电站Cloud模块
*
* @author TianChao
* @date 2023/09/27
*/
@XService
public class BasePhotovoltaicPlantCloudServiceImpl implements BasePhotovoltaicPlantCloudService {
@Override
public XListResult<GetBasePhotovoltaicPlantCloudOutput> getBasePhotovoltaicPlantViewList(XContext context, GetBasePhotovoltaicPlantCloudInput input) {
BasePhotovoltaicPlantViewMapper mapper = context.getBean(BasePhotovoltaicPlantViewMapper.class);
BasePhotovoltaicPlantView view = new BasePhotovoltaicPlantView();
view.setIsDeleted(ScadaConstant.IS_DELETE_FLASE);
List<BasePhotovoltaicPlantView> plantList = mapper.selectPlantDetailList(view);
return null;
}
/**
* 光伏电站Cloud模块-获取电站列表
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link GetBasePhotovoltaicPlantCloudOutput}>
*/
@Override
public XListResult<GetBasePhotovoltaicPlantCloudOutput> getBasePhotovoltaicPlantList(XContext context, GetBasePhotovoltaicPlantCloudInput input) {
List<String> plantIds = input.getPlantIds();
BasePhotovoltaicPlantMapper mapper = context.getBean(BasePhotovoltaicPlantMapper.class);
QueryWrapper<BasePhotovoltaicPlantEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(BasePhotovoltaicPlantEnt::getIsDeleted , BusinessConstant.ONE);
List<BasePhotovoltaicPlantEnt> list = mapper.selectList(queryWrapper);
List<GetBasePhotovoltaicPlantCloudOutput> outPuts = XCopyUtils.copyNewList(list , GetBasePhotovoltaicPlantCloudOutput.class);
List<BasePhotovoltaicPlantEnt> list = mapper.selectList(new LambdaQueryWrapper<BasePhotovoltaicPlantEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.ONE)
.in(CollUtil.isNotEmpty(plantIds), BaseModel::getId, plantIds)
);
List<GetBasePhotovoltaicPlantCloudOutput> outPuts = XCopyUtils.copyNewList(list, GetBasePhotovoltaicPlantCloudOutput.class);
return XListResult.success(outPuts);
}
}
......@@ -4,7 +4,10 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import pps.cloud.base.service.BasePhotovoltaicPlantCloudService;
import pps.cloud.base.service.IBasePowerLineCloudService;
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudInput;
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;
......@@ -23,8 +26,11 @@ import xstartup.data.XListResult;
import xstartup.feature.api.annotation.XApiAnonymous;
import xstartup.feature.api.annotation.XApiGet;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
/**
......@@ -61,7 +67,6 @@ public class EnergyConsumptionAnalysisService {
DateTime date = DateUtil.date();
PlantPredictedPowerDataMapper powerDataMapper;
switch (input.getDateType()) {
//负荷率=实际发电量/理论最大发电量x100%
case 0:
powerDataMapper = context.getBean(PlantPredictedPowerDataMapper.class);
powerGenerationList = powerDataMapper.selectList(new QueryWrapper<PlantPredictedPowerDataEnt>()
......@@ -111,7 +116,31 @@ public class EnergyConsumptionAnalysisService {
if (CollUtil.isNotEmpty(powerGenerationList)) {
XCopyUtils.copyList(powerGenerationList, outputList, GetEnergyConsumptionAnalysisOutput.class);
//有发电量说明有电站ID,查电站详情
List<GetBasePhotovoltaicPlantCloudOutput> plantList = this.getPhotovoltaicPlantByPlantIds(context, plantIdList);
Optional<BigDecimal> reduce = plantList.stream()
.map(GetBasePhotovoltaicPlantCloudOutput::getTotalPower)
.reduce(BigDecimal::add);
if (reduce.isPresent()) {
//负荷率=实际发电量/理论最大发电量x100%
BigDecimal maximumPowerGeneration = reduce.get();
BigDecimal power;
BigDecimal oneHundred = new BigDecimal(100);
for (GetEnergyConsumptionAnalysisOutput 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, BigDecimal.ROUND_HALF_UP)
.multiply(oneHundred)
);
}
}
}
return XListResult.success(outputList);
}
......@@ -135,4 +164,21 @@ public class EnergyConsumptionAnalysisService {
result.throwIfFail();
return result.getResult();
}
/**
* 获取光伏发电厂
*
* @param context 上下文
* @param plantIds 植物id
* @return {@link List}<{@link GetBasePhotovoltaicPlantCloudOutput}>
*/
private List<GetBasePhotovoltaicPlantCloudOutput> getPhotovoltaicPlantByPlantIds(XContext context, List<String> plantIds) {
BasePhotovoltaicPlantCloudService cloudService = context.getBean(BasePhotovoltaicPlantCloudService.class);
XListResult<GetBasePhotovoltaicPlantCloudOutput> result = cloudService.getBasePhotovoltaicPlantList(context,
GetBasePhotovoltaicPlantCloudInput.builder()
.plantIds(plantIds)
.build());
result.throwIfFail();
return result.getResult();
}
}
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