From eb296c18c8a3ebee2645663ee818b21afda0ceab Mon Sep 17 00:00:00 2001 From: cdf <857448963@qq.com> Date: Thu, 18 Apr 2024 08:39:02 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=B2=B3=E5=8C=97=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commApi/CommTerminalGeneralClient.java | 5 ++ ...mTerminalGeneralClientFallbackFactory.java | 6 ++ .../com/njcn/device/biz/pojo/dto/LineDTO.java | 3 + .../biz/pojo/param/DeptGetLineParam.java | 3 + .../ledgerManger/CommTerminalController.java | 19 ++++++ .../majornetwork/PmsRunStatisticMapper.java | 18 ++++++ .../majornetwork/mapping/MonitorMapper.xml | 3 +- .../ledgerManger/IPmsRunStatisticService.java | 27 ++++++++ .../impl/CommTerminalServiceImpl.java | 40 ++++++------ .../impl/PmsRunStatisticServiceImpl.java | 62 +++++++++++++++++++ .../majornetwork/impl/MonitorServiceImpl.java | 2 +- 11 files changed, 167 insertions(+), 21 deletions(-) create mode 100644 pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PmsRunStatisticMapper.java create mode 100644 pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/IPmsRunStatisticService.java create mode 100644 pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PmsRunStatisticServiceImpl.java diff --git a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/CommTerminalGeneralClient.java b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/CommTerminalGeneralClient.java index aa0623d77..2706430c0 100644 --- a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/CommTerminalGeneralClient.java +++ b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/CommTerminalGeneralClient.java @@ -204,6 +204,11 @@ public interface CommTerminalGeneralClient { @PostMapping("/tagOrIdGetSub") HttpResult> tagOrIdGetSub(@RequestBody SubstationParam substationParam); + + @GetMapping("/runLedgerStatistic") + HttpResult runLedgerStatistic(@RequestParam("date")String date); + + /** * 用于返回pq 还是pms系统 * diff --git a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java index e73cd9976..37051d682 100644 --- a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java +++ b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java @@ -169,6 +169,12 @@ public class CommTerminalGeneralClientFallbackFactory implements FallbackFactory throw new BusinessException(finalExceptionEnum); } + @Override + public HttpResult runLedgerStatistic(String date) { + log.error("{}异常,降级处理,异常为:{}", "统计每日运行测点装置详细信息", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } + @Override public HttpResult isPqOrPms() { log.error("{}异常,降级处理,异常为:{}", "返回pq还是pms系统", throwable.toString()); diff --git a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDTO.java b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDTO.java index 1f5bd360e..d2369f39b 100644 --- a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDTO.java +++ b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDTO.java @@ -31,4 +31,7 @@ public class LineDTO { @ApiModelProperty(name = "ptPhaseType",value = "监测点接线相别(0,单相,1,三相,默认三相)") private String ptPhaseType; + + @ApiModelProperty(name = "objType",value = "对象类型") + private String objType; } diff --git a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/param/DeptGetLineParam.java b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/param/DeptGetLineParam.java index d67e6973f..571caa035 100644 --- a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/param/DeptGetLineParam.java +++ b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/param/DeptGetLineParam.java @@ -29,4 +29,7 @@ public class DeptGetLineParam { @ApiModelProperty(name = "monitorStateAll",value = "true.只返回在线监测点信息 false.返回全部监测点信息") private Boolean monitorStateRunning=true; + @ApiModelProperty(name = "isUpToGrid",value = "0.非送国网 1.需要送国网的") + private Integer isUpToGrid; + } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/CommTerminalController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/CommTerminalController.java index 04c21d5f5..06f5ee9a0 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/CommTerminalController.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/CommTerminalController.java @@ -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.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; @@ -56,6 +57,8 @@ public class CommTerminalController extends BaseController { 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 runLedgerStatistic(@RequestParam("date") String date) { + String methodDescribe = getMethodDescribe("runLedgerStatistic"); + iPmsRunStatisticService.statisticLedgerRunDay(date); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); + } + + + } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PmsRunStatisticMapper.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PmsRunStatisticMapper.java new file mode 100644 index 000000000..87bfdc843 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PmsRunStatisticMapper.java @@ -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; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cdf + * @since 2024-04-17 + */ +public interface PmsRunStatisticMapper extends MppBaseMapper { + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/MonitorMapper.xml b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/MonitorMapper.xml index 9dfb5a969..fcdefdf12 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/MonitorMapper.xml +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/MonitorMapper.xml @@ -180,7 +180,8 @@ pm.Voltage_Level as voltageLevel, pm.Monitor_State as runFlag, pm.Terminal_Wiring_Method as ptType, - pm.PT_Phase_Type as ptPhaseType + pm.PT_Phase_Type as ptPhaseType, + pm.Obj_Type FROM pms_monitor pm WHERE diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/IPmsRunStatisticService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/IPmsRunStatisticService.java new file mode 100644 index 000000000..b8d6838df --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/IPmsRunStatisticService.java @@ -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; + +/** + *

+ * 服务类 + *

+ * + * @author cdf + * @since 2024-04-17 + */ +public interface IPmsRunStatisticService extends IMppService { + + /** + * 对外接口,统计每日在运测点,在线装置详细信息 + * @author cdf + * @date 2024/4/17 + */ + void statisticLedgerRunDay(String date); + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java index 72f1ea5b6..27b2930f2 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java @@ -85,6 +85,7 @@ public class CommTerminalServiceImpl implements CommTerminalService { private final IPowerDistributionareaService iPowerDistributionareaService; private final LineBakMapper lineBakMapper; + /** * 基础获取单位信息 * @@ -122,16 +123,17 @@ public class CommTerminalServiceImpl implements CommTerminalService { List result = new ArrayList<>(); List temDept = getDeptChildrenByParent(deptGetLineParam); //电压等级 - List voltageDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); - Map mapVoltage = voltageDic.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + // List voltageDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + //Map mapVoltage = voltageDic.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); //监测点状态 DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(), DicDataEnum.RUN.getName()).getData(); Map> map = new HashMap<>(); if (deptGetLineParam.getSystemType() == 0 || deptGetLineParam.getSystemType() == 2) { List monitorList = monitorMapper.selectList(new LambdaQueryWrapper() - .eq(Monitor::getStatus, 1) - .eq(deptGetLineParam.getMonitorStateRunning(),Monitor::getMonitorState, dictData.getId())); + .eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode()) + .eq(Objects.nonNull(deptGetLineParam.getIsUpToGrid()), Monitor::getIsUpToGrid, deptGetLineParam.getIsUpToGrid()) + .eq(deptGetLineParam.getMonitorStateRunning(), Monitor::getMonitorState, dictData.getId())); map = monitorList.stream().collect(Collectors.groupingBy(Monitor::getOrgId)); } //TODO 配网数据量巨大,暂时注释 @@ -596,7 +598,7 @@ public class CommTerminalServiceImpl implements CommTerminalService { LineBak lineBak = lineBakMapper.selectOne(new LambdaQueryWrapper() .eq(LineBak::getId, monitor.getId()) ); - if(ObjUtil.isNotNull(lineBak)){ + if (ObjUtil.isNotNull(lineBak)) { lineDevGetDTO.setOracleLineId(lineBak.getLineId()); } return lineDevGetDTO; @@ -784,15 +786,15 @@ public class CommTerminalServiceImpl implements CommTerminalService { @Override public List getBusBarAndHisMonitor() { List 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 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()); List monitorList = monitorMapper.selectList(lambdaQueryWrapper); - Map> busBarMap = monitorList.stream().collect(Collectors.groupingBy(Monitor::getLineId)); - busBarMap.forEach((key,val)->{ + Map> busBarMap = monitorList.stream().collect(Collectors.groupingBy(Monitor::getLineId)); + busBarMap.forEach((key, val) -> { BusBarAndHisMonitorDTO busBarAndHisMonitorDTO = new BusBarAndHisMonitorDTO(); busBarAndHisMonitorDTO.setBusBarId(key); busBarAndHisMonitorDTO.setMonitorIds(val.stream().map(Monitor::getId).collect(Collectors.toList())); @@ -802,20 +804,20 @@ public class CommTerminalServiceImpl implements CommTerminalService { } @Override - public List tagOrIdGetMonitorList(List tagList, List monitorIds,List deptIds) { + public List tagOrIdGetMonitorList(List tagList, List monitorIds, List deptIds) { List 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 deptList = deptFeignClient.getDeptInfoListByIds(deptIds).getData(); List monitorList = monitorMapper.selectList(new LambdaQueryWrapper() - .eq(Monitor::getStatus,DataStateEnum.ENABLE.getCode()).in(Monitor::getOrgId,deptList.stream().map(Dept::getCode).collect(Collectors.toList())) - .eq(Monitor::getMonitorState,dictData.getId()) - .in(Monitor::getMonitorTag,tagList) - .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())); - return result; + .eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode()).in(Monitor::getOrgId, deptList.stream().map(Dept::getCode).collect(Collectors.toList())) + .eq(Monitor::getMonitorState, dictData.getId()) + .in(Monitor::getMonitorTag, tagList) + .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())); + return result; } @Override @@ -846,10 +848,10 @@ public class CommTerminalServiceImpl implements CommTerminalService { //获取部门下变电信息 List sub = statationAndMonitorMap.get(deptId); Map> 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> stringListEntry : subMap.entrySet()) { String[] split = stringListEntry.getKey().split("_"); - subGetBase=new SubGetBase(); + subGetBase = new SubGetBase(); subGetBase.setId(split[0]); subGetBase.setName(split[1]); subGetBase.setVoltageLevel(split[2]); diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PmsRunStatisticServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PmsRunStatisticServiceImpl.java new file mode 100644 index 000000000..33f65e935 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PmsRunStatisticServiceImpl.java @@ -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; + +/** + *

+ * 服务实现类 + *

+ * + * @author cdf + * @since 2024-04-17 + */ +@Service +@RequiredArgsConstructor +public class PmsRunStatisticServiceImpl extends MppServiceImpl 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 deptGetChildrenMoreDTOList = commTerminalService.deptGetLine(deptGetLineParam); + List 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); + } +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java index 28cf8d58d..cd4f7102c 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java @@ -1013,7 +1013,7 @@ public class MonitorServiceImpl extends ServiceImpl impl List monitorStatelDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData(); Map monitorStateDicMap = monitorStatelDic.stream().collect(Collectors.toMap(DictData::getName, Function.identity())); - //检测点对象类型(原监测点标签) + //监测点标签 List objTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData(); Map objTypeDicMap = objTypeList.stream().collect(Collectors.toMap(DictData::getName, Function.identity()));