diff --git a/pqs-device/device-boot/pom.xml b/pqs-device/device-boot/pom.xml index 83820f0e4..f4089bc9b 100644 --- a/pqs-device/device-boot/pom.xml +++ b/pqs-device/device-boot/pom.xml @@ -21,16 +21,16 @@ - + + + com.njcn + pms-device-boot + ${project.version} + com.njcn diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/MonitorClient.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/MonitorClient.java index e3da81920..4e9d235d9 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/MonitorClient.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/MonitorClient.java @@ -1,5 +1,6 @@ package com.njcn.device.pms.api; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.constant.ServerInfo; import com.njcn.common.pojo.response.HttpResult; import com.njcn.device.pms.api.fallback.MonitorClientFallbackFactory; @@ -8,6 +9,7 @@ import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO; import com.njcn.device.pms.pojo.param.MonitorTerminalParam; import com.njcn.device.pms.pojo.param.PmsMonitorInfoParam; import com.njcn.device.pms.pojo.param.PmsMonitorParam; +import com.njcn.device.pms.pojo.param.TerminalQueryParam; import com.njcn.device.pms.pojo.po.Monitor; import com.njcn.device.pms.pojo.vo.MonitorVO; import com.njcn.device.biz.pojo.po.Overlimit; @@ -68,6 +70,10 @@ public interface MonitorClient { HttpResult> getMonitorList(@RequestBody List monitorIds); + @PostMapping("getMonitorPage") + HttpResult> getMonitorPage(@RequestBody TerminalQueryParam baseParam); + + /*** * 获取台账和终端信息(波形专用) * @author wr diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/PmsMidLedgerClient.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/PmsMidLedgerClient.java new file mode 100644 index 000000000..f315a58b4 --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/PmsMidLedgerClient.java @@ -0,0 +1,33 @@ +package com.njcn.device.pms.api; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.device.pms.api.fallback.PmsMidLedgerClientFallbackFactory; +import com.njcn.device.pms.api.fallback.StatationStatClientFallbackFactory; +import com.njcn.device.pms.pojo.dto.PmsStatationStatInfoDTO; +import com.njcn.device.pms.pojo.param.PmsBaseParam; +import com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam; +import com.njcn.device.pms.pojo.po.PmsMidLedger; +import com.njcn.device.pms.pojo.po.StatationStat; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +/** + * @author yzh + * @date 2022/10/18 + */ +@FeignClient(value = ServerInfo.DEVICE, + path = "/pms/pmsMidLedger", + contextId = "pms/pmsMidLedger", + fallbackFactory = PmsMidLedgerClientFallbackFactory.class) +public interface PmsMidLedgerClient { + + @PostMapping("getPmsMidLedgerList") + HttpResult> getPmsMidLedgerList(@RequestBody List ids); + + +} diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/fallback/MonitorClientFallbackFactory.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/fallback/MonitorClientFallbackFactory.java index 6eda1b0fd..3498ed38d 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/fallback/MonitorClientFallbackFactory.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/fallback/MonitorClientFallbackFactory.java @@ -1,5 +1,6 @@ package com.njcn.device.pms.api.fallback; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.response.HttpResult; @@ -9,6 +10,7 @@ import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO; import com.njcn.device.pms.pojo.param.MonitorTerminalParam; import com.njcn.device.pms.pojo.param.PmsMonitorInfoParam; import com.njcn.device.pms.pojo.param.PmsMonitorParam; +import com.njcn.device.pms.pojo.param.TerminalQueryParam; import com.njcn.device.pms.pojo.po.Monitor; import com.njcn.device.pms.pojo.vo.MonitorVO; import com.njcn.device.pms.utils.PmsDeviceEnumUtil; @@ -62,6 +64,12 @@ public class MonitorClientFallbackFactory implements FallbackFactory> getMonitorPage(TerminalQueryParam baseParam) { + log.error("{}异常,降级处理,异常为:{}", "分页获取主网监测点数据 ", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } + @Override public HttpResult getMonitorTerminal(MonitorTerminalParam param) { log.error("{}异常,降级处理,异常为:{}", "获取台账和终端信息(波形专用) ", throwable.toString()); diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/fallback/PmsMidLedgerClientFallbackFactory.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/fallback/PmsMidLedgerClientFallbackFactory.java new file mode 100644 index 000000000..17310ac62 --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/fallback/PmsMidLedgerClientFallbackFactory.java @@ -0,0 +1,42 @@ +package com.njcn.device.pms.api.fallback; + +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.device.pms.api.PmsMidLedgerClient; +import com.njcn.device.pms.pojo.po.PmsMidLedger; +import com.njcn.device.pms.utils.PmsDeviceEnumUtil; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @author yzh + * @date 2022/10/18 + */ + +@Slf4j +@Component +public class PmsMidLedgerClientFallbackFactory implements FallbackFactory { + + @Override + public PmsMidLedgerClient create(Throwable throwable) { + //判断抛出异常是否为解码器抛出的业务异常 + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if (throwable.getCause() instanceof BusinessException) { + BusinessException businessException = (BusinessException) throwable.getCause(); + exceptionEnum = PmsDeviceEnumUtil.getExceptionEnum(businessException.getResult()); + } + Enum finalExceptionEnum = exceptionEnum; + return new PmsMidLedgerClient() { + @Override + public HttpResult> getPmsMidLedgerList(List ids) { + log.error("{}异常,降级处理,异常为:{}", "获取中台电站母线信息", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } + + }; + } +} diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/TerminalQueryParam.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/TerminalQueryParam.java index 07becb423..08ac8ecbe 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/TerminalQueryParam.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/TerminalQueryParam.java @@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.List; + /** * pqs * @@ -38,4 +40,6 @@ public class TerminalQueryParam extends BaseParam { @ApiModelProperty(value = "主网上送标识") private Integer monitorUploadStatus; + + private List monitorIds; } diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsMidLedger.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsMidLedger.java index d6ad05162..307e999bc 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsMidLedger.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsMidLedger.java @@ -2,6 +2,7 @@ package com.njcn.device.pms.pojo.po; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import com.njcn.db.bo.BaseEntity; import java.io.Serializable; import java.time.LocalDateTime; @@ -47,6 +48,26 @@ public class PmsMidLedger extends BaseEntity { @TableField(value = "SectionId") private String SectionId; + @TableField(value = "cityOrg") + private String cityOrg; + + @TableField(value = "cityOrgName") + private String cityOrgName; + + @TableField(value = "maintCrew") + private String maintCrew; + + @TableField(value = "maintCrewName") + private String maintCrewName; + + private String OperationId; + + private String OperationName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime OperationDate; + + private String AssetNo; /** * 名称 */ diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsMidLedgerController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsMidLedgerController.java new file mode 100644 index 000000000..fb4a455e0 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsMidLedgerController.java @@ -0,0 +1,56 @@ +package com.njcn.device.pms.controller.ledgerManger; + + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.device.pms.pojo.po.PmsMidLedger; +import com.njcn.device.pms.service.ledgerManger.IPmsMidLedgerService; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; +import com.njcn.web.controller.BaseController; + +import java.util.List; + +/** + *

+ * 变电站-母线数据中间表 前端控制器 + *

+ * + * @author hongawen + * @since 2024-05-14 + */ +@RestController +@RequestMapping("pms/pmsMidLedger") +@RequiredArgsConstructor +public class PmsMidLedgerController extends BaseController { + + private final IPmsMidLedgerService iPmsMidLedgerService; + + + /** + * 获取中台电站母线信息 + * @author cdf + * @date 2024/5/14 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getPmsMidLedgerList") + @ApiOperation("获取中台电站母线信息") + @ApiImplicitParam(name = "ids",value = "母线电站编号",required = true) + public HttpResult> getPmsMidLedgerList(@RequestBody List ids){ + String methodDescribe = getMethodDescribe("getPmsMidLedgerList"); + List result = iPmsMidLedgerService.list(new LambdaQueryWrapper().in(PmsMidLedger::getId,ids)); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + +} + diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsMonitorController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsMonitorController.java index f6a6cb617..b146e4408 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsMonitorController.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsMonitorController.java @@ -138,6 +138,16 @@ public class PmsMonitorController extends BaseController { } } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getMonitorPage") + @ApiOperation("获取所有主网监测点(或者指定监测点编号查询)") + @ApiImplicitParam(name = "monitorIds",value = "主网监测点编号",required = true) + public HttpResult> getMonitorPage(@RequestBody TerminalQueryParam baseParam) { + String methodDescribe = getMethodDescribe("getMonitorPage"); + Page monitor= monitorService.getMonitorPage(baseParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitor, methodDescribe); + } + /** * 根据条件获取所有主网监测点 * @author cdf @@ -310,6 +320,9 @@ public class PmsMonitorController extends BaseController { } + + + public static void main(String[] args) throws IOException { /*try { // 创建一个临时文件,前缀为"temp_",后缀为".txt",存储在默认的临时文件夹中 diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/IPmsMidLedgerService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/IPmsMidLedgerService.java new file mode 100644 index 000000000..2137c22ad --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/IPmsMidLedgerService.java @@ -0,0 +1,16 @@ +package com.njcn.device.pms.service.ledgerManger; + +import com.njcn.device.pms.pojo.po.PmsMidLedger; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 变电站-母线数据中间表 服务类 + *

+ * + * @author hongawen + * @since 2024-05-14 + */ +public interface IPmsMidLedgerService extends IService { + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PmsMidLedgerServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PmsMidLedgerServiceImpl.java new file mode 100644 index 000000000..fa0b56fdf --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PmsMidLedgerServiceImpl.java @@ -0,0 +1,21 @@ +package com.njcn.device.pms.service.ledgerManger.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.device.pms.mapper.majornetwork.PmsMidLedgerMapper; +import com.njcn.device.pms.pojo.po.PmsMidLedger; +import com.njcn.device.pms.service.ledgerManger.IPmsMidLedgerService; +import org.springframework.stereotype.Service; + +/** + *

+ * 变电站-母线数据中间表 服务实现类 + *

+ * + * @author hongawen + * @since 2024-05-14 + */ +@Service +public class PmsMidLedgerServiceImpl extends ServiceImpl implements IPmsMidLedgerService { + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IMonitorService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IMonitorService.java index 881cd3ceb..e41a510a1 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IMonitorService.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IMonitorService.java @@ -82,6 +82,9 @@ public interface IMonitorService extends IService { List getMonitorList(List monitorIds); + + Page getMonitorPage(TerminalQueryParam baseParam); + List getMonitorListByParam(MonitorParam monitorParam); 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 cd4f7102c..e77278081 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 @@ -292,6 +292,16 @@ public class MonitorServiceImpl extends ServiceImpl impl return monitorList; } + + @Override + public Page getMonitorPage(TerminalQueryParam baseParam) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode()); + lambdaQueryWrapper.in(Monitor::getId, baseParam.getMonitorIds()); + Page page = this.page(new Page<>(PageFactory.getPageNum(baseParam),PageFactory.getPageSize(baseParam)),lambdaQueryWrapper); + return page; + } + @Override public List getMonitorListByParam(MonitorParam monitorParam) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/upload/RDimUpDTO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/upload/RDimUpDTO.java index f059137d5..9c2ffbe56 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/upload/RDimUpDTO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/upload/RDimUpDTO.java @@ -11,6 +11,8 @@ import lombok.Data; @Data public class RDimUpDTO { + private String busId; + /** * 中台母线编号 */ @@ -25,4 +27,6 @@ public class RDimUpDTO { * 监测母线有效监测点ids */ private String effectIds; + + private Double v; } diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/upload/DimBusBarVO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/upload/DimBusBarVO.java index fa8444dbd..c3b19a021 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/upload/DimBusBarVO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/upload/DimBusBarVO.java @@ -35,4 +35,45 @@ public class DimBusBarVO { private Integer busEfectiveMnitorNum; private String busEffectiveMonitors; + + private Integer harmonicNum; + private String indexAvgValue; + private String monitorId; + private String monitorName; + + + + + @Data + public static class DimBusBarMonitorVO{ + private String id; + private String busId; + private String busName; + private String busVoltageLevel; + private String busVoltageLevelName; + private String cityOrg; + private String cityOrgName; + + private Integer actualCollectNum; + private Float dataFullRate; + private Integer expectCollectNum; + private String statDate; + private String status; + private String statusName; + private String whetherOptimal; + private String whetherOptimalName; + + + + private String maintOrg; + private String maintOrgName; + private String monitorId; + private String monitorName; + + private String stationId; + private String stationName; + + + } + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/EvaluationDownController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/EvaluationDownController.java index b68802bf7..76fac0486 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/EvaluationDownController.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/EvaluationDownController.java @@ -70,5 +70,15 @@ public class EvaluationDownController extends BaseController { return new PmsHttpResult<>(0, page); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getMonitorListByBus") + @ApiOperation("国网上送-接收总部基准水平评估监测母线下有效监测点详情下穿接口") + @ApiImplicitParam(name = "param", value = "实体参数", required = true) + public PmsHttpResult> getMonitorListByBus(@RequestBody DimBusBarParam param) { + String methodDescribe = getMethodDescribe("getMonitorListByBus"); + Page page = evaluationDataService.getMonitorListByBus(param); + return new PmsHttpResult<>(0, page); + } + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RUploadEvaluationDataDMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RUploadEvaluationDataDMapper.xml index 61501aec1..245971be2 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RUploadEvaluationDataDMapper.xml +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RUploadEvaluationDataDMapper.xml @@ -57,4 +57,8 @@ + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadEvaluationDataDMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadEvaluationDataDMapper.java index b1d387493..1781dbc3b 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadEvaluationDataDMapper.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadEvaluationDataDMapper.java @@ -17,6 +17,7 @@ import org.apache.ibatis.annotations.Param; */ public interface RUploadEvaluationDataDMapper extends BaseMapper { - public Page getBaseEvaOnlineBusDetail(@Param("page") Page page, @Param("param") DimBusBarParam param); + Page getBaseEvaOnlineBusDetail(@Param("page") Page page, @Param("param") DimBusBarParam param); + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IEvaluationDataService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IEvaluationDataService.java index dbd465686..c8a0dc7b5 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IEvaluationDataService.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IEvaluationDataService.java @@ -44,4 +44,6 @@ public interface IEvaluationDataService extends IService Page getBusListByVoltageLevel(DimBusBarParam param); + Page getMonitorListByBus(DimBusBarParam param); + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/REvaluationDataServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/REvaluationDataServiceImpl.java index 71b4a58ee..e9ebe9026 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/REvaluationDataServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/REvaluationDataServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.Wrapper; @@ -15,6 +16,11 @@ import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.device.pms.api.MonitorClient; +import com.njcn.device.pms.api.PmsMidLedgerClient; +import com.njcn.device.pms.pojo.param.TerminalQueryParam; +import com.njcn.device.pms.pojo.po.Monitor; +import com.njcn.device.pms.pojo.po.PmsMidLedger; import com.njcn.harmonic.mapper.upload.*; import com.njcn.harmonic.pojo.dto.upload.PqEvaluationCreateDTO; import com.njcn.harmonic.pojo.dto.upload.RDimUpDTO; @@ -76,6 +82,12 @@ public class REvaluationDataServiceImpl extends ServiceImpl getEvaluationData(UploadDataParam param) { @@ -208,17 +220,11 @@ public class REvaluationDataServiceImpl extends ServiceImpl(Arrays.asList(pmsRunStatisticD.getRunBusIds().split(StrUtil.COMMA))); } } - //稳态指标条件筛选 - if (StrUtil.isNotBlank(param.getIndexType())) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - this.harmTarget(param,temBusIds, queryWrapper); - List rDimBusUpDList = rDimBusUpDMapper.selectList(queryWrapper); - if (CollectionUtil.isEmpty(rDimBusUpDList)) { - return new Page<>(); - } - temBusIds = rDimBusUpDList.stream().map(RDimBusUpD::getMidBusId).distinct().collect(Collectors.toList()); - } + QueryWrapper queryWrapper = new QueryWrapper<>(); + this.harmTarget(param, temBusIds, queryWrapper); + List rDimBusUpDList = rDimBusUpDMapper.selectList(queryWrapper); + temBusIds = rDimBusUpDList.stream().map(RDimBusUpD::getMidBusId).distinct().collect(Collectors.toList()); } else if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_M.getCode())) { //具体日期投运,监测台账查询 LambdaQueryWrapper dayLam = new LambdaQueryWrapper<>(); @@ -233,16 +239,11 @@ public class REvaluationDataServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - this.harmTarget(param,temBusIds, queryWrapper); - List rDimBusUpMList = rDimBusUpMMapper.selectList(queryWrapper); - if (CollectionUtil.isEmpty(rDimBusUpMList)) { - return new Page<>(); - } - temBusIds = rDimBusUpMList.stream().map(RDimBusUpM::getMidBusId).distinct().collect(Collectors.toList()); - } + QueryWrapper queryWrapper = new QueryWrapper<>(); + this.harmTarget(param, temBusIds, queryWrapper); + List rDimBusUpMList = rDimBusUpMMapper.selectList(queryWrapper); + temBusIds = rDimBusUpMList.stream().map(RDimBusUpM::getMidBusId).distinct().collect(Collectors.toList()); } else if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_Y.getCode())) { //具体日期投运,监测台账查询 @@ -258,17 +259,15 @@ public class REvaluationDataServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - this.harmTarget(param,temBusIds, queryWrapper); - List rDimBusUpYList = rDimBusUpYMapper.selectList(queryWrapper); - if (CollectionUtil.isEmpty(rDimBusUpYList)) { - return new Page<>(); - } - temBusIds = rDimBusUpYList.stream().map(RDimBusUpY::getMidBusId).distinct().collect(Collectors.toList()); - } - } + QueryWrapper queryWrapper = new QueryWrapper<>(); + this.harmTarget(param, temBusIds, queryWrapper); + List rDimBusUpYList = rDimBusUpYMapper.selectList(queryWrapper); + temBusIds = rDimBusUpYList.stream().map(RDimBusUpY::getMidBusId).distinct().collect(Collectors.toList()); + } + if (CollectionUtil.isEmpty(temBusIds)) { + return new Page<>(); + } param.setOnlineBusIds(temBusIds); if (CollectionUtil.isEmpty(temBusIds)) { return new Page<>(); @@ -279,7 +278,6 @@ public class REvaluationDataServiceImpl extends ServiceImpl getBaseEvaMonitorBusDetail(DimBusBarParam param) { List temBusIds = new ArrayList<>(); - List rDimUpDTOList = new ArrayList<>(); LocalDate begin = LocalDate.parse(param.getStartTime()); @@ -292,82 +290,23 @@ public class REvaluationDataServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - this.harmTarget(param,temBusIds, queryWrapper); - List 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 queryWrapper = new QueryWrapper<>(); - this.harmTarget(param,temBusIds, queryWrapper); - List 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 queryWrapper = new QueryWrapper<>(); - this.harmTarget(param,temBusIds, queryWrapper); - List 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); + temBusIds = this.busTargetAss(param, temBusIds, rDimUpDTOList); if (CollectionUtil.isEmpty(temBusIds)) { return new Page<>(); } + param.setOnlineBusIds(temBusIds); Page page = this.baseMapper.getBaseEvaOnlineBusDetail(new Page<>(param.getPageNum(), param.getPageSize()), param); - if(CollectionUtil.isNotEmpty(page.getRecords())){ - Map 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); + if (CollectionUtil.isNotEmpty(page.getRecords())) { + Map 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; } - @Override public Page getBusListByVoltageLevel(DimBusBarParam param) { List temBusIds = new ArrayList<>(); @@ -384,7 +323,141 @@ public class REvaluationDataServiceImpl extends ServiceImpl(); + } + param.setOnlineBusIds(temBusIds); + Page page = this.baseMapper.getBaseEvaOnlineBusDetail(new Page<>(param.getPageNum(), param.getPageSize()), param); + if (CollectionUtil.isNotEmpty(page.getRecords())) { + Map map = rDimUpDTOList.stream().collect(Collectors.toMap(RDimUpDTO::getBusMidId, Function.identity())); + page.getRecords().forEach(it -> { + if (map.containsKey(it.getAstId())) { + RDimUpDTO rDimUpDTO = map.get(it.getAstId()); + it.setBusEfectiveMnitorNum(rDimUpDTO.getEffectIds().split(StrUtil.COMMA).length); + it.setMonitorId(rDimUpDTO.getEffectId()); + it.setIndexAvgValue(rDimUpDTO.getV().toString()); + } + }); + } + return page; + } + + @Override + public Page getMonitorListByBus(DimBusBarParam param) { + if(StrUtil.isBlank(param.getBusId())){ + return new Page<>(); + } + + Page result = new Page<>(param.getPageNum(),param.getPageSize()); + + List rDimUpDTOList = new ArrayList<>(); + List midBusIds = this.busTargetAss(param, Stream.of(param.getBusId()).collect(Collectors.toList()), rDimUpDTOList); + List pmsMidLedgerList = pmsMidLedgerClient.getPmsMidLedgerList(midBusIds).getData(); + if(CollectionUtil.isEmpty(pmsMidLedgerList)){ + return new Page<>(); + } + Map midLedgerMap = pmsMidLedgerList.stream().collect(Collectors.toMap(PmsMidLedger::getId,Function.identity())); + List effectIds = rDimUpDTOList.stream().map(RDimUpDTO::getEffectIds).filter(Objects::nonNull).collect(Collectors.toList()); + + List effectId = rDimUpDTOList.stream().map(RDimUpDTO::getEffectId).filter(Objects::nonNull).collect(Collectors.toList()); + + + Map busMap = rDimUpDTOList.stream().collect(Collectors.toMap(RDimUpDTO::getBusId,Function.identity())); + + List monitorIds = new ArrayList<>(); + effectIds.forEach(it-> monitorIds.addAll(Arrays.asList(it.split(StrUtil.COMMA)))); + + TerminalQueryParam terminalQueryParam = new TerminalQueryParam(); + terminalQueryParam.setMonitorIds(monitorIds); + Page page = monitorClient.getMonitorPage(terminalQueryParam).getData(); + List temList = new ArrayList<>(); + page.getRecords().forEach(it->{ + DimBusBarVO.DimBusBarMonitorVO tem = new DimBusBarVO.DimBusBarMonitorVO(); + tem.setMonitorId(it.getMonitorId()); + RDimUpDTO rDimUpDTO = busMap.get(it.getLineId()); + PmsMidLedger pmsMidLedger = midLedgerMap.get(rDimUpDTO.getBusMidId()); + tem.setBusId(pmsMidLedger.getId()); + tem.setBusName(pmsMidLedger.getName()); + tem.setId(IdUtil.simpleUUID()); + tem.setCityOrg(pmsMidLedger.getCityOrg()); + tem.setCityOrgName(pmsMidLedger.getCityOrgName()); + tem.setMaintOrg(pmsMidLedger.getSectionId()); + tem.setMaintOrgName(pmsMidLedger.getSection()); + tem.setStatDate(param.getStatDate()); + tem.setStatus("01"); + tem.setStatusName("投运"); + + if(effectId.contains(it.getId())){ + tem.setWhetherOptimal("是"); + tem.setWhetherOptimalName(it.getName()); + } + tem.setMonitorName(it.getName()); + temList.add(tem); + }); + result.setTotal(page.getTotal()); + result.setRecords(temList); + return result; + } + + + /** + * 根据稳态指标筛选符合条件的母线 + * + * @author cdf + * @date 2024/5/14 + */ + private List busTargetAss(DimBusBarParam param, List temBusIds, List rDimUpDTOList) { + String statisticType = param.getStatType(); + if (DicDataEnum.STATISTICAL_TYPE_D.getCode().equals(statisticType)) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + this.harmTarget(param, temBusIds, queryWrapper); + List rDimBusUpDList = rDimBusUpDMapper.selectList(queryWrapper); + Map> map = rDimBusUpDList.stream().collect(Collectors.groupingBy(RDimBusUpD::getBusId)); + map.forEach((key,val)->{ + RDimUpDTO rDimUpDTO = new RDimUpDTO(); + rDimUpDTO.setBusMidId(val.get(0).getMidBusId()); + rDimUpDTO.setEffectId(val.get(0).getEffectId()); + rDimUpDTO.setEffectIds(val.get(0).getEffectIds()); + rDimUpDTO.setBusId(val.get(0).getBusId()); + rDimUpDTO.setV(val.stream().mapToDouble(RDimBusUpD::getV).filter(it->it!=3.14159).average().orElse(3.14159)); + 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 queryWrapper = new QueryWrapper<>(); + this.harmTarget(param, temBusIds, queryWrapper); + List rDimBusUpMList = rDimBusUpMMapper.selectList(queryWrapper); + Map> map = rDimBusUpMList.stream().collect(Collectors.groupingBy(RDimBusUpM::getBusId)); + map.forEach((key,val)->{ + RDimUpDTO rDimUpDTO = new RDimUpDTO(); + rDimUpDTO.setBusMidId(val.get(0).getMidBusId()); + rDimUpDTO.setBusId(val.get(0).getBusId()); + rDimUpDTO.setEffectId(val.get(0).getEffectId()); + rDimUpDTO.setEffectIds(val.get(0).getEffectIds()); + rDimUpDTO.setV(val.stream().mapToDouble(RDimBusUpM::getV).filter(it->it!=3.14159).average().orElse(3.14159)); + rDimUpDTOList.add(rDimUpDTO); + }); + temBusIds = rDimBusUpMList.stream().map(RDimBusUpM::getMidBusId).distinct().collect(Collectors.toList()); + } else if (DicDataEnum.STATISTICAL_TYPE_Y.getCode().equals(statisticType)) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + this.harmTarget(param, temBusIds, queryWrapper); + List rDimBusUpYList = rDimBusUpYMapper.selectList(queryWrapper); + Map> map = rDimBusUpYList.stream().collect(Collectors.groupingBy(RDimBusUpY::getBusId)); + map.forEach((key,val)->{ + RDimUpDTO rDimUpDTO = new RDimUpDTO(); + rDimUpDTO.setBusMidId(val.get(0).getMidBusId()); + rDimUpDTO.setBusId(val.get(0).getBusId()); + rDimUpDTO.setEffectId(val.get(0).getEffectId()); + rDimUpDTO.setEffectIds(val.get(0).getEffectIds()); + rDimUpDTO.setV(val.stream().mapToDouble(RDimBusUpY::getV).filter(it->it!=3.14159).average().orElse(3.14159)); + rDimUpDTOList.add(rDimUpDTO); + }); + temBusIds = rDimBusUpYList.stream().map(RDimBusUpY::getMidBusId).distinct().collect(Collectors.toList()); + } + return temBusIds; } @@ -395,9 +468,9 @@ public class REvaluationDataServiceImpl extends ServiceImpl) dayLam); } else if (PmsRunStatisticM.class.equals(clazz)) { - pmsRunStatistic = pmsRunStatisticMMapper.selectOne((QueryWrapper)dayLam); + pmsRunStatistic = pmsRunStatisticMMapper.selectOne((QueryWrapper) dayLam); } else if (PmsRunStatisticY.class.equals(clazz)) { - pmsRunStatistic = pmsRunStatisticYMapper.selectOne((QueryWrapper)dayLam); + pmsRunStatistic = pmsRunStatisticYMapper.selectOne((QueryWrapper) dayLam); } if (Objects.nonNull(pmsRunStatistic)) { String onlineBusMidIds = null; @@ -416,7 +489,7 @@ public class REvaluationDataServiceImpl extends ServiceImpl temBusIds, QueryWrapper queryWrapper) { + private void harmTarget(DimBusBarParam param, List temBusIds, QueryWrapper queryWrapper) { //稳态指标条件筛选 String target = "", harmV = ""; switch (param.getIndexType()) { @@ -436,25 +509,24 @@ public class REvaluationDataServiceImpl extends ServiceImpl rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(rOperatingMonitorDPOQueryWrapper); List effLineIds = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + if(CollectionUtil.isEmpty(effLineIds)){ + return; + } + queryWrapper.clear(); queryWrapper.select("is_freq","is_v_dev","is_v","is_i","is_unbalance","is_i_neg"). in("measurement_point_id",effLineIds). diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/SupervisionGeneralSurveyPlanVO.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/SupervisionGeneralSurveyPlanVO.java index 486c3e36d..d9b5f3e59 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/SupervisionGeneralSurveyPlanVO.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/SupervisionGeneralSurveyPlanVO.java @@ -113,7 +113,7 @@ public class SupervisionGeneralSurveyPlanVO extends BaseEntity { @ApiModelProperty(value="流程实例的编号") private String processInstanceId; - @ApiModelProperty(value="流程实例的编号") + @ApiModelProperty(value="计划下变电站详情") private List supervisionGeneralSurveyPlanDetailPOS ; } \ No newline at end of file diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/device/QuitRunningDeviceController.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/device/QuitRunningDeviceController.java index 23d74b17f..839d61328 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/device/QuitRunningDeviceController.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/device/QuitRunningDeviceController.java @@ -10,10 +10,9 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.supervision.pojo.param.device.QuitRunningDeviceParam; -import com.njcn.supervision.pojo.param.user.UserReportParam; import com.njcn.supervision.pojo.vo.device.QuitRunningDeviceVO; -import com.njcn.supervision.pojo.vo.user.UserReportVO; import com.njcn.supervision.service.device.IQuitRunningDeviceService; +import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; @@ -23,10 +22,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import com.njcn.web.controller.BaseController; - -import javax.validation.Valid; - /** *

* 前端控制器 @@ -67,7 +62,7 @@ public class QuitRunningDeviceController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) @PostMapping("/update") @ApiOperation("更新设备退运") - @ApiImplicitParam(name = "quitRunningDeviceParam", value = "实体参数", required = true) + @ApiImplicitParam(name = "quitRunningDeviceUpdateParam", value = "实体参数", required = true) public HttpResult quitRunningDeviceUpdate(@RequestBody @Validated QuitRunningDeviceParam.QuitRunningDeviceUpdateParam quitRunningDeviceUpdateParam) { String methodDescribe = getMethodDescribe("quitRunningDeviceUpdateParam"); String runningDeviceId = quitRunningDeviceService.quitRunningDeviceUpdate(quitRunningDeviceUpdateParam); diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/impl/SupervisionGeneralSurveyPlanPOServiceImpl.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/impl/SupervisionGeneralSurveyPlanPOServiceImpl.java index ca89c9974..27f6fd3f8 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/impl/SupervisionGeneralSurveyPlanPOServiceImpl.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/impl/SupervisionGeneralSurveyPlanPOServiceImpl.java @@ -214,7 +214,7 @@ public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl list1 = commTerminalGeneralClient.tagOrIdGetSub(param).getData(); List children = deptSubstationVO.getChildren(); List collect = list1.stream().map(statationStat -> {