Commit cbc09c1f authored by ZWT's avatar ZWT

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

1.开发间开制度管理-基础间开配置模块新增功能,完成接口冒烟测试并生成接口文档;
2.排查无法获取mapper对象导致空指针异常问题,space模块添加mapper配置类;
3.开发间开制度管理-基础间开配置模块修改功能,完成接口冒烟测试并生成接口文档;
4.开发间开制度管理-基础间开配置模块逻辑删除功能,完成接口冒烟测试并生成接口文档;
5.开发间开制度管理-基础间开配置模块详情功能,完成接口冒烟测试并生成接口文档;
6.开发基础信息管理-输电线路Cloud模块通过ID查询线路基本信息功能;
7.开发间开制度管理-基础间开配置模块分页列表功能,完成接口冒烟测试并生成接口文档;
8.开发基础信息管理-输电线路Cloud模块通过线路ID结婚查询线路名称集合基本信息功能;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent d1f1d2b5
package pps.cloud.base.service;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XListResult;
import xstartup.data.XSingleResult;
import xstartup.feature.api.annotation.XApiGet;
import xstartup.feature.api.annotation.XApiPost;
/**
* 输电线路配置
......@@ -26,5 +31,17 @@ public interface BasePowerLineCloudService {
* @return {@link XSingleResult}<{@link GetBasePowerLineViewOutput}>
*/
@XText("输电线路配置模块--通过ID查询线路基本信息")
@XApiGet
XSingleResult<GetBasePowerLineViewOutput> getBasePowerLineById(XContext context, GetBasePowerLineInput input);
/**
* 输电线路配置模块--条件查询线路基本信息列表
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBasePowerLineOutput}>
*/
@XText("输电线路配置模块--条件查询线路基本信息列表")
@XApiPost
XListResult<DynamicQueryBasePowerLineOutput> getBasePowerLineList(XContext context, DynamicQueryBasePowerLineInput input);
}
package pps.cloud.base.service.data.base_power_line;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
import java.util.List;
/**
* 输电线路配置
*
* @author ZWT
* @date 2023/08/29
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class DynamicQueryBasePowerLineInput {
@XText("线路ID")
private String lineId;
@XText("线路ID集合")
private List<String> lineIds;
@XText("组织机构ID")
private String ouId;
@XText("上级线路ID")
private String upperLineId;
@XText("线路名称")
private String lineName;
@XText("电网类型key(字典获取)")
private String gridTypeKey;
@XText("线路类型key(字典获取)")
private String lineTypeKey;
@XText("市电峰谷配置ID")
private String strategyId;
}
package pps.cloud.base.service.data.base_power_line;
import lombok.Data;
import xstartup.annotation.XText;
/**
* 输电线路配置
*
* @author ZWT
* @date 2023/08/29
*/
@Data
public class DynamicQueryBasePowerLineOutput {
@XText("ID")
private String id;
@XText("线路名称")
private String lineName;
}
package pps.core.base.service;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.commons.lang3.StringUtils;
import pps.cloud.base.service.BasePowerLineCloudService;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput;
import pps.core.base.entity.BasePowerLineEnt;
......@@ -10,8 +14,11 @@ import pps.core.common.entity.BaseModel;
import xstartup.annotation.XService;
import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult;
import xstartup.data.XSingleResult;
import java.util.List;
/**
* 输电线路配置模块
*
......@@ -37,4 +44,38 @@ public class BasePowerLineCloudServiceImpl implements BasePowerLineCloudService
GetBasePowerLineViewOutput output = XCopyUtils.copyNewObject(entity, GetBasePowerLineViewOutput.class);
return XSingleResult.success(output);
}
/**
* 输电线路配置模块--条件查询线路基本信息列表
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryBasePowerLineOutput}>
*/
@Override
public XListResult<DynamicQueryBasePowerLineOutput> getBasePowerLineList(XContext context, DynamicQueryBasePowerLineInput input) {
String lineId = input.getLineId();
List<String> lineIds = input.getLineIds();
String ouId = input.getOuId();
String upperLineId = input.getUpperLineId();
String lineName = input.getLineName();
String gridTypeKey = input.getGridTypeKey();
String lineTypeKey = input.getLineTypeKey();
String strategyId = input.getStrategyId();
BasePowerLineMapper mapper = context.getBean(BasePowerLineMapper.class);
List<BasePowerLineEnt> selectList = mapper.selectList(new LambdaQueryWrapper<BasePowerLineEnt>()
.select(BaseModel::getId, BasePowerLineEnt::getLineName)
.in(CollUtil.isNotEmpty(lineIds), BaseModel::getId, lineIds)
.eq(StringUtils.isNotBlank(lineId), BaseModel::getId, lineId)
.eq(StringUtils.isNotBlank(ouId), BasePowerLineEnt::getOuId, ouId)
.eq(StringUtils.isNotBlank(upperLineId), BasePowerLineEnt::getUpperLineId, upperLineId)
.like(StringUtils.isNotBlank(lineName), BasePowerLineEnt::getLineName, lineName)
.eq(StringUtils.isNotBlank(gridTypeKey), BasePowerLineEnt::getGridTypeKey, gridTypeKey)
.eq(StringUtils.isNotBlank(lineTypeKey), BasePowerLineEnt::getLineTypeKey, lineTypeKey)
.eq(StringUtils.isNotBlank(strategyId), BasePowerLineEnt::getStrategyId, strategyId)
.orderByDesc(BaseModel::getModifyTime)
);
List<DynamicQueryBasePowerLineOutput> lineOutputList = XCopyUtils.copyNewList(selectList, DynamicQueryBasePowerLineOutput.class);
return XListResult.success(lineOutputList);
}
}
\ No newline at end of file
......@@ -5,12 +5,19 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.lang3.StringUtils;
import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel;
import pps.core.common.session.PpsUserSession;
import pps.core.common.utils.BaseUtils;
import pps.core.space.entity.*;
import pps.core.space.mapper.*;
import pps.core.space.entity.SpaceInstitutionDetailEnt;
import pps.core.space.entity.SpaceInstitutionDurationEnt;
import pps.core.space.entity.SpaceInstitutionWellheadEnt;
import pps.core.space.entity.SpaceInstitutionWellheadView;
import pps.core.space.mapper.SpaceInstitutionDetailMapper;
import pps.core.space.mapper.SpaceInstitutionDurationMapper;
import pps.core.space.mapper.SpaceInstitutionWellheadMapper;
import pps.core.space.mapper.SpaceInstitutionWellheadViewMapper;
import pps.core.space.service.data.space_institution_detail.*;
import pps.core.space.service.data.space_institution_duration.GetSpaceInstitutionDurationViewOutput;
import pps.core.space.service.data.space_institution_wellhead.CreateSpaceInstitutionWellheadInput;
......@@ -244,14 +251,35 @@ public class SpaceInstitutionDetailService {
*/
@XApiAnonymous
@XApiGet
@XText("基础间开配置--分页列表")
public XPageResult<QuerySpaceInstitutionDetailViewOutput> querySpaceInstitutionDetailView(XContext context, QuerySpaceInstitutionDetailViewInput input) {
SpaceInstitutionDetailViewMapper mapper = context.getBean(SpaceInstitutionDetailViewMapper.class);
SpaceInstitutionDetailView record = new SpaceInstitutionDetailView();
XCopyUtils.copyObject(input, record);
String lineId = input.getLineId();
String institutionName = input.getInstitutionName();
SpaceInstitutionDetailMapper mapper = context.getBean(SpaceInstitutionDetailMapper.class);
PageHelper.startPage(input.getPage(), input.getLimit());
List<SpaceInstitutionDetailView> list = mapper.selectList(record);
PageInfo<SpaceInstitutionDetailView> pageInfo = new PageInfo<>(list);
List<SpaceInstitutionDetailEnt> detailEntList = mapper.selectList(new LambdaQueryWrapper<SpaceInstitutionDetailEnt>()
.eq(BaseModel::getIsDeleted, BusinessConstant.NORMAL)
.eq(SpaceInstitutionDetailEnt::getOuId, input.getOuId())
.eq(StringUtils.isNotBlank(lineId), SpaceInstitutionDetailEnt::getLineId, lineId)
.like(StringUtils.isNotBlank(institutionName), SpaceInstitutionDetailEnt::getInstitutionName, institutionName)
);
PageInfo<SpaceInstitutionDetailEnt> pageInfo = new PageInfo<>(detailEntList);
List<QuerySpaceInstitutionDetailViewOutput> outputs = XCopyUtils.copyNewList(pageInfo.getList(), QuerySpaceInstitutionDetailViewOutput.class);
if (CollUtil.isNotEmpty(outputs)) {
Map<String, String> gridTypeMap = ServiceUtil.getDictMap(context, BusinessConstant.GRID_TYPE);
Map<String, String> lineNameMap = ServiceUtil.getPowerLineNameMap(context, outputs.stream()
.map(QuerySpaceInstitutionDetailViewOutput::getLineId)
.distinct()
.collect(Collectors.toList())
);
String orgName = ServiceUtil.getSysOrgNameById(context, input.getOuId());
outputs.forEach(output -> {
output.setOuName(orgName);
output.setGridTypeName(gridTypeMap.get(output.getGridTypeKey()));
output.setLineName(lineNameMap.get(output.getLineId()));
output.setIsCurrentBasicValue(output.getIsCurrentBasic().equals(0) ? "是" : "否");
});
}
return XPageResult.success(outputs, input, pageInfo.getTotal());
}
......
package pps.core.space.service.data.space_institution_detail;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.util.Date;
/**
* 基础间开配置
*
......@@ -14,57 +13,14 @@ import java.util.Date;
*/
@Data
public class QuerySpaceInstitutionDetailViewInput 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 ouId;
@XText("线路ID")
private String lineId;
@XText("电网类型key(字典获取)")
private String gridTypeKey;
@XText("制度名称")
private String institutionName;
@XText("制度开始时间")
private Date institutionStartDate;
@XText("制度结束时间")
private Date institutionEndDate;
@XText("优化至")
private Date optimizeDeadline;
@XText("优化状态(0_已优化,1_未优化)")
private Integer optimizeState;
@XText("当前基础制度(0_是,1_否)")
private Integer isCurrentBasic;
@XText("启动间隔(分钟)")
private Integer startInterval;
}
......@@ -3,8 +3,6 @@ package pps.core.space.service.data.space_institution_detail;
import lombok.Data;
import xstartup.annotation.XText;
import java.util.Date;
/**
* 基础间开配置
*
......@@ -13,30 +11,10 @@ import java.util.Date;
*/
@Data
public class QuerySpaceInstitutionDetailViewOutput {
@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 ouId;
......@@ -49,21 +27,30 @@ public class QuerySpaceInstitutionDetailViewOutput {
@XText("制度名称")
private String institutionName;
@XText("制度开始时间")
private Date institutionStartDate;
@XText("制度结束时间")
private Date institutionEndDate;
@XText("优化至")
private Date optimizeDeadline;
@XText("优化状态(0_已优化,1_未优化)")
private Integer optimizeState;
@XText("当前基础制度(0_是,1_否)")
private Integer isCurrentBasic;
@XText("启动间隔(分钟)")
private Integer startInterval;
/**
* 线路名称
*/
@XText("线路名称")
private String lineName;
/**
* 组织机构名称
*/
@XText("组织机构名称")
private String ouName;
/**
* 电网类型名称
*/
@XText("电网类型名称")
private String gridTypeName;
/**
* 当前基础制度值
*/
@XText("当前基础制度值")
private String isCurrentBasicValue;
}
package pps.core.space.utils;
import pps.cloud.base.service.BasePowerLineCloudService;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput;
import pps.cloud.system.service.SysOrganizationCloudService;
......@@ -96,7 +98,7 @@ public class ServiceUtil {
}
/**
* 通过组织机构ID集合获取详情列表
* 通过组织机构ID集合获取组织名称
*
* @param context 上下文
* @param ouIds ou id
......@@ -131,4 +133,23 @@ public class ServiceUtil {
.map(GetBasePowerLineViewOutput::getLineName)
.orElse(null);
}
/**
* 通过线路ID集合获取线路名称Map
*
* @param context 上下文
* @param lineIds 线路ID
* @return {@link Map}<{@link String}, {@link String}>
*/
public static Map<String, String> getPowerLineNameMap(XContext context, List<String> lineIds) {
BasePowerLineCloudService lineService = context.getBean(BasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineOutput> result = lineService.getBasePowerLineList(context, DynamicQueryBasePowerLineInput.builder()
.lineIds(lineIds)
.build());
result.throwIfFail();
return result.getResult().stream()
.collect(
Collectors.toMap(DynamicQueryBasePowerLineOutput::getId, DynamicQueryBasePowerLineOutput::getLineName)
);
}
}
\ 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