package com.njcn.gather.steady.checksquare.pojo.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * 数据校验总览项。
 */
@Data
@ApiModel("数据校验总览项")
public class SteadyChecksquareItemVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("检测项 ID")
    private String itemId;

    @ApiModelProperty("校验项唯一键")
    private String itemKey;

    @ApiModelProperty("监测点 ID")
    private String lineId;

    @ApiModelProperty("监测点名称")
    private String lineName;

    @ApiModelProperty("指标编码")
    private String indicatorCode;

    @ApiModelProperty("指标名称")
    private String indicatorName;

    @ApiModelProperty("谐波次数")
    private Integer harmonicOrder;

    @ApiModelProperty("当前校验项统计间隔，单位分钟")
    private Integer intervalMinutes;

    @ApiModelProperty("时间范围内是否存在任意数据")
    private Boolean hasData;

    @ApiModelProperty("期望点数")
    private Integer expectedPointCount;

    @ApiModelProperty("实际点数")
    private Integer actualPointCount;

    @ApiModelProperty("缺失点数")
    private Integer missingPointCount;

    @ApiModelProperty("数据完整性")
    private BigDecimal dataIntegrity;

    @ApiModelProperty("数据完整性文本")
    private String dataIntegrityText;

    @ApiModelProperty("指标值大小关系是否异常")
    private Boolean abnormal;

    @ApiModelProperty("指标值大小关系异常累计值")
    private Integer abnormalPointCount;

    @ApiModelProperty("指标值大小关系异常明细")
    private List<SteadyChecksquareValueOrderDetailVO> abnormalDetails = new ArrayList<SteadyChecksquareValueOrderDetailVO>();

    @ApiModelProperty("谐波奇偶关系是否异常")
    private Boolean harmonicParityAbnormal;

    @ApiModelProperty("谐波奇偶关系异常累计值")
    private Integer harmonicParityAbnormalPointCount;

    @ApiModelProperty("谐波奇偶关系异常明细")
    private List<SteadyChecksquareHarmonicParityDetailVO> harmonicParityAbnormalDetails =
            new ArrayList<SteadyChecksquareHarmonicParityDetailVO>();

    @ApiModelProperty("统计类型摘要")
    private List<SteadyChecksquareStatSummaryVO> statSummaries = new ArrayList<SteadyChecksquareStatSummaryVO>();

    @ApiModelProperty("统计类型明细")
    private List<SteadyChecksquareStatDetailVO> statDetails = new ArrayList<SteadyChecksquareStatDetailVO>();
}
