Commit 0405ef48 authored by ZWT's avatar ZWT

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

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

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 85ac70cf
package pps.core.prediction.service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
......@@ -14,14 +12,12 @@ import pps.cloud.system.service.data.GetAllOuListByOuIdInput;
import pps.cloud.system.service.data.GetSysOrganizationViewOutput;
import pps.core.prediction.entity.EnergyConsumptionAnalysisEnt;
import pps.core.prediction.entity.EnergyConsumptionAnalysisView;
import pps.core.prediction.enums.BusinessError;
import pps.core.prediction.mapper.EnergyConsumptionAnalysisMapper;
import pps.core.prediction.mapper.EnergyConsumptionAnalysisViewMapper;
import pps.core.prediction.service.data.energy_consumption_analysis.*;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.exception.XServiceException;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult;
import xstartup.data.XPageResult;
......@@ -31,7 +27,6 @@ import xstartup.feature.api.annotation.XApiGet;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
......@@ -57,27 +52,7 @@ public class EnergyConsumptionAnalysisService {
@XApiAnonymous
@XApiGet
public XSingleResult<GetEnergyConsumptionAnalysisViewOutput> getEnergyConsumptionAnalysisView(XContext context, GetEnergyConsumptionAnalysisViewInput input) {
Date endTime, startTime;
//近7天:昨天开始前七天;近30天:昨天开始前30天;上期:所选周期往前推一个周期
switch (input.getDateType()) {
case 1:
endTime = DateUtil.beginOfDay(DateUtil.yesterday());
startTime = DateUtil.offsetDay(endTime, -6);
break;
case 2:
endTime = DateUtil.beginOfDay(DateUtil.yesterday());
startTime = DateUtil.offsetDay(endTime, -29);
break;
case 3:
if (ObjectUtil.isNull(input.getEndTime()) || ObjectUtil.isNull(input.getStartTime())) {
throw new XServiceException(BusinessError.TheStartEndDateIsMissing);
}
endTime = input.getEndTime();
startTime = input.getStartTime();
break;
default:
throw new XServiceException(BusinessError.DateTypeError);
}
GetEnergyConsumptionAnalysisViewOutput output = new GetEnergyConsumptionAnalysisViewOutput();
List<DynamicQueryBasePowerLineOutput> lineList = this.getBasePowerLineListByOuIdList(context, this.getOrgIdsByPath(context, input.getOuId()));
if (CollUtil.isEmpty(lineList)) {
......@@ -85,6 +60,7 @@ public class EnergyConsumptionAnalysisService {
output.setPowerConsumption(BigDecimal.ZERO);
output.setAbsorptionRate(BigDecimal.ZERO);
} else {
input.getBetweenDate();
List<String> lineIdList = lineList.stream()
.map(DynamicQueryBasePowerLineOutput::getId)
.collect(Collectors.toList());
......@@ -94,7 +70,7 @@ public class EnergyConsumptionAnalysisService {
"IFNULL( SUM( power_consumption ), 0 ) AS power_consumption")
.lambda()
.in(EnergyConsumptionAnalysisEnt::getLineId, lineIdList)
.between(EnergyConsumptionAnalysisEnt::getDataDate, startTime, endTime)
.between(EnergyConsumptionAnalysisEnt::getDataDate, input.getStartTime(), input.getEndTime())
);
output.setPowerGeneration(analysisEnt.getPowerGeneration());
output.setPowerConsumption(analysisEnt.getPowerConsumption());
......
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.NotNull;
import lombok.Data;
import pps.core.prediction.enums.BusinessError;
import xstartup.annotation.XText;
import xstartup.base.exception.XServiceException;
import java.util.Date;
......@@ -40,4 +44,27 @@ public class GetEnergyConsumptionAnalysisViewInput {
*/
@XText("结束时间")
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