高级算法模块暂降综合评估

This commit is contained in:
2023-06-21 09:13:07 +08:00
parent 29a6dfe038
commit c5d469f6d1
27 changed files with 850 additions and 15 deletions

View File

@@ -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; // 支持的子系统个数
}

View File

@@ -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 {
}
}

View File

@@ -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"});
}
}

View File

@@ -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" });
}
}

View File

@@ -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;
}

View File

@@ -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; // 分级
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}