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 ...@@ -36,4 +36,25 @@ public class SpaceOptimizeMidPeriodView extends BaseModel implements Serializabl
@XText("优化截止日期") @XText("优化截止日期")
@TableField @TableField
private Date optimizeDeadline; 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; ...@@ -15,5 +15,11 @@ import java.util.List;
public interface SpaceOptimizeMidPeriodViewMapper { public interface SpaceOptimizeMidPeriodViewMapper {
SpaceOptimizeMidPeriodView selectOne(SpaceOptimizeMidPeriodView record); SpaceOptimizeMidPeriodView selectOne(SpaceOptimizeMidPeriodView record);
/**
* 中短期间开优化周期记录列表
*
* @param record 记录
* @return {@link List}<{@link SpaceOptimizeMidPeriodView}>
*/
List<SpaceOptimizeMidPeriodView> selectList(SpaceOptimizeMidPeriodView record); List<SpaceOptimizeMidPeriodView> selectList(SpaceOptimizeMidPeriodView record);
} }
package pps.core.space.service; 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.PageHelper;
import com.github.pagehelper.PageInfo; 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.entity.SpaceOptimizeMidPeriodView;
import pps.core.space.mapper.SpaceOptimizeMidPeriodMapper;
import pps.core.space.mapper.SpaceOptimizeMidPeriodViewMapper; 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.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext; import xstartup.base.XContext;
import xstartup.base.data.CustomQueryInput;
import xstartup.base.util.XCopyUtils; import xstartup.base.util.XCopyUtils;
import xstartup.data.XPageResult; import xstartup.data.XPageResult;
import xstartup.data.XServiceResult;
import xstartup.data.XSingleResult; import xstartup.data.XSingleResult;
import xstartup.error.XError; import xstartup.error.XError;
import xstartup.feature.api.annotation.XApiAnonymous; import xstartup.feature.api.annotation.XApiAnonymous;
import xstartup.feature.api.annotation.XApiGet; 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.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 中短期间开优化模块
*
* @author ZWT
* @date 2023/09/07
*/
@XService @XService
@XText("中短期间开优化模块")
public class SpaceOptimizeMidPeriodService { 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 @XApiAnonymous
@XApiGet @XApiGet
public XSingleResult<GetSpaceOptimizeMidPeriodOutput> getSpaceOptimizeMidPeriod(XContext context, GetSpaceOptimizeMidPeriodInput input) { @XText("中短期间开优化--分页列表")
SpaceOptimizeMidPeriodMapper mapper = context.getBean(SpaceOptimizeMidPeriodMapper.class); public XPageResult<QuerySpaceOptimizeMidPeriodViewOutput> querySpaceOptimizeMidPeriodView(XContext context, QuerySpaceOptimizeMidPeriodViewInput input) {
QueryWrapper<SpaceOptimizeMidPeriodEnt> queryWrapper = new QueryWrapper<>(); SpaceOptimizeMidPeriodViewMapper mapper = context.getBean(SpaceOptimizeMidPeriodViewMapper.class);
queryWrapper.lambda().eq(SpaceOptimizeMidPeriodEnt::getId, input.getId()); SpaceOptimizeMidPeriodView record = XCopyUtils.copyNewObject(input, SpaceOptimizeMidPeriodView.class);
SpaceOptimizeMidPeriodEnt entity = mapper.selectOne(queryWrapper); PageHelper.startPage(input.getPage(), input.getLimit());
if (entity == null) { List<SpaceOptimizeMidPeriodView> list = mapper.selectList(record);
return XSingleResult.error(context, XError.NotFound); PageInfo<SpaceOptimizeMidPeriodView> pageInfo = new PageInfo<>(list);
} List<QuerySpaceOptimizeMidPeriodViewOutput> outputs = XCopyUtils.copyNewList(pageInfo.getList(), QuerySpaceOptimizeMidPeriodViewOutput.class);
GetSpaceOptimizeMidPeriodOutput output = new GetSpaceOptimizeMidPeriodOutput(); if (CollUtil.isNotEmpty(outputs)) {
XCopyUtils.copyObject(entity, output); Map<String, String> gridTypeMap = ServiceUtil.getDictMap(context, BusinessConstant.GRID_TYPE);
return XSingleResult.success(output); Map<String, String> ouMap = ServiceUtil.getOuMapByOuIds(context, outputs.stream()
} .map(QuerySpaceOptimizeMidPeriodViewOutput::getOuId)
.distinct()
@XApiAnonymous .collect(Collectors.toList())
@XApiGet );
public XPageResult<QuerySpaceOptimizeMidPeriodOutput> querySpaceOptimizeMidPeriod(XContext context, QuerySpaceOptimizeMidPeriodInput input) { String lineName = ServiceUtil.getPowerLineNameById(context, input.getLineId());
SpaceOptimizeMidPeriodMapper mapper = context.getBean(SpaceOptimizeMidPeriodMapper.class); outputs.forEach(output -> {
QueryWrapper<SpaceOptimizeMidPeriodEnt> queryWrapper = new QueryWrapper<>(); output.setLineName(lineName);
queryWrapper.lambda().like(SpaceOptimizeMidPeriodEnt::getId, input.getId()) output.setOuName(ouMap.get(output.getOuId()));
.eq(SpaceOptimizeMidPeriodEnt::getIsDeleted, input.getIsDeleted()) output.setGridTypeName(gridTypeMap.get(output.getGridTypeKey()));
.like(SpaceOptimizeMidPeriodEnt::getCreateById, input.getCreateById()) output.setOptimizeStateValue(output.getOptimizeState().equals(0) ? "已优化" : "未优化");
.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);
} }
return XPageResult.success(outputs, input, pageInfo.getTotal());
@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);
} }
/**
* 中短期间开优化--详情
*
* @param context 上下文
* @param input 输入
* @return {@link XSingleResult}<{@link GetSpaceOptimizeMidPeriodViewOutput}>
*/
@XApiAnonymous @XApiAnonymous
@XApiGet @XApiGet
@XText("中短期间开优化--详情")
public XSingleResult<GetSpaceOptimizeMidPeriodViewOutput> getSpaceOptimizeMidPeriodView(XContext context, GetSpaceOptimizeMidPeriodViewInput input) { public XSingleResult<GetSpaceOptimizeMidPeriodViewOutput> getSpaceOptimizeMidPeriodView(XContext context, GetSpaceOptimizeMidPeriodViewInput input) {
SpaceOptimizeMidPeriodViewMapper mapper = context.getBean(SpaceOptimizeMidPeriodViewMapper.class); SpaceOptimizeMidPeriodViewMapper mapper = context.getBean(SpaceOptimizeMidPeriodViewMapper.class);
SpaceOptimizeMidPeriodView record = new SpaceOptimizeMidPeriodView(); SpaceOptimizeMidPeriodView record = new SpaceOptimizeMidPeriodView();
...@@ -121,18 +92,4 @@ public class SpaceOptimizeMidPeriodService { ...@@ -121,18 +92,4 @@ public class SpaceOptimizeMidPeriodService {
XCopyUtils.copyObject(view, output); XCopyUtils.copyObject(view, output);
return XSingleResult.success(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 { ...@@ -17,7 +17,4 @@ public class QuerySpaceOptimizeLongPeriodViewInput extends XPageInput {
@XText("线路ID") @XText("线路ID")
@NotBlank(message = "缺少线路ID") @NotBlank(message = "缺少线路ID")
private String lineId; private String lineId;
@XText("间开制度ID")
private String institutionId;
} }
package pps.core.space.service.data.space_optimize_mid_period; package pps.core.space.service.data.space_optimize_mid_period;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import xstartup.base.data.XPageInput; import xstartup.base.data.XPageInput;
import java.util.Date; /**
* 中短期间开优化周期记录
*
* @author ZWT
* @date 2023/09/07
*/
@Data
public class QuerySpaceOptimizeMidPeriodViewInput extends XPageInput { 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") @XText("线路ID")
@NotBlank(message = "缺少线路ID")
private String lineId; 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; package pps.core.space.service.data.space_optimize_mid_period;
import lombok.Data;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.util.Date; import java.util.Date;
public class QuerySpaceOptimizeMidPeriodViewOutput extends XPageInput { /**
* 中短期间开优化周期记录
*
* @author ZWT
* @date 2023/09/07
*/
@Data
public class QuerySpaceOptimizeMidPeriodViewOutput {
@XText("ID") @XText("ID")
private String 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") @XText("线路ID")
private String lineId; private String lineId;
...@@ -45,108 +32,45 @@ public class QuerySpaceOptimizeMidPeriodViewOutput extends XPageInput { ...@@ -45,108 +32,45 @@ public class QuerySpaceOptimizeMidPeriodViewOutput extends XPageInput {
@XText("优化截止日期") @XText("优化截止日期")
private Date optimizeDeadline; private Date optimizeDeadline;
public String getId() { /**
return this.id; * 组织机构ID
} */
@XText("组织机构ID")
public void setId(String value) { private String ouId;
this.id = value;
} /**
* 电网类型key(字典获取)
public Integer getIsDeleted() { */
return this.isDeleted; @XText("电网类型key(字典获取)")
} private String gridTypeKey;
public void setIsDeleted(Integer value) { /**
this.isDeleted = value; * 制度名称
} */
@XText("制度名称")
public String getCreateById() { private String institutionName;
return this.createById;
} /**
* 线路名称
public void setCreateById(String value) { */
this.createById = value; @XText("线路名称")
} private String lineName;
public String getCreateByName() { /**
return this.createByName; * 组织机构名称
} */
@XText("组织机构名称")
public void setCreateByName(String value) { private String ouName;
this.createByName = value;
} /**
* 电网类型名称
public Date getCreateTime() { */
return this.createTime; @XText("电网类型名称")
} private String gridTypeName;
public void setCreateTime(Date value) { /**
this.createTime = value; * 优化状态值
} */
@XText("优化状态(0_已优化;1_未优化)")
public String getModifyById() { private String optimizeStateValue;
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;
}
} }
...@@ -39,11 +39,30 @@ ...@@ -39,11 +39,30 @@
where where
id=#{id} id=#{id}
</select> </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 id="selectList" parameterType="pps.core.space.entity.SpaceOptimizeMidPeriodView" resultMap="BaseResultMap">
select SELECT p.id,
<include refid="Base_Column_List"/> p.line_id,
from space_optimize_mid_period p.institution_id,
where p.execution_cycle,
id=#{id} 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> </select>
</mapper> </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