From 9a6c4e72441f4d4131ee06bd8dc899dbd2234bdd Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Fri, 17 May 2024 16:57:06 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=9B=BD=E7=BD=91=E4=B8=8B=E7=A9=BF-?= =?UTF-8?q?=E5=85=B8=E5=9E=8B=E6=BA=90=E8=8D=B7=E6=8E=A5=E5=8F=A3=E7=BC=96?= =?UTF-8?q?=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/pojo/param/gw/TypicalSourceParam.java | 69 ++++ .../vo/gw/TypicalSourceEffectiveLine.java | 79 +++++ .../pms/pojo/vo/gw/TypicalSourceOnLine.java | 121 +++++++ .../TypicalSourceLoadDownController.java | 78 ++++ .../ledgerManger/PmsMonitorController.java | 2 +- .../gwPush/TypicalSourceLoadDownService.java | 48 +++ .../TypicalSourceLoadDownServiceImpl.java | 333 ++++++++++++++++++ .../mapper/mapping/RStatIntegrityDMapper.xml | 5 +- .../mapper/mapping/RStatOnlinerateDMapper.xml | 5 +- .../service/impl/GridDiagramServiceImpl.java | 6 +- .../impl/RStatLimitServiceImpl.java | 4 +- .../impl/REvaluationDataServiceImpl.java | 3 - 12 files changed, 742 insertions(+), 11 deletions(-) create mode 100644 pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/gw/TypicalSourceParam.java create mode 100644 pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/gw/TypicalSourceEffectiveLine.java create mode 100644 pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/gw/TypicalSourceOnLine.java create mode 100644 pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/gwPush/TypicalSourceLoadDownController.java create mode 100644 pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/TypicalSourceLoadDownService.java create mode 100644 pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/TypicalSourceLoadDownServiceImpl.java diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/gw/TypicalSourceParam.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/gw/TypicalSourceParam.java new file mode 100644 index 000000000..9d454b0d1 --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/gw/TypicalSourceParam.java @@ -0,0 +1,69 @@ +package com.njcn.device.pms.pojo.param.gw; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author wr + * @description + * @date 2024/5/16 9:57 + */ +@Data +public class TypicalSourceParam { + + + @ApiModelProperty("详情类型") + private String detailType; + + @ApiModelProperty("结束日期") + private String endTime; + + @ApiModelProperty("谐波次数") + private Integer harmonicNum; + + @ApiModelProperty("各站点id") + private String id; + + @ApiModelProperty("指标类型:1.电压总谐波畸变率 2.谐波电压 3.谐波电流 4.三相电压不平衡都 5.负序电流 6.长时闪变") + private String indexType; + + @ApiModelProperty("行业分类 00:全部 01:煤炭开采和洗选业 02:石油和天然气开采业 03:属矿采选业 04:非金属矿采选业 05:金属冶炼和压延加工业 06: 金属制品业 07: 铁路运输业 08: 其他") + private String industryType; + + @ApiModelProperty("组织结构id") + private String nodeId; + + @ApiModelProperty("组织结构等级") + private String nodeLevel; + + @ApiModelProperty("单位id") + private String orgId; + + @ApiModelProperty("单位级别") + private String orgLevel; + + @ApiModelProperty("开始日期") + private String startTime; + + @ApiModelProperty("统计类型: 01:年 02:月 03:日") + private String statType; + + @ApiModelProperty("类型") + private String typeNum; + + @ApiModelProperty("是否最优监测点") + private String whetherOptimal; + + @ApiModelProperty("页码") + private Integer pageNum; + + @ApiModelProperty("每页条数") + private Integer pageSize; + + @ApiModelProperty("统计类型: 01-牵引站,02-风电场,03-光伏电站,04-其他干扰用户") + private String statisticsType; + + @ApiModelProperty("统计时间,日数据:yyyy-mm-dd,月数据:yyyy-mm,年数据:yyyy") + private String statDate; + +} diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/gw/TypicalSourceEffectiveLine.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/gw/TypicalSourceEffectiveLine.java new file mode 100644 index 000000000..d1cc2fc88 --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/gw/TypicalSourceEffectiveLine.java @@ -0,0 +1,79 @@ +package com.njcn.device.pms.pojo.vo.gw; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author wr + * @description + * @date 2024/5/16 15:41 + */ +@Data +public class TypicalSourceEffectiveLine { + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("实收数") + private Integer actualCollectNum; + + @ApiModelProperty("母线主键") + private String busId; + + @ApiModelProperty("母线名称") + private String busName; + + @ApiModelProperty("母线电压等级") + private String busVoltageLevel; + + @ApiModelProperty("母线电压等级名称") + private String busVoltageLevelName; + + @ApiModelProperty("所属地市") + private String cityOrg; + + @ApiModelProperty("所属单位名称") + private String cityOrgName; + + @ApiModelProperty("数据完整率") + private Float dataFullRate; + + @ApiModelProperty("应收数") + private Integer expectCollectNum; + + @ApiModelProperty("主键") + private String id; + + @ApiModelProperty("运维单位") + private String maintOrg; + + @ApiModelProperty("运维单位名称") + private String maintOrgName; + + @ApiModelProperty("监测点编码") + private String monitorId; + + @ApiModelProperty("监测点名称") + private String monitorName; + + @ApiModelProperty("监测日期") + private String statDate; + + @ApiModelProperty("所属电站主键") + private String stationId; + + @ApiModelProperty("所属电站名称") + private String stationName; + + @ApiModelProperty("监测点状态") + private String status; + + @ApiModelProperty("监测点状态名称") + private String statusName; + + @ApiModelProperty("是否最优") + private String whetherOptimal; + + @ApiModelProperty("是否最优监测点名称") + private String whetherOptimalName; + +} diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/gw/TypicalSourceOnLine.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/gw/TypicalSourceOnLine.java new file mode 100644 index 000000000..b10cfa7a1 --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/gw/TypicalSourceOnLine.java @@ -0,0 +1,121 @@ +package com.njcn.device.pms.pojo.vo.gw; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author wr + * @description + * @date 2024/5/16 9:36 + */ +@Data +public class TypicalSourceOnLine { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("副备电站id") + private String auxiliarySubstationId; + + @ApiModelProperty("副备电站名称") + private String auxiliarySubstationName; + + @ApiModelProperty("副备电站电压等级") + private String auxiliaryVoltageLevel; + + @ApiModelProperty("副备电站电压等级名称") + private String auxiliaryVoltageLevelName; + + @ApiModelProperty("母线电压等级") + private String busVoltageLevel; + + @ApiModelProperty("母线电压等级名称") + private String busVoltageLevelName; + + @ApiModelProperty("协议容量") + private String capacity; + + @ApiModelProperty("所属单位id") + private String cityOrg; + + @ApiModelProperty("所属单位名称") + private String cityOrgName; + + @ApiModelProperty("有效监测点数量") + private Integer effectMonitorNum; + + @ApiModelProperty("主键") + private String id; + + @ApiModelProperty("主备电站id") + private String mainSubstationId; + + @ApiModelProperty("主备电站名称") + private String mainSubstationName; + + @ApiModelProperty("主备电站电压等级") + private String mainVoltageLevel; + + @ApiModelProperty("主备电站电压等级名称") + private String mainVoltageLevelName; + + @ApiModelProperty("运维单位id") + private String maintOrg; + + @ApiModelProperty("运维单位名称") + private String maintOrgName; + + @ApiModelProperty("场站属性") + private String monitorObjectType; + + @ApiModelProperty("场站属性名称") + private String monitorObjectTypeName; + + @ApiModelProperty("各站点名称,如:牵引站对应牵引站名称") + private String name; + + @ApiModelProperty("铁路名称") + private String railWayName; + + @ApiModelProperty("铁路编号") + private String railWayNumber; + + @ApiModelProperty("铁路类型") + private String railWayType; + + @ApiModelProperty("铁路类型名称") + private String railWayTypeName; + + @ApiModelProperty("运行状态") + private String runStatus; + + @ApiModelProperty("运行状态名称") + private String runStatusName; + + @ApiModelProperty("关联变电站id") + private String stationId; + + @ApiModelProperty("关联变电站名称") + private String stationName; + + @ApiModelProperty("变电站类型") + private String stationType; + + @ApiModelProperty("关联变电站电压等级") + private String stationVoltageLevel; + + @ApiModelProperty("关联变电站电压等级名称") + private String stationVoltageLevelName; + + @ApiModelProperty("行业分类") + private String tradeCode; + + @ApiModelProperty("行业分类名称") + private String tradeCodeName; + + @ApiModelProperty("接入电压等级") + private String voltageLevel; + + @ApiModelProperty("接入电压等级名称") + private String voltageLevelName; + + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/gwPush/TypicalSourceLoadDownController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/gwPush/TypicalSourceLoadDownController.java new file mode 100644 index 000000000..86d7c41f4 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/gwPush/TypicalSourceLoadDownController.java @@ -0,0 +1,78 @@ +package com.njcn.device.pms.controller.gwPush; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.device.pms.pojo.param.gw.TypicalSourceParam; +import com.njcn.device.pms.pojo.vo.gw.TypicalSourceEffectiveLine; +import com.njcn.device.pms.pojo.vo.gw.TypicalSourceOnLine; +import com.njcn.device.pms.service.gwPush.TypicalSourceLoadDownService; +import com.njcn.web.pojo.dto.PmsHttpResult; +import com.njcn.web.pojo.dto.PmsPage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +/** + * @author wr + * @description + * @date 2024/5/16 9:22 + */ +@Slf4j +@RestController +@RequestMapping("/IndexAnalysis/TypicalSourceLoad") +@Api(tags = "典型源荷下穿查询") +@RequiredArgsConstructor +public class TypicalSourceLoadDownController { + + private final TypicalSourceLoadDownService typicalSourceLoadDownService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getOnlineDetail") + @ApiOperation("国网上送-接收总部典型源荷分析查询在线干扰源用户下穿接口") + @ApiImplicitParam(name = "param", value = "实体参数", required = true) + public PmsHttpResult> getOnlineDetail(@RequestBody TypicalSourceParam param) { + PmsPage PmsPage = typicalSourceLoadDownService.getOnlineDetail(param); + return new PmsHttpResult<>(0, PmsPage); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getMonitorDetail") + @ApiOperation("国网上送-接收总部典型源荷分析查询监测有效干扰源用户下穿接口") + @ApiImplicitParam(name = "param", value = "实体参数", required = true) + public PmsHttpResult> getMonitorDetail(@RequestBody TypicalSourceParam param) { + PmsPage PmsPage = typicalSourceLoadDownService.getMonitorDetail(param); + return new PmsHttpResult<>(0, PmsPage); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getValidMonitorList") + @ApiOperation("国网上送-接收总部典型源荷分析获取有效监测点列表下穿接口") + @ApiImplicitParam(name = "param", value = "实体参数", required = true) + public PmsHttpResult> getValidMonitorList(@RequestBody TypicalSourceParam param) { + PmsPage PmsPage = typicalSourceLoadDownService.getValidMonitorList(param); + return new PmsHttpResult<>(0, PmsPage); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getOverStationList") + @ApiOperation("国网上送-接收总部典型源荷分析获取超标电站数据列表下穿接口") + @ApiImplicitParam(name = "param", value = "实体参数", required = true) + public PmsHttpResult> getOverStationList(@RequestBody TypicalSourceParam param) { + PmsPage PmsPage = typicalSourceLoadDownService.getOverStationList(param); + return new PmsHttpResult<>(0, PmsPage); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getOverIndexList") + @ApiOperation("国网上送-接收总部典型源荷分析获取超标指标数据表下穿接口") + @ApiImplicitParam(name = "param", value = "实体参数", required = true) + public PmsHttpResult> getOverIndexList(@RequestBody TypicalSourceParam param) { + PmsPage PmsPage = typicalSourceLoadDownService.getOverIndexList(param); + return new PmsHttpResult<>(0, PmsPage); + } +} 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 b146e4408..cd40f7119 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 @@ -141,7 +141,7 @@ public class PmsMonitorController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/getMonitorPage") @ApiOperation("获取所有主网监测点(或者指定监测点编号查询)") - @ApiImplicitParam(name = "monitorIds",value = "主网监测点编号",required = true) + @ApiImplicitParam(name = "baseParam",value = "主网监测点编号",required = true) public HttpResult> getMonitorPage(@RequestBody TerminalQueryParam baseParam) { String methodDescribe = getMethodDescribe("getMonitorPage"); Page monitor= monitorService.getMonitorPage(baseParam); diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/TypicalSourceLoadDownService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/TypicalSourceLoadDownService.java new file mode 100644 index 000000000..2d06b95a6 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/TypicalSourceLoadDownService.java @@ -0,0 +1,48 @@ +package com.njcn.device.pms.service.gwPush; + +import com.njcn.device.pms.pojo.param.gw.TypicalSourceParam; +import com.njcn.device.pms.pojo.vo.gw.TypicalSourceEffectiveLine; +import com.njcn.device.pms.pojo.vo.gw.TypicalSourceOnLine; +import com.njcn.web.pojo.dto.PmsPage; + +/** + * 国网下穿-典型源荷 + */ +public interface TypicalSourceLoadDownService { + + /** + * @Description: 接收总部典型源荷分析查询在线干扰源用户下穿接口 + * @Date: 2024/5/16 10:22 + */ + PmsPage getOnlineDetail(TypicalSourceParam param); + + /** + * @Description: 接收总部典型源荷分析获取有效监测点列表下穿接口 + * @param param + * @Date: 2024/5/16 10:22 + */ + PmsPage getMonitorDetail(TypicalSourceParam param); + + /** + * @Description: 接收总部典型源荷分析获取有效监测点列表下穿接口 + * @param param + * @Date: 2024/5/16 10:22 + */ + PmsPage getValidMonitorList(TypicalSourceParam param); + + /** + * @Description: 接收总部典型源荷分析获取超标电站数据列表下穿接口 + * @param param + * @Date: 2024/5/16 10:22 + */ + PmsPage getOverStationList(TypicalSourceParam param); + + /** + * @Description: 接收总部典型源荷分析获取超标指标数据表下穿接口 + * @param param + * @Date: 2024/5/16 10:22 + */ + PmsPage getOverIndexList(TypicalSourceParam param); + + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/TypicalSourceLoadDownServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/TypicalSourceLoadDownServiceImpl.java new file mode 100644 index 000000000..9d61fba93 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/TypicalSourceLoadDownServiceImpl.java @@ -0,0 +1,333 @@ +package com.njcn.device.pms.service.gwPush.impl; + + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.text.StrBuilder; +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; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.device.pms.mapper.majornetwork.PmsGeneratrixWireMapper; +import com.njcn.device.pms.pojo.param.gw.TypicalSourceParam; +import com.njcn.device.pms.pojo.po.GeneratrixWire; +import com.njcn.device.pms.pojo.po.Monitor; +import com.njcn.device.pms.pojo.po.StatationStat; +import com.njcn.device.pms.pojo.po.TractionStation; +import com.njcn.device.pms.pojo.vo.gw.*; +import com.njcn.device.pms.service.gwPush.TypicalSourceLoadDownService; +import com.njcn.device.pms.service.majornetwork.*; +import com.njcn.device.pq.pojo.po.Line; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.api.DictTreeFeignClient; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.enums.DicTreeEnum; +import com.njcn.system.pojo.po.DictData; +import com.njcn.system.pojo.po.SysDicTreePO; +import com.njcn.system.pojo.vo.DictTreeVO; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.web.enums.GWSendEnum; +import com.njcn.web.pojo.dto.PmsPage; +import com.njcn.web.pojo.param.SendParam; +import com.njcn.web.utils.GwSendUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; + +@Service +@RequiredArgsConstructor +public class TypicalSourceLoadDownServiceImpl implements TypicalSourceLoadDownService { + + private final IMonitorService monitorService; + private final DicDataFeignClient dicDataFeignClient; + private final DeptFeignClient deptFeignClient; + private final DictTreeFeignClient dictTreeFeignClient; + private final IStatationStatService stationStatService; + private final IGeneratrixWireService iGeneratrixWireService; + private final ITractionStationService tractionStationService; + + @Override + public PmsPage getOnlineDetail(TypicalSourceParam param) { + Page monitorList = monitorList(param); + List info = new ArrayList<>(); + TypicalSourceOnLine typicalSourceOnLine; + //线路变电站 + List lineIds = monitorList.getRecords().stream().map(Monitor::getLineId).distinct().collect(Collectors.toList()); + List powerIds = monitorList.getRecords().stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList()); + List wiresList = iGeneratrixWireService.listByIds(lineIds); + Map wireMap = wiresList.stream().collect(Collectors + .toMap(GeneratrixWire::getId, Function.identity())); + List stationStats = stationStatService.listByIds(powerIds); + Map powerMap = stationStats.stream().collect(Collectors + .toMap(StatationStat::getPowerId, Function.identity())); + //电压等级 + List voltage = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + Map mapVoltage = voltage.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + //运行状态 + List lineState = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData(); + Map mapLineState = lineState.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + //分类行业 + List industryType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INDUSTRY_TYPE.getCode()).getData(); + Map mapIndustryType = industryType.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + //获取已存在牵引站的信息 + List tractionIds = monitorList.getRecords().stream().map(Monitor::getTractionId).collect(Collectors.toList()); + List tractionStationList = tractionStationService.list(new LambdaQueryWrapper() + .in(TractionStation::getId, tractionIds)); + Map tractionMap = tractionStationList.stream().collect(Collectors.toMap(TractionStation::getId, Function.identity())); + TractionStation traction; + for (Monitor monitor : monitorList.getRecords()) { + typicalSourceOnLine = new TypicalSourceOnLine(); + typicalSourceOnLine.setId(monitor.getId()); + typicalSourceOnLine.setName(monitor.getName()); + //母线的电压等级 + if (wireMap.containsKey(monitor.getLineId())) { + GeneratrixWire generatrixWire = wireMap.get(monitor.getLineId()); + if (mapVoltage.containsKey(generatrixWire.getScale())) { + typicalSourceOnLine.setBusVoltageLevel(String.format("%02d", mapVoltage.get(generatrixWire.getScale()).getAlgoDescribe())); + typicalSourceOnLine.setBusVoltageLevelName(mapVoltage.get(generatrixWire.getScale()).getName()); + } + } + typicalSourceOnLine.setCapacity(monitor.getUserAgreementCapacity().toString()); + typicalSourceOnLine.setCityOrg(monitor.getOrgId()); + typicalSourceOnLine.setCityOrgName(monitor.getOrgName()); + typicalSourceOnLine.setEffectMonitorNum(1); + typicalSourceOnLine.setMaintOrg(monitor.getOperationId()); + typicalSourceOnLine.setMaintOrgName(monitor.getOperationName()); + typicalSourceOnLine.setMonitorObjectType(monitor.getFieldStation()); + typicalSourceOnLine.setMonitorObjectTypeName(monitorObjectTypeName(monitor.getFieldStation())); + //运行状态 + if (mapLineState.containsKey(monitor.getMonitorState())) { + typicalSourceOnLine.setRunStatus(mapLineState.get(monitor.getMonitorState()).getValue()); + typicalSourceOnLine.setRunStatusName(mapLineState.get(monitor.getMonitorState()).getName()); + } + //变电站 + if (powerMap.containsKey(monitor.getPowerrId())) { + StatationStat statationStat = powerMap.get(monitor.getPowerrId()); + typicalSourceOnLine.setStationId(statationStat.getMidStationId()); + typicalSourceOnLine.setStationName(statationStat.getPowerName()); + typicalSourceOnLine.setMainSubstationId(statationStat.getMidStationId()); + typicalSourceOnLine.setMainSubstationName(statationStat.getPowerName()); + if (mapVoltage.containsKey(statationStat.getVoltageLevel())) { + typicalSourceOnLine.setStationVoltageLevel(String.format("%02d", mapVoltage.get(statationStat.getVoltageLevel()).getAlgoDescribe())); + typicalSourceOnLine.setStationVoltageLevelName(mapVoltage.get(statationStat.getVoltageLevel()).getName()); + } + //牵引站的主备变电站 + if (StrUtil.isNotBlank(monitor.getTractionId())) { + typicalSourceOnLine.setMainVoltageLevel(String.format("%02d", mapVoltage.get(statationStat.getVoltageLevel()).getAlgoDescribe())); + typicalSourceOnLine.setMainVoltageLevelName(mapVoltage.get(statationStat.getVoltageLevel()).getName()); + } + } +// typicalSourceOnLine.setStationType(); + //行业分类 + if (mapIndustryType.containsKey(monitor.getTradeCode())) { + typicalSourceOnLine.setTradeCode(mapIndustryType.get(monitor.getTradeCode()).getValue()); + typicalSourceOnLine.setTradeCodeName(mapIndustryType.get(monitor.getTradeCode()).getName()); + } + //电压等级 + if (mapVoltage.containsKey(monitor.getVoltageLevel())) { + typicalSourceOnLine.setVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe())); + typicalSourceOnLine.setVoltageLevelName(mapVoltage.get(monitor.getVoltageLevel()).getName()); + } + //根据是否存在牵引站id来判断是否存在牵引站 + if (StrUtil.isNotBlank(monitor.getTractionId())) { + if (tractionMap.containsKey(monitor.getTractionId())) { + traction = tractionMap.get(monitor.getTractionId()); + typicalSourceOnLine.setName(traction.getName()); + //牵引站的主备变电站 + if (mapVoltage.containsKey(traction.getVoltageLevel())) { + typicalSourceOnLine.setMainVoltageLevel(String.format("%02d", mapVoltage.get(traction.getVoltageLevel()).getAlgoDescribe())); + typicalSourceOnLine.setMainVoltageLevelName(mapVoltage.get(traction.getVoltageLevel()).getName()); + } + typicalSourceOnLine.setRailWayName(traction.getRailwayLineName()); + typicalSourceOnLine.setRailWayNumber(traction.getRailwayLineId()); + typicalSourceOnLine.setRailWayType(traction.getRailwayType()); + typicalSourceOnLine.setRailWayTypeName(railWayTypeName(traction.getRailwayType())); + + } +// typicalSourceOnLine.setAuxiliarySubstationId(); +// typicalSourceOnLine.setAuxiliarySubstationName(); +// typicalSourceOnLine.setAuxiliaryVoltageLevel(); +// typicalSourceOnLine.setAuxiliaryVoltageLevelName(); + + } + info.add(typicalSourceOnLine); + } + PmsPage pmsPage = BeanUtil.copyProperties(monitorList, PmsPage.class); + pmsPage.setList(info); + return pmsPage; + + } + private Page monitorList(TypicalSourceParam param) { + List objTypeIds = new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + if (StrUtil.isNotBlank(param.getOrgId())) { + List data = deptFeignClient.getDepSonSelfCodetByCode(param.getOrgId()).getData(); + lambdaQueryWrapper.in(Monitor::getOrgId, data); + } + + if (StrUtil.isBlank(param.getStatisticsType())) { + //特殊处理 + List sysDicTreePOList = dictTreeFeignClient.queryAll().getData(); + List typicDic = sysDicTreePOList.stream() + .filter(item -> Objects.equals(DicTreeEnum.Power_Station.getCode(), item.getCode()) || + Objects.equals(DicTreeEnum.Ele_Railways.getCode(), item.getCode()) || + Objects.equals(DicTreeEnum.Wind_Farms.getCode(), item.getCode()) || + Objects.equals(DicTreeEnum.Imp_Users.getCode(), item.getCode())) + .collect(Collectors.toList()); + + for (SysDicTreePO sysDicTreePO : typicDic) { + List temList = dictTreeFeignClient.query(sysDicTreePO.getId()).getData(); + List ids = temList.stream().map(DictTreeVO::getId).collect(Collectors.toList()); + objTypeIds.addAll(ids); + objTypeIds.add(sysDicTreePO.getId()); + } + lambdaQueryWrapper.notIn(Monitor::getObjType, objTypeIds); + } else { + //01-牵引站,02-风电场,03-光伏电站,04-其他干扰用户 + String code; + switch (param.getStatisticsType()) { + case "01": + code = DicTreeEnum.Ele_Railways.getCode(); + break; + case "02": + code = DicTreeEnum.Wind_Farms.getCode(); + break; + case "03": + code = DicTreeEnum.Power_Station.getCode(); + break; + case "04": + code = DicTreeEnum.Imp_Users.getCode(); + break; + default: + return new Page<>(param.getPageNum(), param.getPageSize()); + } + String id = dictTreeFeignClient.queryByCode(code).getData().getId(); + List objType = dictTreeFeignClient.query(id).getData(); + objTypeIds.add(id); + if (CollUtil.isNotEmpty(objType)) { + objTypeIds.addAll(objType.stream().map(DictTreeVO::getId).collect(Collectors.toList())); + } + lambdaQueryWrapper.in(Monitor::getObjType, objTypeIds); + } + + //获取监测点信息 + lambdaQueryWrapper.eq(Monitor::getIsUpToGrid, 1); + return monitorService.page(new Page<>(param.getPageNum(), param.getPageSize()), lambdaQueryWrapper); + } + + private String monitorObjectTypeName(String name) { + if(StrUtil.isNotBlank(name)){ + switch (name) { + case "01": + return "在运站"; + case "02": + return "新(改、扩)建站"; + } + } + return null; + } + + private String railWayTypeName(String name) { + if(StrUtil.isNotBlank(name)){ + switch (name) { + case "1": + return "高铁"; + case "2": + return "普铁"; + } + } + return null; + } + + @Override + public PmsPage getMonitorDetail(TypicalSourceParam param) { + return null; + } + + @Override + public PmsPage getValidMonitorList(TypicalSourceParam param) { + List info = new ArrayList<>(); + Page monitorList = monitorList(param); + List monitorIds = monitorList.getRecords().stream().map(Monitor::getId).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(monitorIds)) { + //线路变电站 + List lineIds = monitorList.getRecords().stream().map(Monitor::getLineId).distinct().collect(Collectors.toList()); + List powerIds = monitorList.getRecords().stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList()); + List wiresList = iGeneratrixWireService.listByIds(lineIds); + Map wireMap = wiresList.stream().collect(Collectors + .toMap(GeneratrixWire::getId, Function.identity())); + List stationStats = stationStatService.listByIds(powerIds); + Map powerMap = stationStats.stream().collect(Collectors + .toMap(StatationStat::getPowerId, Function.identity())); + //电压等级 + List voltage = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + Map mapVoltage = voltage.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + //运行状态 + List lineState = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData(); + Map mapLineState = lineState.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + TypicalSourceEffectiveLine line ; + for (Monitor monitor : monitorList.getRecords()) { + line = new TypicalSourceEffectiveLine(); + //母线信息 + if (wireMap.containsKey(monitor.getLineId())) { + GeneratrixWire generatrixWire = wireMap.get(monitor.getLineId()); + if (mapVoltage.containsKey(generatrixWire.getScale())) { + line.setBusId(generatrixWire.getMidBusId()); + line.setBusName(generatrixWire.getName()); + line.setBusVoltageLevel(String.format("%02d", mapVoltage.get(generatrixWire.getScale()).getAlgoDescribe())); + line.setBusVoltageLevelName(mapVoltage.get(generatrixWire.getScale()).getName()); + } + } + line.setCityOrg(monitor.getOrgId()); + line.setCityOrgName(monitor.getOrgName()); + line.setId(monitor.getId()); + line.setMaintOrg(monitor.getOperationId()); + line.setMaintOrgName(monitor.getOperationName()); + line.setMonitorId(monitor.getMonitorId()); + line.setMonitorName(monitor.getName()); + //运行状态 + if (mapLineState.containsKey(monitor.getMonitorState())) { + line.setStatus(mapLineState.get(monitor.getMonitorState()).getValue()); + line.setStatusName(mapLineState.get(monitor.getMonitorState()).getName()); + } + //变电站 + if (powerMap.containsKey(monitor.getPowerrId())) { + StatationStat statationStat = powerMap.get(monitor.getPowerrId()); + line.setStationId(statationStat.getMidStationId()); + line.setStationName(statationStat.getPowerName()); + } +// line.setWhetherOptimal(); +// line.setWhetherOptimalName(); +// line.setStatDate(); +// line.setActualCollectNum(); +// line.setDataFullRate(); +// line.setExpectCollectNum(); + + + info.add(line); + } + } + PmsPage pmsPage = BeanUtil.copyProperties(monitorList, PmsPage.class); + pmsPage.setList(info); + return pmsPage; + } + + @Override + public PmsPage getOverStationList(TypicalSourceParam param) { + return null; + } + + @Override + public PmsPage getOverIndexList(TypicalSourceParam param) { + return null; + } +} diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/RStatIntegrityDMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/RStatIntegrityDMapper.xml index 5d7b05f2b..201474bb9 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/RStatIntegrityDMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/RStatIntegrityDMapper.xml @@ -65,7 +65,10 @@