代码调整

This commit is contained in:
2022-11-08 09:48:02 +08:00
parent 7b0c2435fc
commit 3abd49707f
290 changed files with 13772 additions and 1639 deletions

View File

@@ -4,8 +4,10 @@ import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.pms.api.fallback.PmsGeneratrixClientFallbackFactory;
import com.njcn.device.pms.api.fallback.StatationStatClientFallbackFactory;
import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO;
import com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO;
import com.njcn.device.pms.pojo.param.PmsGeneratrixParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
@@ -30,4 +32,15 @@ public interface PmsGeneratrixClient {
*/
@PostMapping("/getGeneratrixInfo")
HttpResult<List<PmsGeneratrixDTO>> getGeneratrixInfo(@RequestBody PmsGeneratrixParam pmsGeneratrixParam);
/**
* 获取母线与电站关联信息
*
* @param param 条件参数
* @return com.njcn.common.pojo.response.HttpResult<java.util.List < com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO>>
* @author yzh
* @date 2022/11/3
*/
@PostMapping("/getGeneratrixAndPowerStationInfo")
HttpResult<List<GeneratrixAndPowerStationDTO>> getGeneratrixAndPowerStationInfo(@RequestBody PmsGeneratrixParam param);
}

View File

@@ -5,6 +5,7 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.api.PmsGeneratrixClient;
import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO;
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
import com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
@@ -38,6 +39,11 @@ public class PmsGeneratrixClientFallbackFactory implements FallbackFactory<PmsGe
log.error("{}异常,降级处理,异常为:{}", "获取母线信息", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<GeneratrixAndPowerStationDTO>> getGeneratrixAndPowerStationInfo(PmsGeneratrixParam param) {
log.error("{}异常,降级处理,异常为:{}", "获取母线与电站关联信息", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -0,0 +1,58 @@
package com.njcn.device.pms.pojo.dto;
import com.njcn.device.pms.pojo.po.Generatrix;
import com.njcn.device.pq.pojo.po.Voltage;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.math3.analysis.function.Power;
import java.io.Serializable;
/**
* 母线与电站关联信息
*
* @author yzh
* @date 2022/11/3
*/
@Data
public class GeneratrixAndPowerStationDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 母线id
*/
@ApiModelProperty(name = "generatrixId", value = "母线id")
private String generatrixId;
/**
* 母线名称
*/
@ApiModelProperty(name = "generatrixName", value = "母线名称")
private String generatrixName;
/**
* 母线电压等级
*/
@ApiModelProperty(name = "generatrixVoltageLevel", value = "母线电压等级")
private String generatrixVoltageLevel;
/**
* 变电站id
*/
@ApiModelProperty(name = "powerId", value = "变电站id")
private String powerId;
/**
* 变电站名称
*/
@ApiModelProperty(name = "powerName", value = "变电站名称")
private String powerName;
/**
* 变电站电压等级
*/
@ApiModelProperty(name = "powerVoltageLevel", value = "变电站电压等级")
private String powerVoltageLevel;
}

View File

@@ -23,15 +23,32 @@ public class PmsGeneratrixParam implements Serializable {
* 母线id集合
*/
@ApiModelProperty(name = "generatrixIds", value = "母线id集合")
@NotNull(message = "母线id集合不可为空")
private List<String> generatrixIds;
/**
* 变电站id
*/
@ApiModelProperty(name = "powerStationIds", value = "变电站id")
private List<String> powerStationIds;
/**
* 变电站名称
*/
@ApiModelProperty(name = "powerStationName", value = "变电站名称")
private String powerStationName;
/**
* 母线名称
*/
@ApiModelProperty(name = "generatrixName", value = "母线名称")
private String generatrixName;
/**
* 变电站电压等级
*/
@ApiModelProperty(name = "powerStationVoltageLevel", value = "变电站电压等级")
private List<String> powerStationVoltageLevel;
/**
* 母线电压等级
*/

View File

@@ -9,11 +9,11 @@ import java.io.Serializable;
* (RStatBusbarHarmonicY)实体类
*
* @author yzh
* @since 2022-10-12 18:38:16
* @since 2022-11-03 14:16:47
*/
@Data
public class RStatBusbarHarmonicPO implements Serializable {
private static final long serialVersionUID = 398744755685851294L;
public class RStatBusbarHarmonicYPO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 母线ID
*/
@@ -87,6 +87,5 @@ public class RStatBusbarHarmonicPO implements Serializable {
*/
private Double flicker95;
}

View File

@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 变电站母线电压指标年报返回前端实体类
@@ -15,8 +16,8 @@ import java.io.Serializable;
*/
@Data
@ApiModel(value = "变电站母线电压指标年报返回前端实体类")
public class RStatBusbarHarmonicVO implements Serializable {
@ApiModel("变电站母线电压指标年报返回前端实体类")
public class RStatBusbarHarmonicYVO implements Serializable {
private static final long serialVersionUID = 835979721790264805L;
/**
@@ -28,8 +29,8 @@ public class RStatBusbarHarmonicVO implements Serializable {
/**
* 所属单位
*/
@ApiModelProperty(name = "company", value = "单位")
private String company;
@ApiModelProperty(name = "deptName", value = "单位")
private String deptName;
/**
* 变电站id
@@ -59,128 +60,108 @@ public class RStatBusbarHarmonicVO implements Serializable {
* 母线id
*/
@ApiModelProperty(name = "busbarId", value = "母线id")
@TableField(value = "busbar_id")
private String busbarId;
/**
* 生成数据的时间,每年统计一次
*/
@ApiModelProperty(name = "dataDate", value = "生成数据的时间,每年统计一次")
@TableField(value = "data_date")
private String dataDate;
private Date dataDate;
/**
* 电压有效最大值
*/
@ApiModelProperty(name = "vEffectiveMax", value = "电压有效最大值")
@TableField(value = "v_effective_max")
private Double vEffectiveMax;
/**
* 电压有效最小值
*/
@ApiModelProperty(name = "vEffectiveMin", value = "电压有效最小值")
@TableField(value = "v_effective_min")
private Double vEffectiveMin;
/**
* 电压有效平均值
*/
@ApiModelProperty(name = "vEffectiveAvg", value = "电压有效平均值")
@TableField(value = "v_effective_avg")
private Double vEffectiveAvg;
/**
* 电压有效值95概率大值
*/
@ApiModelProperty(name = "vEffective95", value = "电压有效值95概率大值")
@TableField(value = "v_effective_95")
private Double vEffective95;
/**
* 电压总谐波畸变率最大值
*/
@ApiModelProperty(name = "vThdMax", value = "电压总谐波畸变率最大值")
@TableField(value = "v_thd_max")
private Double vThdMax;
/**
* 电压总谐波畸变率最小值
*/
@ApiModelProperty(name = "vThdMin", value = "电压总谐波畸变率最小值")
@TableField(value = "v_thd_min")
private Double vThdMin;
/**
* 电压总谐波畸变率平均值
*/
@ApiModelProperty(name = "vThdAvg", value = "电压总谐波畸变率平均值")
@TableField(value = "v_thd_avg")
private Double vThdAvg;
/**
* 电压总谐波畸变率95概率大值
*/
@ApiModelProperty(name = "vThd95", value = "电压总谐波畸变率95概率大值")
@TableField(value = "v_thd_95")
private Double vThd95;
/**
* 三相电压不平衡最大值
*/
@ApiModelProperty(name = "unbalanceMax", value = "三相电压不平衡最大值")
@TableField(value = "unbalance_max")
private Double unbalanceMax;
/**
* 三相电压不平衡最小值
*/
@ApiModelProperty(name = "unbalanceMin", value = "三相电压不平衡最小值")
@TableField(value = "unbalance_min")
private Double unbalanceMin;
/**
* 三相电压不平衡平均值
*/
@ApiModelProperty(name = "unbalanceAvg", value = "三相电压不平衡平均值")
@TableField(value = "unbalance_avg")
private Double unbalanceAvg;
/**
* 三相电压不平衡95概率大值
*/
@ApiModelProperty(name = "unbalance95", value = "三相电压不平衡95概率大值")
@TableField(value = "unbalance_95")
private Double unbalance95;
/**
* 闪变最大值
*/
@ApiModelProperty(name = "flickerMax", value = "闪变最大值")
@TableField(value = "flicker_max")
private Double flickerMax;
/**
* 闪变最小值
*/
@ApiModelProperty(name = "flickerMin", value = "闪变最小值")
@TableField(value = "flicker_min")
private Double flickerMin;
/**
* 闪变平均值
*/
@ApiModelProperty(name = "flickerAvg", value = "闪变平均值")
@TableField(value = "flicker_avg")
private Double flickerAvg;
/**
* 闪变95概率大值
*/
@ApiModelProperty(name = "flicker95", value = "闪变95概率大值")
@TableField(value = "flicker_95")
private Double flicker95;
}

View File

@@ -7,6 +7,7 @@ import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO;
import com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO;
import com.njcn.device.pms.pojo.param.GeneratrixParam;
import com.njcn.device.pms.pojo.param.PmsGeneratrixParam;
@@ -43,16 +44,38 @@ public class PmsGeneratrixController extends BaseController {
/**
* 获取指定母线信息
*
* @param pmsGeneratrixParam 获取指定的监测点信息条件
* @param param 获取指定的监测点信息条件
* @return 指定母线信息
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getGeneratrixInfo")
@ApiOperation("获取指定母线信息")
@ApiImplicitParam(name = "pmsGeneratrixParam", value = "获取指定母线信息条件", required = true)
public HttpResult<List<PmsGeneratrixDTO>> getGeneratrixInfo(@RequestBody @Validated PmsGeneratrixParam pmsGeneratrixParam) {
@ApiImplicitParam(name = "param", value = "获取指定母线信息条件", required = true)
public HttpResult<List<PmsGeneratrixDTO>> getGeneratrixInfo(@RequestBody @Validated PmsGeneratrixParam param) {
String methodDescribe = getMethodDescribe("getGeneratrixInfo");
List<PmsGeneratrixDTO> monitorInfo = pmsGeneratrixService.getGeneratrixInfo(pmsGeneratrixParam);
List<PmsGeneratrixDTO> monitorInfo = pmsGeneratrixService.getGeneratrixInfo(param);
if (CollectionUtil.isEmpty(monitorInfo)) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.NO_DATA, null, methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitorInfo, methodDescribe);
}
}
/**
* 获取母线与电站关联信息
*
* @param param 条件参数
* @return com.njcn.common.pojo.response.HttpResult<java.util.List < com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO>>
* @author yzh
* @date 2022/11/3
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getGeneratrixAndPowerStationInfo")
@ApiOperation("获取母线与电站关联信息")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<GeneratrixAndPowerStationDTO>> getGeneratrixAndPowerStationInfo(@RequestBody @Validated PmsGeneratrixParam param) {
String methodDescribe = getMethodDescribe("getGeneratrixAndPowerStationInfo");
List<GeneratrixAndPowerStationDTO> monitorInfo = pmsGeneratrixService.getGeneratrixAndPowerStationInfo(param);
if (CollectionUtil.isEmpty(monitorInfo)) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.NO_DATA, null, methodDescribe);
} else {

View File

@@ -7,7 +7,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pms.pojo.param.UniversalFrontEndParam;
import com.njcn.device.pms.pojo.vo.RStatBusbarHarmonicVO;
import com.njcn.device.pms.pojo.vo.RStatBusbarHarmonicYVO;
import com.njcn.device.pms.service.RStatBusbarHarmonicService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
@@ -45,10 +45,10 @@ public class RStatBusbarHarmonicController extends BaseController {
@PostMapping("/getRStatBusbarHarmonic")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取变电站母线电压指标年报")
@ApiImplicitParam(name = "param", value = "获取变电站母线电压指标年报前端参数", required = true)
public HttpResult<List<RStatBusbarHarmonicVO>> getRStatBusbarHarmonic(@RequestBody UniversalFrontEndParam param) {
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<RStatBusbarHarmonicYVO>> getRStatBusbarHarmonic(@RequestBody UniversalFrontEndParam param) {
String methodDescribe = getMethodDescribe("getRStatBusbarHarmonic");
List<RStatBusbarHarmonicVO> list = statBusbarHarmonicService.getRStatBusbarHarmonic(param);
List<RStatBusbarHarmonicYVO> list = statBusbarHarmonicService.getRStatBusbarHarmonic(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}

View File

@@ -98,7 +98,7 @@ public class TerminalController extends BaseController {
@PostMapping("/updateTerminal")
@OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.UPDATE)
@ApiOperation("修改监测终端台账信息")
@ApiImplicitParam(name = "UpdateParam", value = "更新实体", required = true)
@ApiImplicitParam(name = "updateParam", value = "更新实体", required = true)
public HttpResult<Object> update(@RequestBody @Validated PmsTerminalParam updateParam){
String methodDescribe = getMethodDescribe("update");
boolean result = iTerminalService.update(updateParam);

View File

@@ -1,6 +1,7 @@
package com.njcn.device.pms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO;
import com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO;
import com.njcn.device.pms.pojo.param.PmsGeneratrixParam;
import com.njcn.device.pms.pojo.po.Generatrix;
@@ -23,4 +24,14 @@ public interface PmsGeneratrixMapper extends BaseMapper<Generatrix> {
* @return 母线信息
*/
List<PmsGeneratrixDTO> getGeneratrixInfo(@Param("pmsGeneratrixParam") PmsGeneratrixParam pmsGeneratrixParam);
/**
* 获取母线与电站关联信息
*
* @param param 条件参数
* @return java.util.List<com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO>
* @author yzh
* @date 2022/11/3
*/
List<GeneratrixAndPowerStationDTO> getGeneratrixAndPowerStationInfo(@Param("param") PmsGeneratrixParam param);
}

View File

@@ -1,8 +1,8 @@
package com.njcn.device.pms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.device.pms.pojo.po.PmsMonitorPO;
import com.njcn.device.pms.pojo.vo.RStatBusbarHarmonicVO;
import com.njcn.device.pms.pojo.po.RStatBusbarHarmonicYPO;
import com.njcn.device.pms.pojo.vo.RStatBusbarHarmonicYVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -16,27 +16,18 @@ import java.util.List;
*/
@Mapper
public interface RStatBusbarHarmonicMapper extends BaseMapper<RStatBusbarHarmonicVO> {
/**
* 根据部门id查询监测点id
*
* @param deptIds 部门id
* @return 监测点id
*/
List<PmsMonitorPO> getMonitorInfo(@Param("deptIds") List<String> deptIds);
public interface RStatBusbarHarmonicMapper extends BaseMapper<RStatBusbarHarmonicYVO> {
/**
* 查询变电站背景谐波年表
*
* @param startTime 开始时间
* @param endTime 结束时间
* @param startTime 开始时间
* @param endTime 结束时间
* @param generatrixIds 母线id
* @return 获取变电站母线电压指标年报
*/
List<RStatBusbarHarmonicVO> getAnnualReportOfSubstationBusVoltageIndex(@Param("startTime") String startTime,
@Param("endTime") String endTime,
@Param("busbarIds") List<String> generatrixIds);
List<RStatBusbarHarmonicYPO> getRStatBusbarHarmonic(@Param("startTime") String startTime,
@Param("endTime") String endTime,
@Param("generatrixIds") List<String> generatrixIds);
}

View File

@@ -5,31 +5,82 @@
<!--获取母线信息-->
<select id="getGeneratrixInfo" resultType="com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO">
SELECT
Org_Id AS orgId,
Org_Name AS orgName,
Powerr_Id AS powerId,
Powerr_Name AS powerName,
Generatrix_Id AS generatrixId,
Generatrix_Name AS generatrixName,
Id AS monitorId,
`Name` AS monitorName,
Voltage_Level AS generatrixVoltageLevel
pm.Org_Id AS orgId,
pm.Org_Name AS orgName,
pm.Powerr_Id AS powerId,
pm.Powerr_Name AS powerName,
pg.Generatrix_Id AS generatrixId,
pm.Generatrix_Name AS generatrixName,
pm.Id AS monitorId,
pm.`Name` AS monitorName,
pg.Scale AS generatrixVoltageLevel
FROM
pms_monitor
pms_generatrix AS pg
LEFT JOIN pms_monitor AS pm ON pm.Generatrix_Id = pg.Generatrix_Id
WHERE
Status = 1
AND Generatrix_Id IN
pm.`Status` = 1
AND pg.`Status` =1
AND pg.Generatrix_Id IN
<foreach collection="pmsGeneratrixParam.generatrixIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
<if test="pmsGeneratrixParam.generatrixVoltageLevel != null and pmsGeneratrixParam.generatrixVoltageLevel.size() != 0">
AND Voltage_Level IN
<foreach collection="pmsGeneratrixParam.generatrixVoltageLevel" item="item" open="(" close=")" separator=",">
AND pg.Scale IN
<foreach collection="pmsGeneratrixParam.generatrixVoltageLevel" item="item" open="(" close=")"
separator=",">
#{item}
</foreach>
</if>
<if test="pmsGeneratrixParam.generatrixName != null and pmsGeneratrixParam.generatrixName != ''">
AND Generatrix_Name LIKE CONCAT('%',#{pmsGeneratrixParam.generatrixName},'%')
AND pm.Generatrix_Name LIKE CONCAT('%',#{pmsGeneratrixParam.generatrixName},'%')
</if>
</select>
<!--获取母线与电站关联信息-->
<select id="getGeneratrixAndPowerStationInfo"
resultType="com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO">
SELECT
pg.Generatrix_Id AS generatrixId,
pg.Generatrix_Name AS generatrixName,
pg.Scale AS generatrixVoltageLevel,
pss.Power_Id AS powerId,
pss.Power_Name AS powerName,
pss.Voltage_Level AS powerVoltageLevel
FROM
pms_generatrix AS pg
LEFT JOIN pms_statation_stat AS pss ON pg.Statation_Id = pss.Power_Id
WHERE
pg.`Status` = 1
AND pss.`Status` = 1
<if test="param.generatrixIds != null and param.generatrixIds.size() >0 ">
AND pg.Generatrix_Id IN
<foreach collection="param.generatrixIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="param.powerStationIds != null and param.powerStationIds.size() >0 ">
AND pss.Power_Id IN
<foreach collection="param.powerStationIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="param.generatrixVoltageLevel != null and param.generatrixVoltageLevel.size() >0 ">
AND pg.Scale IN
<foreach collection="param.generatrixVoltageLevel" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="param.powerStationVoltageLevel != null and param.powerStationVoltageLevel.size() >0 ">
AND pss.Voltage_Level IN
<foreach collection="param.powerStationVoltageLevel" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="param.generatrixName != null and param.generatrixName !='' ">
AND pg.Generatrix_Name LIKE CONCAT('%',#{param.generatrixName},'%')
</if>
<if test="param.powerStationName != null and param.powerStationName !='' ">
AND pss.Power_Name LIKE CONCAT('%',#{param.powerStationName},'%')
</if>
</select>

View File

@@ -2,44 +2,35 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.device.pms.mapper.RStatBusbarHarmonicMapper">
<!--根据部门id查询监测点id-->
<select id="getMonitorInfo" resultType="com.njcn.device.pms.pojo.po.PmsMonitorPO">
SELECT
id,
`Name`,
Org_Name AS orgName,
Org_Id AS orgId,
Operation_Name AS operationName,
Operation_Id AS operationId,
Powerr_Name AS powerrName,
Powerr_Id AS powerrId,
Generatrix_Name AS generatrixName,
Generatrix_Id AS generatrixId
FROM
pms_monitor
WHERE
Org_Id IN ()
<foreach collection="deptIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
<!--查询变电站背景谐波年表-->
<select id="getAnnualReportOfSubstationBusVoltageIndex"
resultType="com.njcn.device.pms.pojo.vo.RStatBusbarHarmonicVO">
<select id="getRStatBusbarHarmonic"
resultType="com.njcn.device.pms.pojo.po.RStatBusbarHarmonicYPO">
SELECT
*
busbar_id AS busbarId,
data_date AS dataDate,
v_effective_max AS vEffectiveMax,
v_effective_min AS vEffectiveMin,
v_effective_avg AS vEffectiveAvg,
v_effective_95 AS vEffective95,
v_thd_max AS vThdMax,
v_thd_min AS vThdMin,
v_thd_avg AS vThdAvg,
v_thd_95 AS vThd95,
unbalance_max AS unbalanceMax,
unbalance_min AS unbalanceMin,
unbalance_avg AS unbalanceAvg,
unbalance_95 AS unbalance95,
flicker_max AS flickerMax,
flicker_min AS flickerMin,
flicker_avg AS flickerAvg,
flicker_95 AS flicker95
FROM
r_stat_busbar_harmonic_y
WHERE
<if test="busbarIds != null and busbarIds.size() > 0">
busbar_id IN
<foreach collection="generatrixIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
busbar_id IN
<foreach collection="generatrixIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
<if test="startTime != null and startTime != ''">
AND DATE_FORMAT( data_date,'%Y-%m-%d') &gt;= DATE_FORMAT(#{startTime},'%Y-%m-%d')
</if>
@@ -47,4 +38,4 @@
AND DATE_FORMAT( data_date,'%Y-%m-%d') &lt;= DATE_FORMAT(#{endTime},'%Y-%m-%d')
</if>
</select>
</mapper>
</mapper>

View File

@@ -1,6 +1,7 @@
package com.njcn.device.pms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO;
import com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO;
import com.njcn.device.pms.pojo.param.GeneratrixParam;
import com.njcn.device.pms.pojo.param.PmsGeneratrixParam;
@@ -19,54 +20,68 @@ public interface IPmsGeneratrixService extends IService<Generatrix> {
/**
* 获取母线信息
*
* @param pmsGeneratrixParam 入参
* @param param 入参
* @return 母线信息
*/
List<PmsGeneratrixDTO> getGeneratrixInfo(PmsGeneratrixParam pmsGeneratrixParam);
List<PmsGeneratrixDTO> getGeneratrixInfo(PmsGeneratrixParam param);
/**
* 新增母线
* @author cdf
* @date 2022/10/25
*
* @param generatrixParam 母线
* @return boolean
* @author cdf
* @date 2022/10/25
*/
boolean addGeneratrix(GeneratrixParam generatrixParam);
/**
* 修改母线
* @author cdf
* @date 2022/10/25
*
* @param generatrixParam 母线
* @return boolean
* @author cdf
* @date 2022/10/25
*/
boolean updateGeneratrix(GeneratrixParam.UpdateGeneratrixParam generatrixParam);
/**
* 删除母线
* @author cdf
* @date 2022/10/25
*
* @param generatrixIds 母线
* @return boolean
* @author cdf
* @date 2022/10/25
*/
boolean delGeneratrix(List<String> generatrixIds);
/**
* 查询母线
* @author cdf
* @date 2022/10/25
*
* @param generatrixId 母线id
* @return boolean
* @author cdf
* @date 2022/10/25
*/
Generatrix getGeneratrixById(String generatrixId);
/**
* 查询母线列表
* @author cdf
* @date 2022/10/25
*
* @param baseParam 基础参数
* @return boolean
* @author cdf
* @date 2022/10/25
*/
List<Generatrix> getGeneratrixList(BaseParam baseParam);
/**
* 获取母线与电站关联信息
*
* @param param 条件参数
* @return java.util.List<com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO>
* @author yzh
* @date 2022/11/3
*/
List<GeneratrixAndPowerStationDTO> getGeneratrixAndPowerStationInfo(PmsGeneratrixParam param);
}

View File

@@ -3,7 +3,7 @@ package com.njcn.device.pms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.pms.pojo.param.UniversalFrontEndParam;
import com.njcn.device.pms.pojo.vo.RStatBusbarHarmonicVO;
import com.njcn.device.pms.pojo.vo.RStatBusbarHarmonicYVO;
import java.util.List;
@@ -14,7 +14,7 @@ import java.util.List;
* @date 2022/10/8
*/
public interface RStatBusbarHarmonicService extends IService<RStatBusbarHarmonicVO> {
public interface RStatBusbarHarmonicService extends IService<RStatBusbarHarmonicYVO> {
/**
* 获取变电站母线电压指标年报
@@ -22,6 +22,6 @@ public interface RStatBusbarHarmonicService extends IService<RStatBusbarHarmonic
* @param param 前端参数
* @return 变电站母线电压指标年报返回前端实体类
*/
List<RStatBusbarHarmonicVO> getRStatBusbarHarmonic(UniversalFrontEndParam param);
List<RStatBusbarHarmonicYVO> getRStatBusbarHarmonic(UniversalFrontEndParam param);
}

View File

@@ -1,7 +1,9 @@
package com.njcn.device.pms.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.device.pms.mapper.PmsGeneratrixMapper;
import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO;
import com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO;
import com.njcn.device.pms.pojo.param.GeneratrixParam;
import com.njcn.device.pms.pojo.param.PmsGeneratrixParam;
@@ -27,31 +29,31 @@ public class PmsGeneratrixServiceImpl extends ServiceImpl<PmsGeneratrixMapper, G
private final PmsGeneratrixMapper pmsGeneratrixMapper;
/**
* 获取母线信息
*
* @param pmsGeneratrixParam 入参
* @param param 入参
* @return 母线信息
*/
@Override
public List<PmsGeneratrixDTO> getGeneratrixInfo(PmsGeneratrixParam pmsGeneratrixParam) {
return pmsGeneratrixMapper.getGeneratrixInfo(pmsGeneratrixParam);
public List<PmsGeneratrixDTO> getGeneratrixInfo(PmsGeneratrixParam param) {
if (CollUtil.isEmpty(param.getGeneratrixIds())) {
return null;
}
return pmsGeneratrixMapper.getGeneratrixInfo(param);
}
@Override
public boolean addGeneratrix(GeneratrixParam generatrixParam) {
Generatrix generatrix = new Generatrix();
BeanUtils.copyProperties(generatrixParam,generatrix);
BeanUtils.copyProperties(generatrixParam, generatrix);
return this.save(generatrix);
}
@Override
public boolean updateGeneratrix(GeneratrixParam.UpdateGeneratrixParam generatrixParam) {
Generatrix generatrix = new Generatrix();
BeanUtils.copyProperties(generatrixParam,generatrix);
BeanUtils.copyProperties(generatrixParam, generatrix);
return this.save(generatrix);
}
@@ -69,4 +71,17 @@ public class PmsGeneratrixServiceImpl extends ServiceImpl<PmsGeneratrixMapper, G
public List<Generatrix> getGeneratrixList(BaseParam baseParam) {
return this.list();
}
/**
* 获取母线与电站关联信息
*
* @param param 条件参数
* @return java.util.List<com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO>
* @author yzh
* @date 2022/11/3
*/
@Override
public List<GeneratrixAndPowerStationDTO> getGeneratrixAndPowerStationInfo(PmsGeneratrixParam param) {
return pmsGeneratrixMapper.getGeneratrixAndPowerStationInfo(param);
}
}

View File

@@ -1,24 +1,28 @@
package com.njcn.device.pms.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.dto.SimpleDTO;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.api.PmsGeneratrixClient;
import com.njcn.device.pms.mapper.RStatBusbarHarmonicMapper;
import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO;
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
import com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
import com.njcn.device.pms.pojo.param.PmsGeneratrixParam;
import com.njcn.device.pms.pojo.param.UniversalFrontEndParam;
import com.njcn.device.pms.pojo.po.PmsMonitorPO;
import com.njcn.device.pms.pojo.vo.RStatBusbarHarmonicVO;
import com.njcn.device.pms.pojo.po.RStatBusbarHarmonicYPO;
import com.njcn.device.pms.pojo.vo.RStatBusbarHarmonicYVO;
import com.njcn.device.pms.service.RStatBusbarHarmonicService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.dto.DeptDTO;
import com.njcn.web.utils.WebUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -31,14 +35,13 @@ import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
@Slf4j
public class RStatBusbarHarmonicServiceImpl extends ServiceImpl<RStatBusbarHarmonicMapper, RStatBusbarHarmonicVO> implements RStatBusbarHarmonicService {
public class RStatBusbarHarmonicServiceImpl extends ServiceImpl<RStatBusbarHarmonicMapper, RStatBusbarHarmonicYVO> implements RStatBusbarHarmonicService {
private final RStatBusbarHarmonicMapper rStatBusbarHarmonicMapper;
private final DicDataFeignClient dicDataFeignClient;
private final DeptFeignClient deptFeignClient;
private final PmsGeneratrixClient pmsGeneratrixClient;
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
/**
* 获取变电站母线电压指标年报
@@ -47,76 +50,69 @@ public class RStatBusbarHarmonicServiceImpl extends ServiceImpl<RStatBusbarHarmo
* @return 变电站母线电压指标年报返回前端实体类
*/
@Override
public List<RStatBusbarHarmonicVO> getRStatBusbarHarmonic(UniversalFrontEndParam param) {
// 获取登录用户的部门id
// String deptIndex = RequestUtil.getDeptIndex();
public List<RStatBusbarHarmonicYVO> getRStatBusbarHarmonic(UniversalFrontEndParam param) {
// 获取当前用户的部门的子部门信息
List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
PmsDeviceInfoParam pmsDeviceInfoParam = new PmsDeviceInfoParam();
pmsDeviceInfoParam.setDeptIndex(param.getId());
pmsDeviceInfoParam.setStatisticalType(new SimpleDTO());
List<PmsGeneralDeviceDTO> data = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pmsDeviceInfoParam).getData();
if (CollUtil.isEmpty(data)) {
return Collections.emptyList();
}
if (CollectionUtil.isNotEmpty(data)) {
// 创建集合用于封装数据
List<RStatBusbarHarmonicVO> info = new ArrayList<>();
// 过滤出部门id
List<String> deptIds = data.stream().map(DeptDTO::getId).collect(Collectors.toList());
// 根据部门id 获取监测点信息
List<PmsMonitorPO> monitorInfo = rStatBusbarHarmonicMapper.getMonitorInfo(deptIds);
// 取出母线id
List<String> generatrixIds = monitorInfo.stream().map(PmsMonitorPO::getGeneratrixId).collect(Collectors.toList());
// 获取电压字典
List<DictData> devVoltageData = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData();
// 创建集合封装返回数据
List<RStatBusbarHarmonicYVO> result = new ArrayList<>();
for (PmsGeneralDeviceDTO dto : data) {
if (CollUtil.isEmpty(dto.getGeneratrixIdList())) {
continue;
}
// 通过母线id查询变电站背景谐波年表
info = rStatBusbarHarmonicMapper.getAnnualReportOfSubstationBusVoltageIndex(param.getStartTime(), param.getEndTime(), generatrixIds);
List<RStatBusbarHarmonicYPO> info = rStatBusbarHarmonicMapper.getRStatBusbarHarmonic(param.getStartTime(), param.getEndTime(), dto.getGeneratrixIdList());
// 属性赋值
for (RStatBusbarHarmonicVO vo : info) {
for (PmsMonitorPO pmsMonitor : monitorInfo) {
if (vo.getBusbarId().equals(pmsMonitor.getGeneratrixId())){
vo.setDeptId(pmsMonitor.getOrgId());
}
for (RStatBusbarHarmonicYPO po : info) {
RStatBusbarHarmonicYVO vo = new RStatBusbarHarmonicYVO();
vo.setDeptId(dto.getIndex());
vo.setDeptName(dto.getName());
vo.setBusbarId(po.getBusbarId());
vo.setDataDate(po.getDataDate());
vo.setVEffectiveMax(po.getVEffectiveMax());
vo.setVEffectiveMin(po.getVEffectiveMin());
vo.setVEffectiveAvg(po.getVEffectiveAvg());
vo.setVEffective95(po.getVEffective95());
vo.setVThdMax(po.getVThdMax());
vo.setVThdMin(po.getVThdMin());
vo.setVThdAvg(po.getVThdAvg());
vo.setVThd95(po.getVThd95());
vo.setUnbalanceMax(po.getUnbalanceMax());
vo.setUnbalanceMin(po.getUnbalanceMin());
vo.setUnbalanceAvg(po.getUnbalanceAvg());
vo.setUnbalance95(po.getUnbalance95());
vo.setFlickerMax(po.getFlickerMax());
vo.setFlickerMin(po.getFlickerMin());
vo.setFlickerAvg(po.getFlickerAvg());
vo.setFlicker95(po.getFlicker95());
result.add(vo);
}
}
// 取出母线id
List<String> busbarIds = result.stream().map(RStatBusbarHarmonicYVO::getBusbarId).collect(Collectors.toList());
PmsGeneratrixParam pmsGeneratrixParam = new PmsGeneratrixParam();
pmsGeneratrixParam.setGeneratrixIds(busbarIds);
List<GeneratrixAndPowerStationDTO> dtoS = pmsGeneratrixClient.getGeneratrixAndPowerStationInfo(pmsGeneratrixParam).getData();
for (GeneratrixAndPowerStationDTO dto : dtoS) {
for (RStatBusbarHarmonicYVO vo : result) {
if (dto.getGeneratrixId().equals(vo.getBusbarId())){
vo.setBusbarName(dto.getGeneratrixName());
vo.setSubId(dto.getPowerId());
vo.setSubName(dto.getPowerName());
vo.setSubVoltageLevel(dto.getPowerVoltageLevel());
}
}
return info;
} else {
return new ArrayList<>();
}
return result;
}
/**
* 属性赋值
*
* @param data 当前用户的部门的子部门信息
* @param annualReportOfSubstationBusVoltageIndex 母线id查询变电站背景谐波年表
* @param subAndVoltageInfos 母线和变电站信息
* @return 返回前端集合
*/
private void attributeCopy(List<DeptDTO> data, List<RStatBusbarHarmonicVO> annualReportOfSubstationBusVoltageIndex, List<RStatBusbarHarmonicVO> subAndVoltageInfos) {
// 属性赋值
for (RStatBusbarHarmonicVO vo : annualReportOfSubstationBusVoltageIndex) {
for (RStatBusbarHarmonicVO subAndVoltageInfo : subAndVoltageInfos) {
if (subAndVoltageInfo.getBusbarId().equals(vo.getBusbarId())) {
vo.setDeptId(subAndVoltageInfo.getDeptId());
vo.setSubName(subAndVoltageInfo.getSubName());
vo.setSubVoltageLevel(subAndVoltageInfo.getSubVoltageLevel());
vo.setBusbarName(subAndVoltageInfo.getBusbarName());
}
}
}
// 属性赋值
for (RStatBusbarHarmonicVO vo : annualReportOfSubstationBusVoltageIndex) {
for (DeptDTO datum : data) {
if (datum.getId().equals(vo.getDeptId())) {
vo.setCompany(datum.getName());
}
}
}
}
}
}

View File

@@ -0,0 +1,24 @@
package com.njcn.device.pq.constant;
/**
* @author qijian
*/
public interface Param {
/**
* 算法处理
*/
String TARGET_FREQ = "freq";
String TARGET_RMS = "rms";
String TARGET_RMS_LVR = "rms_lvr";
String TARGET_V_THD = "v_thd";
String TARGET_V_UNBALANCE = "v_unbalance";
Integer YEAR = 1;
Integer QUARTER = 2;
Integer MONTH = 3;
Integer WEEK = 4;
Integer DAY = 5;
}

View File

@@ -62,7 +62,13 @@ public enum DeviceResponseEnum {
DEPT_LINE_EMPTY("A2072","当前用户部门未有监测点绑定"),
DIC_GET_EMPTY("A2073","字典获取为空"),
ALGORITHM_LINE_EMPTY("A00558","算法监测点数据为空"),
ALGORITHM_FREP_RULE("A00559","该监测点频率数据异常"),
ALGORITHM_RMS_RULE("A00560","该监测点相变压数据异常"),
ALGORITHM_RMS_LVR_RULE("A00561","该监测点线变压数据异常"),
ALGORITHM_V_THD_RULE("A00562","该监测点电压总谐波畸变率数据异常"),
ALGORITHM_V_UNBALANCE_RULE("A00563","该监测点负序电压不平衡度数据异常"),
ALGORITHM_DATA_ERROR("A00564","未获取到data数据"),
INVALID_LEVEL("A2074","非法拓扑等级"),
LINE_EMPTY("A2075","监测点为空"),

View File

@@ -0,0 +1,31 @@
package com.njcn.device.pq.pojo.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 算法通用查询参数
*
* @author qijian
* @date 2022/10/26
*/
@Data
public class AlgorithmSearchParam {
@ApiModelProperty(name = "id",value = "监测点ID")
@NotBlank(message = "监测点不能为空")
private String id;
@ApiModelProperty(name = "type",value = "时间类型")
@NotNull(message = "时间类型不能为空")
private Integer type;
@ApiModelProperty(name = "datadate",value = "查询时间")
@NotBlank(message = "时间不能为空")
private String datadate;
}

View File

@@ -0,0 +1,56 @@
package com.njcn.device.pq.pojo.po;
import lombok.Data;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;
import java.time.Instant;
/**
* DataV influxDB别名映射表
*
* @author qijian
* @version 1.0.0
* @createTime 2022/10/27 15:27
*/
@Data
@Measurement(name = "data_v")
public class DataV {
@Column(name = "time")
private Instant time;
@Column(name = "line_id")
private String lineId;
@Column(name = "freq_max")
private Double frepMAX;
@Column(name = "freq_min")
private Double frepMIN;
@Column(name = "rms_max")
private Double rmsMAX;
@Column(name = "rms_min")
private Double rmsMIN;
@Column(name = "rms_lvr_max")
private Double rmsLvrMAX;
@Column(name = "rms_lvr_min")
private Double rmsLvrMIN;
@Column(name = "v_thd_max")
private Double vThdMAX;
@Column(name = "v_thd_min")
private Double vThdMIN;
@Column(name = "v_unbalance_max")
private Double vUnbalanceMAX;
@Column(name = "v_unbalance_min")
private Double vUnbalanceMIN;
}

View File

@@ -0,0 +1,44 @@
package com.njcn.device.pq.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* (PmsAbnormalRules)实体类
*
* @author qijian
* @since 2022-10-27 14:49:22
*/
@Data
@TableName(value = "pms_abnormal_rules")
public class PmsAbnormalRules implements Serializable {
private static final long serialVersionUID = -68797682413850371L;
/**
* 主键
*/
private String id;
/**
* 规则类型(字典 0 数据异常 1......
*/
private Integer type;
/**
* 指标名称
*/
private String targetName;
/**
* 对应字段
*/
private String target;
/**
* 下限
*/
private Double lowerLimit;
/**
* 上限
*/
private Double upperLimit;
}

View File

@@ -0,0 +1,61 @@
package com.njcn.device.pq.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* (RMpIntegrityD)实体类
*
* @author qijian
* @since 2022-10-26 14:10:32
*/
@Data
@TableName(value = "r_mp_integrity_d")
public class RMpIntegrityD implements Serializable {
private static final long serialVersionUID = 320784653665837465L;
/**
* 监测点id
*/
private String measurementPointId;
/**
* 生成数据的时间,每天统计一次
*/
private Date dataDate;
/**
* 有效接入分钟数量
*/
private Integer effectiveMinuteCount;
/**
* 频率平均值指标数据个数
*/
private Integer freqCount;
/**
* 相电压有效值平均值指标数据个数
*/
private Integer phaseVoltageCount;
/**
* 线电压有效值平均值指标数据个数
*/
private Integer lineVoltageCount;
/**
* 电压总谐波畸变率平均值指标数据个数
*/
private Integer vThdCount;
/**
* 三相电压不平衡度平均值指标数据个数
*/
private Integer unbalanceCount;
/**
* 监测点短时闪变、电压波动类指标数据个数
*/
private Integer pstCount;
/**
* 监测点长时闪变指标数据个数
*/
private Integer pltCount;
}

View File

@@ -0,0 +1,33 @@
package com.njcn.device.pq.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* (RStatAbnormalD)实体类
*
* @author qijian
* @since 2022-10-27 14:49:43
*/
@Data
@TableName(value = "r_stat_abnormal_d")
public class RStatAbnormalD implements Serializable {
private static final long serialVersionUID = 130540916944391303L;
/**
* 时间
*/
private Date dataDate;
/**
* 监测点ID
*/
private String measurementPointId;
/**
* 数据是否异常0异常1正常
*/
private Integer valueAlarm;
}

View File

@@ -0,0 +1,43 @@
package com.njcn.device.pq.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* Description:部门设备统计
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/10/14 10:45【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "DeptDeviceDetailVO" ,description = "部门设备统计")
public class DeptDeviceDetailVO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("设备总数")
private Integer deviceCount;
@ApiModelProperty("运行设备设备总数")
private Integer runDeviceCount;
@ApiModelProperty("设备在线率")
private BigDecimal onLineRate;
}

View File

@@ -0,0 +1,41 @@
package com.njcn.device.pq.pojo.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* Description:部门设备统计
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/10/14 10:45【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "DeptSubstationDetailVO" ,description = "部门变电站统计")
public class DeptSubstationDetailVO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("变电站总数")
private Integer substationCount;
@ApiModelProperty("运行变电站总数")
private Integer runsubstationCount;
@ApiModelProperty("变电站在线率")
private BigDecimal onLineRate;
}

View File

@@ -21,6 +21,9 @@ import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
public class TerminalTree implements Serializable {
@ApiModelProperty(name = "index",value = "序号")
private Integer index;
private String id;
@ApiModelProperty(name = "parentId",value = "父id")
private String pid;

View File

@@ -0,0 +1,51 @@
package com.njcn.device.pq.controller;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.pojo.param.AlgorithmSearchParam;
import com.njcn.device.pq.service.DataExceptionService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
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 qijian
* @date 2022/10/26
* 数据是否异常
*/
@Validated
@Slf4j
@RestController
@RequestMapping("/dataException")
@Api(tags = "数据是否异常")
@AllArgsConstructor
public class DataExceptionController extends BaseController {
private final DataExceptionService dataExceptionService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/lineDataException")
@ApiOperation("监测点数据是否异常")
@ApiImplicitParam(name = "algorithmSearchParam", value = "算法通用查询参数", required = true)
public HttpResult<Boolean> lineDataException(@RequestBody @Validated AlgorithmSearchParam algorithmSearchParam) {
String methodDescribe = getMethodDescribe("lineDataException");
boolean res = dataExceptionService.lineDataException(algorithmSearchParam);
if(res){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
}
}

View File

@@ -0,0 +1,51 @@
package com.njcn.device.pq.controller;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.pojo.param.AlgorithmSearchParam;
import com.njcn.device.pq.service.DataIntegrityRateService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
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 qijian
* @date 2022/10/26
* 数据完整率算法
*/
@Validated
@Slf4j
@RestController
@RequestMapping("/dataIntegrityRate")
@Api(tags = "数据完整率算法")
@AllArgsConstructor
public class DataIntegrityRateController extends BaseController {
private final DataIntegrityRateService dataIntegrityRateService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/lineDataIntegrityRate")
@ApiOperation("监测点日数据完整率")
@ApiImplicitParam(name = "algorithmSearchParam", value = "算法通用查询参数", required = true)
public HttpResult<Boolean> lineDataIntegrityRate(@RequestBody @Validated AlgorithmSearchParam algorithmSearchParam) {
String methodDescribe = getMethodDescribe("lineDataIntegrityRate");
boolean res = dataIntegrityRateService.lineDataIntegrityRate(algorithmSearchParam);
if(res){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
}
}

View File

@@ -9,6 +9,8 @@ import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.pojo.bo.BaseLineInfo;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.vo.DeptDeviceDetailVO;
import com.njcn.device.pq.pojo.vo.DeptSubstationDetailVO;
import com.njcn.device.pq.pojo.vo.ExceptionDeviceInfoVO;
import com.njcn.device.pq.service.TerminalBaseService;
import com.njcn.device.pq.service.impl.GeneralDeviceService;
@@ -124,7 +126,6 @@ public class GeneralDeviceInfoController extends BaseController {
@ApiImplicitParams({
@ApiImplicitParam(name = "deviceInfoParam", value = "查询终端条件", required = true)
})
@Deprecated
public HttpResult<List<GeneralDeviceDTO>> getPracticalRunDeviceInfoAsSubstation(@RequestBody @Validated DeviceInfoParam deviceInfoParam) {
String methodDescribe = getMethodDescribe("getPracticalRunDeviceInfoAsSubstation");
List<GeneralDeviceDTO> substationDeviceInfos = generalDeviceService.getDeviceInfoAsSubstation(deviceInfoParam, Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList()));
@@ -229,4 +230,40 @@ public class GeneralDeviceInfoController extends BaseController {
}
}
/**
* 按部门获取终端设备总数,在线数,在线率
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getDeptDeviceDetail")
@ApiOperation("按部门获取终端设备总数,在线数,在线率")
@ApiImplicitParams({
@ApiImplicitParam(name = "deviceInfoParam", value = "查询终端条件", required = true)
})
@Deprecated
public HttpResult<DeptDeviceDetailVO> getDeptDeviceDetail(@RequestBody @Validated DeviceInfoParam deviceInfoParam) {
String methodDescribe = getMethodDescribe("getDeptDeviceDetail");
DeptDeviceDetailVO deptDeviceDetail = generalDeviceService.getDeptDeviceDetail(deviceInfoParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, deptDeviceDetail, methodDescribe);
}
/**
* 按部门获变电站数,变电站在线数,在线率
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getDeptSubstationDetail")
@ApiOperation("按部门获变电站数,变电站在线数,在线率")
@ApiImplicitParams({
@ApiImplicitParam(name = "deviceInfoParam", value = "查询终端条件", required = true)
})
@Deprecated
public HttpResult<DeptSubstationDetailVO> getDeptSubstationDetail(@RequestBody @Validated DeviceInfoParam deviceInfoParam) {
String methodDescribe = getMethodDescribe("getDeptSubstationDetail");
DeptSubstationDetailVO deptSubstationDetail = generalDeviceService.getDeptSubstationDetail(deviceInfoParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, deptSubstationDetail, methodDescribe);
}
}

View File

@@ -57,6 +57,7 @@ public interface LineMapper extends BaseMapper<Line> {
/**
* 查询装置下的母线信息
*
* @param devId 设备id
* @date 2022/7/1
*/
@@ -117,7 +118,7 @@ public interface LineMapper extends BaseMapper<Line> {
List<Line> getDeviceById(@Param("devIds") List<String> devIds, @Param("deviceType") DeviceType deviceType);
List<TerminalBaseVO> getDeviceByIdOnOrOff(@Param("devIds") List<String> devIds, @Param("deviceType") DeviceType deviceType,@Param("comFlag")Integer comFlag);
List<TerminalBaseVO> getDeviceByIdOnOrOff(@Param("devIds") List<String> devIds, @Param("deviceType") DeviceType deviceType, @Param("comFlag") Integer comFlag);
List<LineDataVO> getLineDetail(@Param("ids") List<String> ids);
@@ -176,116 +177,133 @@ public interface LineMapper extends BaseMapper<Line> {
/**
* 获取所有在线投运的监测点限值
*
* @author cdf
* @date 2022/3/23
*/
List<Overlimit> getAllLineOverLimit(@Param("list")List<Integer> list);
List<Overlimit> getAllLineOverLimit(@Param("list") List<Integer> list);
/**
* 根据监测点集合查询基础信息
*
* @param lineIndex 监测点结合
* @return 基础信息
*/
List<BaseLineInfo> getBaseLineInfo(@Param("list")List<String> lineIndex);
List<BaseLineInfo> getBaseLineInfo(@Param("list") List<String> lineIndex);
/**
* 获取监测点区域详细信息(原基础上添加监测点区域经纬度信息)
*
* @param lineIndex 监测点结合
* @date 2022/6/29
*/
List<AreaLineInfoVO> getBaseLineAreaInfo(@Param("list")List<String> lineIndex,@Param("searchValue")String searchValue,@Param("comFlag")Integer comFlag);
List<AreaLineInfoVO> getBaseLineAreaInfo(@Param("list") List<String> lineIndex, @Param("searchValue") String searchValue, @Param("comFlag") Integer comFlag);
/**
* 返回监测点信息及通讯状态
*
* @param lineIndex 监测点集合
* @return 结果
*/
List<LineDeviceStateVO> getLineDeviceStateVO(@Param("list")List<String> lineIndex);
List<LineDeviceStateVO> getLineDeviceStateVO(@Param("list") List<String> lineIndex);
/**
* 获取变电站信息
* @param id 变电站id
*
* @param id 变电站id
* @return 结果
*/
PollutionSubstationDTO getSubstationInfo(@Param("id")String id);
PollutionSubstationDTO getSubstationInfo(@Param("id") String id);
/**
* 获取监测点信息
* @param list 监测点集合
*
* @param list 监测点集合
* @return 结果
*/
List<PollutionLineDTO> getLineInfo(@Param("list") List<String> list);
/**
* 获取监测点信息
* @param id 监测点id
*
* @param id 监测点id
* @return 结果
*/
LineDetailVO getLineSubGdDetail(@Param("id")String id);
LineDetailVO getLineSubGdDetail(@Param("id") String id);
/**
* 获取告警变电站信息
* @param list 变电站集合
*
* @param list 变电站集合
* @return 结果
*/
List<WarningSubstationDTO> getWarningSub(@Param("list") List<String> list);
/**
* 获取监测点信息
* @param list 变电站集合
*
* @param list 变电站集合
* @return 结果
*/
List<OverLimitLineDTO> getOverLimitLineInfo(@Param("list") List<String> list);
/**
* 获取监测点状态信息
* @param list 变电站集合
*
* @param list 变电站集合
* @return 结果
*/
LineStateVO getLineStatisticsDetail(@Param("list") List<String> list);
/**
* 获取监测点信息
* @param list 变电站集合
*
* @param list 变电站集合
* @return 结果
*/
List<LineStatisticsTableVO> getLineInfoByTableList(@Param("list") List<String> list);
/**
* 获取监测点信息
* @param list 变电站集合
*
* @param list 变电站集合
* @return 结果
*/
List<LineFlowMealDetailVO> getFlowLineInfoByTableList(@Param("list") List<String> list);
/**
* 获取监测点信息
* @param list 变电站集合
*
* @param list 变电站集合
* @return 结果
*/
List<LineStatisticsTableVO> getLineStatisticsTableData(@Param("list") List<String> list);
/**
* 监测点运行统计
* @param list 监测点集合
*
* @param list 监测点集合
* @param startTime 起始时间
* @param endTime 结束时间
* @param endTime 结束时间
* @return 结果
*/
List<LineFlowMealDetailVO> getLineRunStatistics(@Param("list") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime")DateTime endTime);
List<LineFlowMealDetailVO> getLineRunStatistics(@Param("list") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
/**
* 监测点运行统计
* @param list 监测点集合
*
* @param list 监测点集合
* @param startTime 起始时间
* @param endTime 结束时间
* @param endTime 结束时间
* @return 结果
*/
List<LineFlowMealDetailVO> getFlowLineRunStatistics(@Param("list") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime")DateTime endTime);
List<LineFlowMealDetailVO> getFlowLineRunStatistics(@Param("list") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
/**
* 获取生成limitRate表的监测点集合
*
* @return 监测点id集合
*/
List<String> getLineList();
@@ -293,6 +311,7 @@ public interface LineMapper extends BaseMapper<Line> {
/**
* 导出终端台账信息
*
* @author cdf
* @date 2022/5/17
*/
@@ -300,45 +319,51 @@ public interface LineMapper extends BaseMapper<Line> {
/**
* 根据监测点id获取终端id
*
* @param lineId 监测点id
* @return 结果
*/
String getDevIndex(@Param("lineId")String lineId);
String getDevIndex(@Param("lineId") String lineId);
/**
* 获取变电站下母线
*
* @param subId 变电站id
* @return 结果
* @author cdf
* @date 2022/7/4
* @return 结果
*/
List<Line> getVoltageListBySubId(@Param("subId")String subId,@Param("voltageName")List<String> voltageName);
List<Line> getVoltageListBySubId(@Param("subId") String subId, @Param("voltageName") List<String> voltageName);
/**
* 获取生成在线率的装置Id
*
* @return 装置Id
*/
List<String> getDeviceList();
/**
* 获取当前状态在线的监测点数量
*
* @return Integer 在线监测点数量
*/
Integer getOnLineCount(@Param("lineIds")List<String> lineIds);
Integer getOnLineCount(@Param("lineIds") List<String> lineIds);
/**
* 获取当前状态在线和离线的监测点
*
* @return 在线或离线监测点ids
*/
List<String> getOnOrUnLine(@Param("list")List<String> lineIds,@Param("comFlag")Integer comFlag);
/**
* @Description: 获取变电站id和监测点id用
* @Param: [devDataType]
* @return: java.util.List<com.njcn.device.pq.pojo.po.Line>
* @Author: clam
* @Date: 2022/10/20
*/
@Select ("SELECT\n" +
List<String> getOnOrUnLine(@Param("list") List<String> lineIds, @Param("comFlag") Integer comFlag);
/**
* @Description: 获取变电站id和监测点id用
* @Param: [devDataType]
* @return: java.util.List<com.njcn.device.pq.pojo.po.Line>
* @Author: clam
* @Date: 2022/10/20
*/
@Select("SELECT\n" +
"\tpq_line.Id,\n" +
"\tSUBSTRING_INDEX(\n" +
"\t\tSUBSTRING_INDEX(pq_line.Pids, ',', 4),\n" +
@@ -357,5 +382,30 @@ public interface LineMapper extends BaseMapper<Line> {
"\tpq_device.Dev_Data_Type = 2\n" +
"\tOR pq_device.Dev_Data_Type = #{devDataType}\n" +
") ")
List<Line> getLineBySubstationRelation(@Param("devDataType")Integer devDataType);
List<Line> getLineBySubstationRelation(@Param("devDataType") Integer devDataType);
@Select({"<script>",
"SELECT\n" +
"\tcount(1)\n",
"FROM\n",
"\t(\n",
"\t\tSELECT\n",
"\t\t\ta.pid,\n",
"\t\t\tmax(b.com_flag) temp\n",
"\t\tFROM\n",
"\t\t\tpq_line a\n",
"\t\tINNER JOIN pq_device b ON a.id = b.id\n",
"where a.Pid in",
"<foreach item='item' index='index' collection='items' open='(' separator=',' close=')'>",
"#{item}",
"</foreach>",
"\t\tGROUP BY\n",
"\t\t\ta.pid\n",
"\t) TEMPTABLE\n",
"WHERE\n",
"\tTEMPTABLE .temp > 0",
"</script>"
})
Integer queryOnlineSubstaion(@Param("items") List<String> deviceIds);
}

View File

@@ -0,0 +1,14 @@
package com.njcn.device.pq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.device.pq.pojo.po.PmsAbnormalRules;
/**
* PmsAbnormalRulesMapper
*
* @author qijian
* @date 2022/10/26
*/
public interface PmsAbnormalRulesMapper extends BaseMapper<PmsAbnormalRules> {
}

View File

@@ -0,0 +1,14 @@
package com.njcn.device.pq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.device.pq.pojo.po.RMpIntegrityD;
/**
* RMpIntegrityDMapper
*
* @author qijian
* @date 2022/10/26
*/
public interface RMpIntegrityDMapper extends BaseMapper<RMpIntegrityD> {
}

View File

@@ -0,0 +1,14 @@
package com.njcn.device.pq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.device.pq.pojo.po.RStatAbnormalD;
/**
* RStatAbnormalDMapper
*
* @author qijian
* @date 2022/10/26
*/
public interface RStatAbnormalDMapper extends BaseMapper<RStatAbnormalD> {
}

View File

@@ -0,0 +1,20 @@
package com.njcn.device.pq.service;
import com.njcn.device.pq.pojo.param.AlgorithmSearchParam;
/**
* 数据是否异常
*
* @author qijian
* @version 1.0.0
* @createTime 2022/10/26 - 10:09
*/
public interface DataExceptionService {
/**
* 监测点数据是否异常
* @author qijian
* @date 2022/10/26
*/
boolean lineDataException(AlgorithmSearchParam algorithmSearchParam);
}

View File

@@ -0,0 +1,20 @@
package com.njcn.device.pq.service;
import com.njcn.device.pq.pojo.param.AlgorithmSearchParam;
/**
* 数据完整率算法
*
* @author qijian
* @version 1.0.0
* @createTime 2022/10/26 - 10:09
*/
public interface DataIntegrityRateService {
/**
* 监测点日数据完整率
* @author qijian
* @date 2022/10/26
*/
boolean lineDataIntegrityRate(AlgorithmSearchParam algorithmSearchParam);
}

View File

@@ -0,0 +1,201 @@
package com.njcn.device.pq.service.impl;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
import com.njcn.device.pq.service.DataExceptionService;
import com.njcn.influxdb.config.InfluxDbConfig;
import com.njcn.influxdb.param.InfluxDBPublicParam;
import com.njcn.influxdb.param.InfluxDBSqlConstant;
import com.njcn.influxdb.param.InfluxDBTableConstant;
import com.njcn.influxdb.utils.InfluxDbUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.influxdb.dto.QueryResult;
import org.influxdb.impl.InfluxDBResultMapper;
import org.springframework.stereotype.Service;
import com.njcn.device.pq.constant.Param;
import com.njcn.device.pq.enums.DeviceResponseEnum;
import com.njcn.device.pq.mapper.PmsAbnormalRulesMapper;
import com.njcn.device.pq.mapper.RStatAbnormalDMapper;
import com.njcn.device.pq.pojo.param.AlgorithmSearchParam;
import com.njcn.device.pq.pojo.po.DataV;
import com.njcn.device.pq.pojo.po.PmsAbnormalRules;
import com.njcn.device.pq.pojo.po.RStatAbnormalD;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* 数据是否异常
*
* @author qijian
* @version 1.0.0
* @createTime 2022/10/26 - 10:09
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class DataExceptionServiceImpl implements DataExceptionService {
private final InfluxDbUtils influxDbUtils;
private final LineFeignClient lineFeignClient;
private final PmsAbnormalRulesMapper pmsAbnormalRulesMapper;
private final RStatAbnormalDMapper rStatAbnormalDMapper;
@Resource
private InfluxDbConfig influxDbConfig;
/**
* 监测点数据是否异常
* @author qijian
* @date 2022/10/26
*/
@Override
public boolean lineDataException(AlgorithmSearchParam algorithmSearchParam) {
//测试
// InfluxDbUtils influxDBUtil = new InfluxDbUtils("admin", "njcnpqs", "http://192.168.1.18:8086", "pqsbase", "");
//初始化
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
String searchSql;
String sql;
QueryResult query;
DataV dataV;
Date date = DateUtil.parse(algorithmSearchParam.getDatadate());
String lineId = algorithmSearchParam.getId();
Integer type = algorithmSearchParam.getType();
//入库数据初始化
RStatAbnormalD rStatAbnormalD = new RStatAbnormalD();
rStatAbnormalD.setDataDate(date);
rStatAbnormalD.setMeasurementPointId(lineId);
rStatAbnormalD.setValueAlarm(0);
//1、取出规则
List<PmsAbnormalRules> pmsAbnormalRules = pmsAbnormalRulesMapper.selectList(null);
//2、取出电压
List<String> lineIds = new ArrayList<>();
lineIds.add(lineId);
List<LineDetailDataVO> lineDetailList = lineFeignClient.getLineDetailList(lineIds).getData();
if (lineDetailList.size() == 0){
throw new BusinessException(DeviceResponseEnum.ALGORITHM_LINE_EMPTY);
}
String scale = lineDetailList.get(0).getScale().replace("kV","");
//3、根据规则表进行判断
//取前四项进行比较相别为A
searchSql = "MAX(freq) as freq_max,MIN(freq) as freq_min,MAX(rms) as rms_max,MIN(rms) as rms_min,MAX(rms_lvr) as rms_lvr_max,MIN(rms_lvr) as rms_lvr_min,MAX(v_thd) as v_thd_max,MIN(v_thd) as v_thd_min ";
sql = getAppend(lineId, date, type, searchSql, "A");
query = influxDbUtils.query(sql);
dataV = resultMapper.toPOJO(query, DataV.class).get(0);
//开始判断业务
DeviceResponseEnum harmonicResponseEnum = null;
for (PmsAbnormalRules pmsAbnormalRule : pmsAbnormalRules) {
//每项数据进行上下限比较MAX和MIN若有一项不在数据范围内则为异常
switch (pmsAbnormalRule.getTarget()) {
case Param.TARGET_FREQ:
//频率:正常比较
if (dataV.getFrepMIN() < pmsAbnormalRule.getLowerLimit() || dataV.getFrepMAX() > pmsAbnormalRule.getUpperLimit()){
harmonicResponseEnum = DeviceResponseEnum.ALGORITHM_FREP_RULE;
}
break;
case Param.TARGET_RMS:
//相电压有效值特殊处理在【0.85p.u.1.2p.u.】之间p.u=电压等级/1.732
pmsAbnormalRule.setLowerLimit((pmsAbnormalRule.getLowerLimit() * (Double.parseDouble(scale) / 1.732)));
pmsAbnormalRule.setUpperLimit((pmsAbnormalRule.getUpperLimit() * (Double.parseDouble(scale) / 1.732)));
if (dataV.getRmsMIN() < pmsAbnormalRule.getLowerLimit() || dataV.getRmsMAX() > pmsAbnormalRule.getUpperLimit()){
harmonicResponseEnum = DeviceResponseEnum.ALGORITHM_RMS_RULE;
}
break;
case Param.TARGET_RMS_LVR:
//线电压有效值特殊处理在【0.85p.u.1.2p.u.】之间p.u=电压等级
pmsAbnormalRule.setLowerLimit((pmsAbnormalRule.getLowerLimit() * Double.parseDouble(scale)));
pmsAbnormalRule.setUpperLimit((pmsAbnormalRule.getUpperLimit() * Double.parseDouble(scale)));
if (dataV.getRmsLvrMIN() < pmsAbnormalRule.getLowerLimit() || dataV.getRmsLvrMAX() > pmsAbnormalRule.getUpperLimit()){
harmonicResponseEnum = DeviceResponseEnum.ALGORITHM_RMS_LVR_RULE;
}
break;
case Param.TARGET_V_THD:
//电压总谐波畸变率:正常比较
if (dataV.getVThdMIN() < pmsAbnormalRule.getLowerLimit() || dataV.getVThdMAX() > pmsAbnormalRule.getUpperLimit()){
harmonicResponseEnum = DeviceResponseEnum.ALGORITHM_V_THD_RULE;
}
break;
case Param.TARGET_V_UNBALANCE:
//三相不平衡度正常比较相别为T
searchSql = "MAX(v_unbalance) as v_unbalance_max,MIN(v_unbalance) as v_unbalance_min ";
sql = getAppend(lineId, date,type, searchSql, "T");
query = influxDbUtils.query(sql);
dataV = resultMapper.toPOJO(query, DataV.class).get(0);
if (dataV.getVUnbalanceMIN() < pmsAbnormalRule.getLowerLimit() || dataV.getVUnbalanceMAX() > pmsAbnormalRule.getUpperLimit()){
harmonicResponseEnum = DeviceResponseEnum.ALGORITHM_V_UNBALANCE_RULE;
}
break;
default:
break;
}
if (harmonicResponseEnum != null){
//入库
LambdaQueryWrapper<RStatAbnormalD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(RStatAbnormalD::getMeasurementPointId, lineId).eq(RStatAbnormalD::getDataDate, date);
RStatAbnormalD rStatAbnormalDOne = rStatAbnormalDMapper.selectOne(lambdaQueryWrapper);
if (Objects.isNull(rStatAbnormalDOne)){
rStatAbnormalDMapper.insert(rStatAbnormalD);
}
throw new BusinessException(harmonicResponseEnum);
}
}
return true;
}
/**
* 拼装sql
* @param id,date,searchSql,tableName 参数
* @return 结果
*/
private String getAppend(String id, Date date, Integer type, String searchSql,String phase) {
StringBuilder stringBuilder = new StringBuilder();
//日期处理
DateTime startTime = null;
DateTime endTime = null;
if (Param.YEAR.equals(type)){
startTime = DateUtil.beginOfYear(date);
endTime = DateUtil.endOfYear(date);
}else if(Param.MONTH.equals(type)){
startTime = DateUtil.beginOfMonth(date);
endTime = DateUtil.endOfMonth(date);
}else if(Param.DAY.equals(type)){
startTime = DateUtil.beginOfDay(date);
endTime = DateUtil.endOfDay(date);
}
//拼接
stringBuilder.append(InfluxDBSqlConstant.SELECT).append(searchSql)
.append(InfluxDBSqlConstant.FROM).append(InfluxDBPublicParam.DATA_V)
.append(InfluxDBSqlConstant.WHERE).append(InfluxDBPublicParam.TIME).append(InfluxDBSqlConstant.GE).append(InfluxDBSqlConstant.QM).append(startTime).append(InfluxDBSqlConstant.QM)
.append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.TIME).append(InfluxDBSqlConstant.LE).append(InfluxDBSqlConstant.QM).append(endTime).append(InfluxDBSqlConstant.QM)
.append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.LINE_ID).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(id).append(InfluxDBSqlConstant.QM)
.append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.VALUE_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(InfluxDBTableConstant.AVG).append(InfluxDBSqlConstant.QM);
if (InfluxDBTableConstant.PHASE_TYPE_T.equals(phase)){
stringBuilder.append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.PHASIC_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(InfluxDBTableConstant.PHASE_TYPE_T).append(InfluxDBSqlConstant.QM);
}else{
stringBuilder.append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.PHASIC_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(InfluxDBTableConstant.PHASE_TYPE_A).append(InfluxDBSqlConstant.QM);
}
return stringBuilder.toString();
}
}

View File

@@ -0,0 +1,193 @@
package com.njcn.device.pq.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.mapper.RMpIntegrityDMapper;
import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
import com.njcn.influxdb.config.InfluxDbConfig;
import com.njcn.influxdb.param.InfluxDBPublicParam;
import com.njcn.influxdb.param.InfluxDBSqlConstant;
import com.njcn.influxdb.param.InfluxDBTableConstant;
import com.njcn.influxdb.utils.InfluxDbUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.influxdb.dto.QueryResult;
import org.springframework.stereotype.Service;
import com.njcn.device.pq.enums.DeviceResponseEnum;
import com.njcn.device.pq.pojo.param.AlgorithmSearchParam;
import com.njcn.device.pq.pojo.po.RMpIntegrityD;
import com.njcn.device.pq.service.DataIntegrityRateService;
import javax.annotation.Resource;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* 数据完整率算法
*
* @author qijian
* @version 1.0.0
* @createTime 2022/10/26 - 10:09
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class DataIntegrityRateServiceImpl implements DataIntegrityRateService {
private final InfluxDbUtils influxDbUtils;
private final RMpIntegrityDMapper rMpIntegrityDMapper;
private final LineFeignClient lineFeignClient;
@Resource
private InfluxDbConfig influxDbConfig;
/**
* 监测点日数据完整率
* @author qijian
* @date 2022/10/26
*/
@Override
public boolean lineDataIntegrityRate(AlgorithmSearchParam algorithmSearchParam) {
//测试
// InfluxDbUtils influxDBUtil = new InfluxDbUtils("admin", "njcnpqs", "http://192.168.1.18:8086", "pqsbase", "");
//初始化
String searchSql;
String tableName;
String sql;
QueryResult query;
QueryResult.Series series;
List<String> columns;
List<List<Object>> values;
RMpIntegrityD rMpIntegrityD = new RMpIntegrityD();
Date date = DateUtil.parse(algorithmSearchParam.getDatadate());
//1、有效接入分钟数量根据监测点编号获取统计间隔1440 / 统计间隔 = 有效接入分钟数量
List<String> lineIds = new ArrayList<>();
lineIds.add(algorithmSearchParam.getId());
List<LineDetailDataVO> lineDetailList = lineFeignClient.getLineDetailList(lineIds).getData();
if (lineDetailList.size() == 0){
throw new BusinessException(DeviceResponseEnum.ALGORITHM_LINE_EMPTY);
}
Integer effectiveMinuteCount = 1440 / lineDetailList.get(0).getTimeInterval();
rMpIntegrityD.setEffectiveMinuteCount(effectiveMinuteCount);
//2、根据data_v表获取五项稳态指标日数量count
searchSql = "count(freq) as freqCount,count(rms) as phaseVoltageCount,count(rms_lvr) as lineVoltageCount,count(v_thd) as vThdCount,count(v_unbalance) as unbalanceCount ";
tableName = InfluxDBPublicParam.DATA_V;
sql = getAppend(algorithmSearchParam.getId(), date, searchSql, tableName);
query = influxDbUtils.query(sql);
series = getSeries(query);
if (Objects.nonNull(series.getColumns())){
columns = series.getColumns();
values = series.getValues();
for (List<Object> columnValue : values) {
for (int i = 0; i < columnValue.size(); i++) {
if (columns.get(i).equals("freqCount")) {
rMpIntegrityD.setFreqCount(Integer.parseInt(convertDoubleToString(columnValue.get(i))));
}else if (columns.get(i).equals("phaseVoltageCount")) {
rMpIntegrityD.setPhaseVoltageCount(Integer.parseInt(convertDoubleToString(columnValue.get(i))));
}else if (columns.get(i).equals("lineVoltageCount")) {
rMpIntegrityD.setLineVoltageCount(Integer.parseInt(convertDoubleToString(columnValue.get(i))));
}else if (columns.get(i).equals("vThdCount")) {
rMpIntegrityD.setVThdCount(Integer.parseInt(convertDoubleToString(columnValue.get(i))));
}else if (columns.get(i).equals("unbalanceCount")) {
rMpIntegrityD.setUnbalanceCount(Integer.parseInt(convertDoubleToString(columnValue.get(i))));
}
}
}
}
//3、根据day_flicker表获取两项闪变指标数量count
searchSql = "count(pst) as pstCount,count(plt) as pltCount ";
tableName = InfluxDBPublicParam.DATA_FLICKER;
sql = getAppend(algorithmSearchParam.getId(), date, searchSql, tableName);
query = influxDbUtils.query(sql);
series = getSeries(query);
if (Objects.nonNull(series.getColumns())){
columns = series.getColumns();
values = series.getValues();
for (List<Object> columnValue : values) {
for (int i = 0; i < columnValue.size(); i++) {
if (columns.get(i).equals("pstCount")) {
rMpIntegrityD.setPstCount(Integer.parseInt(convertDoubleToString(columnValue.get(i))));
}else if (columns.get(i).equals("pltCount")) {
rMpIntegrityD.setPltCount(Integer.parseInt(convertDoubleToString(columnValue.get(i))));
}
}
}
}
//4、存库
LambdaQueryWrapper<RMpIntegrityD> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(RMpIntegrityD::getMeasurementPointId, algorithmSearchParam.getId()).eq(RMpIntegrityD::getDataDate, date);
RMpIntegrityD rMpIntegrityDOne = rMpIntegrityDMapper.selectOne(lambdaQueryWrapper);
if (Objects.nonNull(rMpIntegrityDOne)){
rMpIntegrityDMapper.update(rMpIntegrityD,lambdaQueryWrapper);
}else{
rMpIntegrityD.setMeasurementPointId(algorithmSearchParam.getId());
rMpIntegrityD.setDataDate(date);
rMpIntegrityDMapper.insert(rMpIntegrityD);
}
return true;
}
/**
* Double转String
* @param val 参数
* @return 结果
*/
private String convertDoubleToString(Object val) {
DecimalFormat decimalFormat = new DecimalFormat("###################.###########");
return decimalFormat.format(val);
}
/**
* 取series
* @param query 参数
* @return 结果
*/
private QueryResult.Series getSeries(QueryResult query) {
QueryResult.Series series = new QueryResult.Series();
List<QueryResult.Result> results = query.getResults();
if (results.size() != 0) {
QueryResult.Result result = results.get(0);
if (result.getSeries() != null){
List<QueryResult.Series> seriess = result.getSeries();
if (seriess.size() != 0) {
series = seriess.get(0);
}
}
}
return series;
}
/**
* 拼装sql
* @param id,date,searchSql,tableName 参数
* @return 结果
*/
private String getAppend(String id, Date date, String searchSql,String tableName) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(InfluxDBSqlConstant.SELECT).append(searchSql)
.append(InfluxDBSqlConstant.FROM).append(tableName)
.append(InfluxDBSqlConstant.WHERE).append(InfluxDBPublicParam.TIME).append(InfluxDBSqlConstant.GE).append(InfluxDBSqlConstant.QM).append(DateUtil.beginOfDay(date)).append(InfluxDBSqlConstant.QM)
.append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.TIME).append(InfluxDBSqlConstant.LE).append(InfluxDBSqlConstant.QM).append(DateUtil.endOfDay(date)).append(InfluxDBSqlConstant.QM)
.append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.LINE_ID).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(id).append(InfluxDBSqlConstant.QM)
.append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.PHASIC_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(InfluxDBTableConstant.PHASE_TYPE_A).append(InfluxDBSqlConstant.QM);
if (InfluxDBPublicParam.DATA_V.equals(tableName)){
stringBuilder.append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.VALUE_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(InfluxDBTableConstant.AVG).append(InfluxDBSqlConstant.QM);
}
return stringBuilder.toString();
}
}

View File

@@ -16,6 +16,9 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.po.DeptLine;
import com.njcn.device.pq.pojo.po.Device;
import com.njcn.device.pq.pojo.po.Line;
import com.njcn.device.pq.pojo.po.Substation;
import com.njcn.device.pq.pojo.vo.DeptDeviceDetailVO;
import com.njcn.device.pq.pojo.vo.DeptSubstationDetailVO;
import com.njcn.device.pq.pojo.vo.ExceptionDeviceInfoVO;
import com.njcn.device.pq.service.DeptLineService;
import com.njcn.device.pq.service.TerminalBaseService;
@@ -32,6 +35,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -61,7 +65,7 @@ public class GeneralDeviceService {
private final RedisUtil redisUtil;
private final DeviceMapper deviceMapper;
private final LineMapper lineMapper;
@@ -627,4 +631,52 @@ public class GeneralDeviceService {
return exceptionDeviceInfoVOS;
}
/**
* @Description: getDeptDeviceDetail
* @Param: [deviceInfoParam]
* @return: com.njcn.device.pq.pojo.vo.DeptDeviceDetailVO
* @Author: clam
* @Date: 2022/11/4
*/
public DeptDeviceDetailVO getDeptDeviceDetail(DeviceInfoParam deviceInfoParam) {
DeptDeviceDetailVO deptDeviceDetailVO =new DeptDeviceDetailVO();
/*总数*/
List<GeneralDeviceDTO> deptDeviceInfos = this.getDeviceInfoAsDept(deviceInfoParam, null, Stream.of(1).collect(Collectors.toList()));
List<String> DeviceIds = deptDeviceInfos.stream ( ).map (GeneralDeviceDTO::getDeviceIndexes).flatMap (Collection::stream).collect (Collectors.toList ( ));
Integer deviceCount = DeviceIds.size ();
/*实际运行*/
QueryWrapper<Device> query = new QueryWrapper<> ();
query.in ("Id",DeviceIds).
eq ("Com_Flag",1);
Integer runDeviceCount = deviceMapper.selectCount (query);
BigDecimal rate = BigDecimal.valueOf (runDeviceCount).divide ( BigDecimal.valueOf (deviceCount),2,BigDecimal.ROUND_HALF_UP);
deptDeviceDetailVO.setDeviceCount (deviceCount);
deptDeviceDetailVO.setRunDeviceCount (runDeviceCount);
deptDeviceDetailVO.setOnLineRate (rate);
return deptDeviceDetailVO;
}
public DeptSubstationDetailVO getDeptSubstationDetail(DeviceInfoParam deviceInfoParam) {
DeptSubstationDetailVO deptSubstationDetailVO = new DeptSubstationDetailVO ();
List<GeneralDeviceDTO> deptDeviceInfos = this.getDeviceInfoAsDept(deviceInfoParam, null, Stream.of(1).collect(Collectors.toList()));
List<String> DeviceIds = deptDeviceInfos.stream ( ).map (GeneralDeviceDTO::getSubIndexes).flatMap (Collection::stream).collect (Collectors.toList ( ));
Integer substationCount = DeviceIds.size ();
Integer count =lineMapper.queryOnlineSubstaion(DeviceIds);
deptSubstationDetailVO.setSubstationCount (substationCount);
deptSubstationDetailVO.setRunsubstationCount (count);
BigDecimal rate = BigDecimal.valueOf (count).divide ( BigDecimal.valueOf (substationCount),2,BigDecimal.ROUND_HALF_UP);
deptSubstationDetailVO.setOnLineRate (rate);
return deptSubstationDetailVO;
}
}

View File

@@ -119,8 +119,13 @@ public class TerminalTreeServiceImpl implements TerminalTreeService {
List<TerminalTree> subList = treeMapper.getSubList(generalDeviceDTO.getSubIndexes());
// 通过监测点索引查询监测点信息
List<TerminalTree> lineList = treeMapper.getLineList(generalDeviceDTO.getLineIndexes());
//处理变电站
dealChildrenData(subList, lineList, true);
//监测点前面加序号,后面不需要删除下面两行就行
//Integer[] arr = {1};
//subList.forEach(item->item.getChildren().forEach(it->it.setName((arr[0]++ +"_"+it.getName()))));
//处理供电公司
dealChildrenData(gdList, subList, false);

View File

@@ -0,0 +1,22 @@
package com.njcn.event.pojo.param;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @Title EventMonitorReportParam
* @Package com.njcn.event.pojo.param
* @Author jianghaifei
* @Date 2022-10-25 09:48
* @Version V1.0
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class EventMonitorReportParam extends StatisticsBizBaseParam {
@ApiModelProperty(name = "monitorName", value = "监测点名称")
private String monitorName; //监测点名称
}

View File

@@ -0,0 +1,26 @@
package com.njcn.event.pojo.param;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.List;
/**
* @author yzh
* @date 2022/10/28
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class PwUniversalFrontEndParam extends StatisticsBizBaseParam implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 监测点类别
*/
@ApiModelProperty(name = "monitorSort", value = "监测点类别")
private List<String> monitorSort;
}

View File

@@ -0,0 +1,28 @@
package com.njcn.event.pojo.param;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* <功能描述>
*
* @author 1754607820@qq.com
* @createTime: 2022-10-11
*/
@Data
public class REventMParam extends StatisticsBizBaseParam {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "干扰源名称",required = true)
@NotBlank(message = "干扰源类型名称不为空")
private String monitorID;
@ApiModelProperty(value = "指标类型名称",required = true)
@NotBlank(message = "指标类型名称不为空")
private String stasisID;
}

View File

@@ -0,0 +1,20 @@
package com.njcn.event.pojo.param;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <功能描述>
*
* @author 1754607820@qq.com
* @createTime: 2022-10-18
*/
@Data
public class StatSubstationBizBaseParam extends StatisticsBizBaseParam {
@ApiModelProperty(value = "变电站id",required = true)
List<String> ids;
}

View File

@@ -9,7 +9,7 @@ import java.io.Serializable;
import java.util.List;
/**
* 拓展前端参数
* 拓展条件参数
*
* @author yzh
* @date 2022/10/8
@@ -21,29 +21,17 @@ public class UniversalFrontEndParam extends StatisticsBizBaseParam implements Se
private static final long serialVersionUID = 1L;
/**
* 电压等级
*/
@ApiModelProperty(name = "voltageLevel", value = "电压等级", required = true)
private List<String> voltageLevel;
/**
* 监测点名称
*/
@ApiModelProperty(name = "measurementPointId", value = "监测点名称")
private String measurementPointId;
/**
* 暂态指标类型
*/
@ApiModelProperty(name = "typeOfTransientIndicators", value = "暂态指标类型")
private String typeOfTransientIndicators;
@ApiModelProperty(name = "eventType", value = "暂态指标类型")
private List<String> eventType;
/**
* 监测点类别
*/
@ApiModelProperty(name = "measurementPointCategory", value = "监测点类别")
private String measurementPointCategory;
@ApiModelProperty(name = "monitorSort", value = "监测点类别")
private List<String> monitorSort;
/**
* 变电站名称
@@ -51,5 +39,17 @@ public class UniversalFrontEndParam extends StatisticsBizBaseParam implements Se
@ApiModelProperty(name = "subName", value = "变电站名称")
private String subName;
/**
* 电压等级
*/
@ApiModelProperty(name = "voltageLevel", value = "电压等级")
private List<String> voltageLevel;
/**
* 监测点名称"
*/
@ApiModelProperty(name = "monitorName",value = "监测点名称")
private String monitorName;
}

View File

@@ -0,0 +1,59 @@
package com.njcn.event.pojo.po;
import lombok.Data;
import java.io.Serializable;
/**
* 暂态指标分布统计实体类
*
* @author yzh
* @date 2022/10/20
*/
@Data
public class EventDistributionStatisticsPO implements Serializable {
private static final long serialVersionUID = 1L;
private int featureAmplitude10with20s;
private int featureAmplitude10with100s;
private int featureAmplitude10with500s;
private int featureAmplitude10with1000s;
private int featureAmplitude10with3000s;
private int featureAmplitude10with20000s;
private int featureAmplitude10with60000s;
private int featureAmplitude10with180000s;
private int featureAmplitude40with20s;
private int featureAmplitude40with100s;
private int featureAmplitude40with500s;
private int featureAmplitude40with1000s;
private int featureAmplitude40with3000s;
private int featureAmplitude40with20000s;
private int featureAmplitude40with60000s;
private int featureAmplitude40with180000s;
private int featureAmplitude70with20s;
private int featureAmplitude70with100s;
private int featureAmplitude70with500s;
private int featureAmplitude70with1000s;
private int featureAmplitude70with3000s;
private int featureAmplitude70with20000s;
private int featureAmplitude70with60000s;
private int featureAmplitude70with180000s;
private int featureAmplitude85with20s;
private int featureAmplitude85with100s;
private int featureAmplitude85with500s;
private int featureAmplitude85with1000s;
private int featureAmplitude85with3000s;
private int featureAmplitude85with20000s;
private int featureAmplitude85with60000s;
private int featureAmplitude85with180000s;
private int featureAmplitude90with20s;
private int featureAmplitude90with100s;
private int featureAmplitude90with500s;
private int featureAmplitude90with1000s;
private int featureAmplitude90with3000s;
private int featureAmplitude90with20000s;
private int featureAmplitude90with60000s;
private int featureAmplitude90with180000s;
}

View File

@@ -0,0 +1,51 @@
package com.njcn.event.pojo.po;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 持续时间折线图返回前端实体类
*
* @author yzh
* @date 2022/10/21
*/
@Data
@ApiModel("暂态持续时间折线图实体类")
public class EventDurationLineChartPO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 持续时间100s
*/
@ApiModelProperty(name = "duration100", value = "持续时间100s")
private Double duration100;
/**
* 持续时间250s
*/
@ApiModelProperty(name = "duration250", value = "持续时间250s")
private Double duration250;
/**
* 持续时间500s
*/
@ApiModelProperty(name = "duration500", value = "持续时间500s")
private Double duration500;
/**
* 持续时间1000s
*/
@ApiModelProperty(name = "duration1000", value = "持续时间1000s")
private Double duration1000;
/**
* 持续时间1100s
*/
@ApiModelProperty(name = "duration1100", value = "持续时间1100s")
private Double duration1100;
}

View File

@@ -0,0 +1,76 @@
package com.njcn.event.pojo.po;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 暂态特征幅值折线图实体类
*
* @author yzh
* @date 2022/10/21
*/
@Data
@ApiModel("暂态特征幅值折线图实体类")
public class EventFeatureAmplitudeLineChartPO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 特征幅值10
*/
@ApiModelProperty(name = "featureAmplitude10",value = "特征幅值10")
private Double featureAmplitude10;
/**
* 特征幅值20
*/
@ApiModelProperty(name = "featureAmplitude20",value = "特征幅值20")
private Double featureAmplitude20;
/**
* 特征幅值30
*/
@ApiModelProperty(name = "featureAmplitude30",value = "特征幅值30")
private Double featureAmplitude30;
/**
* 特征幅值40
*/
@ApiModelProperty(name = "featureAmplitude40",value = "特征幅值40")
private Double featureAmplitude40;
/**
* 特征幅值50
*/
@ApiModelProperty(name = "featureAmplitude50",value = "特征幅值50")
private Double featureAmplitude50;
/**
* 特征幅值60
*/
@ApiModelProperty(name = "featureAmplitude60",value = "特征幅值60")
private Double featureAmplitude60;
/**
* 特征幅值70
*/
@ApiModelProperty(name = "featureAmplitude70",value = "特征幅值70")
private Double featureAmplitude70;
/**
* 特征幅值80
*/
@ApiModelProperty(name = "featureAmplitude80",value = "特征幅值80")
private Double featureAmplitude80;
/**
* 特征幅值90
*/
@ApiModelProperty(name = "featureAmplitude90",value = "特征幅值90")
private Double featureAmplitude90;
}

View File

@@ -0,0 +1,56 @@
package com.njcn.event.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDate;
/**
* <p>
*
* </p>
*
* @author rui.wu
* @since 2022-10-12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("r_stat_event_d")
@ApiModel(value="RStatEventD对象", description="")
public class RStatEventD implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "单位ID")
@TableId(value = "org_no", type = IdType.ASSIGN_ID)
private String orgNo;
@ApiModelProperty(value = "生成数据的时间,每日统计一次")
private LocalDate dataDate;
@ApiModelProperty(value = "监测点类别ID、监测对象类型ID")
private String measurementTypeClass;
@ApiModelProperty(value = "暂态指标类型Id字典表ID")
private String eventType;
@ApiModelProperty(value = "发生暂态监测点数(监测点暂态指标超标明细日表)")
private Integer eventMeasurement;
@ApiModelProperty(value = "发生暂态监测点数占比(此表的发生暂态监测点数/区域统计表中的区域分类统计日表中的发生暂态的监测点数)")
private Float eventMeasurementRatio;
@ApiModelProperty(value = "暂态指标发生次数(监测点暂态指标超标明细日表)")
private Integer eventCount;
@ApiModelProperty(value = "数据类型,字典表01主网测点 02配网测点")
private String dataType;
}

View File

@@ -0,0 +1,65 @@
package com.njcn.event.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDate;
/**
* <p>
*
* </p>
*
* @author rui.wu
* @since 2022-10-11
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("r_stat_event_m")
@ApiModel(value="RStatEventM对象", description="")
public class RStatEventM implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "单位ID")
@TableId(value = "org_no", type = IdType.ASSIGN_ID)
private String orgNo;
@ApiModelProperty(value = "生成数据的时间,每月统计一次")
private LocalDate dataDate;
@ApiModelProperty(value = "监测点类别ID、监测对象类型ID")
private String measurementTypeClass;
@ApiModelProperty(value = "暂态指标类型Id字典表ID")
private String eventType;
@ApiModelProperty(value = "日均发生暂态监测点数(根据 发生暂态监测点数 取平均值)")
private Integer eventMeasurementAverage;
@ApiModelProperty(value = "累计发生暂态监测点数(监测点暂态指标超标明细日表)")
private Integer eventMeasurementAccrued;
@ApiModelProperty(value = "暂态指标发生频次(日表的暂态指标发生次数之和/日表的发生暂态监测点数之和)")
private Float eventFreq;
@ApiModelProperty(value = "暂态指标发生次数(日表的暂态指标发生次数之和)")
private Integer eventCount;
@ApiModelProperty(value = "日均发生暂态监测点数占比(根据 日均发生暂态监测点数占比 取平均值)")
private Float eventMeasurementRatioAverage;
@ApiModelProperty(value = "累计发生暂态监测点数占比(此表的累计发生暂态监测点数/区域统计表中的区域分类统计月表中的发生暂态的监测点数)")
private Float eventMeasurementRatioAccrued;
@ApiModelProperty(value = "数据类型,字典表01主网测点 02配网测点")
private String dataType;
}

View File

@@ -0,0 +1,62 @@
package com.njcn.event.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDate;
/**
* <p>
*
* </p>
*
* @author rui.wu
* @since 2022-10-11
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("r_stat_event_org_m")
@ApiModel(value="RStatEventOrgM对象", description="")
public class RStatEventOrgM implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "单位ID")
@TableId(value = "org_no", type = IdType.ASSIGN_ID)
private String orgNo;
@ApiModelProperty(value = "生成数据的时间,每月统计一次")
private LocalDate dataDate;
@ApiModelProperty(value = "稳态指标类型Id字典表ID")
private String eventType;
@ApiModelProperty(value = "日均发生暂态监测点数(根据 发生暂态监测点数 取平均值)")
private Integer eventMeasurementAverage;
@ApiModelProperty(value = "累计发生暂态监测点数(监测点暂态指标超标明细日表)")
private Integer eventMeasurementAccrued;
@ApiModelProperty(value = "暂态指标发生频次(日表的暂态指标发生次数之和/日表的发生暂态监测点数之和)")
private Float eventFreq;
@ApiModelProperty(value = "暂态指标发生次数(日表的暂态指标发生次数之和)")
private Integer eventCount;
@ApiModelProperty(value = "日均发生暂态监测点数占比(根据 日均发生暂态监测点数占比 取平均值)")
private Float eventMeasurementRatioAverage;
@ApiModelProperty(value = "累计发生暂态监测点数占比(此表的累计发生暂态监测点数/区域统计表中的区域分类统计月表中的发生暂态的监测点数)")
private Float eventMeasurementRatioAccrued;
@ApiModelProperty(value = "数据类型,字典表01主网测点 02配网测点")
private String dataType;
}

View File

@@ -21,61 +21,101 @@ public class RStatEventOrgPO implements Serializable {
/**
* 单位ID
*/
@ApiModelProperty(name = "orgNo",value = "单位ID")
@ApiModelProperty(name = "orgNo", value = "单位ID")
private String orgNo;
/**
* 生成数据的时间,每年统计一次
*/
@ApiModelProperty(name = "dataDate",value = "生成数据的时间,每年统计一次")
@ApiModelProperty(name = "dataDate", value = "生成数据的时间,每年统计一次")
private Date dataDate;
/**
* 稳态指标类型Id字典表ID
* 监测点类别
*/
@ApiModelProperty(name = "eventType",value = "稳态指标类型Id字典表ID")
@ApiModelProperty(name = "measurementTypeClass",value = "监测点类别")
private String measurementTypeClass;
/**
* 日均有效接入监测点数
*/
@ApiModelProperty(name = "effectiveMeasurementAverage", value = "日均有效接入监测点数")
private Integer effectiveMeasurementAverage;
/**
* 累计有效接入监测点数
*/
@ApiModelProperty(name = "effectiveMeasurementAccrued", value = "累计有效接入监测点数")
private Integer effectiveMeasurementAccrued;
/**
* 日均监测到暂态指标的监测点数
*/
@ApiModelProperty(name = "eventMeasurementAverage", value = "日均监测到暂态指标的监测点数")
private Integer eventMeasurementAverage;
/**
* 累计监测到暂态指标的监测点数
*/
@ApiModelProperty(name = "eventMeasurementAccrued", value = "累计监测到暂态指标的监测点数")
private Integer eventMeasurementAccrued;
/**
* 暂态指标发生次数
*/
@ApiModelProperty(name = "eventCount",value = "暂态指标发生次数")
private Integer eventCount;
/**
* 暂态指标发生频次
*/
@ApiModelProperty(name = "eventFreq",value = "暂态指标发生频次")
private Double eventFreq;
/**
* 暂态指标类型Id字典表ID
*/
@ApiModelProperty(name = "eventType", value = "暂态指标类型Id字典表ID")
private String eventType;
/**
* 日均发生暂态监测点数(根据 发生暂态监测点数 取平均值)
*/
@ApiModelProperty(name = "eventMeasurementAverage",value = "日均发生暂态监测点数(根据 发生暂态监测点数 取平均值)")
private Integer eventMeasurementAverage;
@ApiModelProperty(name = "eEventMeasurementAverage", value = "日均发生暂态监测点数(根据 发生暂态监测点数 取平均值)")
private Integer eEventMeasurementAverage;
/**
* 累计发生暂态监测点数(监测点暂态指标超标明细日表
*/
@ApiModelProperty(name = "eventMeasurementAccrued",value = "累计发生暂态监测点数(监测点暂态指标超标明细日表)")
private Integer eventMeasurementAccrued;
/**
* 暂态指标发生频次(日表的暂态指标发生次数之和/日表的发生暂态监测点数之和)
*/
@ApiModelProperty(name = "eventFreq",value = "暂态指标发生频次(日表的暂态指标发生次数之和/日表的发生暂态监测点数之和)")
private Double eventFreq;
/**
* 暂态指标发生次数(日表的暂态指标发生次数之和)
*/
@ApiModelProperty(name = "eventCount",value = "暂态指标发生次数(日表的暂态指标发生次数之和)")
private Integer eventCount;
@ApiModelProperty(name = "eEventMeasurementAccrued", value = "累计发生暂态监测点数(监测点暂态指标超标明细日表)")
private Integer eEventMeasurementAccrued;
/**
* 日均发生暂态监测点数占比(根据 日均发生暂态监测点数占比 取平均值)
*/
@ApiModelProperty(name = "eventMeasurementRatioAverage",value = "日均发生暂态监测点数占比(根据 日均发生暂态监测点数占比 取平均值)")
private Double eventMeasurementRatioAverage;
@ApiModelProperty(name = "eEventMeasurementRatioAverage", value = "日均发生暂态监测点数占比(根据 日均发生暂态监测点数占比 取平均值)")
private Double eEventMeasurementRatioAverage;
/**
* 累计发生暂态监测点数占比(此表的累计发生暂态监测点数/区域统计表中的区域分类统计月表中的发生暂态的监测点数)
*/
@ApiModelProperty(name = "eventMeasurementRatioAccrued",value = "累计发生暂态监测点数占比(此表的累计发生暂态监测点数/区域统计表中的区域分类统计月表中的发生暂态的监测点数)")
private Double eventMeasurementRatioAccrued;
@ApiModelProperty(name = "eEventMeasurementRatioAccrued", value = "累计发生暂态监测点数占比(此表的累计发生暂态监测点数/区域统计表中的区域分类统计月表中的发生暂态的监测点数)")
private Double eEventMeasurementRatioAccrued;
/**
* 暂态指标发生频次
*/
@ApiModelProperty(name = "eEventFreq", value = "暂态指标发生频次")
private Double eEventFreq;
/**
* 暂态指标发生次数
*/
@ApiModelProperty(name = "eEventCount", value = "暂态指标发生次数")
private Integer eEventCount;
/**
* 数据类型,字典表01主网测点 02配网测点
*/
@ApiModelProperty(name = "dataType",value = "数据类型,字典表01主网测点 02配网测点")
@ApiModelProperty(name = "dataType", value = "数据类型,字典表01主网测点 02配网测点")
private String dataType;
}

View File

@@ -0,0 +1,61 @@
package com.njcn.event.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author rui.wu
* @since 2022-10-17
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("r_stat_event_org_q")
@ApiModel(value="RStatEventOrgQ对象", description="")
public class RStatEventOrgQ implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "单位ID")
@TableId(value = "org_no", type = IdType.ASSIGN_ID)
private String orgNo;
@ApiModelProperty(value = "生成数据的时间,每年统计一次")
private LocalDate dataDate;
@ApiModelProperty(value = "暂态指标类型Id字典表ID")
private String eventType;
@ApiModelProperty(value = "日均发生暂态监测点数(根据 发生暂态监测点数 取平均值)")
private Integer eventMeasurementAverage;
@ApiModelProperty(value = "累计发生暂态监测点数(监测点暂态指标超标明细日表)")
private Integer eventMeasurementAccrued;
@ApiModelProperty(value = "暂态指标发生频次(日表的暂态指标发生次数之和/日表的发生暂态监测点数之和)")
private Float eventFreq;
@ApiModelProperty(value = "暂态指标发生次数(日表的暂态指标发生次数之和)")
private Integer eventCount;
@ApiModelProperty(value = "日均发生暂态监测点数占比(根据 日均发生暂态监测点数占比 取平均值)")
private Float eventMeasurementRatioAverage;
@ApiModelProperty(value = "累计发生暂态监测点数占比(此表的累计发生暂态监测点数/区域统计表中的区域分类统计月表中的发生暂态的监测点数)")
private Float eventMeasurementRatioAccrued;
@ApiModelProperty(value = "数据类型,字典表01主网测点 02配网测点")
private String dataType;
}

View File

@@ -0,0 +1,61 @@
package com.njcn.event.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author rui.wu
* @since 2022-10-17
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("r_stat_event_org_y")
@ApiModel(value="RStatEventOrgY对象", description="")
public class RStatEventOrgY implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "单位ID")
@TableId(value = "org_no", type = IdType.ASSIGN_ID)
private String orgNo;
@ApiModelProperty(value = "生成数据的时间,每年统计一次")
private LocalDate dataDate;
@ApiModelProperty(value = "暂态指标类型Id字典表ID")
private String eventType;
@ApiModelProperty(value = "日均发生暂态监测点数(根据 发生暂态监测点数 取平均值)")
private Integer eventMeasurementAverage;
@ApiModelProperty(value = "累计发生暂态监测点数(监测点暂态指标超标明细日表)")
private Integer eventMeasurementAccrued;
@ApiModelProperty(value = "暂态指标发生频次(日表的暂态指标发生次数之和/日表的发生暂态监测点数之和)")
private Float eventFreq;
@ApiModelProperty(value = "暂态指标发生次数(日表的暂态指标发生次数之和)")
private Integer eventCount;
@ApiModelProperty(value = "日均发生暂态监测点数占比(根据 日均发生暂态监测点数占比 取平均值)")
private Float eventMeasurementRatioAverage;
@ApiModelProperty(value = "累计发生暂态监测点数占比(此表的累计发生暂态监测点数/区域统计表中的区域分类统计月表中的发生暂态的监测点数)")
private Float eventMeasurementRatioAccrued;
@ApiModelProperty(value = "数据类型,字典表01主网测点 02配网测点")
private String dataType;
}

View File

@@ -0,0 +1,65 @@
package com.njcn.event.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDate;
/**
* <p>
*
* </p>
*
* @author rui.wu
* @since 2022-10-12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("r_stat_event_q")
@ApiModel(value="RStatEventQ对象", description="")
public class RStatEventQ implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "单位ID")
@TableId(value = "org_no", type = IdType.ASSIGN_ID)
private String orgNo;
@ApiModelProperty(value = "生成数据的时间,每季度统计一次")
private LocalDate dataDate;
@ApiModelProperty(value = "监测点类别ID、监测对象类型ID")
private String measurementTypeClass;
@ApiModelProperty(value = "暂态指标类型Id字典表ID")
private String eventType;
@ApiModelProperty(value = "日均发生暂态监测点数(根据 发生暂态监测点数 取平均值)")
private Integer eventMeasurementAverage;
@ApiModelProperty(value = "累计发生暂态监测点数(监测点暂态指标超标明细日表)")
private Integer eventMeasurementAccrued;
@ApiModelProperty(value = "暂态指标发生频次(日表的暂态指标发生次数之和/日表的发生暂态监测点数之和)")
private Float eventFreq;
@ApiModelProperty(value = "暂态指标发生次数(日表的暂态指标发生次数之和)")
private Integer eventCount;
@ApiModelProperty(value = "日均发生暂态监测点数占比(根据 日均发生暂态监测点数占比 取平均值)")
private Float eventMeasurementRatioAverage;
@ApiModelProperty(value = "累计发生暂态监测点数占比(此表的累计发生暂态监测点数/区域统计表中的区域分类统计月表中的发生暂态的监测点数)")
private Float eventMeasurementRatioAccrued;
@ApiModelProperty(value = "数据类型,字典表01主网测点 02配网测点")
private String dataType;
}

View File

@@ -0,0 +1,68 @@
package com.njcn.event.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDate;
/**
* <p>
*
* </p>
*
* @author rui.wu
* @since 2022-10-14
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("r_stat_event_voltage_m")
@ApiModel(value="RStatEventVoltageM对象", description="")
public class RStatEventVoltageM implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "单位ID")
@TableId(value = "org_no", type = IdType.ASSIGN_ID)
private String orgNo;
@ApiModelProperty(value = "生成数据的时间,每日统计一次")
private LocalDate dataDate;
@ApiModelProperty(value = "监测对象类型ID")
private String measurementTypeClass;
@ApiModelProperty(value = "暂态指标类型Id字典表ID")
private String eventType;
@ApiModelProperty(value = "电压等级Id字典表ID")
private String voltageType;
@ApiModelProperty(value = "日均发生暂态监测点数")
private Integer eventMeasurementAverage;
@ApiModelProperty(value = "累计发生暂态监测点数")
private Integer eventMeasurementAccrued;
@ApiModelProperty(value = "暂态指标发生频次")
private Float eventFreq;
@ApiModelProperty(value = "暂态指标发生次数")
private Integer eventCount;
@ApiModelProperty(value = "日均发生暂态监测点数占比")
private Float eventMeasurementRatioAverage;
@ApiModelProperty(value = "累计发生暂态监测点数占比")
private Float eventMeasurementRatioAccrued;
@ApiModelProperty(value = "数据类型,字典表01主网测点 02配网测点")
private String dataType;
}

View File

@@ -0,0 +1,65 @@
package com.njcn.event.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDate;
/**
* <p>
*
* </p>
*
* @author rui.wu
* @since 2022-10-12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("r_stat_event_y")
@ApiModel(value="RStatEventY对象", description="")
public class RStatEventY implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "单位ID")
@TableId(value = "org_no", type = IdType.ASSIGN_ID)
private String orgNo;
@ApiModelProperty(value = "生成数据的时间,每年统计一次")
private LocalDate dataDate;
@ApiModelProperty(value = "监测点类别ID、监测对象类型ID")
private String measurementTypeClass;
@ApiModelProperty(value = "暂态指标类型Id字典表ID")
private String eventType;
@ApiModelProperty(value = "日均发生暂态监测点数(根据 发生暂态监测点数 取平均值)")
private Integer eventMeasurementAverage;
@ApiModelProperty(value = "累计发生暂态监测点数(监测点暂态指标超标明细日表)")
private Integer eventMeasurementAccrued;
@ApiModelProperty(value = "暂态指标发生频次(日表的暂态指标发生次数之和/日表的发生暂态监测点数之和)")
private Float eventFreq;
@ApiModelProperty(value = "暂态指标发生次数(日表的暂态指标发生次数之和)")
private Integer eventCount;
@ApiModelProperty(value = "日均发生暂态监测点数占比(根据 日均发生暂态监测点数占比 取平均值)")
private Float eventMeasurementRatioAverage;
@ApiModelProperty(value = "累计发生暂态监测点数占比(此表的累计发生暂态监测点数/区域统计表中的区域分类统计月表中的发生暂态的监测点数)")
private Float eventMeasurementRatioAccrued;
@ApiModelProperty(value = "数据类型,字典表01主网测点 02配网测点")
private String dataType;
}

View File

@@ -2,11 +2,11 @@ package com.njcn.event.pojo.po;
import lombok.Data;
import java.util.Date;
import java.io.Serializable;
import java.util.Date;
/**
* 区域分类统计表(RStatOrgY)实体类
* 区域分类统计表(RStatOrgY)实体类
*
* @author yzh
* @since 2022-10-12 18:37:24

View File

@@ -0,0 +1,122 @@
package com.njcn.event.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDate;
/**
* <p>
*
* </p>
*
* @author rui.wu
* @since 2022-10-18
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("r_stat_substation_m")
@ApiModel(value="RStatSubstationM对象", description="")
public class RStatSubstationM implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "生成数据的时间,每月统计一次")
@TableId(value = "data_date", type = IdType.ASSIGN_ID)
private LocalDate dataDate;
@ApiModelProperty(value = "变电站id")
private String substationId;
@ApiModelProperty(value = "日均有效接入监测点数")
private Integer effectiveMeasurementAverage;
@ApiModelProperty(value = "累计有效接入监测点数")
private Integer effectiveMeasurementAccrued;
@ApiModelProperty(value = "稳态累计超标天数")
private Float harmonicOverDay;
@ApiModelProperty(value = "稳态累计超标监测点数")
private Integer harmonicCount;
@ApiModelProperty(value = "频率偏差累计超标天数")
private Float freqOverDay;
@ApiModelProperty(value = "频率偏差累计超标监测点数")
private Integer freqCount;
@ApiModelProperty(value = "电压偏差累计超标天数")
private Float vDevOverDay;
@ApiModelProperty(value = "电压偏差累计超标监测点数")
private Integer vDevCount;
@ApiModelProperty(value = "谐波电压累计超标天数")
private Float vOverDay;
@ApiModelProperty(value = "谐波电压累计超标监测点数")
private Integer vCount;
@ApiModelProperty(value = "谐波电流累计超标天数")
private Float iOverDay;
@ApiModelProperty(value = "谐波电流累计超标监测点数")
private Integer iCount;
@ApiModelProperty(value = "三相电压不平衡累计超标天数")
private Float unbalanceOverDay;
@ApiModelProperty(value = "三相电压不平衡累计超标监测点数")
private Integer unbalanceCount;
@ApiModelProperty(value = "负序电流累计超标天数")
private Float iNegOverDay;
@ApiModelProperty(value = "负序电流累计超标监测点数")
private Integer iNegCount;
@ApiModelProperty(value = "闪变累计超标天数")
private Float flickerOverDay;
@ApiModelProperty(value = "闪变累计超标监测点数")
private Integer flickerCount;
@ApiModelProperty(value = "间谐波电压累计超标天数")
private Float inuharmOverDay;
@ApiModelProperty(value = "间谐波电压累计超标监测点数")
private Integer inuharmCount;
@ApiModelProperty(value = "暂态指标发生次数")
private Integer eventCount;
@ApiModelProperty(value = "暂态指标发生频次")
private Float eventFreq;
@ApiModelProperty(value = "电压暂降发生次数")
private Integer sagCount;
@ApiModelProperty(value = "电压暂降发生频次")
private Float sagFreq;
@ApiModelProperty(value = "电压暂升发生次数")
private Integer swellCount;
@ApiModelProperty(value = "电压暂升发生频次")
private Float swellFreq;
@ApiModelProperty(value = "短时中断发生次数")
private Integer interruptCount;
@ApiModelProperty(value = "短时中断发生频次")
private Float interruptFreq;
}

View File

@@ -0,0 +1,95 @@
package com.njcn.event.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDate;
/**
* <p>
*
* </p>
*
* @author rui.wu
* @since 2022-10-18
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("r_stat_substation_q")
@ApiModel(value="RStatSubstationQ对象", description="")
public class RStatSubstationQ implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "生成数据的时间,每季统计一次")
@TableId(value = "data_date", type = IdType.ASSIGN_ID)
private LocalDate dataDate;
@ApiModelProperty(value = "变电站id")
private String substationId;
@ApiModelProperty(value = "日均有效接入监测点数")
private Integer effectiveMeasurementAverage;
@ApiModelProperty(value = "累计有效接入监测点数")
private Integer effectiveMeasurementAccrued;
@ApiModelProperty(value = "稳态平均超标天数")
private Float harmonicAverageOverDay;
@ApiModelProperty(value = "频率偏差平均超标天数")
private Float freqAverageOverDay;
@ApiModelProperty(value = "电压偏差平均超标天数")
private Float vDevAverageOverDay;
@ApiModelProperty(value = "谐波电压平均超标天数")
private Float vAverageOverDay;
@ApiModelProperty(value = "谐波电流平均超标天数")
private Float iAverageOverDay;
@ApiModelProperty(value = "三相电压不平衡平均超标天数")
private Float unbalanceAverageOverDay;
@ApiModelProperty(value = "负序电流平均超标天数")
private Float iNegAverageOverDay;
@ApiModelProperty(value = "闪变平均超标天数")
private Float flickerAverageOverDay;
@ApiModelProperty(value = "间谐波电压平均超标天数")
private Float inuharmAverageOverDay;
@ApiModelProperty(value = "暂态指标发生次数")
private Integer eventCount;
@ApiModelProperty(value = "暂态指标发生频次")
private Float eventFreq;
@ApiModelProperty(value = "电压暂降发生次数")
private Integer sagCount;
@ApiModelProperty(value = "电压暂降发生频次")
private Float sagFreq;
@ApiModelProperty(value = "电压暂升发生次数")
private Integer swellCount;
@ApiModelProperty(value = "电压暂升发生频次")
private Float swellFreq;
@ApiModelProperty(value = "短时中断发生次数")
private Integer interruptCount;
@ApiModelProperty(value = "短时中断发生频次")
private Float interruptFreq;
}

View File

@@ -0,0 +1,50 @@
package com.njcn.event.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDate;
/**
* <p>
*
* </p>
*
* @author rui.wu
* @since 2022-10-18
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("r_stat_substation_voltage_m")
@ApiModel(value="RStatSubstationVoltageM对象", description="")
public class RStatSubstationVoltageM implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "单位ID")
@TableId(value = "org_no", type = IdType.ASSIGN_ID)
private String orgNo;
@ApiModelProperty(value = "生成数据的时间,每月统计一次")
private LocalDate dataDate;
@ApiModelProperty(value = "电压等级")
private String substationVoltage;
@ApiModelProperty(value = "变电站数量")
private Integer substationCount;
@ApiModelProperty(value = "稳态超标变电站数量")
private Integer harmonicCount;
@ApiModelProperty(value = "暂态变电站数量")
private Integer eventCount;
}

View File

@@ -0,0 +1,95 @@
package com.njcn.event.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDate;
/**
* <p>
*
* </p>
*
* @author rui.wu
* @since 2022-10-18
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("r_stat_substation_y")
@ApiModel(value="RStatSubstationY对象", description="")
public class RStatSubstationY implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "生成数据的时间,每年统计一次")
@TableId(value = "data_date", type = IdType.ASSIGN_ID)
private LocalDate dataDate;
@ApiModelProperty(value = "变电站id")
private String substationId;
@ApiModelProperty(value = "日均有效接入监测点数")
private Integer effectiveMeasurementAverage;
@ApiModelProperty(value = "累计有效接入监测点数")
private Integer effectiveMeasurementAccrued;
@ApiModelProperty(value = "稳态平均超标天数")
private Float harmonicOverDay;
@ApiModelProperty(value = "频率偏差平均超标天数")
private Float freqAverageOverDay;
@ApiModelProperty(value = "电压偏差平均超标天数")
private Float vDevAverageOverDay;
@ApiModelProperty(value = "谐波电压平均超标天数")
private Float vAverageOverDay;
@ApiModelProperty(value = "谐波电流平均超标天数")
private Float iAverageOverDay;
@ApiModelProperty(value = "三相电压不平衡平均超标天数")
private Float unbalanceAverageOverDay;
@ApiModelProperty(value = "负序电流平均超标天数")
private Float iNegAverageOverDay;
@ApiModelProperty(value = "闪变平均超标天数")
private Float flickerAverageOverDay;
@ApiModelProperty(value = "间谐波电压平均超标天数")
private Float inuharmAverageOverDay;
@ApiModelProperty(value = "暂态指标发生次数")
private Integer eventCount;
@ApiModelProperty(value = "暂态指标发生频次")
private Float eventFreq;
@ApiModelProperty(value = "电压暂降发生次数")
private Integer sagCount;
@ApiModelProperty(value = "电压暂降发生频次")
private Float sagFreq;
@ApiModelProperty(value = "电压暂升发生次数")
private Integer swellCount;
@ApiModelProperty(value = "电压暂升发生频次")
private Float swellFreq;
@ApiModelProperty(value = "短时中断发生次数")
private Integer interruptCount;
@ApiModelProperty(value = "短时中断发生频次")
private Float interruptFreq;
}

View File

@@ -1,9 +1,10 @@
package com.njcn.device.pms.pojo.po;
package com.njcn.event.pojo.po;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* (RMpEventDetail)实体类
@@ -13,7 +14,7 @@ import java.io.Serializable;
*/
@Data
public class RmpEventDetailPO implements Serializable {
private static final long serialVersionUID = 717547299960041571L;
private static final long serialVersionUID = 1L;
/**
* 暂时事件ID
*/
@@ -24,6 +25,7 @@ public class RmpEventDetailPO implements Serializable {
*/
@ApiModelProperty(name = "measurementPointId",value = "监测点ID")
private String measurementPointId;
/**
* 事件类型
*/
@@ -33,7 +35,7 @@ public class RmpEventDetailPO implements Serializable {
* 开始时间
*/
@ApiModelProperty(name = "startTime",value = "开始时间")
private Long startTime;
private Date startTime;
/**
* 持续时间
*/

View File

@@ -0,0 +1,39 @@
package com.njcn.event.pojo.po;
import lombok.Data;
import java.util.Date;
import java.io.Serializable;
/**
* 监测点暂态事件统计日报实体类
*
* @author yzh
* @since 2022-10-19 10:36:37
*/
@Data
public class RmpEventReportDayPO implements Serializable {
private static final long serialVersionUID = -31002744007070997L;
/**
* 监测点ID
*/
private String measurementPointId;
/**
* 生成数据的时间,每日统计一次
*/
private Date dataDate;
/**
* 持续时间
*/
private Double durationTag;
/**
* 特征幅值
*/
private Double featureAmplitudeTag;
/**
* 发生次数
*/
private String frequency;
}

View File

@@ -0,0 +1,100 @@
package com.njcn.event.pojo.vo;
import lombok.Data;
import java.io.Serializable;
/**
* 监测点电压暂降和短时中断分布情况
* @Title EventDistributionStatisticsVO
* @Package com.njcn.event.pojo.vo
* @Author jianghaifei
* @Date 2022-10-26 11:19
* @Version V1.0
*/
@Data
public class EventDipShortDistributionVO implements Serializable {
private static final long serialVersionUID = 1L;
private int featureAmp90with100ms;
private int featureAmp90with250ms;
private int featureAmp90with500ms;
private int featureAmp90with1000ms;
private int featureAmp90with3000ms;
private int featureAmp90with10000ms;
private int featureAmp90with20000ms;
private int featureAmp90with60000ms;
private int featureAmp80with100ms;
private int featureAmp80with250ms;
private int featureAmp80with500ms;
private int featureAmp80with1000ms;
private int featureAmp80with3000ms;
private int featureAmp80with10000ms;
private int featureAmp80with20000ms;
private int featureAmp80with60000ms;
private int featureAmp70with100ms;
private int featureAmp70with250ms;
private int featureAmp70with500ms;
private int featureAmp70with1000ms;
private int featureAmp70with3000ms;
private int featureAmp70with10000ms;
private int featureAmp70with20000ms;
private int featureAmp70with60000ms;
private int featureAmp60with100ms;
private int featureAmp60with250ms;
private int featureAmp60with500ms;
private int featureAmp60with1000ms;
private int featureAmp60with3000ms;
private int featureAmp60with10000ms;
private int featureAmp60with20000ms;
private int featureAmp60with60000ms;
private int featureAmp50with100ms;
private int featureAmp50with250ms;
private int featureAmp50with500ms;
private int featureAmp50with1000ms;
private int featureAmp50with3000ms;
private int featureAmp50with10000ms;
private int featureAmp50with20000ms;
private int featureAmp50with60000ms;
private int featureAmp40with100ms;
private int featureAmp40with250ms;
private int featureAmp40with500ms;
private int featureAmp40with1000ms;
private int featureAmp40with3000ms;
private int featureAmp40with10000ms;
private int featureAmp40with20000ms;
private int featureAmp40with60000ms;
private int featureAmp30with100ms;
private int featureAmp30with250ms;
private int featureAmp30with500ms;
private int featureAmp30with1000ms;
private int featureAmp30with3000ms;
private int featureAmp30with10000ms;
private int featureAmp30with20000ms;
private int featureAmp30with60000ms;
private int featureAmp20with100ms;
private int featureAmp20with250ms;
private int featureAmp20with500ms;
private int featureAmp20with1000ms;
private int featureAmp20with3000ms;
private int featureAmp20with10000ms;
private int featureAmp20with20000ms;
private int featureAmp20with60000ms;
private int featureAmp10with100ms;
private int featureAmp10with250ms;
private int featureAmp10with500ms;
private int featureAmp10with1000ms;
private int featureAmp10with3000ms;
private int featureAmp10with10000ms;
private int featureAmp10with20000ms;
private int featureAmp10with60000ms;
}

View File

@@ -0,0 +1,68 @@
package com.njcn.event.pojo.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 暂态指标分布统计返回前端实体类
*
* @author yzh
* @date 2022/10/20
*/
@Data
@ApiModel("暂态指标分布统计实体类")
public class EventDistributionStatisticsTableVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 特征幅值
*/
@ApiModelProperty(name = "featureAmplitude",value = "特征幅值")
private String featureAmplitude;
/**
* 持续时间20s
*/
@ApiModelProperty(name = "duration20",value = "持续时间20s")
private Integer duration20;
/**
* 持续时间100s
*/
@ApiModelProperty(name = "duration100",value = "持续时间100s")
private Integer duration100;
/**
* 持续时间500s
*/
@ApiModelProperty(name = "duration500",value = "持续时间500s")
private Integer duration500;
/**
* 持续时间1000s
*/
@ApiModelProperty(name = "duration1000",value = "持续时间1000s")
private Integer duration1000;
/**
* 持续时间3000s
*/
@ApiModelProperty(name = "duration3000",value = "持续时间3000s")
private Integer duration3000;
/**
* 持续时间20000s
*/
@ApiModelProperty(name = "duration20000",value = "持续时间20000s")
private Integer duration20000;
/**
* 持续时间60000s
*/
@ApiModelProperty(name = "duration60000",value = "持续时间60000s")
private Integer duration60000;
/**
* 持续时间180000s
*/
@ApiModelProperty(name = "duration180000",value = "持续时间180000s")
private Integer duration180000;
}

View File

@@ -0,0 +1,74 @@
package com.njcn.event.pojo.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* 获取暂态指标分布统计曲线图实体类
*
* @author yzh
* @date 2022/10/24
*/
@Data
@Builder
@ApiModel("获取暂态指标分布统计曲线图实体类")
public class EventFeatureAmplitudeCurveVO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(name = "totalNumberOfEvents", value = "事件总数")
private Integer totalNumberOfEvents;
@ApiModelProperty(name = "eventFeatureAmplitudeCurveDataList", value = "图表数据")
private List<EventFeatureAmplitudeCurveVO.EventFeatureAmplitudeCurveDataList> eventFeatureAmplitudeCurveDataList;
/**
* 构建默认对象
*
* @return 默认对象
*/
public static EventFeatureAmplitudeCurveVO empty() {
return EventFeatureAmplitudeCurveVO.buildVO(0, Collections.emptyList());
}
/**
* 构建默认对象
*
* @param numberEvents 事件总数
* @param dataList 图表数据
* @return 默认对象
*/
public static EventFeatureAmplitudeCurveVO buildVO(int numberEvents, List<EventFeatureAmplitudeCurveVO.EventFeatureAmplitudeCurveDataList> dataList) {
return EventFeatureAmplitudeCurveVO.builder().totalNumberOfEvents(numberEvents).eventFeatureAmplitudeCurveDataList(dataList).build();
}
@Data
public static class EventFeatureAmplitudeCurveDataList implements Serializable {
private static final long serialVersionUID = 2693688079727369565L;
@ApiModelProperty(name = "measurementPointId", value = "监测点id")
private String measurementPointId;
@ApiModelProperty(name = "duration", value = "持续时间ms")
private Double duration;
@ApiModelProperty(name = "featureAmplitude", value = "特征幅值")
private Double featureAmplitude;
@ApiModelProperty(name = "startTime", value = "开始时间")
private LocalDateTime startTime;
public static Comparator<EventFeatureAmplitudeCurveVO.EventFeatureAmplitudeCurveDataList> sortAscTime() {
return Comparator.comparing(EventFeatureAmplitudeCurveVO.EventFeatureAmplitudeCurveDataList::getStartTime);
}
}
}

View File

@@ -0,0 +1,43 @@
package com.njcn.event.pojo.vo;
import lombok.Data;
import java.io.Serializable;
/**
* @Title EventMonitorReportVO
* @Package com.njcn.event.pojo.vo
* @Author jianghaifei
* @Date 2022-10-25 09:51
* @Version V1.0
*/
@Data
public class EventMonitorReportVO implements Serializable {
private static final long serialVersionUID = 1L;
private String date; //时间
private String orgId; // 单位id
private String OrgName; //单位名称
private String monitorId; //监测点id
private String monitorName; //监测点名称
private String voltageLevel; //监测点电压等级id
private String voltageLevelName; //监测点电压等级名称
private Integer voltageRiseCount; //电压暂升次数
private Integer voltageDipCount; //电压暂降次数
private Integer shortInterruptionCount; //短时中断
// private EventDipShortDistributionVO dipShortStatisticsVO; //暂降和短时中断分部情况
// private EventRiseDistributionVO riseStatisticsVO; //暂升分部情况
}

View File

@@ -0,0 +1,26 @@
package com.njcn.event.pojo.vo;
import lombok.Data;
import java.io.Serializable;
/**
* 监测点电压暂升分布情况
* @Title EventRiseDistributionStatisticsVO
* @Package com.njcn.event.pojo.vo
* @Author jianghaifei
* @Date 2022-10-26 11:33
* @Version V1.0
*/
@Data
public class EventRiseDistributionVO implements Serializable {
private static final long serialVersionUID = 1L;
private int featureAmp120with500ms;
private int featureAmp120with5000ms;
private int featureAmp120with60000ms;
private int featureAmp110with500ms;
private int featureAmp110with5000ms;
private int featureAmp110with60000ms;
}

View File

@@ -0,0 +1,98 @@
package com.njcn.event.pojo.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 配网暂态明细返回前端实体类
*
* @author yzh
* @date 2022/10/31
*/
@Data
@ApiModel("配网暂态明细返回前端实体类")
public class PwRmpEventDetailVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 单位id
*/
@ApiModelProperty(name = "orgId", value = "单位id")
private String orgId;
/**
* 单位名称
*/
@ApiModelProperty(name = "orgName", value = "单位名称")
private String orgName;
/**
* 监测点id
*/
@ApiModelProperty(name = "monitorId", value = "监测点id")
private String monitorId;
/**
* 监测点名称
*/
@ApiModelProperty(name = "monitorName", value = "监测点名称")
private String monitorName;
/**
* 所属变电站
*/
@ApiModelProperty(name = "subName", value = "所属变电站")
private String subName;
/**
* 所属台区
*/
@ApiModelProperty(name = "powerDistributionArea", value = "所属台区")
private String powerDistributionArea;
/**
* 用户名称
*/
@ApiModelProperty(name = "powerClient", value = "用户名称")
private String powerClient;
/**
* 监测点类别
*/
@ApiModelProperty(name = "monitorSort", value = "监测点类别")
private String monitorSort;
/**
* 监测点电压等级
*/
@ApiModelProperty(name = "monitorVoltageLevel",value = "监测点电压等级")
private String monitorVoltageLevel;
/**
* 暂态事件类型
*/
@ApiModelProperty(name = "eventType", value = "暂态事件类型")
private String eventType;
/**
* 开始时间
*/
@ApiModelProperty(name = "startTime", value = "开始时间")
private Date startTime;
/**
* 持续时间
*/
@ApiModelProperty(name = "duration", value = "持续时间")
private Double duration;
/**
* 特征幅值
*/
@ApiModelProperty(name = "featureAmplitude", value = "特征幅值")
private Double featureAmplitude;
/**
* 波形路径
*/
@ApiModelProperty(name = "wavePath", value = "波形路径")
private String wavePath;
}

View File

@@ -0,0 +1,27 @@
package com.njcn.event.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* <功能描述>
*
* @author 1754607820@qq.com
* @createTime: 2022-10-10
*/
@Data
public class RArrayVO {
@ApiModelProperty(value = "指标名称")
String rowName;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty(value = "检测点类型")
List<?> columns;
}

View File

@@ -0,0 +1,33 @@
package com.njcn.event.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
*
* </p>
*
* @author rui.wu
* @since 2022-10-12
*/
@Data
public class REventPolylineVO {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "时间")
private String date;
@ApiModelProperty(value = "发生暂态监测点数")
private Integer eventMeasurement;
@ApiModelProperty(value = "发生暂态监测点数占比")
private Float eventMeasurementRatio;
@ApiModelProperty(value = "暂态指标发生次数")
private Integer eventCount;
@ApiModelProperty(value = "暂态指标发生频次")
private Integer eventFreq;
}

View File

@@ -0,0 +1,44 @@
package com.njcn.event.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
*
* </p>
*
* @author rui.wu
* @since 2022-10-11
*/
@Data
public class RStatEventMVO {
private static final long serialVersionUID = 1L;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty(value = "暂态指标类型名称")
private String eventName;
@ApiModelProperty(value = "日均发生暂态监测点数")
private Integer eventMeasurementAverage;
@ApiModelProperty(value = "累计发生暂态监测点数")
private Integer eventMeasurementAccrued;
@ApiModelProperty(value = "暂态指标发生频次")
private Float eventFreq;
@ApiModelProperty(value = "暂态指标发生次数")
private Integer eventCount;
@ApiModelProperty(value = "日均发生暂态监测点数占比")
private Float eventMeasurementRatioAverage;
@ApiModelProperty(value = "累计发生暂态监测点数占比")
private Float eventMeasurementRatioAccrued;
}

View File

@@ -4,9 +4,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.io.Serializable;
import java.util.List;
import java.util.Date;
/**
* 监测点暂态指标数据统计表(RStatEventOrg)实体类
@@ -42,6 +41,12 @@ public class RStatEventOrgVO implements Serializable {
@ApiModelProperty(name = "dataDate", value = "生成数据的时间,每年统计一次")
private Date dataDate;
/**
* 监测点类别
*/
@ApiModelProperty(name = "measurementTypeClass",value = "监测点类别")
private String measurementTypeClass;
/**
* 日均有效接入监测点数
*/
@@ -70,107 +75,55 @@ public class RStatEventOrgVO implements Serializable {
* 日均暂态超标监测点数占比
*/
@ApiModelProperty(name = "eventMeasurementRatioAverage", value = "日均暂态超标监测点数占比")
private Integer eventMeasurementRatioAverage;
private Double eventMeasurementRatioAverage;
/**
* 累计暂态超标监测点数占比
*/
@ApiModelProperty(name = "eventMeasurementRatioAccrued", value = "累计暂态超标监测点数占比")
private Integer eventMeasurementRatioAccrued;
private Double eventMeasurementRatioAccrued;
/**
* 暂态指标类型Id字典表ID
* 暂态指标发生次数
*/
@ApiModelProperty(name = "eventType", value = "暂态指标类型Id字典表ID")
private String eventType;
@ApiModelProperty(name = "eventCount",value = "暂态指标发生次数")
private Integer eventCount;
/**
* 日均发生暂态监测点数(根据 发生暂态监测点数 取平均值)
* 暂态指标发生频次
*/
@ApiModelProperty(name = "eEventMeasurementAverage",value = "日均发生暂态监测点数(根据 发生暂态监测点数 取平均值)")
private Integer eEventMeasurementAverage;
/**
* 累计发生暂态监测点数(监测点暂态指标超标明细日表
*/
@ApiModelProperty(name = "eEventMeasurementAccrued",value = "累计发生暂态监测点数(监测点暂态指标超标明细日表)")
private Integer eEventMeasurementAccrued;
/**
* 日均发生暂态监测点数占比(根据 日均发生暂态监测点数占比 取平均值)
*/
@ApiModelProperty(name = "eEventMeasurementRatioAverage",value = "日均发生暂态监测点数占比(根据 日均发生暂态监测点数占比 取平均值)")
private Double eEventMeasurementRatioAverage;
/**
* 累计发生暂态监测点数占比(此表的累计发生暂态监测点数/区域统计表中的区域分类统计月表中的发生暂态的监测点数)
*/
@ApiModelProperty(name = "eEventMeasurementRatioAccrued",value = "累计发生暂态监测点数占比(此表的累计发生暂态监测点数/区域统计表中的区域分类统计月表中的发生暂态的监测点数)")
private Double eEventMeasurementRatioAccrued;
/**
* 暂态指标发生频次(日表的暂态指标发生次数之和/日表的发生暂态监测点数之和)
*/
@ApiModelProperty(name = "eEventFreq",value = "暂态指标发生频次(日表的暂态指标发生次数之和/日表的发生暂态监测点数之和)")
private Double eEventFreq;
/**
* 暂态指标发生次数(日表的暂态指标发生次数之和)
*/
@ApiModelProperty(name = "eEventCount",value = "暂态指标发生次数(日表的暂态指标发生次数之和)")
private Integer eEventCount;
@ApiModelProperty(name = "eventFreq",value = "暂态指标发生频次")
private Double eventFreq;
/**
* 日均短时中断
*/
@ApiModelProperty(name = "dayShortInterruptions", value = "日均短时中断")
private Integer dayShortInterruptions;
/**
* 累计短时中断
*/
@ApiModelProperty(name = "cumulativeShortInterruptions", value = "累计短时中断")
private Integer cumulativeShortInterruptions;
/**
* 日均短时中断占比
*/
@ApiModelProperty(name = "dayShortInterruptionsProportion", value = "日均短时中断占比")
private Double dayShortInterruptionsProportion;
/**
* 累计短时中断占比
*/
@ApiModelProperty(name = "cumulativeShortInterruptionsProportion", value = "累计暂态指标占比")
private Double cumulativeShortInterruptionsProportion;
/**
* 短时中断监测点数
*/
@ApiModelProperty(name = "shortInterruptionsMonitor", value = "短时中断监测点数")
private Integer shortInterruptionsMonitor;
/**
* 短时中断占比
*/
@ApiModelProperty(name = "shortInterruptionsProportion",value = "短时中断占比")
private Double shortInterruptionsProportion;
/**
* 短时中断次数
*/
@ApiModelProperty(name = "shortInterruptionsCount", value = "短时中断次数")
private Integer shortInterruptionsCount;
/**
* 短时中断频次
*/
@ApiModelProperty(name = "shortInterruptionsFrequency", value = "短时中断频次")
private Double shortInterruptionsFrequency;
@ApiModelProperty(name = "shortInterruptionsFreq",value = "短时中断频次")
private Double shortInterruptionsFreq;
/**
* 短时中断次数
*/
@ApiModelProperty(name = "shortInterruptionsCount",value = "短时中断次数")
private Integer shortInterruptionsCount;
@@ -180,42 +133,31 @@ public class RStatEventOrgVO implements Serializable {
*/
@ApiModelProperty(name = "dayVoltageRise", value = "日均电压暂升")
private Integer dayVoltageRise;
/**
* 累计电压暂升
*/
@ApiModelProperty(name = "cumulativeVoltageRise", value = "累计电压暂升")
private Integer cumulativeVoltageRise;
/**
* 日均电压暂升占比
*/
@ApiModelProperty(name = "dayVoltageRiseProportion", value = "日均电压暂升占比")
private Double dayVoltageRiseProportion;
/**
* 累计电压暂升占比
*/
@ApiModelProperty(name = "cumulativeVoltageRiseProportion", value = "累计电压暂升占比")
private Double cumulativeVoltageRiseProportion;
/**
* 电压暂升占比
*/
@ApiModelProperty(name = "voltageRiseProportion",value = "电压暂升占比")
private Double voltageRiseProportion;
/**
* 电压暂升次数
*/
@ApiModelProperty(name = "voltageRiseCount", value = "电压暂升次数")
private Integer voltageRiseCount;
/**
* 电压暂升频次
*/
@ApiModelProperty(name = "voltageRiseFrequency", value = "电压暂升频次")
private Double voltageRiseFrequency;
@ApiModelProperty(name = "voltageRiseFreq",value = "电压暂升频次")
private Double voltageRiseFreq;
/**
* 电压暂升次数
*/
@ApiModelProperty(name = "voltageRiseCount",value = "电压暂升次数")
private Integer voltageRiseCount;
@@ -226,43 +168,38 @@ public class RStatEventOrgVO implements Serializable {
*/
@ApiModelProperty(name = "dayVoltageDip", value = "日均电压暂降")
private Integer dayVoltageDip;
/**
* 累计电压暂降
*/
@ApiModelProperty(name = "cumulativeVoltageDip", value = "累计电压暂降")
private Integer cumulativeVoltageDip;
/**
* 日均电压暂降占比
*/
@ApiModelProperty(name = "dayVoltageDipProportion", value = "日均电压暂降占比")
private Double dayVoltageDipProportion;
/**
* 累计电压暂降占比
*/
@ApiModelProperty(name = "cumulativeVoltageDipProportion", value = "累计电压暂降占比")
private Double cumulativeVoltageDipProportion;
/**
* 电压暂降占比
* 电压暂降频次
*/
@ApiModelProperty(name = "voltageDipProportion",value = "电压暂降占比")
private Double voltageDipProportion;
@ApiModelProperty(name = "voltageDipFreq",value = "电压暂降频次")
private Double voltageDipFreq;
/**
* 电压暂降次数
*/
@ApiModelProperty(name = "voltageDipCount", value = "电压暂降次数")
@ApiModelProperty(name = "voltageDipCount",value = "电压暂降次数")
private Integer voltageDipCount;
/**
* 电压暂降频次
* 数据类型01主网测点 02配网测点
*/
@ApiModelProperty(name = "voltageDipFrequency", value = "电压暂降频次")
private Double voltageDipFrequency;
@ApiModelProperty(name = "dataType",value = "数据类型01主网测点 02配网测点")
private String dataType;
}

View File

@@ -18,6 +18,7 @@ import java.util.Date;
@ApiModel(value = "区域分类统计表(RStatOrgY)实体类")
public class RStatOrgVO implements Serializable {
private static final long serialVersionUID = 642166320324597986L;
/**
* 单位ID
*/
@@ -30,11 +31,23 @@ public class RStatOrgVO implements Serializable {
@ApiModelProperty(name = "orgName", value = "单位名称")
private String orgName;
/**
* 监测点id
*/
@ApiModelProperty(name = "monitorId", value = "监测点id")
private String monitorId;
/**
* 监测点类别
*/
@ApiModelProperty(name = "monitorSort", value = "监测点类别")
private String monitorSort;
/**
* 生成数据的时间
*/
@ApiModelProperty(name = "dataDate", value = "生成数据的时间")
private String dataDate;
private Date dataDate;
/**
* 日均有效接入监测点数
@@ -64,13 +77,13 @@ public class RStatOrgVO implements Serializable {
* 日均暂态超标监测点数占比
*/
@ApiModelProperty(name = "eventMeasurementRatioAverage", value = "日均暂态超标监测点数占比")
private Integer eventMeasurementRatioAverage;
private Double eventMeasurementRatioAverage;
/**
* 累计暂态超标监测点数占比
*/
@ApiModelProperty(name = "eventMeasurementRatioAccrued", value = "累计暂态超标监测点数占比")
private Integer eventMeasurementRatioAccrued;
private Double eventMeasurementRatioAccrued;
/**
* 暂态指标发生频次
@@ -84,4 +97,10 @@ public class RStatOrgVO implements Serializable {
@ApiModelProperty(name = "eventCount", value = "暂态指标发生次数")
private Integer eventCount;
/**
* 数据类型01主网测点 02配网测点
*/
@ApiModelProperty(name = "dataType",value = "数据类型01主网测点 02配网测点")
private String dataType;
}

View File

@@ -0,0 +1,37 @@
package com.njcn.event.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author rui.wu
* @since 2022-10-18
*/
@Data
public class RSubstationIcon2VO {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "变电站id")
private String substationId;
@ApiModelProperty(value = "变电站名称")
private String substationName;
@ApiModelProperty(value = "短时中断发生频次")
private Float interruptFreq;
@ApiModelProperty(value = "电压暂降发生频次")
private Float sagFreq;
@ApiModelProperty(value = "电压暂升发生频次")
private Float swellFreq;
}

View File

@@ -0,0 +1,37 @@
package com.njcn.event.pojo.vo;
import lombok.Data;
/**
* <功能描述>
*
* @author 1754607820@qq.com
* @createTime: 2022-10-18
*/
@Data
public class RSubstationIconVO {
private static final long serialVersionUID = 1L;
private String num1;
private String num2;
private String num3;
private String num4;
private String num5;
private String num6;
private String num7;
private String num8;
private String num9;
private String num10;
private String upRatio1;
private String upRatio2;
private String upRatio3;
private String upRatio4;
private String upRatio5;
private String upRatio6;
private String upRatio7;
private String upRatio8;
private String upRatio9;
private String upRatio10;
}

View File

@@ -0,0 +1,26 @@
package com.njcn.event.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <功能描述>
*
* @author 1754607820@qq.com
* @createTime: 2022-10-18
*/
@Data
public class RVoltageIconVO {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "电压等级")
private String substationVoltage;
@ApiModelProperty(value = "变电站数量")
private Integer substationCount;
@ApiModelProperty(value = "稳态超标变电站数量")
private Integer harmonicCount;
}

View File

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 监测点暂态事件明细数据(RMpEventDetail)实体类
@@ -48,6 +49,12 @@ public class RmpEventDetailVO implements Serializable {
@ApiModelProperty(name = "measurementPointName",value = "监测点名称")
private String measurementPointName;
/**
* 监测点类别
*/
@ApiModelProperty(name = "monitorSort", value = "监测点类别")
private String monitorSort;
/**
* 事件类型
*/
@@ -64,7 +71,7 @@ public class RmpEventDetailVO implements Serializable {
* 开始时间
*/
@ApiModelProperty(name = "startTime",value = "开始时间")
private Long startTime;
private Date startTime;
/**
* 持续时间

View File

@@ -0,0 +1,18 @@
package com.njcn.event.pojo.vo;
import lombok.Data;
import java.io.Serializable;
/**
* @author yzh
* @date 2022/10/24
*/
@Data
public class SimpleVO implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private Double value;
}

View File

@@ -65,6 +65,12 @@
<artifactId>common-echarts</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>pms-device-api</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<build>

View File

@@ -0,0 +1,102 @@
package com.njcn.event.controller.distribution;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.event.pojo.vo.EventDistributionStatisticsTableVO;
import com.njcn.event.pojo.vo.EventFeatureAmplitudeCurveVO;
import com.njcn.event.pojo.vo.SimpleVO;
import com.njcn.event.service.distribution.PwEventCategoryDetailsService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 配网-暂态事件分布统计
*
* @author yzh
* @date 2022/10/27
*/
@RestController
@RequestMapping("/pwEventCategoryDetails")
@Api(tags = "配网-暂态事件分布统计")
@RequiredArgsConstructor
public class PwEventCategoryDetailsController extends BaseController {
private final PwEventCategoryDetailsService pwEventCategoryDetailsService;
/**
* 获取配网区域暂态指标统计
*
* @param param 前端传入参数
* @return 配网区域暂态指标统计
*/
@PostMapping("/getPwEventCategoryDetails")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取配网暂态事件分布统计")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<EventDistributionStatisticsTableVO>> getPwEventCategoryDetails(@RequestBody StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getPwEventCategoryDetails");
List<EventDistributionStatisticsTableVO> list = pwEventCategoryDetailsService.getPwEventCategoryDetails(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
/**
* 获取配网持续时间概率分布函数
*
* @param param 前端传入参数
* @return 配网持续时间概率分布函数
*/
@PostMapping("/getPwDurationLineChart")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取配网持续时间概率分布函数")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<SimpleVO>> getPwDurationLineChart(@RequestBody StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getPwDurationLineChart");
List<SimpleVO> list = pwEventCategoryDetailsService.getPwDurationLineChart(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
/**
* 获取配网暂降幅值概率分布函数
*
* @param param 前端传入参数
* @return 配网持续时间概率分布函数
*/
@PostMapping("/getPwFeatureAmplitudeLineChart")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取配网暂降幅值概率分布函数")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<SimpleVO>> getPwFeatureAmplitudeLineChart(@RequestBody StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getPwFeatureAmplitudeLineChart");
List<SimpleVO> list = pwEventCategoryDetailsService.getPwFeatureAmplitudeLineChart(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
/**
* 获取配网暂态指标分布统计曲线图
*
* @param param 前端传入参数
* @return 配网持续时间概率分布函数
*/
@PostMapping("/getPwEventFeatureAmplitudeCurve")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取配网暂态指标分布统计曲线图")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<EventFeatureAmplitudeCurveVO> getPwEventFeatureAmplitudeCurve(@RequestBody StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getPwEventFeatureAmplitudeCurve");
EventFeatureAmplitudeCurveVO vo = pwEventCategoryDetailsService.getPwEventFeatureAmplitudeCurve(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, vo, methodDescribe);
}
}

View File

@@ -0,0 +1,88 @@
package com.njcn.event.controller.distribution;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.event.pojo.param.REventMParam;
import com.njcn.event.pojo.vo.RArrayVO;
import com.njcn.event.pojo.vo.REventPolylineVO;
import com.njcn.event.service.majornetwork.RStatEventMService;
import com.njcn.event.service.majornetwork.RStatEventQService;
import com.njcn.event.service.majornetwork.RStatEventYService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author rui.wu
* @since 2022-10-09
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "配网指标分类概览-监测点分类总览")
@RequestMapping("/event/pwRStatHarmonic")
public class PwRStatEventController extends BaseController {
private final RStatEventYService rStatEventYService;
private final RStatEventQService rStatEventQService;
private final RStatEventMService rStatEventMService;
/**
* 查询查询监测点稳态指标 日/月点数
*/
@PostMapping("/getPwAllRStatEvent")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("查询暂态累计超标监测点数")
public HttpResult<List<RArrayVO>> getPwAllRStatEvent(@RequestBody StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getPwAllRStatEvent");
List<RArrayVO> rStatHarmonicMAll = null;
String string = param.getType().toString();
switch (string) {
//查询超标监测点数-年数据
case BizParamConstant.STAT_BIZ_YEAR:
rStatHarmonicMAll = rStatEventYService.getPwRStatEventYAll(param);
break;
//查询超标监测点数-季数据
case BizParamConstant.STAT_BIZ_QUARTER:
rStatHarmonicMAll = rStatEventQService.getPwRStatEventQAll(param);
break;
//查询超标监测点数-月数据
case BizParamConstant.STAT_BIZ_MONTH:
rStatHarmonicMAll = rStatEventMService.getPwRStatEventMAll(param);
break;
default:
break;
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatHarmonicMAll, methodDescribe);
}
/**
* 暂态监测点-频率偏差-电压统计图
*/
@PostMapping("/getPwRStatHarmonicIconDate")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("暂态监测点-频率偏差-越线日期统计图")
public HttpResult<List<REventPolylineVO>> getPwRStatHarmonicIconDate(@RequestBody REventMParam param) {
String methodDescribe = getMethodDescribe("getPwRStatHarmonicIconDate");
List<REventPolylineVO> rStatHarmonicIcon = rStatEventMService.getPwRStatHarmonicIcon2(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatHarmonicIcon, methodDescribe);
}
}

View File

@@ -0,0 +1,103 @@
package com.njcn.event.controller.distribution;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.event.pojo.param.REventMParam;
import com.njcn.event.pojo.vo.RArrayVO;
import com.njcn.event.pojo.vo.RStatEventMVO;
import com.njcn.event.service.majornetwork.RStatEventOrgMService;
import com.njcn.event.service.majornetwork.RStatEventOrgQService;
import com.njcn.event.service.majornetwork.RStatEventOrgYService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author rui.wu
* @since 2022-10-09
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "配网指标分类概览-各单位分类总览")
@RequestMapping("/event/pwRStatHarmonic")
public class PwRStatEventOrgController extends BaseController {
private final RStatEventOrgYService rStatEventOrgYService;
private final RStatEventOrgQService rStatEventOrgQService;
private final RStatEventOrgMService rStatEventOrgMService;
/**
* 查询查询监测点暂态指标 日/月点数
*/
@PostMapping("/getPwAllRStatEventOrg")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("查询暂态累计超标监测点数")
public HttpResult<List<RArrayVO>> getPwAllRStatEventOrg(@RequestBody StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getPwAllRStatEventOrg");
List<RArrayVO> rStatHarmonicOrgAll = null;
String string = param.getType().toString();
switch (string) {
//查询超标监测点数-年数据
case BizParamConstant.STAT_BIZ_YEAR:
rStatHarmonicOrgAll = rStatEventOrgYService.getPwRStatEventOrgYAll(param);
break;
//查询超标监测点数-季数据
case BizParamConstant.STAT_BIZ_QUARTER:
rStatHarmonicOrgAll = rStatEventOrgQService.getPwRStatEventOrgQAll(param);
break;
//查询超标监测点数-月数据
case BizParamConstant.STAT_BIZ_MONTH:
rStatHarmonicOrgAll = rStatEventOrgMService.getPwRStatEventOrgMAll(param);
break;
default:
break;
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatHarmonicOrgAll, methodDescribe);
}
/**
* 查询查询监测点稳态指标 日/月点数
*/
@PostMapping("/getPwAllRStatEventOrgIcon")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("查询暂态各单位超标监测统计图")
public HttpResult<List<RStatEventMVO>> getPwAllRStatEventOrgIcon(@RequestBody REventMParam param) {
String methodDescribe = getMethodDescribe("getPwAllRStatEventOrgIcon");
List<RStatEventMVO> orgList = null;
String string = param.getType().toString();
switch (string) {
//查询各单位累计超标监测点数统计图-年数据
case BizParamConstant.STAT_BIZ_YEAR:
orgList = rStatEventOrgYService.getPwRStatHarmonicOrgYIcon(param);
break;
//查询各单位累计超标监测点数-季数据
case BizParamConstant.STAT_BIZ_QUARTER:
orgList = rStatEventOrgQService.getPwRStatHarmonicOrgQIcon(param);
break;
//查询各单位累计超标监测点数-月数据
case BizParamConstant.STAT_BIZ_MONTH:
orgList = rStatEventOrgMService.getPwRStatHarmonicOrgMIcon(param);
break;
default:
break;
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, orgList, methodDescribe);
}
}

View File

@@ -0,0 +1,70 @@
package com.njcn.event.controller.distribution;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.event.pojo.param.PwUniversalFrontEndParam;
import com.njcn.event.pojo.vo.RStatEventOrgVO;
import com.njcn.event.pojo.vo.RStatOrgVO;
import com.njcn.event.service.distribution.PwRStatOrgService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 配网-暂态事件统计
*
* @author yzh
* @date 2022/10/24
*/
@RestController
@RequestMapping("/pwRStatOrg")
@Api(tags = "配网-暂态事件统计")
@RequiredArgsConstructor
public class PwRStatOrgController extends BaseController {
private final PwRStatOrgService pwRStatOrgService;
/**
* 获取配网区域暂态事件统计
*
* @param param 前端传入参数
* @return 配网区域暂态指标统计
*/
@PostMapping("/getPwRStatOrg")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取配网区域暂态事件统计")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<RStatOrgVO>> getPwRStatOrg(@RequestBody PwUniversalFrontEndParam param) {
String methodDescribe = getMethodDescribe("getPwRStatOrg");
List<RStatOrgVO> list = pwRStatOrgService.getPwRStatOrg(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
/**
* 获取配网区域暂态事件分类统计
*
* @param param 前端传入参数
* @return 配网区域暂态指标统计
*/
@PostMapping("/getPwRStatOrgClassified")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取配网区域暂态事件分类统计")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<RStatEventOrgVO>> getPwRStatOrgClassified(@RequestBody PwUniversalFrontEndParam param) {
String methodDescribe = getMethodDescribe("getPwRStatOrgClassified");
List<RStatEventOrgVO> list = pwRStatOrgService.getPwRStatOrgClassified(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -0,0 +1,52 @@
package com.njcn.event.controller.distribution;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.event.pojo.param.UniversalFrontEndParam;
import com.njcn.event.pojo.vo.PwRmpEventDetailVO;
import com.njcn.event.service.distribution.PwRmpEventDetailService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 配网-暂态事件明细
*
* @author yzh
* @date 2022/10/31
*/
@RestController
@RequestMapping("/pwEventCategoryDetails")
@Api(tags = "配网-暂态事件明细")
@RequiredArgsConstructor
public class PwRmpEventDetailController extends BaseController {
private final PwRmpEventDetailService pwRmpEventDetailService;
/**
* 获取配网暂态事件明细
*
* @param param 前端传入参数
* @return 暂态事件明细
*/
@PostMapping("/getPwRmpEventDetail")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取暂态事件明细")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<PwRmpEventDetailVO>> getPwRmpEventDetail(@RequestBody UniversalFrontEndParam param) {
String methodDescribe = getMethodDescribe("getPwRmpEventDetail");
List<PwRmpEventDetailVO> list = pwRmpEventDetailService.getPwRmpEventDetail(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -1,4 +1,4 @@
package com.njcn.event.controller;
package com.njcn.event.controller.majornetwork;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;

View File

@@ -1,4 +1,4 @@
package com.njcn.event.controller;
package com.njcn.event.controller.majornetwork;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
@@ -8,7 +8,7 @@ import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.event.pojo.vo.AreaAnalysisVO;
import com.njcn.event.pojo.vo.VoltageToleranceCurveVO;
import com.njcn.event.service.AreaAnalysisService;
import com.njcn.event.service.majornetwork.AreaAnalysisService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;

View File

@@ -1,4 +1,4 @@
package com.njcn.event.controller;
package com.njcn.event.controller.majornetwork;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
@@ -11,7 +11,7 @@ import com.njcn.event.pojo.vo.AreaLineVO;
import com.njcn.event.pojo.vo.EventHeatMapVO;
import com.njcn.event.pojo.vo.EventSeverityVO;
import com.njcn.event.pojo.vo.TerminalRunningStatisticsVO;
import com.njcn.event.service.AreaLineService;
import com.njcn.event.service.majornetwork.AreaLineService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;

View File

@@ -1,4 +1,4 @@
package com.njcn.event.controller;
package com.njcn.event.controller.majornetwork;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
@@ -7,7 +7,7 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.event.pojo.vo.AreaStatisticalVO;
import com.njcn.event.service.AreaStatisticalService;
import com.njcn.event.service.majornetwork.AreaStatisticalService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;

View File

@@ -1,4 +1,4 @@
package com.njcn.event.controller;
package com.njcn.event.controller.majornetwork;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
@@ -7,7 +7,7 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.common.utils.LogUtil;
import com.njcn.event.pojo.po.EventDetail;
import com.njcn.event.service.EventDetailService;
import com.njcn.event.service.majornetwork.EventDetailService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -18,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
@@ -95,7 +96,7 @@ public class EventDetailController extends BaseController {
public HttpResult<List<EventDetail>> getEventDetail(@RequestBody List<String> lineIndexes, @RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime) {
String methodDescribe = getMethodDescribe("getEventDetail");
LogUtil.njcnDebug(log, "{}监测点id为{}", methodDescribe, lineIndexes);
List<EventDetail> result = eventDetailService.getEventDetail(lineIndexes, startTime, endTime);
List<EventDetail> result = eventDetailService.getEventDetail(lineIndexes, startTime, endTime, new ArrayList<>());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@@ -119,7 +120,7 @@ public class EventDetailController extends BaseController {
public HttpResult<List<EventDetail>> getEventDetailLimit(@RequestBody List<String> lineIndexes, @RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime, @RequestParam("pageSize") Integer pageSize, @RequestParam("pageNum") Integer pageNum) {
String methodDescribe = getMethodDescribe("getEventDetailLimit");
LogUtil.njcnDebug(log, "{}监测点id为{}", methodDescribe, lineIndexes);
List<EventDetail> result = eventDetailService.getEventDetailLimit(lineIndexes, startTime, endTime, pageSize, pageNum);
List<EventDetail> result = eventDetailService.getEventDetailLimit(lineIndexes, startTime, endTime, pageSize, pageNum, new ArrayList<>());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}

View File

@@ -0,0 +1,103 @@
package com.njcn.event.controller.majornetwork;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.event.pojo.vo.EventDistributionStatisticsTableVO;
import com.njcn.event.pojo.vo.EventFeatureAmplitudeCurveVO;
import com.njcn.event.pojo.vo.SimpleVO;
import com.njcn.event.service.majornetwork.EventDistributionStatisticsService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 主网-暂态指标分布统计
*
* @author yzh
* @date 2022/10/20
*/
@RestController
@RequestMapping("/eventDistributionStatistics")
@Api(tags = "主网-暂态指标分布统计")
@RequiredArgsConstructor
public class EventDistributionStatisticsController extends BaseController {
private final EventDistributionStatisticsService eventDistributionStatisticsService;
/**
* 获取暂态指标分布统计表格
*
* @param param 前端传入参数
* @return 暂态指标分布统计
*/
@PostMapping("/getEventDistributionStatisticsTable")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取暂态指标分布统计表格")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<EventDistributionStatisticsTableVO>> getEventDistributionStatisticsTable(@RequestBody StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getEventDistributionStatisticsTable");
List<EventDistributionStatisticsTableVO> eventDistributionStatisticsVO = eventDistributionStatisticsService.getEventDistributionStatisticsTable(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eventDistributionStatisticsVO, methodDescribe);
}
/**
* 获取持续时间折线图
*
* @param param 前端传入参数
* @return 持续时间折线图
*/
@PostMapping("/getEventDurationLineChart")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取持续时间折线图")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<SimpleVO>> getEventDurationLineChart(@RequestBody StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getEventDurationLineChart");
List<SimpleVO> list = eventDistributionStatisticsService.getEventDurationLineChart(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
/**
* 获取特征幅值折线图
*
* @param param 前端传入参数
* @return 特征幅值折线图
*/
@PostMapping("/getEventFeatureAmplitudeLineChart")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取特征幅值折线图")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<SimpleVO>> getEventFeatureAmplitudeLineChart(@RequestBody StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getEventFeatureAmplitudeLineChart");
List<SimpleVO> list = eventDistributionStatisticsService.getEventFeatureAmplitudeLineChart(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
/**
* 获取暂态指标分布统计曲线图
*
* @param param 前端传入参数
* @return 暂态指标分布统计曲线图
*/
@PostMapping("/getEventFeatureAmplitudeCurve")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取暂态指标分布统计曲线图")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<EventFeatureAmplitudeCurveVO> getEventFeatureAmplitudeCurve(@RequestBody StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getEventFeatureAmplitudeCurve");
EventFeatureAmplitudeCurveVO curve = eventDistributionStatisticsService.getEventFeatureAmplitudeCurve(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, curve, methodDescribe);
}
}

View File

@@ -0,0 +1,66 @@
package com.njcn.event.controller.majornetwork;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.event.pojo.param.EventMonitorReportParam;
import com.njcn.event.pojo.vo.EventDipShortDistributionVO;
import com.njcn.event.pojo.vo.EventMonitorReportVO;
import com.njcn.event.pojo.vo.EventRiseDistributionVO;
import com.njcn.event.service.majornetwork.EventMonitorReportService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 暂态指标监测点统计报表
* @Title EventMonitorDailyReportController
* @Package com.njcn.event.controller
* @Author jianghaifei
* @Date 2022-10-25 09:36
* @Version V1.0
*/
@RestController
@RequestMapping("/eventMonitorReport")
@Api(tags = "主网-暂态指标统计报表")
@RequiredArgsConstructor
public class EventMonitorReportController extends BaseController {
private final EventMonitorReportService eventMonitorReportService;
@PostMapping("getDailyReport")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("暂态指标监测点日报")
public HttpResult<List<EventMonitorReportVO>> getDailyReport(@RequestBody EventMonitorReportParam eventMonitorReportParam) {
String methodDescribe = getMethodDescribe("getDailyReport");
List<EventMonitorReportVO> list = eventMonitorReportService.getDailyReport(eventMonitorReportParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@PostMapping("getEventDipShortDistribution")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("暂态指标监测点电压暂降和短时中断分布情况")
public HttpResult<EventDipShortDistributionVO> getEventDipShortDistribution(@RequestBody EventMonitorReportParam eventMonitorReportParam) {
String methodDescribe = getMethodDescribe("getEventDipShortDistribution");
EventDipShortDistributionVO eventDipShortDistributionVO = eventMonitorReportService.getEventDipShortDistributionByCond(eventMonitorReportParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eventDipShortDistributionVO, methodDescribe);
}
@PostMapping("getEventRiseDistribution")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("暂态指标监测点电压暂升分布情况")
public HttpResult<EventRiseDistributionVO> getEventRiseDistribution(@RequestBody EventMonitorReportParam eventMonitorReportParam) {
String methodDescribe = getMethodDescribe("getEventRiseDistribution");
EventRiseDistributionVO eventRiseDistributionVO = eventMonitorReportService.getEventRiseDistributionByCond(eventMonitorReportParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eventRiseDistributionVO, methodDescribe);
}
}

View File

@@ -1,4 +1,4 @@
package com.njcn.event.controller;
package com.njcn.event.controller.majornetwork;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
@@ -11,10 +11,9 @@ import com.njcn.common.utils.HttpResultUtil;
import com.njcn.event.pojo.param.*;
import com.njcn.event.pojo.po.EventDetail;
import com.njcn.event.pojo.vo.*;
import com.njcn.event.service.EventAnalysisService;
import com.njcn.event.service.majornetwork.EventAnalysisService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.*;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;

View File

@@ -0,0 +1,101 @@
package com.njcn.event.controller.majornetwork;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.event.pojo.param.REventMParam;
import com.njcn.event.pojo.vo.*;
import com.njcn.event.service.majornetwork.RStatEventMService;
import com.njcn.event.service.majornetwork.RStatEventQService;
import com.njcn.event.service.majornetwork.RStatEventYService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author rui.wu
* @since 2022-10-09
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "主网指标分类概览-监测点分类总览")
@RequestMapping("/event/rStatHarmonic")
public class RStatEventMController extends BaseController {
private final RStatEventYService rStatEventYService;
private final RStatEventQService rStatEventQService;
private final RStatEventMService rStatEventMService;
/**
* 查询查询监测点稳态指标 日/月点数
*/
@GetMapping("/getAllRStatEvent")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("查询暂态累计超标监测点数")
public HttpResult<List<RArrayVO>> getAllRStatEventM(StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getAllRStatHarmonic");
List<RArrayVO> rStatHarmonicMAll = null;
String string = param.getType().toString();
switch (string) {
//查询超标监测点数-年数据
case BizParamConstant.STAT_BIZ_YEAR:
rStatHarmonicMAll = rStatEventYService.getRStatEventYAll(param);
break;
//查询超标监测点数-季数据
case BizParamConstant.STAT_BIZ_QUARTER:
rStatHarmonicMAll = rStatEventQService.getRStatEventQAll(param);
break;
//查询超标监测点数-月数据
case BizParamConstant.STAT_BIZ_MONTH:
rStatHarmonicMAll = rStatEventMService.getRStatEventMAll(param);
break;
default:
break;
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatHarmonicMAll, methodDescribe);
}
/**
* 暂态按电压等级统计图
*/
@GetMapping("/getRStatHarmonicIconVoltage")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("暂态电铁-频率偏差-电压统计图")
public HttpResult<List<RStatEventMVO>> getRStatEventIcon1(REventMParam param) {
String methodDescribe = getMethodDescribe("getRStatHarmonicIconVoltage");
List<RStatEventMVO> rStatHarmonicIcon = rStatEventMService.getRStatHarmonicIcon(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatHarmonicIcon, methodDescribe);
}
/**
* 暂态电铁-频率偏差-电压统计图
*/
@GetMapping("/getRStatHarmonicIconDate")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("暂态电铁-频率偏差-越线日期统计图")
public HttpResult<List<REventPolylineVO>> getRStatEventIcon2(REventMParam param) {
String methodDescribe = getMethodDescribe("getRStatHarmonicIconDate");
List<REventPolylineVO> rStatHarmonicIcon = rStatEventMService.getRStatHarmonicIcon2(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatHarmonicIcon, methodDescribe);
}
}

View File

@@ -0,0 +1,106 @@
package com.njcn.event.controller.majornetwork;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.event.pojo.param.REventMParam;
import com.njcn.event.pojo.vo.RArrayVO;
import com.njcn.event.pojo.vo.RStatEventMVO;
import com.njcn.event.service.majornetwork.RStatEventOrgMService;
import com.njcn.event.service.majornetwork.RStatEventOrgQService;
import com.njcn.event.service.majornetwork.RStatEventOrgYService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author rui.wu
* @since 2022-10-09
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "主网指标分类概览-各单位分类总览")
@RequestMapping("/event/rStatHarmonic")
public class RStatEventOrgMController extends BaseController {
private final RStatEventOrgYService rStatEventOrgYService;
private final RStatEventOrgQService rStatEventOrgQService;
private final RStatEventOrgMService rStatEventOrgMService;
/**
* 查询查询监测点暂态指标 日/月点数
*/
@GetMapping("/getAllRStatEventOrg")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("查询暂态累计超标监测点数")
public HttpResult<List<RArrayVO>> getAllRStatEventOrg(StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getAllRStatEventOrg");
List<RArrayVO> rStatHarmonicOrgAll = null;
String string = param.getType().toString();
switch (string) {
//查询超标监测点数-年数据
case BizParamConstant.STAT_BIZ_YEAR:
rStatHarmonicOrgAll = rStatEventOrgYService.getRStatEventOrgYAll(param);
break;
//查询超标监测点数-季数据
case BizParamConstant.STAT_BIZ_QUARTER:
rStatHarmonicOrgAll = rStatEventOrgQService.getRStatEventOrgQAll(param);
break;
//查询超标监测点数-月数据
case BizParamConstant.STAT_BIZ_MONTH:
rStatHarmonicOrgAll = rStatEventOrgMService.getRStatEventOrgMAll(param);
break;
default:
break;
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatHarmonicOrgAll, methodDescribe);
}
/**
* 查询查询监测点稳态指标 日/月点数
*/
@GetMapping("/getAllRStatEventOrgIcon")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("查询暂态各单位超标监测统计图")
public HttpResult<List<RStatEventMVO>> getAllRStatEventOrgIcon(REventMParam param) {
String methodDescribe = getMethodDescribe("getAllRStatEventOrgIcon");
List<RStatEventMVO> getAllRStatEventOrgIcon = null;
String string = param.getType().toString();
switch (string) {
//查询各单位累计超标监测点数统计图-年数据
case BizParamConstant.STAT_BIZ_YEAR:
getAllRStatEventOrgIcon = rStatEventOrgYService.getRStatHarmonicOrgYIcon(param);
break;
//查询各单位累计超标监测点数-季数据
case BizParamConstant.STAT_BIZ_QUARTER:
getAllRStatEventOrgIcon = rStatEventOrgQService.getRStatHarmonicOrgQIcon(param);
break;
//查询各单位累计超标监测点数-月数据
case BizParamConstant.STAT_BIZ_MONTH:
getAllRStatEventOrgIcon = rStatEventOrgMService.getRStatHarmonicOrgMIcon(param);
break;
default:
break;
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, getAllRStatEventOrgIcon, methodDescribe);
}
}

View File

@@ -0,0 +1,80 @@
package com.njcn.event.controller.majornetwork;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.event.pojo.vo.RSubstationIcon2VO;
import com.njcn.event.pojo.vo.RSubstationIconVO;
import com.njcn.event.pojo.vo.RVoltageIconVO;
import com.njcn.event.service.majornetwork.RStatSubstationMService;
import com.njcn.event.service.majornetwork.RStatSubstationVoltageMService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author rui.wu
* @since 2022-10-18
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "主网指标分类概览-变电站分类总览")
@RequestMapping("/event/rStatSubstation")
public class RStatSubstationMController extends BaseController {
private final RStatSubstationMService rStatSubstationMService;
private final RStatSubstationVoltageMService rStatSubstationVoltageMService;
/**
* 变电站暂态指标超标分布(按发生频次)
*/
@GetMapping("/getStatSubstationIconDistributed")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("变电站暂态分布(按发生频次)")
public HttpResult<RSubstationIconVO> getAllRStatSubstation(StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getStatSubstationIconDistributed");
RSubstationIconVO statSubstationIcon = rStatSubstationMService.getStatSubstationIcon(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, statSubstationIcon, methodDescribe);
}
/**
* 变电站暂态分布(按电压等级)
*/
@GetMapping("/getStatSubstationIconVoltage")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("变电站暂态分布(按电压等级)")
public HttpResult<List<RVoltageIconVO>> getAllRStatSubstationIcon2(StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getStatSubstationIconVoltage");
List<RVoltageIconVO> statSubstationIcon = rStatSubstationVoltageMService.getStatSubstationIcon(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, statSubstationIcon, methodDescribe);
}
/**
* 变电站暂态指标发生频次
*/
@GetMapping("/getStatSubstationIconIndex")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("变电站暂态指标发生频次")
public HttpResult<List<RSubstationIcon2VO>> getAllRStatSubstationIcon3(StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getStatSubstationIconIndex");
List<RSubstationIcon2VO> statSubstationIcon = rStatSubstationMService.getStatSubstationIcon2(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, statSubstationIcon, methodDescribe);
}
}

View File

@@ -1,21 +1,18 @@
package com.njcn.event.controller;
package com.njcn.event.controller.majornetwork;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.dto.SimpleDTO;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.event.pojo.param.*;
import com.njcn.event.pojo.vo.DetailVO;
import com.njcn.event.pojo.vo.GeneralVO;
import com.njcn.event.pojo.vo.ReasonsVO;
import com.njcn.event.pojo.vo.WaveTypeVO;
import com.njcn.event.service.ReportService;
import com.njcn.poi.util.PoiUtil;
import com.njcn.event.service.majornetwork.ReportService;
import com.njcn.web.controller.BaseController;
import freemarker.template.TemplateException;
import io.swagger.annotations.Api;
@@ -23,22 +20,13 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.util.CellRangeAddress;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.ParseException;
import java.util.*;
import java.util.List;
/**

View File

@@ -1,6 +1,6 @@
package com.njcn.event.controller;
package com.njcn.event.controller.majornetwork;
import cn.hutool.core.collection.CollectionUtil;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
@@ -8,20 +8,19 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.event.pojo.param.UniversalFrontEndParam;
import com.njcn.event.pojo.vo.RmpEventDetailVO;
import com.njcn.event.service.RmpEventDetailService;
import com.njcn.event.service.majornetwork.RmpEventDetailService;
import com.njcn.system.pojo.po.DictData;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 暂态事件明细
* 主网-暂态事件明细
*
* @author yzh
* @date 2022/10/12
@@ -29,7 +28,7 @@ import java.util.List;
@RestController
@RequestMapping("/rmpEventDetail")
@Api(tags = "暂态事件明细")
@Api(tags = "主网-暂态事件明细")
@RequiredArgsConstructor
public class RmpEventDetailController extends BaseController {
@@ -43,11 +42,31 @@ public class RmpEventDetailController extends BaseController {
*/
@PostMapping("/getDetailsOfTransientEvents")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取区域暂态指标统计")
// @ApiImplicitParam(name = "UniversalFrontEndParam", value = "前端参数", required = true)
@ApiOperation("获取暂态事件明细")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<RmpEventDetailVO>> getRmpEventDetail(@RequestBody UniversalFrontEndParam param) {
String methodDescribe = getMethodDescribe("getRmpEventDetail");
List<RmpEventDetailVO> list = rmpEventDetailService.getRmpEventDetail(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
/**
* 获取暂态指标类型列表
*
* @return 暂态指标类型列表
*/
@GetMapping("/getEventStatisList")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取暂态指标类型列表")
public HttpResult<List<DictData>> getEventStatisList() {
String methodDescribe = getMethodDescribe("getEventStatisList");
List<DictData> list = rmpEventDetailService.getEventStatisList();
if (CollectionUtil.isEmpty(list)) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.NO_DATA, null, methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}
}

View File

@@ -1,4 +1,4 @@
package com.njcn.event.controller;
package com.njcn.event.controller.majornetwork;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
@@ -9,9 +9,10 @@ import com.njcn.event.pojo.param.UniversalFrontEndParam;
import com.njcn.event.pojo.vo.RStatEventOrgVO;
import com.njcn.event.pojo.vo.RStatOrgVO;
import com.njcn.event.pojo.vo.RStatSubstationVO;
import com.njcn.event.service.StatisticsOfTransientIndicatorssService;
import com.njcn.event.service.majornetwork.StatisticsOfTransientIndicatorssService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
@@ -22,7 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 暂态指标统计
* 主网-暂态指标统计
*
* @author yzh
* @date 2022/10/10
@@ -30,7 +31,7 @@ import java.util.List;
@RestController
@RequestMapping("/statisticsOfTransientIndicators")
@Api(tags = "暂态指标统计")
@Api(tags = "主网-暂态指标统计")
@RequiredArgsConstructor
public class StatisticsOfTransientIndicatorsController extends BaseController {
@@ -45,7 +46,7 @@ public class StatisticsOfTransientIndicatorsController extends BaseController {
@PostMapping("/getRStatOrg")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取区域暂态指标统计")
// @ApiImplicitParam(name = "UniversalFrontEndParam", value = "前端参数", required = true)
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<RStatOrgVO>> getRStatOrg(@RequestBody UniversalFrontEndParam param) {
String methodDescribe = getMethodDescribe("getRStatOrg");
List<RStatOrgVO> list = statisticsOfTransientIndicatorssService.getRStatOrg(param);
@@ -61,7 +62,7 @@ public class StatisticsOfTransientIndicatorsController extends BaseController {
@PostMapping("/getRStatEventOrg")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取区域暂态指标分类统计表")
// @ApiImplicitParam(name = "UniversalFrontEndParam", value = "前端参数", required = true)
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<RStatEventOrgVO>> getRStatEventOrg(@RequestBody UniversalFrontEndParam param) {
String methodDescribe = getMethodDescribe("getRStatEventOrg");
List<RStatEventOrgVO> list = statisticsOfTransientIndicatorssService.getRStatEventOrg(param);
@@ -78,7 +79,7 @@ public class StatisticsOfTransientIndicatorsController extends BaseController {
@PostMapping("/getRStatSubstation")
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@ApiOperation("获取变电站暂态指标分类统计表")
// @ApiImplicitParam(name = "UniversalFrontEndParam", value = "前端参数", required = true)
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<RStatSubstationVO>> getRStatSubstation(@RequestBody UniversalFrontEndParam param) {
String methodDescribe = getMethodDescribe("getRStatSubstation");
List<RStatSubstationVO> list = statisticsOfTransientIndicatorssService.getRStatSubstation(param);

Some files were not shown because too many files have changed in this diff Show More