From 86ef81b70155d8bd00b49d6c871c5bc49d5c6122 Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Tue, 19 Dec 2023 14:47:07 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=B8=AD=E5=8F=B0=E6=AF=8D=E7=BA=BF=E5=85=B3?= =?UTF-8?q?=E8=81=94=202.=E5=9B=BD=E7=BD=91=E4=B8=8A=E9=80=81=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/pojo/param/GeneratrixWireParam.java | 4 +- .../device/pms/pojo/param/MonitorParam.java | 5 +- .../device/pms/pojo/po/GeneratrixWire.java | 9 +- .../device/pms/pojo/po/TractionStation.java | 4 + .../pms/pojo/vo/gw/TractionStationDTO.java | 1 - .../PmsGeneratrixWireController.java | 17 ++ .../service/gwPush/MonitorSendService.java | 21 +- .../gwPush/impl/MonitorSendServiceImpl.java | 219 ++++++++++-------- .../majornetwork/IGeneratrixWireService.java | 8 + .../majornetwork/impl/GeneratrixWireImpl.java | 40 +++- 10 files changed, 210 insertions(+), 118 deletions(-) diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/GeneratrixWireParam.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/GeneratrixWireParam.java index d64d94f0e..f5ad3b043 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/GeneratrixWireParam.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/GeneratrixWireParam.java @@ -36,7 +36,7 @@ public class GeneratrixWireParam { @NotBlank(message = "电压等级不可为空") private String scale; - - + @ApiModelProperty(value = "关联中台的母线id",required = true) + private String midBusId; } diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/MonitorParam.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/MonitorParam.java index 6cc633fa9..020269668 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/MonitorParam.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/MonitorParam.java @@ -246,9 +246,12 @@ public class MonitorParam { @Data public static class Info implements Serializable { @ApiModelProperty(name = "monitorTag",value = "监测点对象标签") - @NotBlank(message = "监测点对象标签不可为空") private String monitorTag; + @ApiModelProperty(name = "objType",value = "监测点对象类型标签") + @NotBlank(message = "监测点对象类型不可为空") + private String objType; + @ApiModelProperty(name = "ids",value = "id集合") // @NotEmpty(message = "id集合不能为空") private List ids; diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/GeneratrixWire.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/GeneratrixWire.java index 7cc355f02..e37b304a0 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/GeneratrixWire.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/GeneratrixWire.java @@ -43,10 +43,13 @@ public class GeneratrixWire extends BaseEntity { /** * 关联中台的母线id */ + private String midBusId; + + /** + * 关联中台的母线名称 + */ @TableField(exist = false) - private String relationId; - - + private String midBusName; @TableField(exist = false) private String orgId; diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/TractionStation.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/TractionStation.java index a53df3937..b9847ecbf 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/TractionStation.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/TractionStation.java @@ -66,6 +66,10 @@ public class TractionStation extends BaseEntity { * 铁路线路名称 */ private String railwayLineName; + /** + * 铁路编号 + */ + private String railwayType; /** * 牵引站变压器接线方式(字典) diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/gw/TractionStationDTO.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/gw/TractionStationDTO.java index aeb4ad4db..9069042f9 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/gw/TractionStationDTO.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/gw/TractionStationDTO.java @@ -69,7 +69,6 @@ public class TractionStationDTO extends Unit { /*第二个监测点编号 是否必填:否*/ @ExcelProperty(value = "第二个监测点编号") private String monitorNumberTwo; - /*铁路id 是否必填:否*/ @ExcelProperty(value = "铁路id") private String railwayId; diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsGeneratrixWireController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsGeneratrixWireController.java index 5e1c94437..06c08260f 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsGeneratrixWireController.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsGeneratrixWireController.java @@ -17,6 +17,7 @@ import com.njcn.device.pms.pojo.param.GeneratrixWireParam; import com.njcn.device.pms.pojo.param.PmsBaseParam; import com.njcn.device.pms.pojo.param.PmsGeneratrixParam; import com.njcn.device.pms.pojo.po.GeneratrixWire; +import com.njcn.device.pms.pojo.po.PmsMidLedger; import com.njcn.device.pms.service.majornetwork.IGeneratrixWireService; import com.njcn.web.controller.BaseController; import com.njcn.web.pojo.param.BaseParam; @@ -189,4 +190,20 @@ public class PmsGeneratrixWireController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitorInfo, methodDescribe); } } + + + /** + * 根据电站id匹配中台母线信息 + * @param stationId + * @return + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getMidBusBar") + @ApiOperation("根据电站id匹配中台母线信息") + @ApiImplicitParam(name = "station", value = "电站id", required = true) + public HttpResult> getBusBar(@RequestParam("station") String stationId) { + String methodDescribe = getMethodDescribe("getBusBar"); + List pmsMidLedgerList = iGeneratrixWireService.getBusBar(stationId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pmsMidLedgerList, methodDescribe); + } } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/MonitorSendService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/MonitorSendService.java index 65c8659f2..3a5ee856b 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/MonitorSendService.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/MonitorSendService.java @@ -1,6 +1,7 @@ package com.njcn.device.pms.service.gwPush; import com.njcn.device.pms.pojo.param.MonitorParam; +import com.njcn.device.pms.pojo.po.Monitor; import com.njcn.device.pms.pojo.vo.gw.*; import javax.servlet.http.HttpServletResponse; @@ -21,50 +22,50 @@ public interface MonitorSendService { /** * @Description: 电能质量风电场台账数据接口 - * @param ids + * @param monitorList * @return: java.lang.String * @Author: wr * @Date: 2023/12/7 9:00 */ - List windSend(List ids, List id); + List windSend(List monitorList); /** * @Description: 电能质量光伏电站台账数据接口 - * @param ids + * @param monitorList * @return: java.lang.String * @Author: wr * @Date: 2023/12/7 14:18 */ - List photovoltaicSend(List ids, List id); + List photovoltaicSend(List monitorList); /** * @Description: 电能质量重要、敏感用户台账数据接口 - * @param ids + * @param monitorList * @return: java.lang.String * @Author: wr * @Date: 2023/12/7 14:18 */ - List sensitiveUserSend(List ids, List id); + List sensitiveUserSend(List monitorList); /** * @Description: 电能质量牵引站台账数据接口 - * @param ids + * @param monitorList * @return: java.lang.String * @Author: wr * @Date: 2023/12/7 14:18 */ - List tractionStationSend(List ids, List id); + List tractionStationSend(List monitorList); /** * @Description: 其他干扰用户台账数据接口 - * @param ids + * @param monitorList * @return: java.lang.String * @Author: wr * @Date: 2023/12/7 14:18 */ - List otherUserSend(List ids, List id); + List otherUserSend(List monitorList); /** * 导出国网上送信息 diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/MonitorSendServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/MonitorSendServiceImpl.java index ce0c99421..6a9e5376c 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/MonitorSendServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/MonitorSendServiceImpl.java @@ -17,9 +17,11 @@ import com.njcn.device.pms.pojo.vo.gw.*; import com.njcn.device.pms.service.gwPush.MonitorSendService; import com.njcn.device.pms.service.majornetwork.*; import com.njcn.system.api.DicDataFeignClient; -import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.api.DictTreeFeignClient; import com.njcn.system.enums.DicDataTypeEnum; 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.vo.PvTerminalTreeVO; import com.njcn.web.enums.GWSendEnum; @@ -33,7 +35,6 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.function.Function; @@ -54,64 +55,85 @@ public class MonitorSendServiceImpl implements MonitorSendService { private final DeptFeignClient deptFeignClient; private final IPowerClientService powerClientService; private final DicDataFeignClient dicDataFeignClient; + private final DictTreeFeignClient dictTreeFeignClient; private final IPowerGenerationUserService iPowerGenerationUserService; private final ITractionStationService tractionStationService; + private final IStatationStatService statationStatService; @Override public String sendType(MonitorParam.Info param) { - DictData data = dicDataFeignClient.getDicDataById(param.getMonitorTag()).getData(); - DicDataEnum enumValue = DicDataEnum.getDicDataEnumValue(data.getCode()); + SysDicTreePO dicTree = dictTreeFeignClient.queryById(param.getObjType()).getData(); + if(ObjectUtil.isNull(dicTree)){ + throw new BusinessException("请检查监测对象类型是否存在"); + } + List objType = dictTreeFeignClient.query(param.getObjType()).getData(); + List objTypeIds=new ArrayList<>(); + objTypeIds.add(param.getObjType()); + if(CollUtil.isNotEmpty(objType)){ + objTypeIds.addAll(objType.stream().map(DictTreeVO::getId).collect(Collectors.toList())); + } + //获取监测点信息 + List monitorList = monitorService.list(new LambdaQueryWrapper() + .in(StrUtil.isNotBlank(param.getMonitorTag()),Monitor::getMonitorTag, param.getMonitorTag()) + .in(Monitor::getObjType, objTypeIds) + .in(CollUtil.isNotEmpty(param.getIds()),Monitor::getId, param.getIds()) + ); + List powerIds= monitorList.stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList()); + List statationStats = statationStatService.listByIds(powerIds); + Map powerMap = statationStats.stream().collect(Collectors + .toMap(StatationStat::getPowerId, Function.identity())); + for (Monitor monitor : monitorList) { + if(powerMap.containsKey(monitor.getPowerrId())){ + monitor.setPowerrId(powerMap.get(monitor.getPowerrId()).getMidStationId()); + }else{ + monitor.setPowerrId(""); + } + } + return monitorType(dicTree, monitorList); + } + + private String monitorType(SysDicTreePO dicTree, List monitorList) { String msg; - switch (enumValue) { - case WIND_FARM: - List info = this.windSend(param.getIds(), Arrays.asList(data.getId())); - if (info.size() > 100) { - throw new BusinessException("一次最多上送100条数据"); - } + switch (dicTree.getCode()) { + case "1401": + List info = this.windSend(monitorList); + sendSize(info); SendParam sendParam = new SendParam(); sendParam.setStats(info); Map send = GwSendUtil.send(sendParam, GWSendEnum.WIND_CREATE); List wiIds = info.stream().map(WindSourceDto::getId).distinct().collect(Collectors.toList()); msg = returnInformation(1, wiIds, send); break; - case POWER_STATION: - List photovoltaic = this.photovoltaicSend(param.getIds(), Arrays.asList(data.getId())); - if (photovoltaic.size() > 100) { - throw new BusinessException("一次最多上送100条数据"); - } + case "1402": + List photovoltaic = this.photovoltaicSend(monitorList); + sendSize(photovoltaic); SendParam phSend = new SendParam(); phSend.setStats(photovoltaic); Map phMap = GwSendUtil.send(phSend, GWSendEnum.PHOTOVOLTAIC_CREATE); List phIds = photovoltaic.stream().map(PhotovoltaicDto::getId).distinct().collect(Collectors.toList()); msg = returnInformation(1, phIds, phMap); break; - case SENSITIVE_USERS: - List sensitive = this.sensitiveUserSend(param.getIds(), Arrays.asList(data.getId())); - if (sensitive.size() > 100) { - throw new BusinessException("一次最多上送100条数据"); - } + case "2400": + List sensitive = this.sensitiveUserSend(monitorList); + sendSize(sensitive); SendParam seSend = new SendParam(); seSend.setStats(sensitive); Map seMap = GwSendUtil.send(seSend, GWSendEnum.SENSITIVE_USER_CREATE); List seIds = sensitive.stream().map(SensitiveUserDto::getId).distinct().collect(Collectors.toList()); msg = returnInformation(1, seIds, seMap); break; - case ELECTRIFIED_RAILWAYS: - List traction = this.tractionStationSend(param.getIds(), Arrays.asList(data.getId())); - if (traction.size() > 100) { - throw new BusinessException("一次最多上送100条数据"); - } + case "1300": + List traction = this.tractionStationSend(monitorList); + sendSize(traction); SendParam trSend = new SendParam(); trSend.setStats(traction); Map trMap = GwSendUtil.send(trSend, GWSendEnum.TRACTION_STATION); List trIds = traction.stream().map(TractionStationDTO::getId).distinct().collect(Collectors.toList()); msg = returnInformation(1, trIds, trMap); break; - case LINEAR_LOADS: - List other = this.otherUserSend(param.getIds(), Arrays.asList(data.getId())); - if (other.size() > 100) { - throw new BusinessException("一次最多上送100条数据"); - } + case "2300": + List other = this.otherUserSend(monitorList); + sendSize(other); SendParam otSend = new SendParam(); otSend.setStats(other); Map otMap = GwSendUtil.send(otSend, GWSendEnum.OTHER_USER_CREATE); @@ -124,17 +146,18 @@ public class MonitorSendServiceImpl implements MonitorSendService { return msg; } + private void sendSize(List info) { + if (CollUtil.isEmpty(info)) { + throw new BusinessException("查询数据为空,请查询数据是否存在!"); + } + if (info.size() > 100) { + throw new BusinessException("一次最多上送100条数据"); + } + } + @Override @Transactional(rollbackFor = Exception.class) - public List windSend(List ids,List id) { - //获取监测点信息 - List monitorList = monitorService.list(new LambdaQueryWrapper() - .eq(Monitor::getMonitorTag, id) - .in(CollUtil.isNotEmpty(ids),Monitor::getId, ids) - ); - if (CollUtil.isEmpty(monitorList)) { - new BusinessException("为查询数据,请查询数据是否存在!"); - } + public List windSend(List monitorList) { List deptList = deptFeignClient.allDeptList().getData(); Map mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity())); Map mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity())); @@ -152,7 +175,7 @@ public class MonitorSendServiceImpl implements MonitorSendService { sendVO = new WindSourceDto(); //添加部门信息 BeanUtil.copyProperties(setOrgProvince(mapCode, mapList, monitor.getOrgId()), sendVO); - sendVO.setStationName(monitor.getName()); + sendVO.setStationName(monitor.getMonitorObjectName()); //电站等级 if (mapVoltage.containsKey(monitor.getVoltageLevel())) { sendVO.setGcVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe())); @@ -160,10 +183,10 @@ public class MonitorSendServiceImpl implements MonitorSendService { } sendVO.setId(monitor.getId()); sendVO.setIsSpecial(monitor.getIsSpecialSupplyElectricity().toString()); -// sendVO.setMonitorId(monitor.getId()); + sendVO.setMonitorId(monitor.getMonitorId()); sendVO.setStationCapacity(monitor.getUserAgreementCapacity()); sendVO.setStationId(monitor.getId()); -// sendVO.setSubstationId(monitor.getPowerrId()); + sendVO.setSubstationId(monitor.getPowerrId()); sendVO.setSubstationName(monitor.getPowerrName()); sendVO.setFcId(monitor.getMonitorObjectId()); sendVO.setFcNo(monitor.getMonitorObjectId()); @@ -193,15 +216,7 @@ public class MonitorSendServiceImpl implements MonitorSendService { @Override @Transactional(rollbackFor = Exception.class) - public List photovoltaicSend(List ids,List id) { - //获取监测点信息 - List monitorList = monitorService.list(new LambdaQueryWrapper() - .eq(Monitor::getMonitorTag, id) - .in(CollUtil.isNotEmpty(ids),Monitor::getId, ids) - ); - if (CollUtil.isEmpty(monitorList)) { - throw new BusinessException("为查询数据,请查询数据是否存在!"); - } + public List photovoltaicSend(List monitorList) { List deptList = deptFeignClient.allDeptList().getData(); Map mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity())); Map mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity())); @@ -219,7 +234,7 @@ public class MonitorSendServiceImpl implements MonitorSendService { sendVO = new PhotovoltaicDto(); //添加部门信息 BeanUtil.copyProperties(setOrgProvince(mapCode, mapList, monitor.getOrgId()), sendVO); - sendVO.setStationName(monitor.getName()); + sendVO.setStationName(monitor.getMonitorObjectName()); //电站等级 if (mapVoltage.containsKey(monitor.getVoltageLevel())) { sendVO.setGcVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe())); @@ -227,10 +242,10 @@ public class MonitorSendServiceImpl implements MonitorSendService { } sendVO.setId(monitor.getId()); sendVO.setIsSpecial(monitor.getIsSpecialSupplyElectricity().toString()); -// sendVO.setMonitorId(monitor.getId()); + sendVO.setMonitorId(monitor.getMonitorId()); sendVO.setStationCapacity(monitor.getUserAgreementCapacity()); sendVO.setStationId(monitor.getId()); -// sendVO.setSubstationId(monitor.getPowerrId()); + sendVO.setSubstationId(monitor.getPowerrId()); sendVO.setSubstationName(monitor.getPowerrName()); sendVO.setFcId(monitor.getMonitorObjectId()); sendVO.setFcNo(monitor.getMonitorObjectId()); @@ -258,14 +273,8 @@ public class MonitorSendServiceImpl implements MonitorSendService { @Override @Transactional(rollbackFor = Exception.class) - public List sensitiveUserSend(List ids,List id) { - List monitorList = monitorService.list(new LambdaQueryWrapper() - .eq(Monitor::getMonitorTag, id) - .in(CollUtil.isNotEmpty(ids),Monitor::getId, ids) - ); - if (CollUtil.isEmpty(monitorList)) { - throw new BusinessException("为查询数据,请查询数据是否存在!"); - } + public List sensitiveUserSend(List monitorList) { + //根据用户类型进行分组 Map> userMonitor = monitorList.stream().filter(x -> ObjectUtil.isNotNull(x.getIfPowerUser())) .collect(Collectors.groupingBy(Monitor::getIfPowerUser, @@ -324,8 +333,8 @@ public class MonitorSendServiceImpl implements MonitorSendService { } sendVO.setSensitiveUserName(monitor.getName()); sendVO.setUserProtocolCapacity(monitor.getUserAgreementCapacity()); -// sendVO.setMonitorId(monitor.getId()); -// sendVO.setStationId(monitor.getPowerrId()); + sendVO.setMonitorId(monitor.getMonitorId()); + sendVO.setStationId(monitor.getPowerrId()); sendVO.setStationName(monitor.getPowerrName()); sendVO.setPubPrivFlag(monitor.getIsSpecialMonitor() + ""); //运行状态 @@ -384,15 +393,7 @@ public class MonitorSendServiceImpl implements MonitorSendService { @Override @Transactional(rollbackFor = Exception.class) - public List tractionStationSend(List ids,List id) { - //获取牵引站信息 - List monitorList = monitorService.list(new LambdaQueryWrapper() - .eq(Monitor::getMonitorTag, id) - .in(CollUtil.isNotEmpty(ids),Monitor::getId, ids) - ); - if (CollUtil.isEmpty(monitorList)) { - throw new BusinessException("为查询数据,请查询数据是否存在!"); - } + public List tractionStationSend(List monitorList) { //获取已存在牵引站的信息 List tractionIds = monitorList.stream().map(Monitor::getTractionId).collect(Collectors.toList()); List tractionStationList = tractionStationService.list(new LambdaQueryWrapper() @@ -428,15 +429,15 @@ public class MonitorSendServiceImpl implements MonitorSendService { sendVO.setConnetGroupWay(dictData.getValue()); } sendVO.setIfSpecial(traction.getIfSpecial() + ""); - sendVO.setRailwayId(traction.getRailwayLineId()); - sendVO.setRailwayNumber(traction.getRailwayLineId()); - sendVO.setRailwayName(traction.getName()); + + sendVO.setRailwayName(traction.getRailwayLineName()); + sendVO.setRailwayType(traction.getRailwayType()); sendVO.setTractionCode(traction.getId()); sendVO.setTractionSubstationCapacity(traction.getRatedCapacity()); -// sendVO.setTractionSubstationId(traction.getPowerId()); - sendVO.setTractionSubstationName(traction.getPowerName()); -// sendVO.setMainSubstationId(traction.getPowerId()); - sendVO.setMainSubstationName(traction.getPowerName()); + sendVO.setTractionSubstationId(monitor.getPowerrId()); + sendVO.setTractionSubstationName(monitor.getPowerrName()); + sendVO.setMainSubstationId(monitor.getPowerrId()); + sendVO.setMainSubstationName(monitor.getPowerrName()); //电压等级 if (mapVoltage.containsKey(traction.getVoltageLevel())) { sendVO.setTractionVoltageLevel(String.format("%02d", mapVoltage.get(traction.getVoltageLevel()).getAlgoDescribe())); @@ -447,15 +448,15 @@ public class MonitorSendServiceImpl implements MonitorSendService { sendVO.setTractionVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe())); sendVO.setMainVolatageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe())); } -// sendVO.setTractionSubstationId(monitor.getPowerrId()); + sendVO.setTractionSubstationId(monitor.getPowerrId()); sendVO.setTractionSubstationName(monitor.getPowerrName()); -// sendVO.setMainSubstationId(monitor.getPowerId()); + sendVO.setMainSubstationId(monitor.getPowerrId()); sendVO.setMainSubstationName(monitor.getPowerrName()); } sendVO.setCreateTime(monitor.getCreateTime()); sendVO.setUpdateTime(monitor.getUpdateTime()); sendVO.setId(monitor.getId()); -// sendVO.setMonitorNumber(monitor); + sendVO.setMonitorNumber(monitor.getMonitorId()); //运行状态 if (mapLineState.containsKey(monitor.getMonitorState())) { @@ -485,14 +486,7 @@ public class MonitorSendServiceImpl implements MonitorSendService { } @Override - public List otherUserSend(List ids,List id) { - List monitorList = monitorService.list(new LambdaQueryWrapper() - .eq(Monitor::getMonitorTag, id) - .in(CollUtil.isNotEmpty(ids),Monitor::getId, ids) - ); - if (CollUtil.isEmpty(monitorList)) { - throw new BusinessException("为查询数据,请查询数据是否存在!"); - } + public List otherUserSend(List monitorList) { List deptList = deptFeignClient.allDeptList().getData(); Map mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity())); Map mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity())); @@ -524,14 +518,14 @@ public class MonitorSendServiceImpl implements MonitorSendService { dto.setGcVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe())); dto.setSubstationVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe())); } -// dto.setSubstationId(monitor.getPowerrId()); + dto.setSubstationId(monitor.getPowerrId()); dto.setSubstationName(monitor.getPowerrName()); //行业分类 if (mapIndustryType.containsKey(monitor.getTradeCode())) { dto.setTradeCode(mapIndustryType.get(monitor.getTradeCode()).getValue()); } dto.setProtocolCapacity(monitor.getUserAgreementCapacity()); -// dto.setMonitorId(monitor.getId()); + dto.setMonitorId(monitor.getMonitorId()); // dto.setIsMonitoringOnline(); // dto.setIsSceneTest(); // dto.setHaveDevice(); @@ -554,28 +548,53 @@ public class MonitorSendServiceImpl implements MonitorSendService { public void exportSend(HttpServletResponse response) throws IOException { ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), WindSourceDto.class).build(); - List wind = this.windSend(new ArrayList<>(), Arrays.asList("1adebade8821a18e4dbb5039fdf00326")); - WriteSheet writeSheet = EasyExcel.writerSheet(0, "风电厂" ).head(WindSourceDto.class).build(); + List wind = this.windSend(getMonitors("f3daf821a351da6db44cdc952f90a5cb")); + WriteSheet writeSheet = EasyExcel.writerSheet(0, "风电场" ).head(WindSourceDto.class).build(); excelWriter.write(wind, writeSheet); - List photovoltaic = this.photovoltaicSend(new ArrayList<>(), Arrays.asList("c5af15b871a5dd880dace02b8f669e2f")); + List photovoltaic = this.photovoltaicSend(getMonitors("189b8db113a79738e07946b6ec2bb0da")); WriteSheet writeSheet2 = EasyExcel.writerSheet(1, "光伏电站" ).head(PhotovoltaicDto.class).build(); excelWriter.write(photovoltaic, writeSheet2); - List sensitive = this.sensitiveUserSend(new ArrayList<>(), Arrays.asList("4e9559adbe3fd935fb6ea43e79b704c0")); - WriteSheet writeSheet3 = EasyExcel.writerSheet(2, "重或敏感用户" ).head(SensitiveUserDto.class).build(); + List sensitive = this.sensitiveUserSend(getMonitors("f7ec8d78654629ae76203bf74041db18")); + WriteSheet writeSheet3 = EasyExcel.writerSheet(2, "重要或敏感用户" ).head(SensitiveUserDto.class).build(); excelWriter.write(sensitive, writeSheet3); - List traction = this.tractionStationSend(new ArrayList<>(), Arrays.asList("2990ed905876f2964393ca64f9bd8d40")); + List traction = this.tractionStationSend(getMonitors("88401081d00e17f1cd926ef5e57fecf9")); WriteSheet writeSheet4 = EasyExcel.writerSheet(3, "牵引站" ).head(TractionStationDTO.class).build(); excelWriter.write(traction, writeSheet4); - List other = this.otherUserSend(new ArrayList<>(), Arrays.asList("08a039a9e3fd4e5038435dfbaa88a8e3")); + List other = this.otherUserSend(getMonitors("c22758666cd968b756db67dbfad9be32")); WriteSheet writeSheet5 = EasyExcel.writerSheet(4, "干扰用户" ).head(OtherUserDto.class).build(); excelWriter.write(other, writeSheet5); excelWriter.finish(); } + private List getMonitors(String id) { + List objType = dictTreeFeignClient.query(id).getData(); + List objTypeIds=new ArrayList<>(); + objTypeIds.add(id); + if(CollUtil.isNotEmpty(objType)){ + objTypeIds.addAll(objType.stream().map(DictTreeVO::getId).collect(Collectors.toList())); + } + //获取监测点信息 + List monitorList = monitorService.list(new LambdaQueryWrapper() + .in(Monitor::getObjType, objTypeIds) + ); + List powerIds= monitorList.stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList()); + List statationStats = statationStatService.listByIds(powerIds); + Map powerMap = statationStats.stream().collect(Collectors + .toMap(StatationStat::getPowerId, Function.identity())); + for (Monitor monitor : monitorList) { + if(powerMap.containsKey(monitor.getPowerrId())){ + monitor.setPowerrId(powerMap.get(monitor.getPowerrId()).getMidStationId()); + }else{ + monitor.setPowerrId(""); + } + } + return monitorList; + } + /** * 省市县,对象添加 * diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IGeneratrixWireService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IGeneratrixWireService.java index d89fcf7d5..6fc2e5ece 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IGeneratrixWireService.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IGeneratrixWireService.java @@ -10,6 +10,7 @@ import com.njcn.device.pms.pojo.param.GeneratrixWireParam; import com.njcn.device.pms.pojo.param.PmsBaseParam; import com.njcn.device.pms.pojo.param.PmsGeneratrixParam; import com.njcn.device.pms.pojo.po.GeneratrixWire; +import com.njcn.device.pms.pojo.po.PmsMidLedger; import com.njcn.web.pojo.param.BaseParam; import java.util.List; @@ -103,4 +104,11 @@ public interface IGeneratrixWireService extends IService { */ List getGeneratrixByCondition(ConditionParam param); + /** + * 根据电站id匹配中台母线信息 + * @param stationId + * @return + */ + List getBusBar(String stationId); + } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/GeneratrixWireImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/GeneratrixWireImpl.java index b744f0ea8..6fd14ba4d 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/GeneratrixWireImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/GeneratrixWireImpl.java @@ -2,6 +2,7 @@ package com.njcn.device.pms.service.majornetwork.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,6 +11,7 @@ import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.device.pms.enums.PmsDeviceResponseEnum; import com.njcn.device.pms.mapper.majornetwork.PmsGeneratrixWireMapper; +import com.njcn.device.pms.mapper.majornetwork.PmsMidLedgerMapper; import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO; import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationSonDTO; import com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO; @@ -18,8 +20,10 @@ import com.njcn.device.pms.pojo.param.GeneratrixWireParam; import com.njcn.device.pms.pojo.param.PmsBaseParam; import com.njcn.device.pms.pojo.param.PmsGeneratrixParam; import com.njcn.device.pms.pojo.po.GeneratrixWire; +import com.njcn.device.pms.pojo.po.PmsMidLedger; import com.njcn.device.pms.pojo.po.StatationStat; import com.njcn.device.pms.service.majornetwork.IGeneratrixWireService; +import com.njcn.device.pms.service.majornetwork.IStatationStatService; import com.njcn.user.api.DeptFeignClient; import com.njcn.web.factory.PageFactory; import com.njcn.web.pojo.param.BaseParam; @@ -27,8 +31,11 @@ import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; /** * pms-device @@ -41,7 +48,9 @@ import java.util.Objects; public class GeneratrixWireImpl extends ServiceImpl implements IGeneratrixWireService { private final DeptFeignClient deptFeignClient; + private final IStatationStatService statationStatService; + private final PmsMidLedgerMapper pmsMidLedgerMapper; @Override public boolean addGeneratrixWire(GeneratrixWireParam generatrixWireParam) { checkName(generatrixWireParam, false); @@ -99,7 +108,23 @@ public class GeneratrixWireImpl extends ServiceImpl(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam)), lambdaQueryWrapper); + Page page = this.page(new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam)), lambdaQueryWrapper); + List records = page.getRecords(); + if(CollUtil.isNotEmpty(records)){ + List midIds = records.stream().map(GeneratrixWire::getMidBusId).collect(Collectors.toList()); + List pmsMidLedgers = pmsMidLedgerMapper.selectList(new LambdaQueryWrapper() + .in(PmsMidLedger::getId, midIds) + ); + if(CollUtil.isNotEmpty(pmsMidLedgers)){ + Map midMap = pmsMidLedgers.stream().collect(Collectors.toMap(PmsMidLedger::getId, PmsMidLedger::getName)); + for (GeneratrixWire record : records) { + if(midMap.containsKey(record.getMidBusId())){ + record.setMidBusName(midMap.get(record.getMidBusId())); + } + } + } + } + return page; } @@ -173,4 +198,17 @@ public class GeneratrixWireImpl extends ServiceImpl getBusBar(String stationId) { + StatationStat stationStat = statationStatService.getStatationStatById(stationId); + if(ObjectUtil.isNotNull(stationStat)){ + if(StrUtil.isNotBlank(stationStat.getMidStationId())){ + return pmsMidLedgerMapper.selectList(new LambdaQueryWrapper() + .eq(PmsMidLedger::getPid, stationStat.getMidStationId()) + ); + } + } + return new ArrayList<>(); + } + }