高级算法模块暂降综合评估
This commit is contained in:
@@ -17,4 +17,29 @@
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.njcn</groupId>
|
||||
<artifactId>common-core</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.njcn</groupId>
|
||||
<artifactId>common-db</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.njcn</groupId>
|
||||
<artifactId>common-microservice</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sun.jna</groupId>
|
||||
<artifactId>jna</artifactId>
|
||||
<version>3.0.9</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.njcn.advance.pojo.bo;
|
||||
|
||||
/**
|
||||
* pqs
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2023/6/20
|
||||
*/
|
||||
public interface FinalData {
|
||||
|
||||
/**
|
||||
* 暂降事件按开始时间归集门槛10秒
|
||||
*/
|
||||
int TIME_THRESHOLD = 10;
|
||||
//分组的最大组数
|
||||
int MAX_GROUP_NUM = 1000;
|
||||
//类别数
|
||||
int MAX_CATA_NUM = 7;
|
||||
//最大事件个数
|
||||
int MAX_EVT_NUM = 1000;
|
||||
//三相故障
|
||||
int QVVR_TYPE_THREE = 9;
|
||||
//故障类型未知
|
||||
int QVVR_TYPE_UNKNOWN = 10;
|
||||
//节点不在网络拓扑中
|
||||
int QVVR_TYPE_OUTOFRANGE = -1;
|
||||
int DATA_INF = -1;
|
||||
int EVT_TYPE_NUM = 6;//故障类型数
|
||||
int MAX_PATH_NUM = 50;//最大路径数
|
||||
int NODE_NUM = -1;//输入节点数
|
||||
|
||||
// 暂降综合评估算法
|
||||
int CLUSER_NUM = 4; // 系统中各监测点分类后的代表节点
|
||||
int MAX_LINE_NUM = 1000; // 监测点最多个数
|
||||
int MAX_STA_NUM = 120; // 支持的子系统个数
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.njcn.advance.pojo.bo;
|
||||
|
||||
import com.njcn.advance.pojo.dto.QtIdx;
|
||||
import com.sun.jna.Structure;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* pqs
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2023/6/20
|
||||
*/
|
||||
public class QtIdxArray extends Structure {
|
||||
|
||||
public QtIdx[] qtIdxs = new QtIdx[FinalData.MAX_LINE_NUM];
|
||||
|
||||
@Override
|
||||
protected List getFieldOrder() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static class ByReference extends QtIdxArray implements Structure.ByReference {
|
||||
|
||||
}
|
||||
|
||||
public static class ByValue extends QtIdxArray implements Structure.ByValue {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.njcn.advance.pojo.bo;
|
||||
|
||||
import com.sun.jna.Structure;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* pqs
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2023/6/20
|
||||
*/
|
||||
public class QvvrDataStruct extends Structure {
|
||||
|
||||
public int sys_num; // 评估系统数目
|
||||
public QtIdxArray[] line_idx = new QtIdxArray[FinalData.MAX_STA_NUM];// 评估使用,各个系统的各监测点数据
|
||||
public int[] line_num = new int[FinalData.MAX_STA_NUM]; // 单个系统内的监测点数目
|
||||
// 输出
|
||||
public ZtpgSin[] sys_res = new ZtpgSin[FinalData.MAX_STA_NUM]; // 评估结果
|
||||
|
||||
public static class ByReference extends QvvrDataStruct implements Structure.ByReference {
|
||||
|
||||
}
|
||||
|
||||
public static class ByValue extends QvvrDataStruct implements Structure.ByValue {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> getFieldOrder() { // 返回值填入的顺序
|
||||
return Arrays.asList(new String[]{"sys_res"});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.njcn.advance.pojo.bo;
|
||||
|
||||
import com.sun.jna.Structure;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* pqs
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2023/6/20
|
||||
*/
|
||||
public class ZtpgSin extends Structure {
|
||||
|
||||
public int[] Site_rep = new int[FinalData.CLUSER_NUM]; // 系统中各个监测点分类后的代表节点
|
||||
public int line_num; // 监测点数
|
||||
public float[] CIV = new float[FinalData.MAX_LINE_NUM]; // 最终计算的每个监测点的相对指标得分
|
||||
public int[] L = new int[FinalData.MAX_LINE_NUM]; // 每个监测点得分后的分级
|
||||
public float CI; // 系统的最终评估分
|
||||
|
||||
public static class ByReference extends ZtpgSin implements Structure.ByReference {
|
||||
|
||||
}
|
||||
|
||||
public static class ByValue extends ZtpgSin implements Structure.ByValue {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> getFieldOrder() {
|
||||
return Arrays.asList(new String[] { "Site_rep", "line_num", "CIV", "L", "CI" });
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.njcn.advance.pojo.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* pqs
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2023/6/20
|
||||
*/
|
||||
@Data
|
||||
public class AdvanceBaseDTO {
|
||||
|
||||
private String lineId;
|
||||
|
||||
private Float valueA;
|
||||
|
||||
private Integer valueB;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.njcn.advance.pojo.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* pqs
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2023/6/19
|
||||
*/
|
||||
@Data
|
||||
public class BalanceInfo {
|
||||
private String pointId;
|
||||
private String pointName;
|
||||
private QtIdx qtIdx;
|
||||
private float civ; // 结果
|
||||
private int l; // 分级
|
||||
|
||||
private String areaIndex; // 区域的index
|
||||
private String areaName;// 区域名称
|
||||
private float ci; // 系统最终的评估分
|
||||
private List<PointInfo> list; // 监测点的详细信息
|
||||
private int isCount; // 标识是否经过计算,默认为0-未计算,1-计算
|
||||
|
||||
|
||||
|
||||
|
||||
@Data
|
||||
public static class PointInfo {
|
||||
private String pointId;
|
||||
private String pointName;
|
||||
private QtIdx qtIdx;
|
||||
private float civ; // 结果
|
||||
private int l; // 分级
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.njcn.advance.pojo.dto;
|
||||
|
||||
import com.sun.jna.Structure;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* pqs
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2023/6/19
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class QtIdx extends Structure{
|
||||
|
||||
/**
|
||||
* 暂降幅值
|
||||
*/
|
||||
public float r_esm;
|
||||
|
||||
/**
|
||||
* sarifi-90
|
||||
*/
|
||||
public int sarfi_90;
|
||||
|
||||
/**
|
||||
* sarifi-50
|
||||
*/
|
||||
public int sarifi_50;
|
||||
|
||||
/**
|
||||
* 暂降能量
|
||||
*/
|
||||
public float r_asei;
|
||||
|
||||
/**
|
||||
* 严重程度
|
||||
*/
|
||||
public float r_assi;
|
||||
|
||||
public static class ByReference extends QtIdx implements Structure.ByReference {
|
||||
|
||||
}
|
||||
|
||||
public static class ByValue extends QtIdx implements Structure.ByValue {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List getFieldOrder() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.njcn.advance.pojo.param;
|
||||
|
||||
import com.njcn.web.pojo.annotation.DateTimeStrValid;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* pqs
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2023/6/19
|
||||
*/
|
||||
@Data
|
||||
public class AdvanceBaseParam {
|
||||
|
||||
@ApiModelProperty(value = "开始时间")
|
||||
@DateTimeStrValid(message = "开始时间格式出错")
|
||||
@NotBlank(message = "开始时间不可为空")
|
||||
private String startTime;
|
||||
|
||||
@ApiModelProperty(value = "结束时间")
|
||||
@DateTimeStrValid(message = "结束时间格式出错")
|
||||
@NotBlank(message = "结束时间不可为空")
|
||||
private String endTime;
|
||||
|
||||
@ApiModelProperty(value = "部门索引")
|
||||
@NotBlank(message = "部门索引不可为空")
|
||||
private String deptId;
|
||||
}
|
||||
Reference in New Issue
Block a user