package jtznyj.engineer.service.dataDiagnosticService.models;

import java.util.ArrayList;

/**
 * 字段预警规则
 */
public class FieldRule {
    /**
     * 规则名
     */
    public String name;

    /**
     *
     */

    /**
     * 分析类别--1门限 2振幅 4趋势辨别 8波动
     */
    public int analyseType  =  1;

    /**
     * 真实字段
     */
    public String realField;

    /**
     * 监控时长
     */
    public double monitorTime;

    /**
     * 异常持续时长
     */
    public double continuedTime;
    public double beginSec;
    public double minSpeed;

    /**
     * 与振幅数量有关的--震荡次数
     */
    public int zdCount;
    public double upDownRangeSpeed;

    /**
     * 趋势分析类别
     */
    public int trendType  =  1;
    public double speed;
    public double upDownRangeSpeed1;

    /**
     * 条件组合运算类别（and\or）
     */
    public int fieldHandleType  =  -1; // enum default none
    public double minTotalNum;
    public double upDownRangeTotalNum;

    /**
     * 总量
     */
    public double TotalNum;
    public double upDownRangeTotalNum1;
    /**
     * 是否低于正常值
     */
    public boolean Continue  =  false;

    /**
     * 正常值
     */
    public double continueValue  =  1;
    /**
     *字段可用性
     */
    public boolean fieldUseable  =  true;
    public double upResetSec;
    public boolean resetParams;

    /**
     * 分组编号
     */
    public int fzNum  =  0;
    public double quickDownUpSec;
    public double quickDownUpValue;

    /**
     * 门限--最大总量
     */
    public double maxTotalNum;

    /**
     * 趋势参数类型（总量、倍数)
     */
    public int trendTypeParam;

    /**
     * 趋势分析--起始值
     */
    public double beginValue;

    /**
     * 趋势分析--截止值
     */
    public double endValue;

    /**
     * 倍数
     */
    public double mul;

    /**
     * 波动范围
     */
    public double bdLtValue;

    /**
     * 开泵
     */
    public boolean isPumpRunJump;

    /**
     * 开泵时长
     */
    public int isPumpRunJumpTime;

    /**
     * 停泵
     */
    public boolean isPumpStopJump;

    /**
     * 停泵时长
     */
    public int isPumpStopJumpTime;

    /**
     * 是否排除气体
     */
    public boolean pchx;

    /**
     * 排气时长
     */
    public int pchxTime;

    /**
     * 颜色配置
     */
    public String color;
    public double quickDownSec;
    public double quickDownValue;

    /**
     * 是否启用前置条件
     */
    public Boolean preconditions =false;
    /**
     * 前置条件判断字段
     */
    public String preconditionsField = "";
    /**
     * 前置条件list
     */
    public ArrayList<DoorList> doorList = new ArrayList<DoorList>();
}
