Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -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);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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.PmsMonitorInfoParam;
|
||||||
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
|
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
|
||||||
import com.njcn.device.pms.pojo.param.TerminalQueryParam;
|
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.po.Monitor;
|
||||||
import com.njcn.device.pms.pojo.vo.MonitorVO;
|
import com.njcn.device.pms.pojo.vo.MonitorVO;
|
||||||
import com.njcn.device.biz.pojo.po.Overlimit;
|
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.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
@@ -69,7 +71,6 @@ public interface MonitorClient {
|
|||||||
@PostMapping("getMonitorList")
|
@PostMapping("getMonitorList")
|
||||||
HttpResult<List<Monitor>> getMonitorList(@RequestBody List<String> monitorIds);
|
HttpResult<List<Monitor>> getMonitorList(@RequestBody List<String> monitorIds);
|
||||||
|
|
||||||
|
|
||||||
@PostMapping("getMonitorPage")
|
@PostMapping("getMonitorPage")
|
||||||
HttpResult<Page<Monitor>> getMonitorPage(@RequestBody TerminalQueryParam baseParam);
|
HttpResult<Page<Monitor>> getMonitorPage(@RequestBody TerminalQueryParam baseParam);
|
||||||
|
|
||||||
@@ -83,4 +84,12 @@ public interface MonitorClient {
|
|||||||
*/
|
*/
|
||||||
@PostMapping("getMonitorTerminal")
|
@PostMapping("getMonitorTerminal")
|
||||||
HttpResult<MonitorVO> getMonitorTerminal(@RequestBody MonitorTerminalParam param);
|
HttpResult<MonitorVO> getMonitorTerminal(@RequestBody MonitorTerminalParam param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 典型源荷下穿监测点信息接口
|
||||||
|
* @Author: wr
|
||||||
|
* @Date: 2024/5/27 14:00
|
||||||
|
*/
|
||||||
|
@PostMapping("/monitorTypicalList")
|
||||||
|
HttpResult<Page<TypicalSourceOnLine>> monitorTypicalList(@RequestBody TypicalSourceParam param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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.PmsMonitorInfoParam;
|
||||||
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
|
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
|
||||||
import com.njcn.device.pms.pojo.param.TerminalQueryParam;
|
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.po.Monitor;
|
||||||
import com.njcn.device.pms.pojo.vo.MonitorVO;
|
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.pms.utils.PmsDeviceEnumUtil;
|
||||||
import com.njcn.device.biz.pojo.po.Overlimit;
|
import com.njcn.device.biz.pojo.po.Overlimit;
|
||||||
import feign.hystrix.FallbackFactory;
|
import feign.hystrix.FallbackFactory;
|
||||||
@@ -75,6 +77,12 @@ public class MonitorClientFallbackFactory implements FallbackFactory<MonitorClie
|
|||||||
log.error("{}异常,降级处理,异常为:{}", "获取台账和终端信息(波形专用) ", throwable.toString());
|
log.error("{}异常,降级处理,异常为:{}", "获取台账和终端信息(波形专用) ", throwable.toString());
|
||||||
throw new BusinessException(finalExceptionEnum);
|
throw new BusinessException(finalExceptionEnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HttpResult<Page<TypicalSourceOnLine>> monitorTypicalList(TypicalSourceParam param) {
|
||||||
|
log.error("{}异常,降级处理,异常为:{}", "典型源荷下穿监测点信息接口 ", throwable.toString());
|
||||||
|
throw new BusinessException(finalExceptionEnum);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package com.njcn.device.pms.pojo.param.gw;
|
|||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author wr
|
* @author wr
|
||||||
* @description
|
* @description
|
||||||
@@ -11,7 +13,6 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
public class TypicalSourceParam {
|
public class TypicalSourceParam {
|
||||||
|
|
||||||
|
|
||||||
@ApiModelProperty("详情类型")
|
@ApiModelProperty("详情类型")
|
||||||
private String detailType;
|
private String detailType;
|
||||||
|
|
||||||
@@ -66,4 +67,6 @@ public class TypicalSourceParam {
|
|||||||
@ApiModelProperty("统计时间,日数据:yyyy-mm-dd,月数据:yyyy-mm,年数据:yyyy")
|
@ApiModelProperty("统计时间,日数据:yyyy-mm-dd,月数据:yyyy-mm,年数据:yyyy")
|
||||||
private String statDate;
|
private String statDate;
|
||||||
|
|
||||||
|
@ApiModelProperty("监测点id集合->自定义不是国网下穿入参")
|
||||||
|
List<String> monitorIds;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -5,14 +5,13 @@ import lombok.Data;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @author wr
|
* @author wr
|
||||||
* @description
|
* @description 有效监测点列表下穿详细信息
|
||||||
* @date 2024/5/16 15:41
|
* @date 2024/5/16 15:41
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class TypicalSourceEffectiveLine {
|
public class TypicalSourceEffectiveLine {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
|
||||||
@ApiModelProperty("实收数")
|
@ApiModelProperty("实收数")
|
||||||
private Integer actualCollectNum;
|
private Integer actualCollectNum;
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import lombok.Data;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @author wr
|
* @author wr
|
||||||
* @description
|
* @description 在线干扰源用户下穿实体类
|
||||||
* @date 2024/5/16 9:36
|
* @date 2024/5/16 9:36
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@@ -24,6 +24,15 @@ public class TypicalSourceOnLine {
|
|||||||
@ApiModelProperty("副备电站电压等级名称")
|
@ApiModelProperty("副备电站电压等级名称")
|
||||||
private String auxiliaryVoltageLevelName;
|
private String auxiliaryVoltageLevelName;
|
||||||
|
|
||||||
|
@ApiModelProperty("母线主键->自定义信息国网上送信息")
|
||||||
|
private String busId;
|
||||||
|
|
||||||
|
@ApiModelProperty("母线名称->自定义信息国网上送信息")
|
||||||
|
private String busName;
|
||||||
|
|
||||||
|
@ApiModelProperty("监测点编码->自定义信息国网上送信息")
|
||||||
|
private String monitorId;
|
||||||
|
|
||||||
@ApiModelProperty("母线电压等级")
|
@ApiModelProperty("母线电压等级")
|
||||||
private String busVoltageLevel;
|
private String busVoltageLevel;
|
||||||
|
|
||||||
|
|||||||
@@ -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.PmsMonitorDTO;
|
||||||
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
|
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
|
||||||
import com.njcn.device.pms.pojo.param.*;
|
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.po.Monitor;
|
||||||
import com.njcn.device.pms.pojo.vo.MonitorVO;
|
import com.njcn.device.pms.pojo.vo.MonitorVO;
|
||||||
import com.njcn.device.pms.pojo.vo.PmsMonitorVO;
|
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.pms.service.majornetwork.IMonitorService;
|
||||||
|
|
||||||
import com.njcn.device.biz.pojo.po.Overlimit;
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.device.pms.controller.majornetwork;
|
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.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
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.pojo.response.HttpResult;
|
||||||
import com.njcn.common.utils.HttpResultUtil;
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
import com.njcn.device.pms.pojo.dto.MonitorIntegrityDataDTO;
|
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.pms.service.majornetwork.IRStatIntegrityDService;
|
||||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
import com.njcn.device.pq.pojo.param.LineIntegrityDataParam;
|
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.device.pq.pojo.vo.LineIntegrityDataVO;
|
||||||
import com.njcn.harmonic.pojo.vo.IntegrityIconVO;
|
import com.njcn.harmonic.pojo.vo.IntegrityIconVO;
|
||||||
import com.njcn.web.controller.BaseController;
|
import com.njcn.web.controller.BaseController;
|
||||||
@@ -36,8 +39,6 @@ import java.util.List;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class LineIntegrityDataController extends BaseController {
|
public class LineIntegrityDataController extends BaseController {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private final IRStatIntegrityDService irStatIntegrityDService;
|
private final IRStatIntegrityDService irStatIntegrityDService;
|
||||||
|
|
||||||
|
|
||||||
@@ -54,8 +55,20 @@ public class LineIntegrityDataController extends BaseController {
|
|||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,monitorIntegrityDataDTOList,methodDescribe);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,8 +78,11 @@ public class MonitorSendServiceImpl implements MonitorSendService {
|
|||||||
|
|
||||||
//特殊处理
|
//特殊处理
|
||||||
List<SysDicTreePO> sysDicTreePOList = dictTreeFeignClient.queryAll().getData();
|
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())||
|
List<SysDicTreePO> typicDic =sysDicTreePOList.stream().filter(item->
|
||||||
Objects.equals(DicTreeEnum.Wind_Farms.getCode(),item.getCode())||Objects.equals(DicTreeEnum.Imp_Users.getCode(),item.getCode())).collect(Collectors.toList());
|
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){
|
for(SysDicTreePO sysDicTreePO : typicDic){
|
||||||
List<DictTreeVO> temList = dictTreeFeignClient.query(sysDicTreePO.getId()).getData();
|
List<DictTreeVO> temList = dictTreeFeignClient.query(sysDicTreePO.getId()).getData();
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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.PmsMonitorDTO;
|
||||||
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
|
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
|
||||||
import com.njcn.device.pms.pojo.param.*;
|
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.po.Monitor;
|
||||||
import com.njcn.device.pms.pojo.vo.MonitorVO;
|
import com.njcn.device.pms.pojo.vo.MonitorVO;
|
||||||
import com.njcn.device.pms.pojo.vo.PmsMonitorVO;
|
import com.njcn.device.pms.pojo.vo.PmsMonitorVO;
|
||||||
import com.njcn.device.biz.pojo.po.Overlimit;
|
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 com.njcn.user.pojo.po.Dept;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
@@ -203,4 +205,12 @@ public interface IMonitorService extends IService<Monitor> {
|
|||||||
List<Dept> existMonitorDeptTree();
|
List<Dept> existMonitorDeptTree();
|
||||||
|
|
||||||
LineALLInfoDTO getLineAllDetail(String id);
|
LineALLInfoDTO getLineAllDetail(String id);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 典型源荷下穿信息接口
|
||||||
|
* @Author: wr
|
||||||
|
* @Date: 2024/5/27 13:54
|
||||||
|
*/
|
||||||
|
Page<TypicalSourceOnLine> monitorTypicalList(TypicalSourceParam param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.njcn.device.pms.service.majornetwork.impl;
|
|||||||
import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
||||||
import cn.afterturn.easypoi.excel.entity.ImportParams;
|
import cn.afterturn.easypoi.excel.entity.ImportParams;
|
||||||
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
|
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.CollUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
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.dto.PmsMonitorInfoDTO;
|
||||||
import com.njcn.device.pms.pojo.excel.PmsLedgerExcel;
|
import com.njcn.device.pms.pojo.excel.PmsLedgerExcel;
|
||||||
import com.njcn.device.pms.pojo.param.*;
|
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.po.*;
|
||||||
import com.njcn.device.pms.pojo.vo.MonitorVO;
|
import com.njcn.device.pms.pojo.vo.MonitorVO;
|
||||||
import com.njcn.device.pms.pojo.vo.PmsMonitorVO;
|
import com.njcn.device.pms.pojo.vo.PmsMonitorVO;
|
||||||
import com.njcn.device.pms.service.majornetwork.IDistributionMonitorService;
|
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceOnLine;
|
||||||
import com.njcn.device.pms.service.majornetwork.IMonitorService;
|
import com.njcn.device.pms.service.majornetwork.*;
|
||||||
import com.njcn.device.pq.pojo.bo.excel.OracleTerminalExcel;
|
import com.njcn.device.pq.pojo.bo.excel.OracleTerminalExcel;
|
||||||
import com.njcn.device.pq.pojo.po.LineBak;
|
import com.njcn.device.pq.pojo.po.LineBak;
|
||||||
import com.njcn.poi.excel.ExcelUtil;
|
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.dto.DeptDTO;
|
||||||
import com.njcn.user.pojo.po.Dept;
|
import com.njcn.user.pojo.po.Dept;
|
||||||
import com.njcn.web.factory.PageFactory;
|
import com.njcn.web.factory.PageFactory;
|
||||||
|
import com.njcn.web.pojo.dto.PmsPage;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
@@ -105,8 +108,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
|||||||
private final DeviceBakMapper deviceBakMapper;
|
private final DeviceBakMapper deviceBakMapper;
|
||||||
|
|
||||||
private final DictTreeFeignClient dictTreeFeignClient;
|
private final DictTreeFeignClient dictTreeFeignClient;
|
||||||
|
private final ITractionStationService tractionStationService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PmsMonitorBaseDTO> getMonitorByCondition(List<String> deptIdList, PmsDeviceInfoParam pmsDeviceInfoParam) {
|
public List<PmsMonitorBaseDTO> getMonitorByCondition(List<String> deptIdList, PmsDeviceInfoParam pmsDeviceInfoParam) {
|
||||||
@@ -660,6 +662,205 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
|||||||
return lineALLInfoDTO;
|
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) {
|
private String dealDataBatchUpdate(List<PmsLedgerExcel> pmsLedgerExcelList) {
|
||||||
List<PmsLedgerExcel> oracleTerminalExcelMsg = new ArrayList<>();
|
List<PmsLedgerExcel> oracleTerminalExcelMsg = new ArrayList<>();
|
||||||
|
|||||||
@@ -31,4 +31,4 @@ public interface RStatLimitRateDClient {
|
|||||||
@PostMapping("/monitorIdsGetLimitTargetInfo")
|
@PostMapping("/monitorIdsGetLimitTargetInfo")
|
||||||
HttpResult<List<RStatLimitTargetDPO>> monitorIdsGetLimitTargetInfo(@RequestBody RStatLimitQueryParam rStatLimitQueryParam);
|
HttpResult<List<RStatLimitTargetDPO>> monitorIdsGetLimitTargetInfo(@RequestBody RStatLimitQueryParam rStatLimitQueryParam);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
package com.njcn.device.pms.controller.gwPush;
|
package com.njcn.harmonic.controller.upload;
|
||||||
|
|
||||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
import com.njcn.device.pms.pojo.param.gw.TypicalSourceParam;
|
import com.njcn.device.pms.pojo.param.gw.TypicalSourceParam;
|
||||||
|
import com.njcn.device.pms.pojo.vo.gw.TypicalOverIndex;
|
||||||
|
import com.njcn.device.pms.pojo.vo.gw.TypicalOverStation;
|
||||||
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceEffectiveLine;
|
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceEffectiveLine;
|
||||||
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceOnLine;
|
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceOnLine;
|
||||||
import com.njcn.device.pms.service.gwPush.TypicalSourceLoadDownService;
|
import com.njcn.harmonic.service.upload.TypicalSourceLoadDownService;
|
||||||
import com.njcn.web.pojo.dto.PmsHttpResult;
|
import com.njcn.web.pojo.dto.PmsHttpResult;
|
||||||
import com.njcn.web.pojo.dto.PmsPage;
|
import com.njcn.web.pojo.dto.PmsPage;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@@ -13,7 +15,10 @@ import io.swagger.annotations.ApiImplicitParam;
|
|||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author wr
|
* @author wr
|
||||||
@@ -31,7 +36,7 @@ public class TypicalSourceLoadDownController {
|
|||||||
|
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/getOnlineDetail")
|
@PostMapping("/getOnlineDetail")
|
||||||
@ApiOperation("国网上送-接收总部典型源荷分析查询在线干扰源用户下穿接口")
|
@ApiOperation("查询在线干扰源用户下穿接口")
|
||||||
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
|
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
|
||||||
public PmsHttpResult<PmsPage<TypicalSourceOnLine>> getOnlineDetail(@RequestBody TypicalSourceParam param) {
|
public PmsHttpResult<PmsPage<TypicalSourceOnLine>> getOnlineDetail(@RequestBody TypicalSourceParam param) {
|
||||||
PmsPage<TypicalSourceOnLine> PmsPage = typicalSourceLoadDownService.getOnlineDetail(param);
|
PmsPage<TypicalSourceOnLine> PmsPage = typicalSourceLoadDownService.getOnlineDetail(param);
|
||||||
@@ -40,39 +45,37 @@ public class TypicalSourceLoadDownController {
|
|||||||
|
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/getMonitorDetail")
|
@PostMapping("/getMonitorDetail")
|
||||||
@ApiOperation("国网上送-接收总部典型源荷分析查询监测有效干扰源用户下穿接口")
|
@ApiOperation("查询监测有效干扰源用户下穿接口")
|
||||||
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
|
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
|
||||||
public PmsHttpResult<PmsPage<?>> getMonitorDetail(@RequestBody TypicalSourceParam param) {
|
public PmsHttpResult<PmsPage<TypicalSourceOnLine>> getMonitorDetail(@RequestBody TypicalSourceParam param) {
|
||||||
PmsPage<?> PmsPage = typicalSourceLoadDownService.getMonitorDetail(param);
|
PmsPage<TypicalSourceOnLine> PmsPage = typicalSourceLoadDownService.getMonitorDetail(param);
|
||||||
return new PmsHttpResult<>(0, PmsPage);
|
return new PmsHttpResult<>(0, PmsPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/getValidMonitorList")
|
@PostMapping("/getValidMonitorList")
|
||||||
@ApiOperation("国网上送-接收总部典型源荷分析获取有效监测点列表下穿接口")
|
@ApiOperation("获取有效监测点列表下穿接口")
|
||||||
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
|
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
|
||||||
public PmsHttpResult<PmsPage<TypicalSourceEffectiveLine>> getValidMonitorList(@RequestBody TypicalSourceParam param) {
|
public PmsHttpResult<PmsPage<TypicalSourceEffectiveLine>> getValidMonitorList(@RequestBody TypicalSourceParam param) {
|
||||||
PmsPage<TypicalSourceEffectiveLine> PmsPage = typicalSourceLoadDownService.getValidMonitorList(param);
|
PmsPage<TypicalSourceEffectiveLine> PmsPage = typicalSourceLoadDownService.getValidMonitorList(param);
|
||||||
return new PmsHttpResult<>(0, PmsPage);
|
return new PmsHttpResult<>(0, PmsPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/getOverStationList")
|
@PostMapping("/getOverStationList")
|
||||||
@ApiOperation("国网上送-接收总部典型源荷分析获取超标电站数据列表下穿接口")
|
@ApiOperation("获取超标电站数据列表下穿接口")
|
||||||
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
|
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
|
||||||
public PmsHttpResult<PmsPage<?>> getOverStationList(@RequestBody TypicalSourceParam param) {
|
public PmsHttpResult<PmsPage<TypicalOverStation>> getOverStationList(@RequestBody TypicalSourceParam param) {
|
||||||
PmsPage<?> PmsPage = typicalSourceLoadDownService.getOverStationList(param);
|
PmsPage<TypicalOverStation> PmsPage = typicalSourceLoadDownService.getOverStationList(param);
|
||||||
return new PmsHttpResult<>(0, PmsPage);
|
return new PmsHttpResult<>(0, PmsPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/getOverIndexList")
|
@PostMapping("/getOverIndexList")
|
||||||
@ApiOperation("国网上送-接收总部典型源荷分析获取超标指标数据表下穿接口")
|
@ApiOperation("获取超标指标数据表下穿接口")
|
||||||
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
|
@ApiImplicitParam(name = "param", value = "实体参数", required = true)
|
||||||
public PmsHttpResult<PmsPage<?>> getOverIndexList(@RequestBody TypicalSourceParam param) {
|
public PmsHttpResult<PmsPage<TypicalOverIndex>> getOverIndexList(@RequestBody TypicalSourceParam param) {
|
||||||
PmsPage<?> PmsPage = typicalSourceLoadDownService.getOverIndexList(param);
|
PmsPage<TypicalOverIndex> PmsPage = typicalSourceLoadDownService.getOverIndexList(param);
|
||||||
return new PmsHttpResult<>(0, PmsPage);
|
return new PmsHttpResult<>(0, PmsPage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -61,7 +61,7 @@ public interface RStatLimitTargetDMapper extends BaseMapper<RStatLimitTargetDPO>
|
|||||||
@Param("startTime") String startTime,
|
@Param("startTime") String startTime,
|
||||||
@Param("endTime") String endTime);
|
@Param("endTime") String endTime);
|
||||||
|
|
||||||
RStatLimitTargetVO getSumTargetDetails(@Param("ids") List<String> ids,
|
List<RStatLimitTargetVO> getSumTargetDetails(@Param("ids") List<String> ids,
|
||||||
@Param("startTime") String startTime,
|
@Param("startTime") String startTime,
|
||||||
@Param("endTime") String endTime);
|
@Param("endTime") String endTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.njcn.harmonic.service.impl;
|
package com.njcn.harmonic.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||||
@@ -31,8 +32,12 @@ public class RStatLimitTargetDServiceImpl extends ServiceImpl<RStatLimitTargetDM
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RStatLimitTargetVO getGridDiagramTargetData(StatisticsBizBaseParam param) {
|
public RStatLimitTargetVO getGridDiagramTargetData(StatisticsBizBaseParam param) {
|
||||||
return this.baseMapper.getSumTargetDetails(Arrays.asList(param.getId()),
|
List<RStatLimitTargetVO> sumTargetDetails = this.baseMapper.getSumTargetDetails(Arrays.asList(param.getId()),
|
||||||
DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())).toString(),
|
DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())).toString(),
|
||||||
DateUtil.endOfDay(DateUtil.parse(param.getEndTime())).toString());
|
DateUtil.endOfDay(DateUtil.parse(param.getEndTime())).toString());
|
||||||
|
if(CollUtil.isNotEmpty(sumTargetDetails)){
|
||||||
|
return sumTargetDetails.get(0);
|
||||||
|
}
|
||||||
|
return new RStatLimitTargetVO() ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.njcn.device.pms.service.gwPush;
|
package com.njcn.harmonic.service.upload;
|
||||||
|
|
||||||
import com.njcn.device.pms.pojo.param.gw.TypicalSourceParam;
|
import com.njcn.device.pms.pojo.param.gw.TypicalSourceParam;
|
||||||
|
import com.njcn.device.pms.pojo.vo.gw.TypicalOverIndex;
|
||||||
|
import com.njcn.device.pms.pojo.vo.gw.TypicalOverStation;
|
||||||
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceEffectiveLine;
|
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceEffectiveLine;
|
||||||
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceOnLine;
|
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceOnLine;
|
||||||
import com.njcn.web.pojo.dto.PmsPage;
|
import com.njcn.web.pojo.dto.PmsPage;
|
||||||
@@ -17,11 +19,11 @@ public interface TypicalSourceLoadDownService {
|
|||||||
PmsPage<TypicalSourceOnLine> getOnlineDetail(TypicalSourceParam param);
|
PmsPage<TypicalSourceOnLine> getOnlineDetail(TypicalSourceParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 接收总部典型源荷分析获取有效监测点列表下穿接口
|
* @Description: 接收总部典型源荷分析获取有效监测点列表下穿接口(和在线干扰源用户下穿接口实体类一样)
|
||||||
* @param param
|
* @param param
|
||||||
* @Date: 2024/5/16 10:22
|
* @Date: 2024/5/16 10:22
|
||||||
*/
|
*/
|
||||||
PmsPage<?> getMonitorDetail(TypicalSourceParam param);
|
PmsPage<TypicalSourceOnLine> getMonitorDetail(TypicalSourceParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 接收总部典型源荷分析获取有效监测点列表下穿接口
|
* @Description: 接收总部典型源荷分析获取有效监测点列表下穿接口
|
||||||
@@ -35,14 +37,14 @@ public interface TypicalSourceLoadDownService {
|
|||||||
* @param param
|
* @param param
|
||||||
* @Date: 2024/5/16 10:22
|
* @Date: 2024/5/16 10:22
|
||||||
*/
|
*/
|
||||||
PmsPage<?> getOverStationList(TypicalSourceParam param);
|
PmsPage<TypicalOverStation> getOverStationList(TypicalSourceParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 接收总部典型源荷分析获取超标指标数据表下穿接口
|
* @Description: 接收总部典型源荷分析获取超标指标数据表下穿接口
|
||||||
* @param param
|
* @param param
|
||||||
* @Date: 2024/5/16 10:22
|
* @Date: 2024/5/16 10:22
|
||||||
*/
|
*/
|
||||||
PmsPage<?> getOverIndexList(TypicalSourceParam param);
|
PmsPage<TypicalOverIndex> getOverIndexList(TypicalSourceParam param);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,342 @@
|
|||||||
|
package com.njcn.harmonic.service.upload.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.util.NumberUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.njcn.device.pms.api.LineIntegrityDataClient;
|
||||||
|
import com.njcn.device.pms.api.MonitorClient;
|
||||||
|
import com.njcn.device.pms.pojo.param.DataQualityDetailsParam;
|
||||||
|
import com.njcn.device.pms.pojo.param.gw.TypicalSourceParam;
|
||||||
|
import com.njcn.device.pms.pojo.po.Monitor;
|
||||||
|
import com.njcn.device.pms.pojo.vo.gw.TypicalOverIndex;
|
||||||
|
import com.njcn.device.pms.pojo.vo.gw.TypicalOverStation;
|
||||||
|
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceEffectiveLine;
|
||||||
|
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceOnLine;
|
||||||
|
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
||||||
|
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
|
||||||
|
import com.njcn.harmonic.mapper.RStatLimitTargetDMapper;
|
||||||
|
import com.njcn.harmonic.mapper.upload.PmsRunStatisticDMapper;
|
||||||
|
import com.njcn.harmonic.mapper.upload.PmsRunStatisticMMapper;
|
||||||
|
import com.njcn.harmonic.mapper.upload.PmsRunStatisticYMapper;
|
||||||
|
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticD;
|
||||||
|
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticM;
|
||||||
|
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticY;
|
||||||
|
import com.njcn.harmonic.pojo.vo.RStatLimitTargetVO;
|
||||||
|
import com.njcn.harmonic.service.upload.TypicalSourceLoadDownService;
|
||||||
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
|
import com.njcn.web.pojo.dto.PmsPage;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class TypicalSourceLoadDownServiceImpl implements TypicalSourceLoadDownService {
|
||||||
|
|
||||||
|
private final MonitorClient monitorClient;
|
||||||
|
private final RStatLimitTargetDMapper rStatLimitTargetDMapper;
|
||||||
|
private final RStatLimitRateDMapper rStatLimitRateDMapper;
|
||||||
|
private final LineIntegrityDataClient integrityDataClient;
|
||||||
|
private final PmsRunStatisticDMapper pmsRunStatisticDMapper;
|
||||||
|
private final PmsRunStatisticMMapper pmsRunStatisticMMapper;
|
||||||
|
private final PmsRunStatisticYMapper pmsRunStatisticYMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PmsPage<TypicalSourceOnLine> getOnlineDetail(TypicalSourceParam param) {
|
||||||
|
setMonitorIds(param);
|
||||||
|
Page<TypicalSourceOnLine> typicalSourceOnLinePage = monitorClient.monitorTypicalList(param).getData();
|
||||||
|
PmsPage pmsPage = BeanUtil.copyProperties(typicalSourceOnLinePage, PmsPage.class);
|
||||||
|
pmsPage.setList(typicalSourceOnLinePage.getRecords());
|
||||||
|
return pmsPage;
|
||||||
|
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public PmsPage<TypicalSourceOnLine> getMonitorDetail(TypicalSourceParam param) {
|
||||||
|
setMonitorIds(param);
|
||||||
|
DataQualityDetailsParam integrityParam=new DataQualityDetailsParam();
|
||||||
|
integrityParam.setStartTime(param.getStartTime());
|
||||||
|
integrityParam.setEndTime(param.getEndTime());
|
||||||
|
integrityParam.setCheckRules(param.getMonitorIds());
|
||||||
|
List<RStatIntegrityD> integrityDS = integrityDataClient.getIntegrityData(integrityParam).getData();
|
||||||
|
Map<String, List<RStatIntegrityD>> integrityMap = integrityDS.stream().collect(Collectors.groupingBy(RStatIntegrityD::getLineIndex));
|
||||||
|
List<String> ids = new ArrayList<>();
|
||||||
|
integrityMap.forEach((paramKey, paramValue) -> {
|
||||||
|
int realTime = paramValue.stream().mapToInt(RStatIntegrityD::getRealTime).sum();
|
||||||
|
int dueTime = paramValue.stream().mapToInt(RStatIntegrityD::getDueTime).sum();
|
||||||
|
float v = NumberUtil.round(realTime * 100.0 / dueTime, 2).floatValue();
|
||||||
|
if(v>95.0){
|
||||||
|
ids.add(paramKey);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
param.setMonitorIds(ids);
|
||||||
|
Page<TypicalSourceOnLine> typicalSourceOnLinePage = monitorClient.monitorTypicalList(param).getData();
|
||||||
|
PmsPage pmsPage = BeanUtil.copyProperties(typicalSourceOnLinePage, PmsPage.class);
|
||||||
|
pmsPage.setList(typicalSourceOnLinePage.getRecords());
|
||||||
|
return pmsPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PmsPage<TypicalSourceEffectiveLine> getValidMonitorList(TypicalSourceParam param) {
|
||||||
|
setMonitorIds(param);
|
||||||
|
List<TypicalSourceEffectiveLine> info = new ArrayList<>();
|
||||||
|
Page<TypicalSourceOnLine> monitorList = monitorClient.monitorTypicalList(param).getData();
|
||||||
|
List<String> monitorIds = monitorList.getRecords().stream().map(TypicalSourceOnLine::getId).collect(Collectors.toList());
|
||||||
|
if(CollUtil.isNotEmpty(monitorIds)) {
|
||||||
|
DataQualityDetailsParam integrityParam=new DataQualityDetailsParam();
|
||||||
|
integrityParam.setStartTime(param.getStartTime());
|
||||||
|
integrityParam.setEndTime(param.getEndTime());
|
||||||
|
integrityParam.setCheckRules(monitorIds);
|
||||||
|
List<RStatIntegrityD> integrityDS = integrityDataClient.getIntegrityData(integrityParam).getData();
|
||||||
|
Map<String, List<RStatIntegrityD>> integritDMap = new HashMap<>();
|
||||||
|
if(CollUtil.isNotEmpty(integrityDS)){
|
||||||
|
integritDMap.putAll(integrityDS.stream().collect(Collectors.groupingBy(RStatIntegrityD::getLineIndex)));
|
||||||
|
}
|
||||||
|
TypicalSourceEffectiveLine line ;
|
||||||
|
for (TypicalSourceOnLine monitor : monitorList.getRecords()) {
|
||||||
|
line = new TypicalSourceEffectiveLine();
|
||||||
|
//母线信息
|
||||||
|
line.setBusId(monitor.getBusId());
|
||||||
|
line.setBusName(monitor.getName());
|
||||||
|
line.setBusVoltageLevel(monitor.getBusVoltageLevel());
|
||||||
|
line.setBusVoltageLevelName(monitor.getBusVoltageLevelName());
|
||||||
|
line.setCityOrg(monitor.getCityOrg());
|
||||||
|
line.setCityOrgName(monitor.getCityOrgName());
|
||||||
|
line.setId(monitor.getId());
|
||||||
|
line.setMaintOrg(monitor.getMaintOrg());
|
||||||
|
line.setMaintOrgName(monitor.getMaintOrgName());
|
||||||
|
line.setMonitorId(monitor.getMonitorId());
|
||||||
|
line.setMonitorName(monitor.getName());
|
||||||
|
//运行状态
|
||||||
|
line.setStatus(monitor.getRunStatus());
|
||||||
|
line.setStatusName(monitor.getRunStatusName());
|
||||||
|
line.setStationId(monitor.getStationId());
|
||||||
|
line.setStationName(monitor.getStationName());
|
||||||
|
line.setStatDate(param.getStatDate());
|
||||||
|
if(integritDMap.containsKey(monitor.getId())){
|
||||||
|
List<RStatIntegrityD> integrityDSList = integritDMap.get(monitor.getId());
|
||||||
|
line.setActualCollectNum(integrityDSList.stream().mapToInt(RStatIntegrityD::getRealTime).sum());
|
||||||
|
line.setExpectCollectNum(integrityDSList.stream().mapToInt(RStatIntegrityD::getDueTime).sum());
|
||||||
|
line.setDataFullRate(NumberUtil.round(line.getActualCollectNum()*100.0/ line.getExpectCollectNum(), 2).floatValue());
|
||||||
|
}else {
|
||||||
|
line.setActualCollectNum(0);
|
||||||
|
line.setExpectCollectNum(0);
|
||||||
|
line.setDataFullRate(0.0f);
|
||||||
|
}
|
||||||
|
// line.setWhetherOptimal();
|
||||||
|
// line.setWhetherOptimalName();
|
||||||
|
info.add(line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PmsPage pmsPage = BeanUtil.copyProperties(monitorList, PmsPage.class);
|
||||||
|
pmsPage.setList(info);
|
||||||
|
return pmsPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PmsPage<TypicalOverStation> getOverStationList(TypicalSourceParam param) {
|
||||||
|
setMonitorIds(param);
|
||||||
|
List<TypicalOverStation> info=new ArrayList<>();
|
||||||
|
//获取监测点信息的信息
|
||||||
|
Page<TypicalSourceOnLine> monitorList = monitorClient.monitorTypicalList(param).getData();
|
||||||
|
//根据监测点id集合获取超标监测信息
|
||||||
|
List<String> monitorIds = monitorList.getRecords().stream().map(TypicalSourceOnLine::getId).distinct().collect(Collectors.toList());
|
||||||
|
//获取超标监测点天数
|
||||||
|
List<RStatLimitTargetVO> sumTargetDetails = rStatLimitTargetDMapper.getSumTargetDetails(monitorIds,
|
||||||
|
param.getStartTime(),
|
||||||
|
param.getEndTime());
|
||||||
|
Map<String, RStatLimitTargetVO> targetDetailMap = sumTargetDetails.stream()
|
||||||
|
.collect(Collectors.toMap(RStatLimitTargetVO::getLineId, Function.identity()));
|
||||||
|
TypicalOverStation overStation;
|
||||||
|
for (TypicalSourceOnLine record : monitorList.getRecords()) {
|
||||||
|
overStation = new TypicalOverStation();
|
||||||
|
overStation.setAuxiliarySubstationId(record.getAuxiliarySubstationId());
|
||||||
|
overStation.setAuxiliarySubstationName(record.getAuxiliarySubstationName());
|
||||||
|
overStation.setAuxiliaryVoltageLevel(record.getAuxiliaryVoltageLevel());
|
||||||
|
overStation.setAuxiliaryVoltageLevelName(record.getAuxiliaryVoltageLevelName());
|
||||||
|
overStation.setBusVoltageLevel(record.getBusVoltageLevel());
|
||||||
|
overStation.setBusVoltageLevelName(record.getBusVoltageLevelName());
|
||||||
|
overStation.setCapacity(record.getCapacity());
|
||||||
|
overStation.setCityOrg(record.getCityOrg());
|
||||||
|
overStation.setCityOrgName(record.getCityOrgName());
|
||||||
|
overStation.setEffectMonitorNum(record.getEffectMonitorNum());
|
||||||
|
overStation.setId(record.getId());
|
||||||
|
overStation.setMainSubstationId(record.getMainSubstationId());
|
||||||
|
overStation.setMainSubstationName(record.getMainSubstationName());
|
||||||
|
overStation.setMainVoltageLevel(record.getMainVoltageLevel());
|
||||||
|
overStation.setMainVoltageLevelName(record.getMainVoltageLevelName());
|
||||||
|
overStation.setMaintOrg(record.getMaintOrg());
|
||||||
|
overStation.setMaintOrgName(record.getMaintOrgName());
|
||||||
|
overStation.setMonitorObjectType(record.getMonitorObjectType());
|
||||||
|
overStation.setMonitorObjectTypeName(record.getMonitorObjectTypeName());
|
||||||
|
overStation.setName(record.getName());
|
||||||
|
overStation.setRailWayName(record.getRailWayName());
|
||||||
|
overStation.setRailWayNumber(record.getRailWayNumber());
|
||||||
|
overStation.setRailWayType(record.getRailWayType());
|
||||||
|
overStation.setRailWayTypeName(record.getRailWayTypeName());
|
||||||
|
overStation.setRunStatus(record.getRunStatus());
|
||||||
|
overStation.setRunStatusName(record.getRunStatusName());
|
||||||
|
overStation.setStationId(record.getStationId());
|
||||||
|
overStation.setStationName(record.getStationName());
|
||||||
|
overStation.setStationType(record.getStationType());
|
||||||
|
overStation.setStationVoltageLevel(record.getStationVoltageLevel());
|
||||||
|
overStation.setStationVoltageLevelName(record.getStationVoltageLevelName());
|
||||||
|
overStation.setTradeCode(record.getTradeCode());
|
||||||
|
overStation.setTradeCodeName(record.getTradeCodeName());
|
||||||
|
overStation.setVoltageLevel(record.getVoltageLevel());
|
||||||
|
overStation.setVoltageLevelName(record.getVoltageLevelName());
|
||||||
|
|
||||||
|
overStation.setMonitorDate(param.getStatDate());
|
||||||
|
if (targetDetailMap.containsKey(record.getId())) {
|
||||||
|
RStatLimitTargetVO rStatLimitTargetVO = targetDetailMap.get(record.getId());
|
||||||
|
overStation.setFlicker(rStatLimitTargetVO.getFlickerOvertime());
|
||||||
|
overStation.setGi(rStatLimitTargetVO.getIharmOvertime());
|
||||||
|
overStation.setGv(rStatLimitTargetVO.getUharmOvertime());
|
||||||
|
overStation.setUnban(rStatLimitTargetVO.getUbalanceOvertime());
|
||||||
|
overStation.setInseq(rStatLimitTargetVO.getINegOvertime());
|
||||||
|
overStation.setIsFlicker(overStation.getFlicker()>0?"是":"否");
|
||||||
|
overStation.setIsGi(overStation.getGi()>0?"是":"否");
|
||||||
|
overStation.setIsGv(overStation.getGv()>0?"是":"否");
|
||||||
|
overStation.setIsInseq(overStation.getInseq()>0?"是":"否");
|
||||||
|
overStation.setIsUnban(overStation.getUnban()>0?"是":"否");
|
||||||
|
}else{
|
||||||
|
overStation.setFlicker(0);
|
||||||
|
overStation.setGi(0);
|
||||||
|
overStation.setGv(0);
|
||||||
|
overStation.setUnban(0);
|
||||||
|
overStation.setInseq(0);
|
||||||
|
overStation.setIsFlicker("否");
|
||||||
|
overStation.setIsGi("否");
|
||||||
|
overStation.setIsGv("否");
|
||||||
|
overStation.setIsInseq("否");
|
||||||
|
overStation.setIsUnban("否");
|
||||||
|
}
|
||||||
|
info.add(overStation);
|
||||||
|
}
|
||||||
|
PmsPage pmsPage = BeanUtil.copyProperties(monitorList, PmsPage.class);
|
||||||
|
pmsPage.setList(info);
|
||||||
|
return pmsPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PmsPage<TypicalOverIndex> getOverIndexList(TypicalSourceParam param) {
|
||||||
|
setMonitorIds(param);
|
||||||
|
List<TypicalOverIndex> info=new ArrayList<>();
|
||||||
|
//获取监测点信息的信息
|
||||||
|
Page<TypicalSourceOnLine> monitorList = monitorClient.monitorTypicalList(param).getData();
|
||||||
|
//根据监测点id集合获取超标监测信息
|
||||||
|
List<String> monitorIds = monitorList.getRecords().stream().map(TypicalSourceOnLine::getId).distinct().collect(Collectors.toList());
|
||||||
|
|
||||||
|
//TODO 缺少信息,获取监测点信息,rStatLimitRateDMapper
|
||||||
|
|
||||||
|
TypicalOverIndex overIndex;
|
||||||
|
for (TypicalSourceOnLine record : monitorList.getRecords()) {
|
||||||
|
overIndex = new TypicalOverIndex();
|
||||||
|
overIndex.setAuxiliarySubstationId(record.getAuxiliarySubstationId());
|
||||||
|
overIndex.setAuxiliarySubstationName(record.getAuxiliarySubstationName());
|
||||||
|
overIndex.setAuxiliaryVoltageLevel(record.getAuxiliaryVoltageLevel());
|
||||||
|
overIndex.setAuxiliaryVoltageLevelName(record.getAuxiliaryVoltageLevelName());
|
||||||
|
overIndex.setBusId(record.getBusId());
|
||||||
|
overIndex.setBusName(record.getBusName());
|
||||||
|
overIndex.setBusVoltageLevel(record.getBusVoltageLevel());
|
||||||
|
overIndex.setBusVoltageLevelName(record.getBusVoltageLevelName());
|
||||||
|
overIndex.setCapacity(record.getCapacity());
|
||||||
|
overIndex.setCityOrg(record.getCityOrg());
|
||||||
|
overIndex.setCityOrgName(record.getCityOrgName());
|
||||||
|
overIndex.setEffectMonitorNum(record.getEffectMonitorNum());
|
||||||
|
overIndex.setId(record.getId());
|
||||||
|
overIndex.setMainSubstationId(record.getMainSubstationId());
|
||||||
|
overIndex.setMainSubstationName(record.getMainSubstationName());
|
||||||
|
overIndex.setMainVoltageLevel(record.getMainVoltageLevel());
|
||||||
|
overIndex.setMainVoltageLevelName(record.getMainVoltageLevelName());
|
||||||
|
overIndex.setMaintOrg(record.getMaintOrg());
|
||||||
|
overIndex.setMaintOrgName(record.getMaintOrgName());
|
||||||
|
overIndex.setMonitorId(record.getMonitorId());
|
||||||
|
overIndex.setMonitorObjectType(record.getMonitorObjectType());
|
||||||
|
overIndex.setMonitorObjectTypeName(record.getMonitorObjectTypeName());
|
||||||
|
overIndex.setName(record.getName());
|
||||||
|
overIndex.setRailWayName(record.getRailWayName());
|
||||||
|
overIndex.setRailWayNumber(record.getRailWayNumber());
|
||||||
|
overIndex.setRailWayType(record.getRailWayType());
|
||||||
|
overIndex.setRailWayTypeName(record.getRailWayTypeName());
|
||||||
|
overIndex.setRunStatus(record.getRunStatus());
|
||||||
|
overIndex.setRunStatusName(record.getRunStatusName());
|
||||||
|
overIndex.setStationId(record.getStationId());
|
||||||
|
overIndex.setStationName(record.getStationName());
|
||||||
|
overIndex.setStationType(record.getStationType());
|
||||||
|
overIndex.setStationVoltageLevel(record.getStationVoltageLevel());
|
||||||
|
overIndex.setStationVoltageLevelName(record.getStationVoltageLevelName());
|
||||||
|
overIndex.setTradeCode(record.getTradeCode());
|
||||||
|
overIndex.setTradeCodeName(record.getTradeCodeName());
|
||||||
|
overIndex.setVoltageLevel(record.getVoltageLevel());
|
||||||
|
overIndex.setVoltageLevelName(record.getVoltageLevelName());
|
||||||
|
|
||||||
|
|
||||||
|
overIndex.setMonitorDate(param.getStatDate());
|
||||||
|
/*
|
||||||
|
//日平均值
|
||||||
|
overIndex.setAvgValue();
|
||||||
|
//谐波次数
|
||||||
|
overIndex.setHarmonicNum();
|
||||||
|
//日最大值
|
||||||
|
overIndex.setMaxValue();
|
||||||
|
//日最小值
|
||||||
|
overIndex.setMinValue();
|
||||||
|
//日95值
|
||||||
|
overIndex.setNfValue();
|
||||||
|
//一般限值
|
||||||
|
overIndex.setNormalLimit();
|
||||||
|
//相别
|
||||||
|
overIndex.setSeq();
|
||||||
|
//短时限值
|
||||||
|
overIndex.setShortLimit();
|
||||||
|
*/
|
||||||
|
|
||||||
|
info.add(overIndex);
|
||||||
|
}
|
||||||
|
PmsPage pmsPage = BeanUtil.copyProperties(monitorList, PmsPage.class);
|
||||||
|
pmsPage.setList(info);
|
||||||
|
return pmsPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void setMonitorIds(TypicalSourceParam param){
|
||||||
|
List<String> temBusIds = new ArrayList<>();
|
||||||
|
LocalDate begin = LocalDate.parse(param.getStartTime());
|
||||||
|
String statisticType = param.getStatType();
|
||||||
|
QueryWrapper<?> dayLam = new QueryWrapper<>();
|
||||||
|
dayLam.eq("statistic_date", begin).eq("dept_id", param.getNodeId());
|
||||||
|
Object pmsRunStatistic = null;
|
||||||
|
if (DicDataEnum.STATISTICAL_TYPE_D.getCode().equals(statisticType)) {
|
||||||
|
pmsRunStatistic = pmsRunStatisticDMapper.selectOne((QueryWrapper<PmsRunStatisticD>) dayLam);
|
||||||
|
} else if (DicDataEnum.STATISTICAL_TYPE_M.getCode().equals(statisticType)) {
|
||||||
|
pmsRunStatistic = pmsRunStatisticMMapper.selectOne((QueryWrapper<PmsRunStatisticM>) dayLam);
|
||||||
|
} else if (DicDataEnum.STATISTICAL_TYPE_Y.getCode().equals(statisticType)) {
|
||||||
|
pmsRunStatistic = pmsRunStatisticYMapper.selectOne((QueryWrapper<PmsRunStatisticY>) dayLam);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Objects.nonNull(pmsRunStatistic)) {
|
||||||
|
String onlineBusMidIds;
|
||||||
|
if (pmsRunStatistic instanceof PmsRunStatisticD) {
|
||||||
|
onlineBusMidIds = ((PmsRunStatisticD) pmsRunStatistic).getTypicalOnlineIds();
|
||||||
|
} else if (pmsRunStatistic instanceof PmsRunStatisticM) {
|
||||||
|
onlineBusMidIds = ((PmsRunStatisticM) pmsRunStatistic).getTypicalOnlineIds();
|
||||||
|
} else {
|
||||||
|
onlineBusMidIds = ((PmsRunStatisticY) pmsRunStatistic).getTypicalOnlineIds();
|
||||||
|
}
|
||||||
|
if (onlineBusMidIds != null) {
|
||||||
|
temBusIds.addAll(Arrays.asList(onlineBusMidIds.split(StrUtil.COMMA)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
param.setMonitorIds(temBusIds);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user