|
|
|
|
@@ -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<TypicalSourceOnLine> getOnlineDetail(TypicalSourceParam param) {
|
|
|
|
|
Page<Monitor> monitorList = monitorList(param);
|
|
|
|
|
List<TypicalSourceOnLine> info = new ArrayList<>();
|
|
|
|
|
TypicalSourceOnLine typicalSourceOnLine;
|
|
|
|
|
//线路变电站
|
|
|
|
|
List<String> lineIds = monitorList.getRecords().stream().map(Monitor::getLineId).distinct().collect(Collectors.toList());
|
|
|
|
|
List<String> powerIds = monitorList.getRecords().stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList());
|
|
|
|
|
List<GeneratrixWire> wiresList = iGeneratrixWireService.listByIds(lineIds);
|
|
|
|
|
Map<String, GeneratrixWire> wireMap = wiresList.stream().collect(Collectors
|
|
|
|
|
.toMap(GeneratrixWire::getId, Function.identity()));
|
|
|
|
|
List<StatationStat> stationStats = stationStatService.listByIds(powerIds);
|
|
|
|
|
Map<String, StatationStat> powerMap = stationStats.stream().collect(Collectors
|
|
|
|
|
.toMap(StatationStat::getPowerId, Function.identity()));
|
|
|
|
|
//电压等级
|
|
|
|
|
List<DictData> voltage = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData();
|
|
|
|
|
Map<String, DictData> mapVoltage = voltage.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
|
|
|
|
|
//运行状态
|
|
|
|
|
List<DictData> lineState = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData();
|
|
|
|
|
Map<String, DictData> mapLineState = lineState.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
|
|
|
|
|
//分类行业
|
|
|
|
|
List<DictData> industryType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INDUSTRY_TYPE.getCode()).getData();
|
|
|
|
|
Map<String, DictData> mapIndustryType = industryType.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
|
|
|
|
|
//获取已存在牵引站的信息
|
|
|
|
|
List<String> tractionIds = monitorList.getRecords().stream().map(Monitor::getTractionId).collect(Collectors.toList());
|
|
|
|
|
List<TractionStation> tractionStationList = tractionStationService.list(new LambdaQueryWrapper<TractionStation>()
|
|
|
|
|
.in(TractionStation::getId, tractionIds));
|
|
|
|
|
Map<String, TractionStation> 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<Monitor> monitorList(TypicalSourceParam param) {
|
|
|
|
|
List<String> objTypeIds = new ArrayList<>();
|
|
|
|
|
LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
if (StrUtil.isNotBlank(param.getOrgId())) {
|
|
|
|
|
List<String> data = deptFeignClient.getDepSonSelfCodetByCode(param.getOrgId()).getData();
|
|
|
|
|
lambdaQueryWrapper.in(Monitor::getOrgId, data);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (StrUtil.isBlank(param.getStatisticsType())) {
|
|
|
|
|
//特殊处理
|
|
|
|
|
List<SysDicTreePO> sysDicTreePOList = dictTreeFeignClient.queryAll().getData();
|
|
|
|
|
List<SysDicTreePO> 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<DictTreeVO> temList = dictTreeFeignClient.query(sysDicTreePO.getId()).getData();
|
|
|
|
|
List<String> 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<DictTreeVO> 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<TypicalSourceEffectiveLine> getValidMonitorList(TypicalSourceParam param) {
|
|
|
|
|
List<TypicalSourceEffectiveLine> info = new ArrayList<>();
|
|
|
|
|
Page<Monitor> monitorList = monitorList(param);
|
|
|
|
|
List<String> monitorIds = monitorList.getRecords().stream().map(Monitor::getId).collect(Collectors.toList());
|
|
|
|
|
if(CollUtil.isNotEmpty(monitorIds)) {
|
|
|
|
|
//线路变电站
|
|
|
|
|
List<String> lineIds = monitorList.getRecords().stream().map(Monitor::getLineId).distinct().collect(Collectors.toList());
|
|
|
|
|
List<String> powerIds = monitorList.getRecords().stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList());
|
|
|
|
|
List<GeneratrixWire> wiresList = iGeneratrixWireService.listByIds(lineIds);
|
|
|
|
|
Map<String, GeneratrixWire> wireMap = wiresList.stream().collect(Collectors
|
|
|
|
|
.toMap(GeneratrixWire::getId, Function.identity()));
|
|
|
|
|
List<StatationStat> stationStats = stationStatService.listByIds(powerIds);
|
|
|
|
|
Map<String, StatationStat> powerMap = stationStats.stream().collect(Collectors
|
|
|
|
|
.toMap(StatationStat::getPowerId, Function.identity()));
|
|
|
|
|
//电压等级
|
|
|
|
|
List<DictData> voltage = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData();
|
|
|
|
|
Map<String, DictData> mapVoltage = voltage.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
|
|
|
|
|
//运行状态
|
|
|
|
|
List<DictData> lineState = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData();
|
|
|
|
|
Map<String, DictData> 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;
|
|
|
|
|
}
|
|
|
|
|
}
|