1.河北修改

This commit is contained in:
cdf
2024-04-18 08:39:02 +08:00
parent ae17969569
commit eb296c18c8
11 changed files with 167 additions and 21 deletions

View File

@@ -204,6 +204,11 @@ public interface CommTerminalGeneralClient {
@PostMapping("/tagOrIdGetSub") @PostMapping("/tagOrIdGetSub")
HttpResult<List<SubGetBase>> tagOrIdGetSub(@RequestBody SubstationParam substationParam); HttpResult<List<SubGetBase>> tagOrIdGetSub(@RequestBody SubstationParam substationParam);
@GetMapping("/runLedgerStatistic")
HttpResult<Boolean> runLedgerStatistic(@RequestParam("date")String date);
/** /**
* 用于返回pq 还是pms系统 * 用于返回pq 还是pms系统
* *

View File

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

View File

@@ -31,4 +31,7 @@ public class LineDTO {
@ApiModelProperty(name = "ptPhaseType",value = "监测点接线相别0单相,1三相默认三相") @ApiModelProperty(name = "ptPhaseType",value = "监测点接线相别0单相,1三相默认三相")
private String ptPhaseType; private String ptPhaseType;
@ApiModelProperty(name = "objType",value = "对象类型")
private String objType;
} }

View File

@@ -29,4 +29,7 @@ public class DeptGetLineParam {
@ApiModelProperty(name = "monitorStateAll",value = "true.只返回在线监测点信息 false.返回全部监测点信息") @ApiModelProperty(name = "monitorStateAll",value = "true.只返回在线监测点信息 false.返回全部监测点信息")
private Boolean monitorStateRunning=true; private Boolean monitorStateRunning=true;
@ApiModelProperty(name = "isUpToGrid",value = "0.非送国网 1.需要送国网的")
private Integer isUpToGrid;
} }

View File

@@ -17,6 +17,7 @@ import com.njcn.device.biz.pojo.po.PqsDeviceUnit;
import com.njcn.device.pms.pojo.po.Monitor; import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.po.PmsTerminal; import com.njcn.device.pms.pojo.po.PmsTerminal;
import com.njcn.device.pms.service.ledgerManger.CommTerminalService; 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.IDistributionMonitorService;
import com.njcn.device.pms.service.majornetwork.IMonitorService; import com.njcn.device.pms.service.majornetwork.IMonitorService;
import com.njcn.device.pms.service.majornetwork.ITerminalService; import com.njcn.device.pms.service.majornetwork.ITerminalService;
@@ -56,6 +57,8 @@ public class CommTerminalController extends BaseController {
private final ITerminalService terminalService; private final ITerminalService terminalService;
private final IPmsRunStatisticService iPmsRunStatisticService;
/** /**
* 通过部门获取所有子集部门所拥有的监测点 * 通过部门获取所有子集部门所拥有的监测点
* *
@@ -432,4 +435,20 @@ 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

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

View File

@@ -180,7 +180,8 @@
pm.Voltage_Level as voltageLevel, pm.Voltage_Level as voltageLevel,
pm.Monitor_State as runFlag, pm.Monitor_State as runFlag,
pm.Terminal_Wiring_Method as ptType, pm.Terminal_Wiring_Method as ptType,
pm.PT_Phase_Type as ptPhaseType pm.PT_Phase_Type as ptPhaseType,
pm.Obj_Type
FROM FROM
pms_monitor pm pms_monitor pm
WHERE WHERE

View File

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

View File

@@ -85,6 +85,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
private final IPowerDistributionareaService iPowerDistributionareaService; private final IPowerDistributionareaService iPowerDistributionareaService;
private final LineBakMapper lineBakMapper; private final LineBakMapper lineBakMapper;
/** /**
* 基础获取单位信息 * 基础获取单位信息
* *
@@ -122,16 +123,17 @@ public class CommTerminalServiceImpl implements CommTerminalService {
List<DeptGetChildrenMoreDTO> result = new ArrayList<>(); List<DeptGetChildrenMoreDTO> result = new ArrayList<>();
List<DeptGetBase> temDept = getDeptChildrenByParent(deptGetLineParam); List<DeptGetBase> temDept = getDeptChildrenByParent(deptGetLineParam);
//电压等级 //电压等级
List<DictData> voltageDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); // List<DictData> voltageDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData();
Map<String, DictData> mapVoltage = voltageDic.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); //Map<String, DictData> mapVoltage = voltageDic.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
//监测点状态 //监测点状态
DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(), DicDataEnum.RUN.getName()).getData(); DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(), DicDataEnum.RUN.getName()).getData();
Map<String, List<Monitor>> map = new HashMap<>(); Map<String, List<Monitor>> map = new HashMap<>();
if (deptGetLineParam.getSystemType() == 0 || deptGetLineParam.getSystemType() == 2) { if (deptGetLineParam.getSystemType() == 0 || deptGetLineParam.getSystemType() == 2) {
List<Monitor> monitorList = monitorMapper.selectList(new LambdaQueryWrapper<Monitor>() List<Monitor> monitorList = monitorMapper.selectList(new LambdaQueryWrapper<Monitor>()
.eq(Monitor::getStatus, 1) .eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode())
.eq(deptGetLineParam.getMonitorStateRunning(),Monitor::getMonitorState, dictData.getId())); .eq(Objects.nonNull(deptGetLineParam.getIsUpToGrid()), Monitor::getIsUpToGrid, deptGetLineParam.getIsUpToGrid())
.eq(deptGetLineParam.getMonitorStateRunning(), Monitor::getMonitorState, dictData.getId()));
map = monitorList.stream().collect(Collectors.groupingBy(Monitor::getOrgId)); map = monitorList.stream().collect(Collectors.groupingBy(Monitor::getOrgId));
} }
//TODO 配网数据量巨大,暂时注释 //TODO 配网数据量巨大,暂时注释
@@ -596,7 +598,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
LineBak lineBak = lineBakMapper.selectOne(new LambdaQueryWrapper<LineBak>() LineBak lineBak = lineBakMapper.selectOne(new LambdaQueryWrapper<LineBak>()
.eq(LineBak::getId, monitor.getId()) .eq(LineBak::getId, monitor.getId())
); );
if(ObjUtil.isNotNull(lineBak)){ if (ObjUtil.isNotNull(lineBak)) {
lineDevGetDTO.setOracleLineId(lineBak.getLineId()); lineDevGetDTO.setOracleLineId(lineBak.getLineId());
} }
return lineDevGetDTO; return lineDevGetDTO;
@@ -784,15 +786,15 @@ public class CommTerminalServiceImpl implements CommTerminalService {
@Override @Override
public List<BusBarAndHisMonitorDTO> getBusBarAndHisMonitor() { public List<BusBarAndHisMonitorDTO> getBusBarAndHisMonitor() {
List<BusBarAndHisMonitorDTO> result = new ArrayList<>(); List<BusBarAndHisMonitorDTO> result = new ArrayList<>();
DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(),DicDataEnum.RUN.getName()).getData(); DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(), DicDataEnum.RUN.getName()).getData();
LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.select(Monitor::getId,Monitor::getLineId).eq(Monitor::getMonitorState,dictData.getId()) lambdaQueryWrapper.select(Monitor::getId, Monitor::getLineId).eq(Monitor::getMonitorState, dictData.getId())
.eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode()); .eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode());
List<Monitor> monitorList = monitorMapper.selectList(lambdaQueryWrapper); List<Monitor> monitorList = monitorMapper.selectList(lambdaQueryWrapper);
Map<String,List<Monitor>> busBarMap = monitorList.stream().collect(Collectors.groupingBy(Monitor::getLineId)); Map<String, List<Monitor>> busBarMap = monitorList.stream().collect(Collectors.groupingBy(Monitor::getLineId));
busBarMap.forEach((key,val)->{ busBarMap.forEach((key, val) -> {
BusBarAndHisMonitorDTO busBarAndHisMonitorDTO = new BusBarAndHisMonitorDTO(); BusBarAndHisMonitorDTO busBarAndHisMonitorDTO = new BusBarAndHisMonitorDTO();
busBarAndHisMonitorDTO.setBusBarId(key); busBarAndHisMonitorDTO.setBusBarId(key);
busBarAndHisMonitorDTO.setMonitorIds(val.stream().map(Monitor::getId).collect(Collectors.toList())); busBarAndHisMonitorDTO.setMonitorIds(val.stream().map(Monitor::getId).collect(Collectors.toList()));
@@ -802,19 +804,19 @@ public class CommTerminalServiceImpl implements CommTerminalService {
} }
@Override @Override
public List<CommMonitorInfoDTO> tagOrIdGetMonitorList(List<String> tagList, List<String> monitorIds,List<String> deptIds) { public List<CommMonitorInfoDTO> tagOrIdGetMonitorList(List<String> tagList, List<String> monitorIds, List<String> deptIds) {
List<CommMonitorInfoDTO> result = new ArrayList<>(); List<CommMonitorInfoDTO> result = new ArrayList<>();
DictData dictData = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.RUN.getCode(),DicDataTypeEnum.LINE_STATE.getCode()).getData(); DictData dictData = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.RUN.getCode(), DicDataTypeEnum.LINE_STATE.getCode()).getData();
List<Dept> deptList = deptFeignClient.getDeptInfoListByIds(deptIds).getData(); List<Dept> deptList = deptFeignClient.getDeptInfoListByIds(deptIds).getData();
List<Monitor> monitorList = monitorMapper.selectList(new LambdaQueryWrapper<Monitor>() List<Monitor> monitorList = monitorMapper.selectList(new LambdaQueryWrapper<Monitor>()
.eq(Monitor::getStatus,DataStateEnum.ENABLE.getCode()).in(Monitor::getOrgId,deptList.stream().map(Dept::getCode).collect(Collectors.toList())) .eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode()).in(Monitor::getOrgId, deptList.stream().map(Dept::getCode).collect(Collectors.toList()))
.eq(Monitor::getMonitorState,dictData.getId()) .eq(Monitor::getMonitorState, dictData.getId())
.in(Monitor::getMonitorTag,tagList) .in(Monitor::getMonitorTag, tagList)
.or(CollectionUtil.isNotEmpty(monitorIds),item->item.in(CollectionUtil.isNotEmpty(monitorIds),Monitor::getId,monitorIds))); .or(CollectionUtil.isNotEmpty(monitorIds), item -> item.in(CollectionUtil.isNotEmpty(monitorIds), Monitor::getId, monitorIds)));
monitorList.forEach(item->result.add(CommMonitorInfoDTO.builder().id(item.getId()).name(item.getName()).powerStationName(item.getPowerrName()).objTagId(item.getMonitorTag()).build())); monitorList.forEach(item -> result.add(CommMonitorInfoDTO.builder().id(item.getId()).name(item.getName()).powerStationName(item.getPowerrName()).objTagId(item.getMonitorTag()).build()));
return result; return result;
} }
@@ -846,10 +848,10 @@ public class CommTerminalServiceImpl implements CommTerminalService {
//获取部门下变电信息 //获取部门下变电信息
List<PmsStatationStatInfoDTO> sub = statationAndMonitorMap.get(deptId); List<PmsStatationStatInfoDTO> sub = statationAndMonitorMap.get(deptId);
Map<String, List<PmsStatationStatInfoDTO>> subMap = sub.stream() Map<String, List<PmsStatationStatInfoDTO>> subMap = sub.stream()
.collect(Collectors.groupingBy(x->x.getPowerId()+"_"+x.getPowerName()+"_"+x.getPowerVoltageLevel())); .collect(Collectors.groupingBy(x -> x.getPowerId() + "_" + x.getPowerName() + "_" + x.getPowerVoltageLevel()));
for (Map.Entry<String, List<PmsStatationStatInfoDTO>> stringListEntry : subMap.entrySet()) { for (Map.Entry<String, List<PmsStatationStatInfoDTO>> stringListEntry : subMap.entrySet()) {
String[] split = stringListEntry.getKey().split("_"); String[] split = stringListEntry.getKey().split("_");
subGetBase=new SubGetBase(); subGetBase = new SubGetBase();
subGetBase.setId(split[0]); subGetBase.setId(split[0]);
subGetBase.setName(split[1]); subGetBase.setName(split[1]);
subGetBase.setVoltageLevel(split[2]); subGetBase.setVoltageLevel(split[2]);

View File

@@ -0,0 +1,62 @@
package com.njcn.device.pms.service.ledgerManger.impl;
import cn.hutool.core.util.StrUtil;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
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.PmsRunStatisticMapper;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.po.PmsRunStatistic;
import com.njcn.device.pms.service.ledgerManger.CommTerminalService;
import com.njcn.device.pms.service.ledgerManger.IPmsRunStatisticService;
import com.njcn.device.pms.service.majornetwork.IMonitorService;
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;
/**
* <p>
* 服务实现类
* </p>
*
* @author cdf
* @since 2024-04-17
*/
@Service
@RequiredArgsConstructor
public class PmsRunStatisticServiceImpl extends MppServiceImpl<PmsRunStatisticMapper, PmsRunStatistic> implements IPmsRunStatisticService {
private final CommTerminalService commTerminalService;
private final DeptFeignClient deptFeignClient;
@Override
public void statisticLedgerRunDay(String date) {
Dept dept = deptFeignClient.getRootDept().getData();
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
deptGetLineParam.setDeptId(dept.getId());
deptGetLineParam.setIsUpToGrid(1);
List<DeptGetChildrenMoreDTO> deptGetChildrenMoreDTOList = commTerminalService.deptGetLine(deptGetLineParam);
List<PmsRunStatistic> poList = new ArrayList<>();
for(DeptGetChildrenMoreDTO dto : deptGetChildrenMoreDTOList){
PmsRunStatistic pmsRunStatistic = new PmsRunStatistic();
pmsRunStatistic.setStatisticDate(LocalDate.parse(date));
pmsRunStatistic.setDeptId(dto.getUnitId());
pmsRunStatistic.setRunMonitorIds(dto.getLineBaseList().stream().map(LineDevGetDTO::getPointId).distinct().collect(Collectors.joining(StrUtil.COMMA)));
pmsRunStatistic.setRunDevIds(dto.getLineBaseList().stream().map(LineDevGetDTO::getDevId).distinct().collect(Collectors.joining(StrUtil.COMMA)));
poList.add(pmsRunStatistic);
}
this.saveBatch(poList);
}
}

View File

@@ -1013,7 +1013,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
List<DictData> monitorStatelDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData(); List<DictData> monitorStatelDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData();
Map<String, DictData> monitorStateDicMap = monitorStatelDic.stream().collect(Collectors.toMap(DictData::getName, Function.identity())); Map<String, DictData> monitorStateDicMap = monitorStatelDic.stream().collect(Collectors.toMap(DictData::getName, Function.identity()));
//检测点对象类型(原监测点标签 //监测点标签
List<DictData> objTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData(); List<DictData> objTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
Map<String, DictData> objTypeDicMap = objTypeList.stream().collect(Collectors.toMap(DictData::getName, Function.identity())); Map<String, DictData> objTypeDicMap = objTypeList.stream().collect(Collectors.toMap(DictData::getName, Function.identity()));