1.河北两级贯通接口调整

This commit is contained in:
cdf
2024-05-08 16:43:44 +08:00
parent 3e9d8638cb
commit 5036b8c75d
23 changed files with 434 additions and 128 deletions

View File

@@ -205,8 +205,7 @@ public interface CommTerminalGeneralClient {
HttpResult<List<SubGetBase>> tagOrIdGetSub(@RequestBody SubstationParam substationParam);
@GetMapping("/runLedgerStatistic")
HttpResult<Boolean> runLedgerStatistic(@RequestParam("date")String date);
/**

View File

@@ -169,11 +169,6 @@ public class CommTerminalGeneralClientFallbackFactory implements FallbackFactory
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Boolean> runLedgerStatistic(String date) {
log.error("{}异常,降级处理,异常为:{}", "统计每日运行测点装置详细信息", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<String> isPqOrPms() {

View File

@@ -1,73 +0,0 @@
package com.njcn.device.pms.pojo.po;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* pqs
*
* @author cdf
* @date 2024/4/17
*/
@TableName(value = "pms_run_statistic_d")
@Data
public class PmsRunStatisticD {
/**
*
*/
@MppMultiId
private LocalDate statisticDate;
@MppMultiId
private String deptId;
private String runMonitorIds;
private String onlineMonitorIds;
private String runBusIds;
private Integer runBusNum;
private String onlineBusIds;
private String runDevIds;
private String runStationIds;
private Integer runStationNum;
private String onlineStationIds;
private String typicalTractionIds;
private String typicalWindIds;
private String typicalSunIds;
private String typicalOtherIds;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
private LocalDateTime createTime;
}

View File

@@ -1,73 +0,0 @@
package com.njcn.device.pms.pojo.po;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* pqs
*
* @author cdf
* @date 2024/4/17
*/
@TableName(value = "pms_run_statistic_d")
@Data
public class PmsRunStatisticM {
/**
*
*/
@MppMultiId
private LocalDate statisticDate;
@MppMultiId
private String deptId;
private String runMonitorIds;
private String onlineMonitorIds;
private String runBusIds;
private Integer runBusNum;
private String onlineBusIds;
private String runDevIds;
private String runStationIds;
private Integer runStationNum;
private String onlineStationIds;
private String typicalTractionIds;
private String typicalWindIds;
private String typicalSunIds;
private String typicalOtherIds;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
private LocalDateTime createTime;
}

View File

@@ -1,73 +0,0 @@
package com.njcn.device.pms.pojo.po;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* pqs
*
* @author cdf
* @date 2024/4/17
*/
@TableName(value = "pms_run_statistic_d")
@Data
public class PmsRunStatisticY {
/**
*
*/
@MppMultiId
private LocalDate statisticDate;
@MppMultiId
private String deptId;
private String runMonitorIds;
private String onlineMonitorIds;
private String runBusIds;
private Integer runBusNum;
private String onlineBusIds;
private String runDevIds;
private String runStationIds;
private Integer runStationNum;
private String onlineStationIds;
private String typicalTractionIds;
private String typicalWindIds;
private String typicalSunIds;
private String typicalOtherIds;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
private LocalDateTime createTime;
}

View File

@@ -17,7 +17,6 @@ import com.njcn.device.biz.pojo.po.PqsDeviceUnit;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.po.PmsTerminal;
import com.njcn.device.pms.service.ledgerManger.CommTerminalService;
import com.njcn.device.pms.service.ledgerManger.IPmsRunStatisticService;
import com.njcn.device.pms.service.majornetwork.IDistributionMonitorService;
import com.njcn.device.pms.service.majornetwork.IMonitorService;
import com.njcn.device.pms.service.majornetwork.ITerminalService;
@@ -57,7 +56,6 @@ public class CommTerminalController extends BaseController {
private final ITerminalService terminalService;
private final IPmsRunStatisticService iPmsRunStatisticService;
/**
* 通过部门获取所有子集部门所拥有的监测点
@@ -435,19 +433,7 @@ public class CommTerminalController extends BaseController {
}
/**
* 统计每日运行测点装置详细信息
* @author cdf
* @date 2024/4/17
*/
@GetMapping("runLedgerStatistic")
@ApiOperation("统计每日运行测点装置详细信息")
@ApiIgnore
public HttpResult<Boolean> runLedgerStatistic(@RequestParam("date") String date) {
String methodDescribe = getMethodDescribe("runLedgerStatistic");
iPmsRunStatisticService.statisticLedgerRunDay(date);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
}

View File

@@ -1,18 +0,0 @@
package com.njcn.device.pms.mapper.majornetwork;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.device.pms.pojo.po.PmsRunStatisticD;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2024-04-17
*/
public interface PmsRunStatisticDMapper extends MppBaseMapper<PmsRunStatisticD> {
}

View File

@@ -1,19 +0,0 @@
package com.njcn.device.pms.mapper.majornetwork;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.device.pms.pojo.po.PmsRunStatisticD;
import com.njcn.device.pms.pojo.po.PmsRunStatisticM;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2024-04-17
*/
public interface PmsRunStatisticMMapper extends MppBaseMapper<PmsRunStatisticM> {
}

View File

@@ -1,19 +0,0 @@
package com.njcn.device.pms.mapper.majornetwork;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.device.pms.pojo.po.PmsRunStatisticD;
import com.njcn.device.pms.pojo.po.PmsRunStatisticY;
/**
* <p>
* Mapper 接口
* </p>
*
* @author cdf
* @since 2024-04-17
*/
public interface PmsRunStatisticYMapper extends MppBaseMapper<PmsRunStatisticY> {
}

View File

@@ -1,40 +0,0 @@
package com.njcn.device.pms.service.ledgerManger;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.pms.pojo.po.PmsRunStatisticD;
/**
* <p>
* 服务类
* </p>
*
* @author cdf
* @since 2024-04-17
*/
public interface IPmsRunStatisticService extends IMppService<PmsRunStatisticD> {
/**
* 对外接口,统计每日在运测点,在线装置详细信息
* @author cdf
* @date 2024/4/17
*/
void statisticLedgerRunDay(String date);
/**
* 每日统计每月
* @author cdf
* @date 2024/4/17
*/
void statisticLedgerRunMonth(String date);
/**
* 每日统计每年
* @author cdf
* @date 2024/4/17
*/
void statisticLedgerRunYear(String date);
}

View File

@@ -1,182 +0,0 @@
package com.njcn.device.pms.service.ledgerManger.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.device.pms.mapper.majornetwork.*;
import com.njcn.device.pms.pojo.po.*;
import com.njcn.device.pms.service.ledgerManger.CommTerminalService;
import com.njcn.device.pms.service.ledgerManger.IPmsRunStatisticService;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.api.DictTreeFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.enums.DicTreeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.system.pojo.po.SysDicTreePO;
import com.njcn.system.pojo.vo.DictTreeVO;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* <p>
* 服务实现类
* </p>
*
* @author cdf
* @since 2024-04-17
*/
@Service
@RequiredArgsConstructor
public class PmsRunStatisticServiceImpl extends MppServiceImpl<PmsRunStatisticDMapper, PmsRunStatisticD> implements IPmsRunStatisticService {
private final CommTerminalService commTerminalService;
private final DeptFeignClient deptFeignClient;
private final RStatIntegrityDMapper rStatIntegrityDMapper;
private final PmsMidLedgerMapper pmsMidLedgerMapper;
private final DicDataFeignClient dicDataFeignClient;
private final MonitorMapper monitorMapper;
private final DictTreeFeignClient dictTreeFeignClient;
private final StatationStatMapper statationStatMapper;
@Override
public void statisticLedgerRunDay(String date) {
Dept dept = deptFeignClient.getRootDept().getData();
LocalDate localDate = LocalDate.parse(date);
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
deptGetLineParam.setDeptId(dept.getId());
deptGetLineParam.setIsUpToGrid(1);
List<DeptGetChildrenMoreDTO> deptGetChildrenMoreDTOList = commTerminalService.deptGetLine(deptGetLineParam);
List<PmsRunStatisticD> poList = new ArrayList<>();
//获取在运母线,在运电站数量
List<PmsMidLedger> midLedgerStationList = this.getBusBarAndStationInfo(0);
List<PmsMidLedger> midLedgerBusBarList = this.getBusBarAndStationInfo(1);
//获取在运,符合上送国网的测点,用于过滤监测母线,监测电站
DictData dictData = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.RUN.getCode(),DicDataTypeEnum.LINE_STATE.getCode()).getData();
List<Monitor> monitorList = monitorMapper.selectList(new LambdaQueryWrapper<Monitor>().eq(Monitor::getMonitorState,dictData.getId()).eq(Monitor::getIsUpToGrid,DataStateEnum.ENABLE.getCode()));
List<StatationStat> statationStatList = statationStatMapper.selectList(new LambdaQueryWrapper<StatationStat>().isNotNull(StatationStat::getMidStationId));
//数据完整性
List<String> rStatIntegrityIds = rStatIntegrityDMapper.selectList(new LambdaQueryWrapper<RStatIntegrityD>().eq(RStatIntegrityD::getTimeId,localDate).gt(RStatIntegrityD::getRealTime,0)).stream().map(RStatIntegrityD::getLineIndex).distinct().collect(Collectors.toList());
//对象类型
List<SysDicTreePO> sysdictreepo = dictTreeFeignClient.queryAll().getData();
List<String> windfarm_user = Stream.of(DicDataEnum.WINDPOWER_STATION.getCode()).collect(Collectors.toList());
List<String> photovoltaicsit_eusers = Stream.of(DicDataEnum.PHOTOVOLTAIC_POWER_STATION.getCode()).collect(Collectors.toList());
List<String> tractionstation = Stream.of(DicDataEnum.ELECTRIFIED_RAILWAY.getCode()).collect(Collectors.toList());
DictTreeVO dictTreeVO = dictTreeFeignClient.queryByCode(DicTreeEnum.Imp_Users.getCode()).getData();
List<DictTreeVO> dictTreeVOList = dictTreeFeignClient.query(dictTreeVO.getId()).getData();
List<String> importUser = dictTreeVOList.stream().map(DictTreeVO::getCode).distinct().collect(Collectors.toList());
importUser.add(dictTreeVO.getCode());
List<String> windfarm_user_dict = sysdictreepo.stream().filter(temp -> windfarm_user.contains(temp.getCode())).map(SysDicTreePO::getId).collect(Collectors.toList());
List<String> photovoltaicsit_eusers_dict = sysdictreepo.stream().filter(temp -> photovoltaicsit_eusers.contains(temp.getCode())).map(SysDicTreePO::getId).collect(Collectors.toList());
List<String> tractionstation_dict = sysdictreepo.stream().filter(temp -> tractionstation.contains(temp.getCode())).map(SysDicTreePO::getId).collect(Collectors.toList());
List<String> import_dict = sysdictreepo.stream().filter(temp -> importUser.contains(temp.getCode())).map(SysDicTreePO::getId).collect(Collectors.toList());
List<String> un_other_interferencesource_users_dict = new ArrayList<>();
un_other_interferencesource_users_dict.addAll(photovoltaicsit_eusers_dict);
un_other_interferencesource_users_dict.addAll(tractionstation_dict);
un_other_interferencesource_users_dict.addAll(windfarm_user_dict);
un_other_interferencesource_users_dict.addAll(import_dict);
//遍历每个部门
for(DeptGetChildrenMoreDTO dto : deptGetChildrenMoreDTOList){
List<String> childrenDept = dto.getUnitChildrenList();
List<String> temPointIds = dto.getLineBaseList().stream().map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
List<String> onlinePointIds = temPointIds.stream().filter(rStatIntegrityIds::contains).collect(Collectors.toList());
PmsRunStatisticD pmsRunStatisticD = new PmsRunStatisticD();
pmsRunStatisticD.setStatisticDate(localDate);
pmsRunStatisticD.setDeptId(dto.getUnitId());
pmsRunStatisticD.setRunMonitorIds(String.join(StrUtil.COMMA, temPointIds));
pmsRunStatisticD.setOnlineMonitorIds(String.join(StrUtil.COMMA, onlinePointIds));
pmsRunStatisticD.setRunDevIds(dto.getLineBaseList().stream().map(LineDevGetDTO::getDevId).distinct().collect(Collectors.joining(StrUtil.COMMA)));
long stationCount = midLedgerStationList.stream().filter(it->childrenDept.contains(it.getSectionId())).map(PmsMidLedger::getId).distinct().count();
pmsRunStatisticD.setRunStationNum((int) stationCount);
long busBarCount = midLedgerBusBarList.stream().filter(it->childrenDept.contains(it.getSectionId())).map(PmsMidLedger::getId).distinct().count();
pmsRunStatisticD.setRunBusNum((int) busBarCount);
List<String> runBusIds = monitorList.stream().filter(it->childrenDept.contains(it.getOrgId())).map(Monitor::getLineId).distinct().collect(Collectors.toList());
pmsRunStatisticD.setOnlineBusIds(String.join(StrUtil.COMMA, runBusIds));
List<String> runStationIds = statationStatList.stream().filter(it->childrenDept.contains(it.getOrgId())).map(StatationStat::getPowerId).distinct().collect(Collectors.toList());
pmsRunStatisticD.setOnlineStationIds(String.join(StrUtil.COMMA, runStationIds));
//典型统计
List<String> windPointIds = dto.getLineBaseList().stream().filter(it->windfarm_user_dict.contains(it.getObjType())).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
List<String> sunPointIds = dto.getLineBaseList().stream().filter(it->photovoltaicsit_eusers_dict.contains(it.getObjType())).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
List<String> tractionPointIds = dto.getLineBaseList().stream().filter(it->tractionstation_dict.contains(it.getObjType())).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
List<String> otherPointIds = dto.getLineBaseList().stream().filter(it->!un_other_interferencesource_users_dict.contains(it.getObjType())).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
pmsRunStatisticD.setTypicalWindIds(String.join(StrUtil.COMMA, windPointIds));
pmsRunStatisticD.setTypicalSunIds(String.join(StrUtil.COMMA, sunPointIds));
pmsRunStatisticD.setTypicalTractionIds(String.join(StrUtil.COMMA, tractionPointIds));
pmsRunStatisticD.setTypicalOtherIds(String.join(StrUtil.COMMA, otherPointIds));
poList.add(pmsRunStatisticD);
}
this.saveBatch(poList);
}
@Override
public void statisticLedgerRunMonth(String date) {
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(date));
DateTime end = DateUtil.endOfMonth(DateUtil.parse(date));
}
@Override
public void statisticLedgerRunYear(String date) {
}
/**
* 获取中台母线电站信息
*/
public List<PmsMidLedger> getBusBarAndStationInfo(Integer type) {
LambdaQueryWrapper<PmsMidLedger> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PmsMidLedger::getLevel,type)
.eq(PmsMidLedger::getState, DataStateEnum.ENABLE.getCode());
return pmsMidLedgerMapper.selectList(lambdaQueryWrapper);
}
}