Commit c76bebdb authored by ZWT's avatar ZWT

feat(能源管理系统): 间开制度管理

1.修改间开制度管理模块实体;
2.开发长期间开优化模块-长期优化分页列表接口,完成接口冒烟测试并生成接口文档;
3.开发长期间开优化模块-详情接口,完成接口冒烟测试并生成接口文档;
4.开发市电峰谷配置Cloud模块-查询策略配置详情列表接口;
5.修改开发长期间开优化模块-详情接口,添加获取策略配置详情列表逻辑,完成接口冒烟测试并生成接口文档;
6.开发中短期间开优化模块-中短期优化分页列表接口,完成接口冒烟测试并生成接口文档;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 04a56045
......@@ -36,4 +36,25 @@ public class SpaceOptimizeMidPeriodView extends BaseModel implements Serializabl
@XText("优化截止日期")
@TableField
private Date optimizeDeadline;
/**
* 组织机构ID
*/
@XText("组织机构ID")
@TableField
private String ouId;
/**
* 电网类型key(字典获取)
*/
@XText("电网类型key(字典获取)")
@TableField
private String gridTypeKey;
/**
* 制度名称
*/
@XText("制度名称")
@TableField
private String institutionName;
}
......@@ -15,5 +15,11 @@ import java.util.List;
public interface SpaceOptimizeMidPeriodViewMapper {
SpaceOptimizeMidPeriodView selectOne(SpaceOptimizeMidPeriodView record);
/**
* 中短期间开优化周期记录列表
*
* @param record 记录
* @return {@link List}<{@link SpaceOptimizeMidPeriodView}>
*/
List<SpaceOptimizeMidPeriodView> selectList(SpaceOptimizeMidPeriodView record);
}
package pps.core.space.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.hutool.core.collection.CollUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import pps.core.space.entity.SpaceOptimizeMidPeriodEnt;
import pps.core.common.constant.BusinessConstant;
import pps.core.space.entity.SpaceOptimizeMidPeriodView;
import pps.core.space.mapper.SpaceOptimizeMidPeriodMapper;
import pps.core.space.mapper.SpaceOptimizeMidPeriodViewMapper;
import pps.core.space.service.data.space_optimize_mid_period.*;
import pps.core.space.service.data.space_optimize_mid_period.GetSpaceOptimizeMidPeriodViewInput;
import pps.core.space.service.data.space_optimize_mid_period.GetSpaceOptimizeMidPeriodViewOutput;
import pps.core.space.service.data.space_optimize_mid_period.QuerySpaceOptimizeMidPeriodViewInput;
import pps.core.space.service.data.space_optimize_mid_period.QuerySpaceOptimizeMidPeriodViewOutput;
import pps.core.space.utils.ServiceUtil;
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.XPageResult;
import xstartup.data.XServiceResult;
import xstartup.data.XSingleResult;
import xstartup.error.XError;
import xstartup.feature.api.annotation.XApiAnonymous;
import xstartup.feature.api.annotation.XApiGet;
import xstartup.feature.api.annotation.XApiPost;
import xstartup.feature.mybatis.helper.XMapperHelper;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 中短期间开优化模块
*
* @author ZWT
* @date 2023/09/07
*/
@XService
@XText("中短期间开优化模块")
public class SpaceOptimizeMidPeriodService {
@XApiAnonymous
@XApiPost
public XServiceResult createSpaceOptimizeMidPeriod(XContext context, CreateSpaceOptimizeMidPeriodInput input) {
SpaceOptimizeMidPeriodMapper mapper = context.getBean(SpaceOptimizeMidPeriodMapper.class);
SpaceOptimizeMidPeriodEnt entity = new SpaceOptimizeMidPeriodEnt();
XCopyUtils.copyObject(input, entity);
mapper.insert(entity);
return XServiceResult.OK;
}
@XApiAnonymous
@XApiPost
public XServiceResult updateSpaceOptimizeMidPeriod(XContext context, UpdateSpaceOptimizeMidPeriodInput input) {
SpaceOptimizeMidPeriodMapper mapper = context.getBean(SpaceOptimizeMidPeriodMapper.class);
QueryWrapper<SpaceOptimizeMidPeriodEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SpaceOptimizeMidPeriodEnt::getId, input.getId());
SpaceOptimizeMidPeriodEnt entity = mapper.selectOne(queryWrapper);
if (entity == null) {
return XServiceResult.error(context, XError.NotFound);
}
XCopyUtils.copyObject(input, entity);
mapper.updateById(entity);
return XServiceResult.OK;
}
@XApiAnonymous
@XApiPost
public XServiceResult deleteSpaceOptimizeMidPeriod(XContext context, DeleteSpaceOptimizeMidPeriodInput input) {
SpaceOptimizeMidPeriodMapper mapper = context.getBean(SpaceOptimizeMidPeriodMapper.class);
QueryWrapper<SpaceOptimizeMidPeriodEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SpaceOptimizeMidPeriodEnt::getId, input.getId());
SpaceOptimizeMidPeriodEnt entity = mapper.selectOne(queryWrapper);
if (entity == null) {
return XServiceResult.error(context, XError.NotFound);
}
mapper.deleteById(entity);
return XServiceResult.OK;
}
/**
* 中短期间开优化--分页列表
*
* @param context 上下文
* @param input 输入
* @return {@link XPageResult}<{@link QuerySpaceOptimizeMidPeriodViewOutput}>
*/
@XApiAnonymous
@XApiGet
public XSingleResult<GetSpaceOptimizeMidPeriodOutput> getSpaceOptimizeMidPeriod(XContext context, GetSpaceOptimizeMidPeriodInput input) {
SpaceOptimizeMidPeriodMapper mapper = context.getBean(SpaceOptimizeMidPeriodMapper.class);
QueryWrapper<SpaceOptimizeMidPeriodEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SpaceOptimizeMidPeriodEnt::getId, input.getId());
SpaceOptimizeMidPeriodEnt entity = mapper.selectOne(queryWrapper);
if (entity == null) {
return XSingleResult.error(context, XError.NotFound);
@XText("中短期间开优化--分页列表")
public XPageResult<QuerySpaceOptimizeMidPeriodViewOutput> querySpaceOptimizeMidPeriodView(XContext context, QuerySpaceOptimizeMidPeriodViewInput input) {
SpaceOptimizeMidPeriodViewMapper mapper = context.getBean(SpaceOptimizeMidPeriodViewMapper.class);
SpaceOptimizeMidPeriodView record = XCopyUtils.copyNewObject(input, SpaceOptimizeMidPeriodView.class);
PageHelper.startPage(input.getPage(), input.getLimit());
List<SpaceOptimizeMidPeriodView> list = mapper.selectList(record);
PageInfo<SpaceOptimizeMidPeriodView> pageInfo = new PageInfo<>(list);
List<QuerySpaceOptimizeMidPeriodViewOutput> outputs = XCopyUtils.copyNewList(pageInfo.getList(), QuerySpaceOptimizeMidPeriodViewOutput.class);
if (CollUtil.isNotEmpty(outputs)) {
Map<String, String> gridTypeMap = ServiceUtil.getDictMap(context, BusinessConstant.GRID_TYPE);
Map<String, String> ouMap = ServiceUtil.getOuMapByOuIds(context, outputs.stream()
.map(QuerySpaceOptimizeMidPeriodViewOutput::getOuId)
.distinct()
.collect(Collectors.toList())
);
String lineName = ServiceUtil.getPowerLineNameById(context, input.getLineId());
outputs.forEach(output -> {
output.setLineName(lineName);
output.setOuName(ouMap.get(output.getOuId()));
output.setGridTypeName(gridTypeMap.get(output.getGridTypeKey()));
output.setOptimizeStateValue(output.getOptimizeState().equals(0) ? "已优化" : "未优化");
});
}
GetSpaceOptimizeMidPeriodOutput output = new GetSpaceOptimizeMidPeriodOutput();
XCopyUtils.copyObject(entity, output);
return XSingleResult.success(output);
}
@XApiAnonymous
@XApiGet
public XPageResult<QuerySpaceOptimizeMidPeriodOutput> querySpaceOptimizeMidPeriod(XContext context, QuerySpaceOptimizeMidPeriodInput input) {
SpaceOptimizeMidPeriodMapper mapper = context.getBean(SpaceOptimizeMidPeriodMapper.class);
QueryWrapper<SpaceOptimizeMidPeriodEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().like(SpaceOptimizeMidPeriodEnt::getId, input.getId())
.eq(SpaceOptimizeMidPeriodEnt::getIsDeleted, input.getIsDeleted())
.like(SpaceOptimizeMidPeriodEnt::getCreateById, input.getCreateById())
.like(SpaceOptimizeMidPeriodEnt::getCreateByName, input.getCreateByName())
.eq(SpaceOptimizeMidPeriodEnt::getCreateTime, input.getCreateTime())
.like(SpaceOptimizeMidPeriodEnt::getModifyById, input.getModifyById())
.like(SpaceOptimizeMidPeriodEnt::getModifyByName, input.getModifyByName())
.eq(SpaceOptimizeMidPeriodEnt::getModifyTime, input.getModifyTime())
.like(SpaceOptimizeMidPeriodEnt::getLineId, input.getLineId())
.like(SpaceOptimizeMidPeriodEnt::getInstitutionId, input.getInstitutionId())
.like(SpaceOptimizeMidPeriodEnt::getExecutionCycle, input.getExecutionCycle())
.eq(SpaceOptimizeMidPeriodEnt::getOptimizeState, input.getOptimizeState())
.eq(SpaceOptimizeMidPeriodEnt::getOptimizeDeadline, input.getOptimizeDeadline());
return XMapperHelper.query(mapper, input, queryWrapper, QuerySpaceOptimizeMidPeriodOutput.class);
}
@XApiAnonymous
@XApiGet
public XPageResult<QuerySpaceOptimizeMidPeriodOutput> dynamicQuerySpaceOptimizeMidPeriod(XContext context, CustomQueryInput input) {
SpaceOptimizeMidPeriodMapper mapper = context.getBean(SpaceOptimizeMidPeriodMapper.class);
return XMapperHelper.query(mapper, input, SpaceOptimizeMidPeriodEnt.class, QuerySpaceOptimizeMidPeriodOutput.class);
return XPageResult.success(outputs, input, pageInfo.getTotal());
}
/**
* 中短期间开优化--详情
*
* @param context 上下文
* @param input 输入
* @return {@link XSingleResult}<{@link GetSpaceOptimizeMidPeriodViewOutput}>
*/
@XApiAnonymous
@XApiGet
@XText("中短期间开优化--详情")
public XSingleResult<GetSpaceOptimizeMidPeriodViewOutput> getSpaceOptimizeMidPeriodView(XContext context, GetSpaceOptimizeMidPeriodViewInput input) {
SpaceOptimizeMidPeriodViewMapper mapper = context.getBean(SpaceOptimizeMidPeriodViewMapper.class);
SpaceOptimizeMidPeriodView record = new SpaceOptimizeMidPeriodView();
......@@ -121,18 +92,4 @@ public class SpaceOptimizeMidPeriodService {
XCopyUtils.copyObject(view, output);
return XSingleResult.success(output);
}
@XApiAnonymous
@XApiGet
public XPageResult<QuerySpaceOptimizeMidPeriodViewOutput> querySpaceOptimizeMidPeriodView(XContext context, QuerySpaceOptimizeMidPeriodViewInput input) {
SpaceOptimizeMidPeriodViewMapper mapper = context.getBean(SpaceOptimizeMidPeriodViewMapper.class);
SpaceOptimizeMidPeriodView record = new SpaceOptimizeMidPeriodView();
XCopyUtils.copyObject(input, record);
PageHelper.startPage(input.getPage(), input.getLimit());
List<SpaceOptimizeMidPeriodView> list = mapper.selectList(record);
PageInfo<SpaceOptimizeMidPeriodView> pageInfo = new PageInfo<>(list);
List<QuerySpaceOptimizeMidPeriodViewOutput> outputs = XCopyUtils.copyNewList(pageInfo.getList(), QuerySpaceOptimizeMidPeriodViewOutput.class);
return XPageResult.success(outputs, input, pageInfo.getTotal());
}
}
}
\ No newline at end of file
......@@ -17,7 +17,4 @@ public class QuerySpaceOptimizeLongPeriodViewInput extends XPageInput {
@XText("线路ID")
@NotBlank(message = "缺少线路ID")
private String lineId;
@XText("间开制度ID")
private String institutionId;
}
package pps.core.space.service.data.space_optimize_mid_period;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.util.Date;
/**
* 中短期间开优化周期记录
*
* @author ZWT
* @date 2023/09/07
*/
@Data
public class QuerySpaceOptimizeMidPeriodViewInput extends XPageInput {
@XText("ID")
private String id;
@XText("是否删除(0_是;1_否)")
private Integer isDeleted;
@XText("创建人ID")
private String createById;
@XText("创建人名称")
private String createByName;
@XText("创建时间(优化开始时间)")
private Date createTime;
@XText("修改人ID")
private String modifyById;
@XText("修改人名称")
private String modifyByName;
@XText("修改时间")
private Date modifyTime;
@XText("线路ID")
@NotBlank(message = "缺少线路ID")
private String lineId;
@XText("间开制度ID")
private String institutionId;
@XText("执行周期")
private String executionCycle;
@XText("优化状态(0_已优化;1_未优化)")
private Integer optimizeState;
@XText("优化截止日期")
private Date optimizeDeadline;
public String getId() {
return this.id;
}
public void setId(String value) {
this.id = value;
}
public Integer getIsDeleted() {
return this.isDeleted;
}
public void setIsDeleted(Integer value) {
this.isDeleted = value;
}
public String getCreateById() {
return this.createById;
}
public void setCreateById(String value) {
this.createById = value;
}
public String getCreateByName() {
return this.createByName;
}
public void setCreateByName(String value) {
this.createByName = value;
}
public Date getCreateTime() {
return this.createTime;
}
public void setCreateTime(Date value) {
this.createTime = value;
}
public String getModifyById() {
return this.modifyById;
}
public void setModifyById(String value) {
this.modifyById = value;
}
public String getModifyByName() {
return this.modifyByName;
}
public void setModifyByName(String value) {
this.modifyByName = value;
}
public Date getModifyTime() {
return this.modifyTime;
}
public void setModifyTime(Date value) {
this.modifyTime = value;
}
public String getLineId() {
return this.lineId;
}
public void setLineId(String value) {
this.lineId = value;
}
public String getInstitutionId() {
return this.institutionId;
}
public void setInstitutionId(String value) {
this.institutionId = value;
}
public String getExecutionCycle() {
return this.executionCycle;
}
public void setExecutionCycle(String value) {
this.executionCycle = value;
}
public Integer getOptimizeState() {
return this.optimizeState;
}
public void setOptimizeState(Integer value) {
this.optimizeState = value;
}
public Date getOptimizeDeadline() {
return this.optimizeDeadline;
}
public void setOptimizeDeadline(Date value) {
this.optimizeDeadline = value;
}
}
package pps.core.space.service.data.space_optimize_mid_period;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.util.Date;
public class QuerySpaceOptimizeMidPeriodViewOutput extends XPageInput {
/**
* 中短期间开优化周期记录
*
* @author ZWT
* @date 2023/09/07
*/
@Data
public class QuerySpaceOptimizeMidPeriodViewOutput {
@XText("ID")
private String id;
@XText("是否删除(0_是;1_否)")
private Integer isDeleted;
@XText("创建人ID")
private String createById;
@XText("创建人名称")
private String createByName;
@XText("创建时间(优化开始时间)")
private Date createTime;
@XText("修改人ID")
private String modifyById;
@XText("修改人名称")
private String modifyByName;
@XText("修改时间")
private Date modifyTime;
@XText("线路ID")
private String lineId;
......@@ -45,108 +32,45 @@ public class QuerySpaceOptimizeMidPeriodViewOutput extends XPageInput {
@XText("优化截止日期")
private Date optimizeDeadline;
public String getId() {
return this.id;
}
public void setId(String value) {
this.id = value;
}
public Integer getIsDeleted() {
return this.isDeleted;
}
public void setIsDeleted(Integer value) {
this.isDeleted = value;
}
public String getCreateById() {
return this.createById;
}
public void setCreateById(String value) {
this.createById = value;
}
public String getCreateByName() {
return this.createByName;
}
public void setCreateByName(String value) {
this.createByName = value;
}
public Date getCreateTime() {
return this.createTime;
}
public void setCreateTime(Date value) {
this.createTime = value;
}
public String getModifyById() {
return this.modifyById;
}
public void setModifyById(String value) {
this.modifyById = value;
}
public String getModifyByName() {
return this.modifyByName;
}
public void setModifyByName(String value) {
this.modifyByName = value;
}
public Date getModifyTime() {
return this.modifyTime;
}
public void setModifyTime(Date value) {
this.modifyTime = value;
}
public String getLineId() {
return this.lineId;
}
public void setLineId(String value) {
this.lineId = value;
}
public String getInstitutionId() {
return this.institutionId;
}
public void setInstitutionId(String value) {
this.institutionId = value;
}
public String getExecutionCycle() {
return this.executionCycle;
}
public void setExecutionCycle(String value) {
this.executionCycle = value;
}
public Integer getOptimizeState() {
return this.optimizeState;
}
public void setOptimizeState(Integer value) {
this.optimizeState = value;
}
public Date getOptimizeDeadline() {
return this.optimizeDeadline;
}
public void setOptimizeDeadline(Date value) {
this.optimizeDeadline = value;
}
/**
* 组织机构ID
*/
@XText("组织机构ID")
private String ouId;
/**
* 电网类型key(字典获取)
*/
@XText("电网类型key(字典获取)")
private String gridTypeKey;
/**
* 制度名称
*/
@XText("制度名称")
private String institutionName;
/**
* 线路名称
*/
@XText("线路名称")
private String lineName;
/**
* 组织机构名称
*/
@XText("组织机构名称")
private String ouName;
/**
* 电网类型名称
*/
@XText("电网类型名称")
private String gridTypeName;
/**
* 优化状态值
*/
@XText("优化状态(0_已优化;1_未优化)")
private String optimizeStateValue;
}
......@@ -39,11 +39,30 @@
where
id=#{id}
</select>
<resultMap id="ExtendResultMap" type="pps.core.space.entity.SpaceOptimizeMidPeriodView" extends="BaseResultMap">
<result column="ou_id" property="ouId" jdbcType="VARCHAR"/>
<result column="grid_type_key" property="gridTypeKey" jdbcType="VARCHAR"/>
<result column="institution_name" property="institutionName" jdbcType="VARCHAR"/>
</resultMap>
<select id="selectList" parameterType="pps.core.space.entity.SpaceOptimizeMidPeriodView" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from space_optimize_mid_period
where
id=#{id}
SELECT p.id,
p.line_id,
p.institution_id,
p.execution_cycle,
p.optimize_state,
p.optimize_deadline,
d.ou_id,
d.grid_type_key,
d.institution_name
FROM space_institution_detail d
JOIN space_optimize_mid_period p ON d.id = p.institution_id
WHERE d.is_current_basic = 0
AND d.is_deleted = 1
AND p.is_deleted = 1
AND d.line_id = #{lineId}
AND p.line_id = #{lineId}
ORDER BY p.optimize_deadline DESC
</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