1.典型源荷,国网下穿接口编写

This commit is contained in:
wr
2024-05-28 16:09:55 +08:00
parent 6817b33020
commit 48486ce04d
21 changed files with 1046 additions and 377 deletions

View File

@@ -0,0 +1,33 @@
package com.njcn.device.pms.api;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.pms.api.fallback.LineIntegrityDataFallbackFactory;
import com.njcn.device.pms.pojo.param.DataQualityDetailsParam;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
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 = "/monitorIntegrity",
contextId = "monitorIntegrity",
fallbackFactory = LineIntegrityDataFallbackFactory.class)
public interface LineIntegrityDataClient {
/**
* 获取监测点数据完整率
* @param param
* @return
*/
@PostMapping("/getIntegrityData")
HttpResult<List<RStatIntegrityD>> getIntegrityData(@RequestBody DataQualityDetailsParam param);
}

View File

@@ -10,9 +10,11 @@ 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.param.gw.TypicalSourceParam;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.vo.MonitorVO;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceOnLine;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -69,7 +71,6 @@ public interface MonitorClient {
@PostMapping("getMonitorList")
HttpResult<List<Monitor>> getMonitorList(@RequestBody List<String> monitorIds);
@PostMapping("getMonitorPage")
HttpResult<Page<Monitor>> getMonitorPage(@RequestBody TerminalQueryParam baseParam);
@@ -83,4 +84,12 @@ public interface MonitorClient {
*/
@PostMapping("getMonitorTerminal")
HttpResult<MonitorVO> getMonitorTerminal(@RequestBody MonitorTerminalParam param);
/**
* @Description: 典型源荷下穿监测点信息接口
* @Author: wr
* @Date: 2024/5/27 14:00
*/
@PostMapping("/monitorTypicalList")
HttpResult<Page<TypicalSourceOnLine>> monitorTypicalList(@RequestBody TypicalSourceParam param);
}

View File

@@ -0,0 +1,44 @@
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.LineIntegrityDataClient;
import com.njcn.device.pms.pojo.param.*;
import com.njcn.device.pms.utils.PmsDeviceEnumUtil;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @Author: wr
* @Date: 2024/5/28 9:41
*/
@Slf4j
@Component
public class LineIntegrityDataFallbackFactory implements FallbackFactory<LineIntegrityDataClient> {
@Override
public LineIntegrityDataClient 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 LineIntegrityDataClient()
{
@Override
public HttpResult<List<RStatIntegrityD>> getIntegrityData(DataQualityDetailsParam param) {
log.error("{}异常,降级处理,异常为:{}", "获取监测点数据完整率", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -11,8 +11,10 @@ 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.param.gw.TypicalSourceParam;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.vo.MonitorVO;
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceOnLine;
import com.njcn.device.pms.utils.PmsDeviceEnumUtil;
import com.njcn.device.biz.pojo.po.Overlimit;
import feign.hystrix.FallbackFactory;
@@ -75,6 +77,12 @@ public class MonitorClientFallbackFactory implements FallbackFactory<MonitorClie
log.error("{}异常,降级处理,异常为:{}", "获取台账和终端信息(波形专用) ", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<Page<TypicalSourceOnLine>> monitorTypicalList(TypicalSourceParam param) {
log.error("{}异常,降级处理,异常为:{}", "典型源荷下穿监测点信息接口 ", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -3,6 +3,8 @@ package com.njcn.device.pms.pojo.param.gw;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author wr
* @description
@@ -11,7 +13,6 @@ import lombok.Data;
@Data
public class TypicalSourceParam {
@ApiModelProperty("详情类型")
private String detailType;
@@ -66,4 +67,6 @@ public class TypicalSourceParam {
@ApiModelProperty("统计时间,日数据yyyy-mm-dd,月数据yyyy-mm,年数据yyyy")
private String statDate;
@ApiModelProperty("监测点id集合->自定义不是国网下穿入参")
List<String> monitorIds;
}

View File

@@ -0,0 +1,158 @@
package com.njcn.device.pms.pojo.vo.gw;
import cn.hutool.core.date.DateUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wr
* @description 超标指标数据表下穿详细信息
* @date 2024/5/27 10:03
*/
@Data
public class TypicalOverIndex {
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 avgValue;
@ApiModelProperty("母线id")
private String busId;
@ApiModelProperty("母线名称")
private String busName;
@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 harmonicNum;
@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 maxValue;
@ApiModelProperty("日最小值")
private String minValue;
@ApiModelProperty("监测日期")
private String monitorDate;
@ApiModelProperty("监测点编号")
private String monitorId;
@ApiModelProperty("场站属性")
private String monitorObjectType;
@ApiModelProperty("场站属性名称")
private String monitorObjectTypeName;
@ApiModelProperty("各站点名称,如:牵引站对应牵引站名称")
private String name;
@ApiModelProperty("日95值")
private String nfValue;
@ApiModelProperty("一般限值")
private String normalLimit;
@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("相别")
private String seq;
@ApiModelProperty("短时限值")
private String shortLimit;
@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;
}

View File

@@ -0,0 +1,153 @@
package com.njcn.device.pms.pojo.vo.gw;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wr
* @description
* @date 2024/5/27 9:49
*/
@Data
public class TypicalOverStation {
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 Integer flicker;
@ApiModelProperty("谐波电流超标天数")
private Integer gi;
@ApiModelProperty("谐波电压超标天数")
private Integer gv;
@ApiModelProperty("三相不平衡超标天数")
private Integer unban;
@ApiModelProperty("负序电流超标数")
private Integer inseq;
@ApiModelProperty("主键")
private String id;
@ApiModelProperty("闪变是否超标")
private String isFlicker;
@ApiModelProperty("谐波电流是否超标")
private String isGi;
@ApiModelProperty("谐波电压是否超标")
private String isGv;
@ApiModelProperty("负序电流是否超标")
private String isInseq;
@ApiModelProperty("三相不平衡是否超标")
private String isUnban;
@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 monitorDate;
@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;
}

View File

@@ -5,14 +5,13 @@ import lombok.Data;
/**
* @author wr
* @description
* @description 有效监测点列表下穿详细信息
* @date 2024/5/16 15:41
*/
@Data
public class TypicalSourceEffectiveLine {
private static final long serialVersionUID = 1L;
@ApiModelProperty("实收数")
private Integer actualCollectNum;

View File

@@ -5,7 +5,7 @@ import lombok.Data;
/**
* @author wr
* @description
* @description 在线干扰源用户下穿实体类
* @date 2024/5/16 9:36
*/
@Data
@@ -24,6 +24,15 @@ public class TypicalSourceOnLine {
@ApiModelProperty("副备电站电压等级名称")
private String auxiliaryVoltageLevelName;
@ApiModelProperty("母线主键->自定义信息国网上送信息")
private String busId;
@ApiModelProperty("母线名称->自定义信息国网上送信息")
private String busName;
@ApiModelProperty("监测点编码->自定义信息国网上送信息")
private String monitorId;
@ApiModelProperty("母线电压等级")
private String busVoltageLevel;

View File

@@ -1,78 +0,0 @@
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<PmsPage<TypicalSourceOnLine>> getOnlineDetail(@RequestBody TypicalSourceParam param) {
PmsPage<TypicalSourceOnLine> 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<PmsPage<?>> 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<PmsPage<TypicalSourceEffectiveLine>> getValidMonitorList(@RequestBody TypicalSourceParam param) {
PmsPage<TypicalSourceEffectiveLine> 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<PmsPage<?>> 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<PmsPage<?>> getOverIndexList(@RequestBody TypicalSourceParam param) {
PmsPage<?> PmsPage = typicalSourceLoadDownService.getOverIndexList(param);
return new PmsHttpResult<>(0, PmsPage);
}
}

View File

@@ -13,9 +13,11 @@ import com.njcn.device.pms.annotation.TerminalOperationLogDesc;
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
import com.njcn.device.pms.pojo.param.*;
import com.njcn.device.pms.pojo.param.gw.TypicalSourceParam;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.vo.MonitorVO;
import com.njcn.device.pms.pojo.vo.PmsMonitorVO;
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceOnLine;
import com.njcn.device.pms.service.majornetwork.IMonitorService;
import com.njcn.device.biz.pojo.po.Overlimit;
@@ -338,9 +340,14 @@ public class PmsMonitorController extends BaseController {
}*/
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/monitorTypicalList")
@ApiOperation("典型源荷下穿监测点信息接口")
public HttpResult<Page<TypicalSourceOnLine>> monitorTypicalList(@RequestBody TypicalSourceParam param) {
String methodDescribe = getMethodDescribe("monitorTypicalList");
Page<TypicalSourceOnLine> monitorPage = monitorService.monitorTypicalList(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitorPage, methodDescribe);
}
}

View File

@@ -1,6 +1,7 @@
package com.njcn.device.pms.controller.majornetwork;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
@@ -8,9 +9,11 @@ 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.dto.MonitorIntegrityDataDTO;
import com.njcn.device.pms.pojo.param.DataQualityDetailsParam;
import com.njcn.device.pms.service.majornetwork.IRStatIntegrityDService;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.param.LineIntegrityDataParam;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.device.pq.pojo.vo.LineIntegrityDataVO;
import com.njcn.harmonic.pojo.vo.IntegrityIconVO;
import com.njcn.web.controller.BaseController;
@@ -36,8 +39,6 @@ import java.util.List;
@RequiredArgsConstructor
public class LineIntegrityDataController extends BaseController {
private final IRStatIntegrityDService irStatIntegrityDService;
@@ -54,8 +55,20 @@ public class LineIntegrityDataController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,monitorIntegrityDataDTOList,methodDescribe);
}
/**
* 监测点数据完整性
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getIntegrityData")
@ApiOperation("监测点数据完整性")
@ApiImplicitParam(name = "param", value = "参数实体", required = true)
public HttpResult<List<RStatIntegrityD>> getIntegrityData(@RequestBody DataQualityDetailsParam param) {
String methodDescribe = getMethodDescribe("getIntegrityData");
List<RStatIntegrityD> integrityDS = irStatIntegrityDService.list(new LambdaQueryWrapper<RStatIntegrityD>()
.in(RStatIntegrityD::getLineIndex, param.getCheckRules())
.ge(RStatIntegrityD::getTimeId,param.getStartTime())
.le(RStatIntegrityD::getTimeId, param.getEndTime())
);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,integrityDS,methodDescribe);
}
}

View File

@@ -1,48 +0,0 @@
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<TypicalSourceOnLine> 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<TypicalSourceEffectiveLine> 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);
}

View File

@@ -78,8 +78,11 @@ public class MonitorSendServiceImpl implements MonitorSendService {
//特殊处理
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());
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();

View File

@@ -1,333 +0,0 @@
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;
}
}

View File

@@ -11,10 +11,12 @@ import com.njcn.device.pms.pojo.dto.PmsMonitorBaseDTO;
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
import com.njcn.device.pms.pojo.param.*;
import com.njcn.device.pms.pojo.param.gw.TypicalSourceParam;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.vo.MonitorVO;
import com.njcn.device.pms.pojo.vo.PmsMonitorVO;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceOnLine;
import com.njcn.user.pojo.po.Dept;
import org.springframework.web.multipart.MultipartFile;
@@ -203,4 +205,12 @@ public interface IMonitorService extends IService<Monitor> {
List<Dept> existMonitorDeptTree();
LineALLInfoDTO getLineAllDetail(String id);
/**
* @Description: 典型源荷下穿信息接口
* @Author: wr
* @Date: 2024/5/27 13:54
*/
Page<TypicalSourceOnLine> monitorTypicalList(TypicalSourceParam param);
}

View File

@@ -3,6 +3,7 @@ package com.njcn.device.pms.service.majornetwork.impl;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
@@ -32,11 +33,12 @@ import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
import com.njcn.device.pms.pojo.excel.PmsLedgerExcel;
import com.njcn.device.pms.pojo.param.*;
import com.njcn.device.pms.pojo.param.gw.TypicalSourceParam;
import com.njcn.device.pms.pojo.po.*;
import com.njcn.device.pms.pojo.vo.MonitorVO;
import com.njcn.device.pms.pojo.vo.PmsMonitorVO;
import com.njcn.device.pms.service.majornetwork.IDistributionMonitorService;
import com.njcn.device.pms.service.majornetwork.IMonitorService;
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceOnLine;
import com.njcn.device.pms.service.majornetwork.*;
import com.njcn.device.pq.pojo.bo.excel.OracleTerminalExcel;
import com.njcn.device.pq.pojo.po.LineBak;
import com.njcn.poi.excel.ExcelUtil;
@@ -55,6 +57,7 @@ import com.njcn.system.pojo.po.DictData;
import com.njcn.user.pojo.dto.DeptDTO;
import com.njcn.user.pojo.po.Dept;
import com.njcn.web.factory.PageFactory;
import com.njcn.web.pojo.dto.PmsPage;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
@@ -105,8 +108,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
private final DeviceBakMapper deviceBakMapper;
private final DictTreeFeignClient dictTreeFeignClient;
private final ITractionStationService tractionStationService;
@Override
public List<PmsMonitorBaseDTO> getMonitorByCondition(List<String> deptIdList, PmsDeviceInfoParam pmsDeviceInfoParam) {
@@ -660,6 +662,205 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
return lineALLInfoDTO;
}
@Override
public Page<TypicalSourceOnLine> monitorTypicalList(TypicalSourceParam param) {
List<TypicalSourceOnLine> info = new ArrayList<>();
TypicalSourceOnLine typicalSourceOnLine;
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);
lambdaQueryWrapper.in(CollUtil.isNotEmpty(param.getMonitorIds()),Monitor::getId,param.getMonitorIds());
Page<Monitor> monitorList = this.page(new Page<>(param.getPageNum(), param.getPageSize()), lambdaQueryWrapper);
//线路变电站
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 =new ArrayList<>();
List<StatationStat> stationStats=new ArrayList<>();
if(CollUtil.isNotEmpty(lineIds)){
wiresList.addAll(generatrixWireMapper.selectBatchIds(lineIds));
}
if(CollUtil.isNotEmpty(powerIds)){
stationStats.addAll(statationStatMapper.selectBatchIds(powerIds));
}
Map<String, GeneratrixWire> wireMap = wiresList.stream().collect(Collectors
.toMap(GeneratrixWire::getId, Function.identity()));
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 =new ArrayList<>();
if(CollUtil.isNotEmpty(powerIds)){
tractionStationList.addAll(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.setMonitorId(monitor.getMonitorId());
typicalSourceOnLine.setName(monitor.getName());
//母线的电压等级
if (wireMap.containsKey(monitor.getLineId())) {
GeneratrixWire generatrixWire = wireMap.get(monitor.getLineId());
typicalSourceOnLine.setBusId(generatrixWire.getMidBusId());
typicalSourceOnLine.setBusName(generatrixWire.getName());
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);
}
Page pmsPage = BeanUtil.copyProperties(monitorList, Page.class);
pmsPage.setRecords(info);
return pmsPage;
}
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;
}
private String dealDataBatchUpdate(List<PmsLedgerExcel> pmsLedgerExcelList) {
List<PmsLedgerExcel> oracleTerminalExcelMsg = new ArrayList<>();