Commit f9253eb2 authored by ZWT's avatar ZWT

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

1.统计分析-能耗分析模块重构,删除原有接口及代码,新建能耗分析测试用数据表,生成相关代码并集成到项目中并上传git;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 29162dbb
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/11/23
*/
@Data
@TableName("energy_consumption_analysis")
public class EnergyConsumptionAnalysisEnt implements Serializable {
@XText("ID")
@TableId(type = IdType.AUTO)
private Long id;
@XText("线路ID")
@TableField
private String lineId;
@XText("发电量(kWh)")
@TableField
private BigDecimal powerGeneration;
@XText("用电量(kWh)")
@TableField
private BigDecimal powerConsumption;
@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/11/23
*/
@Data
public class EnergyConsumptionAnalysisView implements Serializable {
@XText("ID")
@TableField
private Long id;
@XText("线路ID")
@TableField
private String lineId;
@XText("发电量(kWh)")
@TableField
private BigDecimal powerGeneration;
@XText("用电量(kWh)")
@TableField
private BigDecimal powerConsumption;
@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.EnergyConsumptionAnalysisEnt;
/**
* 能耗分析表(测试用)
*
* @author ZWT
* @date 2023/11/23
*/
@Repository(value = "pps.core.prediction.mapper.EnergyConsumptionAnalysisMapper")
public interface EnergyConsumptionAnalysisMapper extends BaseMapper<EnergyConsumptionAnalysisEnt> {
}
package pps.core.prediction.mapper;
import org.springframework.stereotype.Repository;
import pps.core.prediction.entity.EnergyConsumptionAnalysisView;
import java.util.List;
/**
* 能耗分析表(测试用)
*
* @author ZWT
* @date 2023/11/23
*/
@Repository(value = "pps.core.prediction.mapper.EnergyConsumptionAnalysisViewMapper")
public interface EnergyConsumptionAnalysisViewMapper {
EnergyConsumptionAnalysisView selectOne(EnergyConsumptionAnalysisView record);
List<EnergyConsumptionAnalysisView> selectList(EnergyConsumptionAnalysisView 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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.pagehelper.page.PageMethod;
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 pps.core.prediction.entity.EnergyConsumptionAnalysisEnt;
import pps.core.prediction.entity.EnergyConsumptionAnalysisView;
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.data.CustomQueryInput;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult;
import xstartup.data.XPageResult;
import xstartup.data.XSingleResult;
import xstartup.error.XError;
import xstartup.feature.api.annotation.XApiAnonymous;
import xstartup.feature.api.annotation.XApiGet;
import xstartup.feature.mybatis.helper.XMapperHelper;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 能耗分析模块(测试用)
* todo: 模拟测试用,后续替换
*
* @author ZWT
* @date 2023/09/27 15:57
* @date 2023/11/23
*/
@XText("能耗分析模块")
@XService
public class EnergyConsumptionAnalysisService extends StatisticAnalysisBaseService {
public class EnergyConsumptionAnalysisService {
/**
* 能耗分析--绿电消纳
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link GetEnergyConsumptionCurveOutput}>
*/
@XText("能耗分析--绿电消纳")
@XApiAnonymous
@XApiGet
public XListResult<GetEnergyConsumptionAnalysisOutput> queryGreenElectricityAbsorption(XContext context, GetEnergyConsumptionAnalysisInput input) {
//查包含当前组织的所有子组织列表
List<String> orgIdsByPath = super.getOrgIdsByPath(context, input.getOuId());
//查组织下的光伏电站
List<GetBasePhotovoltaicPlantCloudOutput> photovoltaicPlantList = super.getPhotovoltaicPlantByParam(context,
GetBasePhotovoltaicPlantCloudInput.builder()
.ouIds(orgIdsByPath)
.build()
);
List powerGenerationList = null;
if (CollUtil.isNotEmpty(photovoltaicPlantList)) {
powerGenerationList = super.getPhotovoltaicPowerGeneration(context, input.getDateType(),
photovoltaicPlantList.stream()
.map(GetBasePhotovoltaicPlantCloudOutput::getId)
.collect(Collectors.toList()),
input.getStartTime(), input.getEndTime()
);
public XSingleResult<GetEnergyConsumptionAnalysisOutput> getEnergyConsumptionAnalysis(XContext context, GetEnergyConsumptionAnalysisInput input) {
EnergyConsumptionAnalysisMapper mapper = context.getBean(EnergyConsumptionAnalysisMapper.class);
QueryWrapper<EnergyConsumptionAnalysisEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(EnergyConsumptionAnalysisEnt::getId, input.getId());
EnergyConsumptionAnalysisEnt entity = mapper.selectOne(queryWrapper);
if (entity == null) {
return XSingleResult.error(context, XError.NotFound);
}
List<GetEnergyConsumptionAnalysisOutput> outputList = new ArrayList<>(0);
if (CollUtil.isNotEmpty(powerGenerationList)) {
XCopyUtils.copyList(powerGenerationList, outputList, GetEnergyConsumptionAnalysisOutput.class);
//todo 设置一个值计算用电量
BigDecimal flag = new BigDecimal("0.8");
BigDecimal power;
for (GetEnergyConsumptionAnalysisOutput output : outputList) {
power = output.getPower();
if (Objects.isNull(power) ||
power.compareTo(BigDecimal.ZERO) <= BusinessConstant.ZERO
) {
output.setElectricityConsumption(BigDecimal.ZERO);
continue;
}
//计算负荷
output.setElectricityConsumption(
power.multiply(flag)
.setScale(2, RoundingMode.HALF_UP)
);
}
}
return XListResult.success(outputList);
GetEnergyConsumptionAnalysisOutput output = new GetEnergyConsumptionAnalysisOutput();
XCopyUtils.copyObject(entity, output);
return XSingleResult.success(output);
}
/**
* 能耗分析--电量使用趋势/数据概览
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link GetEnergyConsumptionAnalysisViewOutput}>
*/
@XText("能耗分析--电量使用趋势/数据概览")
@XApiAnonymous
@XApiGet
public XSingleResult<GetEnergyConsumptionAnalysisViewOutput> queryElectricityUsageTrend(XContext context, GetEnergyConsumptionAnalysisInput input) {
//查包含当前组织的所有子组织列表
List<String> orgIdsByPath = super.getOrgIdsByPath(context, input.getOuId());
//查组织下的光伏电站
List<GetBasePhotovoltaicPlantCloudOutput> photovoltaicPlantList = super.getPhotovoltaicPlantByParam(context,
GetBasePhotovoltaicPlantCloudInput.builder()
.ouIds(orgIdsByPath)
.build()
);
List powerGenerationList = null;
if (CollUtil.isNotEmpty(photovoltaicPlantList)) {
powerGenerationList = super.getPhotovoltaicPowerGeneration(context, input.getDateType(),
photovoltaicPlantList.stream()
.map(GetBasePhotovoltaicPlantCloudOutput::getId)
.collect(Collectors.toList()),
input.getStartTime(), input.getEndTime()
);
}
List<GetEnergyConsumptionAnalysisOutput> powerList = new ArrayList<>(0);
BigDecimal greenElectricity = BigDecimal.ZERO;
BigDecimal cityElectricity = BigDecimal.ZERO;
if (CollUtil.isNotEmpty(powerGenerationList)) {
XCopyUtils.copyList(powerGenerationList, powerList, GetEnergyConsumptionAnalysisOutput.class);
//todo 设置一个值计算用电量
BigDecimal flag = new BigDecimal("1.5");
BigDecimal power;
for (GetEnergyConsumptionAnalysisOutput output : powerList) {
power = output.getPower();
if (Objects.isNull(power) ||
power.compareTo(BigDecimal.ZERO) <= BusinessConstant.ZERO
) {
output.setElectricityConsumption(BigDecimal.ZERO);
continue;
}
BigDecimal bigDecimal = power.multiply(flag)
.setScale(2, RoundingMode.HALF_UP);
//计算负荷
output.setElectricityConsumption(bigDecimal);
//计算市电/绿电总和
greenElectricity = greenElectricity.add(power);
cityElectricity = cityElectricity.add(bigDecimal);
}
}
return XSingleResult.success(
GetEnergyConsumptionAnalysisViewOutput.builder()
.cityElectricity(cityElectricity)
.greenElectricity(greenElectricity)
.powerList(powerList)
.build()
);
public XPageResult<QueryEnergyConsumptionAnalysisOutput> queryEnergyConsumptionAnalysis(XContext context, QueryEnergyConsumptionAnalysisInput input) {
EnergyConsumptionAnalysisMapper mapper = context.getBean(EnergyConsumptionAnalysisMapper.class);
QueryWrapper<EnergyConsumptionAnalysisEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(EnergyConsumptionAnalysisEnt::getId, input.getId())
.like(EnergyConsumptionAnalysisEnt::getLineId, input.getLineId())
.eq(EnergyConsumptionAnalysisEnt::getPowerGeneration, input.getPowerGeneration())
.eq(EnergyConsumptionAnalysisEnt::getPowerConsumption, input.getPowerConsumption())
.eq(EnergyConsumptionAnalysisEnt::getDataDate, input.getDataDate());
return XMapperHelper.query(mapper, input, queryWrapper, QueryEnergyConsumptionAnalysisOutput.class);
}
/**
* 能耗分析--用电排行
*
* @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);
PageMethod.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:
public XPageResult<QueryEnergyConsumptionAnalysisOutput> dynamicQueryEnergyConsumptionAnalysis(XContext context, CustomQueryInput input) {
EnergyConsumptionAnalysisMapper mapper = context.getBean(EnergyConsumptionAnalysisMapper.class);
return XMapperHelper.query(mapper, input, EnergyConsumptionAnalysisEnt.class, QueryEnergyConsumptionAnalysisOutput.class);
}
@XApiAnonymous
@XApiGet
public XSingleResult<GetEnergyConsumptionAnalysisViewOutput> getEnergyConsumptionAnalysisView(XContext context, GetEnergyConsumptionAnalysisViewInput input) {
EnergyConsumptionAnalysisViewMapper mapper = context.getBean(EnergyConsumptionAnalysisViewMapper.class);
EnergyConsumptionAnalysisView record = new EnergyConsumptionAnalysisView();
XCopyUtils.copyObject(input, record);
EnergyConsumptionAnalysisView view = mapper.selectOne(record);
if (view == null) {
return XSingleResult.error(context, XError.NotFound);
}
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);
GetEnergyConsumptionAnalysisViewOutput output = new GetEnergyConsumptionAnalysisViewOutput();
XCopyUtils.copyObject(view, output);
return XSingleResult.success(output);
}
@XApiAnonymous
@XApiGet
public XPageResult<QueryEnergyConsumptionAnalysisViewOutput> queryEnergyConsumptionAnalysisView(XContext context, QueryEnergyConsumptionAnalysisViewInput input) {
EnergyConsumptionAnalysisViewMapper mapper = context.getBean(EnergyConsumptionAnalysisViewMapper.class);
EnergyConsumptionAnalysisView record = new EnergyConsumptionAnalysisView();
XCopyUtils.copyObject(input, record);
PageHelper.startPage(input.getPage(), input.getLimit());
List<EnergyConsumptionAnalysisView> list = mapper.selectList(record);
PageInfo<EnergyConsumptionAnalysisView> pageInfo = new PageInfo<>(list);
List<QueryEnergyConsumptionAnalysisViewOutput> outputs = XCopyUtils.copyNewList(pageInfo.getList(), QueryEnergyConsumptionAnalysisViewOutput.class);
return XPageResult.success(outputs, input, pageInfo.getTotal());
}
/*-----------------------------------private-----------------------------------*/
}
package pps.core.prediction.service.data.energy_consumption_analysis;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
/**
* 能耗分析表(测试用)
*
* @author ZWT
* @date 2023/11/23
*/
@Data
public class DynamicQueryEnergyConsumptionAnalysisInput {
@XText("ID")
private Long id;
@XText("线路ID")
private String lineId;
@XText("发电量(kWh)")
private BigDecimal powerGeneration;
@XText("用电量(kWh)")
private BigDecimal powerConsumption;
@XText("日期")
private Date dataDate;
}
package pps.core.prediction.service.data.energy_consumption_analysis;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
/**
* 能耗分析表(测试用)
*
* @author ZWT
* @date 2023/11/23
*/
@Data
public class DynamicQueryEnergyConsumptionAnalysisOutput {
@XText("ID")
private Long id;
@XText("线路ID")
private String lineId;
@XText("发电量(kWh)")
private BigDecimal powerGeneration;
@XText("用电量(kWh)")
private BigDecimal powerConsumption;
@XText("日期")
private Date dataDate;
}
package pps.core.prediction.service.data.energy_consumption_analysis;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
/**
* 能耗分析表(测试用)
*
* @author ZWT
* @date 2023/11/23
*/
@Data
public class DynamicQueryEnergyConsumptionAnalysisViewOutput {
@XText("ID")
private Long id;
@XText("线路ID")
private String lineId;
@XText("发电量(kWh)")
private BigDecimal powerGeneration;
@XText("用电量(kWh)")
private BigDecimal powerConsumption;
@XText("日期")
private Date dataDate;
}
package pps.core.prediction.service.data.energy_consumption_analysis;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
/**
* 能耗分析(模拟数据测试用)
* 能耗分析表(测试用)
*
* @author ZWT
* @date 2023/09/20
* @date 2023/11/23
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GetEnergyConsumptionAnalysisInput {
@XText("ID")
private Long id;
@XText("组织机构ID")
@NotBlank(message = "缺少组织机构ID")
private String ouId;
@XText("线路ID")
private String lineId;
@NotNull(message = "缺少日期类型")
@XText("日期类型(0_今日,1_近7天,2_近30天,3_自定义)")
private Integer dateType;
@XText("发电量(kWh)")
private BigDecimal powerGeneration;
@XText("自定义开始时间")
private Date startTime;
@XText("用电量(kWh)")
private BigDecimal powerConsumption;
@XText("自定义结束时间")
private Date endTime;
@XText("日期")
private Date dataDate;
}
......@@ -4,22 +4,28 @@ import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
/**
* 能耗分析(模拟数据测试用)
* 能耗分析表(测试用)
*
* @author ZWT
* @date 2023/09/20
* @date 2023/11/23
*/
@Data
public class GetEnergyConsumptionAnalysisOutput {
@XText("ID")
private Long id;
@XText("小时")
private String hourTime;
@XText("线路ID")
private String lineId;
@XText("光伏发电")
private BigDecimal power;
@XText("发电量(kWh)")
private BigDecimal powerGeneration;
@XText("光伏用电")
private BigDecimal electricityConsumption;
@XText("用电量(kWh)")
private BigDecimal powerConsumption;
@XText("日期")
private Date dataDate;
}
package pps.core.prediction.service.data.energy_consumption_analysis;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
/**
* 能耗分析表(测试用)
*
* @author ZWT
* @date 2023/11/23
*/
@Data
public class GetEnergyConsumptionAnalysisViewInput {
@XText("ID")
private Long id;
@XText("线路ID")
private String lineId;
@XText("发电量(kWh)")
private BigDecimal powerGeneration;
@XText("用电量(kWh)")
private BigDecimal powerConsumption;
@XText("日期")
private Date dataDate;
}
package pps.core.prediction.service.data.energy_consumption_analysis;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
/**
* 能耗分析(模拟数据测试用)
* 能耗分析表(测试用)
*
* @author ZWT
* @date 2023/09/20
* @date 2023/11/23
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GetEnergyConsumptionAnalysisViewOutput {
@XText("ID")
private Long id;
@XText("绿电")
private BigDecimal greenElectricity;
@XText("线路ID")
private String lineId;
@XText("市电")
private BigDecimal cityElectricity;
@XText("发电量(kWh)")
private BigDecimal powerGeneration;
@XText("电量使用趋势")
List<GetEnergyConsumptionAnalysisOutput> powerList;
@XText("用电量(kWh)")
private BigDecimal powerConsumption;
@XText("日期")
private Date dataDate;
}
package pps.core.prediction.service.data.energy_consumption_analysis;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.math.BigDecimal;
import java.util.Date;
/**
* 能耗分析表(测试用)
*
* @author ZWT
* @date 2023/11/23
*/
@Data
public class QueryEnergyConsumptionAnalysisInput extends XPageInput {
@XText("ID")
private Long id;
@XText("线路ID")
private String lineId;
@XText("发电量(kWh)")
private BigDecimal powerGeneration;
@XText("用电量(kWh)")
private BigDecimal powerConsumption;
@XText("日期")
private Date dataDate;
}
package pps.core.prediction.service.data.energy_consumption_analysis;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.math.BigDecimal;
import java.util.Date;
/**
* 能耗分析表(测试用)
*
* @author ZWT
* @date 2023/11/23
*/
@Data
public class QueryEnergyConsumptionAnalysisOutput extends XPageInput {
@XText("ID")
private Long id;
@XText("线路ID")
private String lineId;
@XText("发电量(kWh)")
private BigDecimal powerGeneration;
@XText("用电量(kWh)")
private BigDecimal powerConsumption;
@XText("日期")
private Date dataDate;
}
package pps.core.prediction.service.data.energy_consumption_analysis;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.math.BigDecimal;
import java.util.Date;
/**
* 能耗分析表(测试用)
*
* @author ZWT
* @date 2023/11/23
*/
@Data
public class QueryEnergyConsumptionAnalysisViewInput extends XPageInput {
@XText("ID")
private Long id;
@XText("线路ID")
private String lineId;
@XText("发电量(kWh)")
private BigDecimal powerGeneration;
@XText("用电量(kWh)")
private BigDecimal powerConsumption;
@XText("日期")
private Date dataDate;
}
package pps.core.prediction.service.data.energy_consumption_analysis;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.math.BigDecimal;
import java.util.Date;
/**
* 能耗分析表(测试用)
*
* @author ZWT
* @date 2023/11/23
*/
@Data
public class QueryEnergyConsumptionAnalysisViewOutput extends XPageInput {
@XText("ID")
private Long id;
@XText("线路ID")
private String lineId;
@XText("发电量(kWh)")
private BigDecimal powerGeneration;
@XText("用电量(kWh)")
private BigDecimal powerConsumption;
@XText("日期")
private Date dataDate;
}
<?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.EnergyConsumptionAnalysisViewMapper">
<resultMap id="BaseResultMap" type="pps.core.prediction.entity.EnergyConsumptionAnalysisView">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="line_id" property="lineId" jdbcType="VARCHAR"/>
<result column="power_generation" property="powerGeneration" jdbcType="DECIMAL"/>
<result column="power_consumption" property="powerConsumption" jdbcType="DECIMAL"/>
<result column="data_date" property="dataDate" jdbcType="DATE"/>
</resultMap>
<sql id="Base_Column_List">
id
,
line_id,
power_generation,
power_consumption,
data_date
</sql>
<select id="selectOne" parameterType="pps.core.prediction.entity.EnergyConsumptionAnalysisView"
resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from energy_consumption_analysis
where
id=#{id}
</select>
<select id="selectList" parameterType="pps.core.prediction.entity.EnergyConsumptionAnalysisView"
resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from energy_consumption_analysis
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