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; 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.GetBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput; import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput;
import xstartup.annotation.XService; import xstartup.annotation.XService;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import xstartup.base.XContext; import xstartup.base.XContext;
import xstartup.data.XListResult;
import xstartup.data.XSingleResult; import xstartup.data.XSingleResult;
import xstartup.feature.api.annotation.XApiGet;
import xstartup.feature.api.annotation.XApiPost;
/** /**
* 输电线路配置 * 输电线路配置
...@@ -26,5 +31,17 @@ public interface BasePowerLineCloudService { ...@@ -26,5 +31,17 @@ public interface BasePowerLineCloudService {
* @return {@link XSingleResult}<{@link GetBasePowerLineViewOutput}> * @return {@link XSingleResult}<{@link GetBasePowerLineViewOutput}>
*/ */
@XText("输电线路配置模块--通过ID查询线路基本信息") @XText("输电线路配置模块--通过ID查询线路基本信息")
@XApiGet
XSingleResult<GetBasePowerLineViewOutput> getBasePowerLineById(XContext context, GetBasePowerLineInput input); 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; package pps.core.base.service;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.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.GetBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput; import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput;
import pps.core.base.entity.BasePowerLineEnt; import pps.core.base.entity.BasePowerLineEnt;
...@@ -10,8 +14,11 @@ import pps.core.common.entity.BaseModel; ...@@ -10,8 +14,11 @@ import pps.core.common.entity.BaseModel;
import xstartup.annotation.XService; import xstartup.annotation.XService;
import xstartup.base.XContext; import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils; import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult;
import xstartup.data.XSingleResult; import xstartup.data.XSingleResult;
import java.util.List;
/** /**
* 输电线路配置模块 * 输电线路配置模块
* *
...@@ -37,4 +44,38 @@ public class BasePowerLineCloudServiceImpl implements BasePowerLineCloudService ...@@ -37,4 +44,38 @@ public class BasePowerLineCloudServiceImpl implements BasePowerLineCloudService
GetBasePowerLineViewOutput output = XCopyUtils.copyNewObject(entity, GetBasePowerLineViewOutput.class); GetBasePowerLineViewOutput output = XCopyUtils.copyNewObject(entity, GetBasePowerLineViewOutput.class);
return XSingleResult.success(output); 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; ...@@ -5,12 +5,19 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import org.apache.commons.lang3.StringUtils;
import pps.core.common.constant.BusinessConstant; import pps.core.common.constant.BusinessConstant;
import pps.core.common.entity.BaseModel; import pps.core.common.entity.BaseModel;
import pps.core.common.session.PpsUserSession; import pps.core.common.session.PpsUserSession;
import pps.core.common.utils.BaseUtils; import pps.core.common.utils.BaseUtils;
import pps.core.space.entity.*; import pps.core.space.entity.SpaceInstitutionDetailEnt;
import pps.core.space.mapper.*; 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_detail.*;
import pps.core.space.service.data.space_institution_duration.GetSpaceInstitutionDurationViewOutput; import pps.core.space.service.data.space_institution_duration.GetSpaceInstitutionDurationViewOutput;
import pps.core.space.service.data.space_institution_wellhead.CreateSpaceInstitutionWellheadInput; import pps.core.space.service.data.space_institution_wellhead.CreateSpaceInstitutionWellheadInput;
...@@ -244,14 +251,35 @@ public class SpaceInstitutionDetailService { ...@@ -244,14 +251,35 @@ public class SpaceInstitutionDetailService {
*/ */
@XApiAnonymous @XApiAnonymous
@XApiGet @XApiGet
@XText("基础间开配置--分页列表")
public XPageResult<QuerySpaceInstitutionDetailViewOutput> querySpaceInstitutionDetailView(XContext context, QuerySpaceInstitutionDetailViewInput input) { public XPageResult<QuerySpaceInstitutionDetailViewOutput> querySpaceInstitutionDetailView(XContext context, QuerySpaceInstitutionDetailViewInput input) {
SpaceInstitutionDetailViewMapper mapper = context.getBean(SpaceInstitutionDetailViewMapper.class); String lineId = input.getLineId();
SpaceInstitutionDetailView record = new SpaceInstitutionDetailView(); String institutionName = input.getInstitutionName();
XCopyUtils.copyObject(input, record); SpaceInstitutionDetailMapper mapper = context.getBean(SpaceInstitutionDetailMapper.class);
PageHelper.startPage(input.getPage(), input.getLimit()); PageHelper.startPage(input.getPage(), input.getLimit());
List<SpaceInstitutionDetailView> list = mapper.selectList(record); List<SpaceInstitutionDetailEnt> detailEntList = mapper.selectList(new LambdaQueryWrapper<SpaceInstitutionDetailEnt>()
PageInfo<SpaceInstitutionDetailView> pageInfo = new PageInfo<>(list); .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); 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()); return XPageResult.success(outputs, input, pageInfo.getTotal());
} }
......
package pps.core.space.service.data.space_institution_detail; package pps.core.space.service.data.space_institution_detail;
import jakarta.validation.constraints.NotBlank;
import lombok.Data; 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;
/** /**
* 基础间开配置 * 基础间开配置
* *
...@@ -14,57 +13,14 @@ import java.util.Date; ...@@ -14,57 +13,14 @@ import java.util.Date;
*/ */
@Data @Data
public class QuerySpaceInstitutionDetailViewInput extends XPageInput { 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") @XText("组织机构ID")
@NotBlank(message = "缺少组织机构ID")
private String ouId; private String ouId;
@XText("线路ID") @XText("线路ID")
private String lineId; private String lineId;
@XText("电网类型key(字典获取)")
private String gridTypeKey;
@XText("制度名称") @XText("制度名称")
private String institutionName; 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; ...@@ -3,8 +3,6 @@ package pps.core.space.service.data.space_institution_detail;
import lombok.Data; import lombok.Data;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.util.Date;
/** /**
* 基础间开配置 * 基础间开配置
* *
...@@ -13,30 +11,10 @@ import java.util.Date; ...@@ -13,30 +11,10 @@ import java.util.Date;
*/ */
@Data @Data
public class QuerySpaceInstitutionDetailViewOutput { public class QuerySpaceInstitutionDetailViewOutput {
@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 ouId; private String ouId;
...@@ -49,21 +27,30 @@ public class QuerySpaceInstitutionDetailViewOutput { ...@@ -49,21 +27,30 @@ public class QuerySpaceInstitutionDetailViewOutput {
@XText("制度名称") @XText("制度名称")
private String institutionName; private String institutionName;
@XText("制度开始时间")
private Date institutionStartDate;
@XText("制度结束时间")
private Date institutionEndDate;
@XText("优化至")
private Date optimizeDeadline;
@XText("优化状态(0_已优化,1_未优化)")
private Integer optimizeState;
@XText("当前基础制度(0_是,1_否)") @XText("当前基础制度(0_是,1_否)")
private Integer isCurrentBasic; 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; package pps.core.space.utils;
import pps.cloud.base.service.BasePowerLineCloudService; 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.GetBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput; import pps.cloud.base.service.data.base_power_line.GetBasePowerLineViewOutput;
import pps.cloud.system.service.SysOrganizationCloudService; import pps.cloud.system.service.SysOrganizationCloudService;
...@@ -96,7 +98,7 @@ public class ServiceUtil { ...@@ -96,7 +98,7 @@ public class ServiceUtil {
} }
/** /**
* 通过组织机构ID集合获取详情列表 * 通过组织机构ID集合获取组织名称
* *
* @param context 上下文 * @param context 上下文
* @param ouIds ou id * @param ouIds ou id
...@@ -131,4 +133,23 @@ public class ServiceUtil { ...@@ -131,4 +133,23 @@ public class ServiceUtil {
.map(GetBasePowerLineViewOutput::getLineName) .map(GetBasePowerLineViewOutput::getLineName)
.orElse(null); .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