Commit 19cbdf57 authored by ZWT's avatar ZWT

feat(能源管理系统): 邮件接收

1.统计分析-能耗分析模块重构,删除原有接口及代码,新建能耗分析测试用数据表,生成相关代码并集成到项目中并上传git;
2.统计分析-能耗分析模块能耗概览接口开发,输电线路Cloud模块新增通过组织结构ID列表查询线路列表接口,完成能耗分析模块能耗概览接口业务逻辑开发,添加线上接口文档并完成接口冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 0405ef48
...@@ -51,7 +51,7 @@ public class EnergyConsumptionAnalysisService { ...@@ -51,7 +51,7 @@ public class EnergyConsumptionAnalysisService {
@XText("能耗分析--能耗概览") @XText("能耗分析--能耗概览")
@XApiAnonymous @XApiAnonymous
@XApiGet @XApiGet
public XSingleResult<GetEnergyConsumptionAnalysisViewOutput> getEnergyConsumptionAnalysisView(XContext context, GetEnergyConsumptionAnalysisViewInput input) { public XSingleResult<GetEnergyConsumptionAnalysisViewOutput> getEnergyConsumptionAnalysisView(XContext context, QueryEnergyConsumptionAnalysisInput input) {
//近7天:昨天开始前七天;近30天:昨天开始前30天;上期:所选周期往前推一个周期 //近7天:昨天开始前七天;近30天:昨天开始前30天;上期:所选周期往前推一个周期
GetEnergyConsumptionAnalysisViewOutput output = new GetEnergyConsumptionAnalysisViewOutput(); GetEnergyConsumptionAnalysisViewOutput output = new GetEnergyConsumptionAnalysisViewOutput();
List<DynamicQueryBasePowerLineOutput> lineList = this.getBasePowerLineListByOuIdList(context, this.getOrgIdsByPath(context, input.getOuId())); List<DynamicQueryBasePowerLineOutput> lineList = this.getBasePowerLineListByOuIdList(context, this.getOrgIdsByPath(context, input.getOuId()));
...@@ -60,11 +60,11 @@ public class EnergyConsumptionAnalysisService { ...@@ -60,11 +60,11 @@ public class EnergyConsumptionAnalysisService {
output.setPowerConsumption(BigDecimal.ZERO); output.setPowerConsumption(BigDecimal.ZERO);
output.setAbsorptionRate(BigDecimal.ZERO); output.setAbsorptionRate(BigDecimal.ZERO);
} else { } else {
input.getBetweenDate();
List<String> lineIdList = lineList.stream() List<String> lineIdList = lineList.stream()
.map(DynamicQueryBasePowerLineOutput::getId) .map(DynamicQueryBasePowerLineOutput::getId)
.collect(Collectors.toList()); .collect(Collectors.toList());
EnergyConsumptionAnalysisMapper mapper = context.getBean(EnergyConsumptionAnalysisMapper.class); EnergyConsumptionAnalysisMapper mapper = context.getBean(EnergyConsumptionAnalysisMapper.class);
input.getBetweenDate();
EnergyConsumptionAnalysisEnt analysisEnt = mapper.selectOne(new QueryWrapper<EnergyConsumptionAnalysisEnt>() EnergyConsumptionAnalysisEnt analysisEnt = mapper.selectOne(new QueryWrapper<EnergyConsumptionAnalysisEnt>()
.select("IFNULL( SUM( power_generation ), 0 ) AS power_generation", .select("IFNULL( SUM( power_generation ), 0 ) AS power_generation",
"IFNULL( SUM( power_consumption ), 0 ) AS power_consumption") "IFNULL( SUM( power_consumption ), 0 ) AS power_consumption")
...@@ -95,7 +95,7 @@ public class EnergyConsumptionAnalysisService { ...@@ -95,7 +95,7 @@ public class EnergyConsumptionAnalysisService {
@XText("能耗分析--绿电消纳/用电趋势") @XText("能耗分析--绿电消纳/用电趋势")
@XApiAnonymous @XApiAnonymous
@XApiGet @XApiGet
public XListResult<DynamicQueryEnergyConsumptionAnalysisViewOutput> queryEnergyConsumptionAnalysisList(XContext context, DynamicQueryEnergyConsumptionAnalysisInput input) { public XListResult<DynamicQueryEnergyConsumptionAnalysisViewOutput> queryEnergyConsumptionAnalysisList(XContext context, QueryEnergyConsumptionAnalysisInput input) {
EnergyConsumptionAnalysisMapper mapper = context.getBean(EnergyConsumptionAnalysisMapper.class); EnergyConsumptionAnalysisMapper mapper = context.getBean(EnergyConsumptionAnalysisMapper.class);
return XListResult.success(); return XListResult.success();
} }
...@@ -103,7 +103,7 @@ public class EnergyConsumptionAnalysisService { ...@@ -103,7 +103,7 @@ public class EnergyConsumptionAnalysisService {
@XApiAnonymous @XApiAnonymous
@XApiGet @XApiGet
public XPageResult<QueryEnergyConsumptionAnalysisViewOutput> queryEnergyConsumptionAnalysisView(XContext context, QueryEnergyConsumptionAnalysisViewInput input) { public XPageResult<QueryEnergyConsumptionAnalysisViewOutput> queryEnergyConsumptionAnalysisView(XContext context, QueryEnergyConsumptionAnalysisPageInput input) {
EnergyConsumptionAnalysisViewMapper mapper = context.getBean(EnergyConsumptionAnalysisViewMapper.class); EnergyConsumptionAnalysisViewMapper mapper = context.getBean(EnergyConsumptionAnalysisViewMapper.class);
EnergyConsumptionAnalysisView record = new EnergyConsumptionAnalysisView(); EnergyConsumptionAnalysisView record = new EnergyConsumptionAnalysisView();
XCopyUtils.copyObject(input, record); XCopyUtils.copyObject(input, record);
......
package pps.core.prediction.service.data.energy_consumption_analysis;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import xstartup.annotation.XText;
import java.util.Date;
/**
* 能耗分析表(测试用)
*
* @author ZWT
* @date 2023/11/23
*/
@Data
public class DynamicQueryEnergyConsumptionAnalysisInput {
/**
* 组织机构ID
*/
@NotBlank(message = "缺少组织机构ID")
@XText("组织机构ID")
private String ouId;
/**
* 日期类型(1_近7天,2_近30天,3_自定义)
*/
@NotNull(message = "缺少日期类型")
@XText("日期类型(1_近7天,2_近30天,3_自定义)")
private Integer dateType;
/**
* 开始时间
*/
@XText("开始时间")
private Date startTime;
/**
* 结束时间
*/
@XText("结束时间")
private Date endTime;
}
...@@ -18,7 +18,7 @@ import java.util.Date; ...@@ -18,7 +18,7 @@ import java.util.Date;
* @date 2023/11/23 * @date 2023/11/23
*/ */
@Data @Data
public class GetEnergyConsumptionAnalysisViewInput { public class QueryEnergyConsumptionAnalysisInput {
/** /**
* 组织机构ID * 组织机构ID
*/ */
......
package pps.core.prediction.service.data.energy_consumption_analysis; package pps.core.prediction.service.data.energy_consumption_analysis;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import pps.core.prediction.enums.BusinessError;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import xstartup.base.data.XPageInput; import xstartup.base.data.XPageInput;
import xstartup.base.exception.XServiceException;
import java.util.Date; import java.util.Date;
...@@ -15,7 +19,7 @@ import java.util.Date; ...@@ -15,7 +19,7 @@ import java.util.Date;
* @date 2023/11/23 * @date 2023/11/23
*/ */
@Data @Data
public class QueryEnergyConsumptionAnalysisViewInput extends XPageInput { public class QueryEnergyConsumptionAnalysisPageInput extends XPageInput {
/** /**
* 组织机构ID * 组织机构ID
*/ */
...@@ -41,4 +45,27 @@ public class QueryEnergyConsumptionAnalysisViewInput extends XPageInput { ...@@ -41,4 +45,27 @@ public class QueryEnergyConsumptionAnalysisViewInput extends XPageInput {
*/ */
@XText("结束时间") @XText("结束时间")
private Date endTime; private Date endTime;
/**
* 初始化开始结束日期
*/
public void getBetweenDate() {
switch (this.dateType) {
case 1:
this.endTime = DateUtil.beginOfDay(DateUtil.yesterday());
this.startTime = DateUtil.offsetDay(endTime, -6);
break;
case 2:
this.endTime = DateUtil.beginOfDay(DateUtil.yesterday());
this.startTime = DateUtil.offsetDay(endTime, -29);
break;
case 3:
if (ObjectUtil.isNull(this.endTime) || ObjectUtil.isNull(this.startTime)) {
throw new XServiceException(BusinessError.TheStartEndDateIsMissing);
}
break;
default:
throw new XServiceException(BusinessError.DateTypeError);
}
}
} }
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