Commit f6c3b04b authored by ZWT's avatar ZWT

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

1.开发统计分析-能耗分析模块,绿电消纳列表接口,修改光伏电站Cloud模块查询电站列表接口,增加组织ID集合查询条件,添加接口文档,并完成接口冒烟测试;
2.开发统计分析-能耗分析模块,电量使用趋势列表接口,添加接口文档,并完成接口冒烟测试;
3.统计分析模块抽取基类,将公用方法移入基类;
4.开发统计分析-能耗分析模块,数据概览接口,添加接口文档,并完成接口冒烟测试;
5.修改统计分析-能耗分析/发电曲线模块光伏发电查询接口逻辑,增加自定义时间段入参,修改代码处理逻辑,完成接口冒烟测试;
6.开发统计分析-能耗分析模块,用电排行接口,添加接口文档,并完成接口冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent c7c81177
package pps.core.prediction.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import xstartup.annotation.XText;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 光伏用电表(测试用)
*
* @author ZWT
* @date 2023/09/28
*/
@Data
@TableName("photovoltaic_electricity_consumption")
public class PhotovoltaicElectricityConsumptionEnt implements Serializable {
@XText("ID")
@TableId(type = IdType.AUTO)
private Long id;
@XText("组织机构ID")
@TableField
private String ouId;
@XText("机构名称")
@TableField
private String ouName;
@XText("总电量")
@TableField
private BigDecimal totalElectricity;
@XText("市电")
@TableField
private BigDecimal cityElectricity;
@XText("市电环比")
@TableField
private BigDecimal cityElectricityScale;
@XText("绿电")
@TableField
private BigDecimal greenElectricity;
@XText("绿电环比")
@TableField
private BigDecimal greenElectricityScale;
@XText("日期")
@TableField
private Date dataDate;
}
package pps.core.prediction.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import xstartup.annotation.XText;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 光伏用电表(测试用)
*
* @author ZWT
* @date 2023/09/28
*/
@Data
public class PhotovoltaicElectricityConsumptionView implements Serializable {
@XText("ID")
@TableField
private Long id;
@XText("组织机构ID")
@TableField
private String ouId;
@XText("机构名称")
@TableField
private String ouName;
@XText("总电量")
@TableField
private BigDecimal totalElectricity;
@XText("市电")
@TableField
private BigDecimal cityElectricity;
@XText("市电环比")
@TableField
private BigDecimal cityElectricityScale;
@XText("绿电")
@TableField
private BigDecimal greenElectricity;
@XText("绿电环比")
@TableField
private BigDecimal greenElectricityScale;
@XText("日期")
@TableField
private Date dataDate;
}
package pps.core.prediction.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
import pps.core.prediction.entity.PhotovoltaicElectricityConsumptionEnt;
/**
* 光伏用电表(测试用)
*
* @author ZWT
* @date 2023/09/28
*/
@Repository(value = "pps.core.prediction.mapper.PhotovoltaicElectricityConsumptionMapper")
public interface PhotovoltaicElectricityConsumptionMapper extends BaseMapper<PhotovoltaicElectricityConsumptionEnt> {
}
package pps.core.prediction.mapper;
import org.springframework.stereotype.Repository;
import pps.core.prediction.entity.PhotovoltaicElectricityConsumptionView;
import java.util.List;
/**
* 光伏用电表(测试用)
*
* @author ZWT
* @date 2023/09/28
*/
@Repository(value = "pps.core.prediction.mapper.PhotovoltaicElectricityConsumptionViewMapper")
public interface PhotovoltaicElectricityConsumptionViewMapper {
PhotovoltaicElectricityConsumptionView selectOne(PhotovoltaicElectricityConsumptionView record);
List<PhotovoltaicElectricityConsumptionView> selectList(PhotovoltaicElectricityConsumptionView record);
}
package pps.core.prediction.service;
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.LambdaQueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudInput;
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudOutput;
import pps.core.common.constant.BusinessConstant;
import pps.core.prediction.entity.PhotovoltaicElectricityConsumptionEnt;
import pps.core.prediction.mapper.PhotovoltaicElectricityConsumptionMapper;
import pps.core.prediction.service.data.energy_consumption_analysis.GetEnergyConsumptionAnalysisInput;
import pps.core.prediction.service.data.energy_consumption_analysis.GetEnergyConsumptionAnalysisOutput;
import pps.core.prediction.service.data.energy_consumption_analysis.GetEnergyConsumptionAnalysisViewOutput;
import pps.core.prediction.service.data.energy_consumption_curve.GetEnergyConsumptionCurveOutput;
import pps.core.prediction.service.data.photovoltaic_electricity_consumption.QueryPhotovoltaicElectricityConsumptionInput;
import pps.core.prediction.service.data.photovoltaic_electricity_consumption.QueryPhotovoltaicElectricityConsumptionOutput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult;
import xstartup.data.XPageResult;
import xstartup.data.XSingleResult;
import xstartup.feature.api.annotation.XApiAnonymous;
import xstartup.feature.api.annotation.XApiGet;
......@@ -148,5 +158,46 @@ public class EnergyConsumptionAnalysisService extends StatisticAnalysisBaseServi
);
}
/**
* 能耗分析--用电排行
*
* @param context 上下文
* @param input 输入
* @return {@link XPageResult}<{@link QueryPhotovoltaicElectricityConsumptionOutput}>
*/
@XText("能耗分析--用电排行")
@XApiAnonymous
@XApiGet
public XPageResult<QueryPhotovoltaicElectricityConsumptionOutput> electricityConsumptionRanking(XContext context, QueryPhotovoltaicElectricityConsumptionInput input) {
//查包含当前组织的所有子组织列表
List<String> orgIdsByPath = super.getOrgIdsByPath(context, input.getOuId());
PhotovoltaicElectricityConsumptionMapper mapper = context.getBean(PhotovoltaicElectricityConsumptionMapper.class);
PageHelper.startPage(input.getPage(), input.getLimit());
LambdaQueryWrapper<PhotovoltaicElectricityConsumptionEnt> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(CollUtil.isNotEmpty(orgIdsByPath), PhotovoltaicElectricityConsumptionEnt::getOuId, orgIdsByPath);
//取当前时间
DateTime date = DateUtil.beginOfDay(DateUtil.date());
switch (input.getDateType()) {
case 0:
queryWrapper.eq(PhotovoltaicElectricityConsumptionEnt::getDataDate, date);
break;
case 1:
queryWrapper.between(PhotovoltaicElectricityConsumptionEnt::getDataDate, date, DateUtil.offsetDay(date, 7));
break;
case 2:
queryWrapper.between(PhotovoltaicElectricityConsumptionEnt::getDataDate, date, DateUtil.offsetDay(date, 30));
break;
case 3:
queryWrapper.between(PhotovoltaicElectricityConsumptionEnt::getDataDate, input.getStartTime(), input.getEndTime());
break;
default:
}
queryWrapper.orderByDesc(PhotovoltaicElectricityConsumptionEnt::getTotalElectricity);
List<PhotovoltaicElectricityConsumptionEnt> list = mapper.selectList(queryWrapper);
PageInfo<PhotovoltaicElectricityConsumptionEnt> pageInfo = new PageInfo<>(list);
List<QueryPhotovoltaicElectricityConsumptionOutput> outputs = XCopyUtils.copyNewList(pageInfo.getList(), QueryPhotovoltaicElectricityConsumptionOutput.class);
return XPageResult.success(outputs, input, pageInfo.getTotal());
}
/*-----------------------------------private-----------------------------------*/
}
package pps.core.prediction.service.data.photovoltaic_electricity_consumption;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.util.Date;
/**
* 查询光伏用电量输入
*
* @author ZWT
* @date 2023/09/28
*/
@Data
public class QueryPhotovoltaicElectricityConsumptionInput extends XPageInput {
@XText("组织机构ID")
@NotBlank(message = "缺少组织机构ID")
private String ouId;
@NotNull(message = "缺少日期类型")
@XText("日期类型(0_今日,1_近7天,2_近30天,3_自定义)")
private Integer dateType;
@XText("自定义开始时间")
private Date startTime;
@XText("自定义结束时间")
private Date endTime;
}
package pps.core.prediction.service.data.photovoltaic_electricity_consumption;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
/**
* 查询光伏用电量输入
*
* @author ZWT
* @date 2023/09/28
*/
@Data
public class QueryPhotovoltaicElectricityConsumptionOutput {
@XText("机构名称")
private String ouName;
@XText("总电量")
private BigDecimal totalElectricity;
@XText("市电")
private BigDecimal cityElectricity;
@XText("市电环比")
private BigDecimal cityElectricityScale;
@XText("绿电")
private BigDecimal greenElectricity;
@XText("绿电环比")
private BigDecimal greenElectricityScale;
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="pps.core.prediction.mapper.PhotovoltaicElectricityConsumptionViewMapper">
<resultMap id="BaseResultMap" type="pps.core.prediction.entity.PhotovoltaicElectricityConsumptionView">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="ou_id" property="ouId" jdbcType="VARCHAR"/>
<result column="ou_name" property="ouName" jdbcType="VARCHAR"/>
<result column="total_electricity" property="totalElectricity" jdbcType="DECIMAL"/>
<result column="city_electricity" property="cityElectricity" jdbcType="DECIMAL"/>
<result column="city_electricity_scale" property="cityElectricityScale" jdbcType="DECIMAL"/>
<result column="green_electricity" property="greenElectricity" jdbcType="DECIMAL"/>
<result column="green_electricity_scale" property="greenElectricityScale" jdbcType="DECIMAL"/>
<result column="data_date" property="dataDate" jdbcType="DATE"/>
</resultMap>
<sql id="Base_Column_List">
id
,
ou_id,
ou_name,
total_electricity,
city_electricity,
city_electricity_scale,
green_electricity,
green_electricity_scale,
data_date
</sql>
<select id="selectOne" parameterType="pps.core.prediction.entity.PhotovoltaicElectricityConsumptionView"
resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from photovoltaic_electricity_consumption
where
id=#{id}
</select>
<select id="selectList" parameterType="pps.core.prediction.entity.PhotovoltaicElectricityConsumptionView"
resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from photovoltaic_electricity_consumption
where
id=#{id}
</select>
</mapper>
\ No newline at end of file
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