河北pms两级文档需求开发

This commit is contained in:
cdf
2024-05-13 20:23:50 +08:00
parent cc24fc3124
commit ecf53c9bbb
17 changed files with 352 additions and 89 deletions

View File

@@ -47,4 +47,28 @@ public class EvaluationDownController extends BaseController {
Page<DimBusBarVO> page = evaluationDataService.getBaseEvaOnlineBusDetail(param);
return new PmsHttpResult<>(0, page);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getBaseEvaMonitorBusDetail")
@ApiOperation("国网上送-接收总部基准水平评估监测母线列表详情下穿接口")
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
public PmsHttpResult<Page<DimBusBarVO>> getBaseEvaMonitorBusDetail(@RequestBody DimBusBarParam param) {
String methodDescribe = getMethodDescribe("getBaseEvaOnlineBusDetail");
Page<DimBusBarVO> page = evaluationDataService.getBaseEvaMonitorBusDetail(param);
return new PmsHttpResult<>(0, page);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getBusListByVoltageLevel")
@ApiOperation("国网上送-接收总部基准水平评估监测母线列表详情下穿接口")
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
public PmsHttpResult<Page<DimBusBarVO>> getBusListByVoltageLevel(@RequestBody DimBusBarParam param) {
String methodDescribe = getMethodDescribe("getBusListByVoltageLevel");
Page<DimBusBarVO> page = evaluationDataService.getBusListByVoltageLevel(param);
return new PmsHttpResult<>(0, page);
}
}

View File

@@ -31,6 +31,17 @@ public interface IEvaluationDataService extends IService<RUploadEvaluationDataD>
*/
String uploadEvaluationData(UploadParam param);
/**
*接收总部基准水平评估在运母线数量详情下穿接口
*/
Page<DimBusBarVO> getBaseEvaOnlineBusDetail(DimBusBarParam param);
/**
*接收总部基准水平评估监测母线列表详情下穿接口
*/
Page<DimBusBarVO>getBaseEvaMonitorBusDetail(DimBusBarParam param);
Page<DimBusBarVO> getBusListByVoltageLevel(DimBusBarParam param);
}

View File

@@ -7,6 +7,7 @@ import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -16,6 +17,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.harmonic.mapper.upload.*;
import com.njcn.harmonic.pojo.dto.upload.PqEvaluationCreateDTO;
import com.njcn.harmonic.pojo.dto.upload.RDimUpDTO;
import com.njcn.harmonic.pojo.param.UploadDataParam;
import com.njcn.harmonic.pojo.param.UploadParam;
import com.njcn.harmonic.pojo.param.upload.DimBusBarParam;
@@ -24,6 +26,7 @@ import com.njcn.harmonic.pojo.vo.upload.DimBusBarVO;
import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo;
import com.njcn.harmonic.service.upload.IEvaluationDataService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
@@ -39,7 +42,9 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -173,88 +178,245 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
@Override
public Page<DimBusBarVO> getBaseEvaOnlineBusDetail(DimBusBarParam param) {
Dept dept = deptFeignClient.getRootDept().getData();
List<String> temBusIds = new ArrayList<>();
//TODO 非空判断以总部的返回方式返回
//统计类型不为空,则查询指定统计天数的数据
if (StrUtil.isNotBlank(param.getStatType())) {
//判断日月年不为空时候对应参数不能为空
if (StrUtil.isBlank(param.getStartTime()) || StrUtil.isBlank(param.getEndTime())) {
//TODO 需要抛出异常,抛异常格式需要和总部要求格式一致
if (StrUtil.isBlank(param.getStatType())) {
}
//判断日月年不为空时候对应参数不能为空
if (StrUtil.isBlank(param.getStartTime()) || StrUtil.isBlank(param.getEndTime())) {
}
if (StrUtil.isBlank(param.getNodeId())) {
//没有组织id则认为查询日的省级数据
}
LocalDate begin = LocalDate.parse(param.getStartTime());
if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_D.getCode())) {
//具体日期投运,监测台账查询
LambdaQueryWrapper<PmsRunStatisticD> dayLam = new LambdaQueryWrapper<>();
dayLam.eq(PmsRunStatisticD::getStatisticDate, begin).eq(PmsRunStatisticD::getDeptId, param.getNodeId());
PmsRunStatisticD pmsRunStatisticD = pmsRunStatisticDMapper.selectOne(dayLam);
if (Objects.nonNull(pmsRunStatisticD)) {
if (StrUtil.isNotBlank(param.getDataSource())) {
temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticD.getOnlineBusMidIds().split(StrUtil.COMMA)));
} else {
temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticD.getRunBusIds().split(StrUtil.COMMA)));
}
}
if (StrUtil.isBlank(param.getNodeId())) {
//没有组织id则认为查询日的省级数据
param.setNodeId(dept.getCode());
//稳态指标条件筛选
if (StrUtil.isNotBlank(param.getIndexType())) {
QueryWrapper<RDimBusUpD> queryWrapper = new QueryWrapper<>();
this.harmTarget(param,temBusIds, queryWrapper);
List<RDimBusUpD> rDimBusUpDList = rDimBusUpDMapper.selectList(queryWrapper);
if (CollectionUtil.isEmpty(rDimBusUpDList)) {
return new Page<>();
}
temBusIds = rDimBusUpDList.stream().map(RDimBusUpD::getMidBusId).distinct().collect(Collectors.toList());
}
List<String> orgIds = deptFeignClient.getDepSonSelfCodetByCode(param.getNodeId()).getData();
param.setOrgIds(orgIds);
if (param.getStatType().equals("03")) {
LocalDate day = LocalDate.parse(param.getStartTime());
//具体日期投运,监测台账查询
LambdaQueryWrapper<PmsRunStatisticD> dayLam = new LambdaQueryWrapper<>();
dayLam.eq(PmsRunStatisticD::getStatisticDate, day).in(PmsRunStatisticD::getDeptId, param.getNodeId());
PmsRunStatisticD pmsRunStatisticD = pmsRunStatisticDMapper.selectOne(dayLam);
if (Objects.nonNull(pmsRunStatisticD)) {
if (StrUtil.isNotBlank(param.getDataSource())) {
temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticD.getOnlineBusMidIds().split(StrUtil.COMMA)));
} else {
temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticD.getRunBusIds().split(StrUtil.COMMA)));
}
} else if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_M.getCode())) {
//具体日期投运,监测台账查询
LambdaQueryWrapper<PmsRunStatisticM> dayLam = new LambdaQueryWrapper<>();
dayLam.eq(PmsRunStatisticM::getStatisticDate, begin).eq(PmsRunStatisticM::getDeptId, param.getNodeId());
PmsRunStatisticM pmsRunStatisticM = pmsRunStatisticMMapper.selectOne(dayLam);
if (Objects.nonNull(pmsRunStatisticM)) {
if (StrUtil.isNotBlank(param.getDataSource())) {
temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticM.getOnlineBusMidIds().split(StrUtil.COMMA)));
} else {
temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticM.getRunBusIds().split(StrUtil.COMMA)));
}
}
//稳态指标条件筛选
if (StrUtil.isNotBlank(param.getIndexType())) {
QueryWrapper<RDimBusUpD> queryWrapper = new QueryWrapper<>();
this.harmTarget(param, queryWrapper);
queryWrapper.eq("statistic_date", day).eq("stat_date",param.getStatDate());
List<RDimBusUpD> rDimBusUpDList = rDimBusUpDMapper.selectList(queryWrapper);
if (CollectionUtil.isEmpty(rDimBusUpDList)) {
return new Page<>();
}
temBusIds = rDimBusUpDList.stream().map(RDimBusUpD::getMidBusId).distinct().collect(Collectors.toList());
//稳态指标条件筛选
if (StrUtil.isNotBlank(param.getIndexType())) {
QueryWrapper<RDimBusUpM> queryWrapper = new QueryWrapper<>();
this.harmTarget(param,temBusIds, queryWrapper);
List<RDimBusUpM> rDimBusUpMList = rDimBusUpMMapper.selectList(queryWrapper);
if (CollectionUtil.isEmpty(rDimBusUpMList)) {
return new Page<>();
}
} else if (param.getStatType().equals("02")) {
LocalDate monthBegin = LocalDate.parse(param.getStartTime());
//具体日期投运,监测台账查询
LambdaQueryWrapper<PmsRunStatisticM> dayLam = new LambdaQueryWrapper<>();
dayLam.eq(PmsRunStatisticM::getStatisticDate, monthBegin).in(PmsRunStatisticM::getDeptId, param.getNodeId()).eq(PmsRunStatisticM::getStatDate,param.getStatDate());
PmsRunStatisticM pmsRunStatisticM = pmsRunStatisticMMapper.selectOne(dayLam);
if (Objects.nonNull(pmsRunStatisticM)) {
if (StrUtil.isNotBlank(param.getDataSource())) {
temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticM.getOnlineBusMidIds().split(StrUtil.COMMA)));
} else {
temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticM.getRunBusIds().split(StrUtil.COMMA)));
}
temBusIds = rDimBusUpMList.stream().map(RDimBusUpM::getMidBusId).distinct().collect(Collectors.toList());
}
} else if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_Y.getCode())) {
//具体日期投运,监测台账查询
LambdaQueryWrapper<PmsRunStatisticY> dayLam = new LambdaQueryWrapper<>();
dayLam.eq(PmsRunStatisticY::getStatisticDate, begin).eq(PmsRunStatisticY::getDeptId, param.getNodeId());
PmsRunStatisticY pmsRunStatisticY = pmsRunStatisticYMapper.selectOne(dayLam);
if (Objects.nonNull(pmsRunStatisticY)) {
if (StrUtil.isNotBlank(param.getDataSource())) {
temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticY.getOnlineBusMidIds().split(StrUtil.COMMA)));
} else {
temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticY.getRunBusIds().split(StrUtil.COMMA)));
}
}
//稳态指标条件筛选
if (StrUtil.isNotBlank(param.getIndexType())) {
QueryWrapper<RDimBusUpM> queryWrapper = new QueryWrapper<>();
this.harmTarget(param, queryWrapper);
queryWrapper.eq("statistic_date", monthBegin);
List<RDimBusUpM> rDimBusUpMList = rDimBusUpMMapper.selectList(queryWrapper);
if (CollectionUtil.isEmpty(rDimBusUpMList)) {
return new Page<>();
}
temBusIds = rDimBusUpMList.stream().map(RDimBusUpM::getMidBusId).distinct().collect(Collectors.toList());
//稳态指标条件筛选
if (StrUtil.isNotBlank(param.getIndexType())) {
QueryWrapper<RDimBusUpY> queryWrapper = new QueryWrapper<>();
this.harmTarget(param,temBusIds, queryWrapper);
List<RDimBusUpY> rDimBusUpYList = rDimBusUpYMapper.selectList(queryWrapper);
if (CollectionUtil.isEmpty(rDimBusUpYList)) {
return new Page<>();
}
temBusIds = rDimBusUpYList.stream().map(RDimBusUpY::getMidBusId).distinct().collect(Collectors.toList());
}
}
} else if (param.getStatType().equals("01")) {
param.setOnlineBusIds(temBusIds);
if (CollectionUtil.isEmpty(temBusIds)) {
return new Page<>();
}
return this.baseMapper.getBaseEvaOnlineBusDetail(new Page<>(param.getPageNum(), param.getPageSize()), param);
}
@Override
public Page<DimBusBarVO> getBaseEvaMonitorBusDetail(DimBusBarParam param) {
List<String> temBusIds = new ArrayList<>();
List<RDimUpDTO> rDimUpDTOList = new ArrayList<>();
LocalDate begin = LocalDate.parse(param.getStartTime());
String statisticType = param.getStatType();
if (DicDataEnum.STATISTICAL_TYPE_D.getCode().equals(statisticType)) {
temBusIds = getOnlineBusIds(param.getNodeId(), begin, PmsRunStatisticD.class);
} else if (DicDataEnum.STATISTICAL_TYPE_M.getCode().equals(statisticType)) {
temBusIds = getOnlineBusIds(param.getNodeId(), begin, PmsRunStatisticM.class);
} else if (DicDataEnum.STATISTICAL_TYPE_Y.getCode().equals(statisticType)) {
temBusIds = getOnlineBusIds(param.getNodeId(), begin, PmsRunStatisticY.class);
}
if (StrUtil.isNotBlank(param.getIndexType())) {
if (DicDataEnum.STATISTICAL_TYPE_D.getCode().equals(statisticType)) {
QueryWrapper<RDimBusUpD> queryWrapper = new QueryWrapper<>();
this.harmTarget(param,temBusIds, queryWrapper);
List<RDimBusUpD> rDimBusUpDList = rDimBusUpDMapper.selectList(queryWrapper);
if (CollectionUtil.isEmpty(rDimBusUpDList)) {
return new Page<>();
}
rDimBusUpDList.stream().filter(it->it.getPhasicType().equals("A")).forEach(it->{
RDimUpDTO rDimUpDTO = new RDimUpDTO();
rDimUpDTO.setBusMidId(it.getMidBusId());
rDimUpDTO.setEffectId(it.getEffectId());
rDimUpDTO.setEffectIds(it.getEffectIds());
rDimUpDTOList.add(rDimUpDTO);
});
temBusIds = rDimBusUpDList.stream().map(RDimBusUpD::getMidBusId).distinct().collect(Collectors.toList());
this.harmTarget(param, temBusIds, queryWrapper);
} else if (DicDataEnum.STATISTICAL_TYPE_M.getCode().equals(statisticType)) {
QueryWrapper<RDimBusUpM> queryWrapper = new QueryWrapper<>();
this.harmTarget(param,temBusIds, queryWrapper);
List<RDimBusUpM> rDimBusUpMList = rDimBusUpMMapper.selectList(queryWrapper);
if (CollectionUtil.isEmpty(rDimBusUpMList)) {
return new Page<>();
}
rDimBusUpMList.stream().filter(it->it.getPhasicType().equals("A")).forEach(it->{
RDimUpDTO rDimUpDTO = new RDimUpDTO();
rDimUpDTO.setBusMidId(it.getMidBusId());
rDimUpDTO.setEffectId(it.getEffectId());
rDimUpDTO.setEffectIds(it.getEffectIds());
rDimUpDTOList.add(rDimUpDTO);
});
if (CollectionUtil.isEmpty(rDimBusUpMList)) {
return new Page<>();
}
temBusIds = rDimBusUpMList.stream().map(RDimBusUpM::getMidBusId).distinct().collect(Collectors.toList());
} else if (DicDataEnum.STATISTICAL_TYPE_Y.getCode().equals(statisticType)) {
QueryWrapper<RDimBusUpY> queryWrapper = new QueryWrapper<>();
this.harmTarget(param,temBusIds, queryWrapper);
List<RDimBusUpY> rDimBusUpYList = rDimBusUpYMapper.selectList(queryWrapper);
if (CollectionUtil.isEmpty(rDimBusUpYList)) {
return new Page<>();
}
rDimBusUpYList.stream().filter(it->it.getPhasicType().equals("A")).forEach(it->{
RDimUpDTO rDimUpDTO = new RDimUpDTO();
rDimUpDTO.setBusMidId(it.getMidBusId());
rDimUpDTO.setEffectId(it.getEffectId());
rDimUpDTO.setEffectIds(it.getEffectIds());
rDimUpDTOList.add(rDimUpDTO);
});
if (CollectionUtil.isEmpty(rDimBusUpYList)) {
return new Page<>();
}
temBusIds = rDimBusUpYList.stream().map(RDimBusUpY::getMidBusId).distinct().collect(Collectors.toList());
}
}
param.setOnlineBusIds(temBusIds);
if (CollectionUtil.isEmpty(temBusIds)) {
return new Page<>();
}
return this.baseMapper.getBaseEvaOnlineBusDetail(new Page<>(param.getPageNum(), param.getPageSize()), param);
Page<DimBusBarVO> page = this.baseMapper.getBaseEvaOnlineBusDetail(new Page<>(param.getPageNum(), param.getPageSize()), param);
if(CollectionUtil.isNotEmpty(page.getRecords())){
Map<String,RDimUpDTO> map = rDimUpDTOList.stream().collect(Collectors.toMap(RDimUpDTO::getBusMidId,Function.identity()));
page.getRecords().forEach(it->{
it.setBusEfectiveMnitorNum(map.containsKey(it.getAstId())?map.get(it.getAstId()).getEffectIds().split(StrUtil.COMMA).length:0);
it.setBusEffectiveMonitors(map.containsKey(it.getAstId())?map.get(it.getAstId()).getEffectIds():null);
});
}
return page;
}
private void harmTarget(DimBusBarParam param, QueryWrapper queryWrapper) {
@Override
public Page<DimBusBarVO> getBusListByVoltageLevel(DimBusBarParam param) {
List<String> temBusIds = new ArrayList<>();
List<RDimUpDTO> rDimUpDTOList = new ArrayList<>();
LocalDate begin = LocalDate.parse(param.getStartTime());
String statisticType = param.getStatType();
if (DicDataEnum.STATISTICAL_TYPE_D.getCode().equals(statisticType)) {
temBusIds = getOnlineBusIds(param.getNodeId(), begin, PmsRunStatisticD.class);
} else if (DicDataEnum.STATISTICAL_TYPE_M.getCode().equals(statisticType)) {
temBusIds = getOnlineBusIds(param.getNodeId(), begin, PmsRunStatisticM.class);
} else if (DicDataEnum.STATISTICAL_TYPE_Y.getCode().equals(statisticType)) {
temBusIds = getOnlineBusIds(param.getNodeId(), begin, PmsRunStatisticY.class);
}
return null;
}
private List<String> getOnlineBusIds(String nodeId, LocalDate begin, Class<?> clazz) {
QueryWrapper<?> dayLam = new QueryWrapper<>();
dayLam.eq("statisticDate", begin).eq("deptId", nodeId);
Object pmsRunStatistic = null;
if (PmsRunStatisticD.class.equals(clazz)) {
pmsRunStatistic = pmsRunStatisticDMapper.selectOne((QueryWrapper<PmsRunStatisticD>) dayLam);
} else if (PmsRunStatisticM.class.equals(clazz)) {
pmsRunStatistic = pmsRunStatisticMMapper.selectOne((QueryWrapper<PmsRunStatisticM>)dayLam);
} else if (PmsRunStatisticY.class.equals(clazz)) {
pmsRunStatistic = pmsRunStatisticYMapper.selectOne((QueryWrapper<PmsRunStatisticY>)dayLam);
}
if (Objects.nonNull(pmsRunStatistic)) {
String onlineBusMidIds = null;
if (pmsRunStatistic instanceof PmsRunStatisticD) {
onlineBusMidIds = ((PmsRunStatisticD) pmsRunStatistic).getOnlineBusMidIds();
} else if (pmsRunStatistic instanceof PmsRunStatisticM) {
onlineBusMidIds = ((PmsRunStatisticM) pmsRunStatistic).getOnlineBusMidIds();
} else {
onlineBusMidIds = ((PmsRunStatisticY) pmsRunStatistic).getOnlineBusMidIds();
}
if (onlineBusMidIds != null) {
return Arrays.asList(onlineBusMidIds.split(StrUtil.COMMA));
}
}
return new ArrayList<>();
}
private void harmTarget(DimBusBarParam param,List<String> temBusIds, QueryWrapper queryWrapper) {
//稳态指标条件筛选
String target = "", harmV = "";
switch (param.getIndexType()) {
@@ -274,24 +436,25 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
target = "harm_v";
break;
}
queryWrapper.select("statistic_date", "phasic_type", "bus_id", "mid_bus_id");
queryWrapper.select("statistic_date", "phasic_type", "bus_id", "mid_bus_id","effect_id","effect_ids","voltage_level","v");
if (CollectionUtil.isNotEmpty(param.getSeqs())) {
queryWrapper.in("phasic_type", param.getSeqs());
}
queryWrapper.in("mid_bus_id",temBusIds);
queryWrapper.eq("statistic_date", LocalDate.parse(param.getStartTime()));
if (param.getIndexType().equals("05")) {
harmV = "uharm_" + param.getHarmonicNum() + "_overtime";
queryWrapper.gt(harmV, 0);
} else {
queryWrapper.gt(target, 0);
}
}
/**
* 获取当前单位的层级
*/