package com.mosty.bkzx.sjjs.dto;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 大华布控请求
 */
@Data
public class DispositionObjectDto  implements Serializable {
    /**
     * 布控id，【必填】 总共33位，前12位机构编码，其中1-6位为
     * 省市县的行政区划代码；第7-12位为前六位所标识的公安机关的下辖机构，分为三层，每层编
     * 码2位，00代表本级机构。13-14位为子类型编码，详细定义：01-布/撤控 ；02-告警 ；03-订
     * 阅；04-通知 ；99-其它 ；15-28位为当前时间；最后5位为随机数。
     */
    @JSONField(name = "DispositionID")
    private  String     DispositionID;
    /**
     * 布控标题，布控时【必填】
     */
    @JSONField(name = "Title")
    private  String     Title;
    /**
     * 布控类别，人、机动车、非机动车、关键字、人脸等布
     * 控时【必填】 详细定义见A10 布控类别（DispositionCategoryType）
     */
    @JSONField(name = "DispositionCategory")
    private  int        DispositionCategory;
    /**
     * 布控对象特征 ，【选填】。
     */
    @JSONField(name = "TargetFeature")
    private  String     TargetFeature;
    /**
     *布控对象图像，图像路径，以目标图像特征进行布控时使
     * 用。【选填】
     */
    @JSONField(name = "TargetImageURI")
    private  String     TargetImageURI;
    /**
     * 布控优先级 ，1-3 级，1 级最高，3 级最低。预警灵敏度越高，
     * 则触发预警的相似度阈值越低，误报率越高。各厂商分析系统可根据预警灵敏度级别，设置布
     * 控的相似度阈值。【选填】
     */
    @JSONField(name = "PriorityLevel")
    private  int     PriorityLevel;
    /**
     *申请人 姓名 【必填】
     */
    @JSONField(name = "ApplicantName")
    private  String     ApplicantName;
    /**
     * 申请人联系方式 【选填】
     */
    @JSONField(name = "ApplicantInfo")
    private  String     ApplicantInfo;
    /**
     * 申请单位 【必填】
     */
    @JSONField(name = "ApplicantOrg")
    private  String     ApplicantOrg;
    /**
     * 布控开始时间 【必填】
     */
    @JSONField(name = "BeginTime")
    private  String     BeginTime;
    /**
     * 布控结束时间 【必填】
     */
    @JSONField(name = "EndTime")
    private  String     EndTime;
    /**
     * : 创建时间，系统自动生成
     */
    @JSONField(name = "CreatTime")
    private  String     CreatTime;
    /**
     *  布控操作类型 ,【必填】 0:布控；1：撤控
     */
    @JSONField(name = "OperateType")
    private  int        OperateType;
    /**
     * 布控执行状态，0：布控中；1：已撤控；2：布控到期；9：
     * 未布控。【选填】
     */
    @JSONField(name = "DispositionStatus")
    private  int        DispositionStatus;
    /**
     * 布控范围，1:卡口；2：区域布控；3：设备。【必填】
     */
    @JSONField(name = "DispositionRange")
    private  int        DispositionRange;
    /**
     * 布控卡口 ，DispositionRange为1时使用； 可带多个卡口ID，多个
     * 以”;”间隔(英文半角分号)； 为空表示布控到所有卡口；
     */
    @JSONField(name = "TollgateList")
    private  String     TollgateList;
    /**
     * 布控行政区代码，DispositionRange为2时使用；实际需要执行
     * 布控的行政区域代码，县际联动填6位行政区号码（GB/T2260规定），地市联动填4位行政区
     * 号码，省际联动填2位行政区号码，多个区域间以”;”间隔；为空表示布控到所有区域；
     */
    @JSONField(name = "DispositionArea")
    private  String     DispositionArea;
    /**
     * 告警信息接收地址, 【必填】
     */
    @JSONField(name = "ReceiveAddr")
    private  String     ReceiveAddr;
    /**
     * 告警信息接收手机号
     */
    @JSONField(name = "ReceiveMobile")
    private  String     ReceiveMobile;
    /**
     * 布控原因
     */
    @JSONField(name = "Reason")
    private  String     Reason;
    /**
     * 撤控单位名称
     */
    @JSONField(name = "DispositionRemoveOrg")
    private  String     DispositionRemoveOrg;
    /**
     * 撤控人
     */
    @JSONField(name = "DispositionRemovePerson")
    private  String     DispositionRemovePerson;
    /**
     * 撤控时间
     */
    @JSONField(name = "DispositionRemoveTime")
    private  String     DispositionRemoveTime;
    /**
     * 撤控原因
     */
    @JSONField(name = "DispositionRemoveReason")
    private  String     DispositionRemoveReason;
    /**
     * 图像列表 ，可以包含0个或者多个子图像对象实现单图片/多图布
     * 控；一般用于单图布控，多图布控建议使用TabIDList
     */
    @JSONField(name = "SubImageList")
    private List<Object> SubImageList;
    /**
     * 布控库id列表，库布控时【必填】，其他情况无需填写；可多值，此
     * 时类型为string，多个值之间使用英文半角分号隔开
     */
    @JSONField(name = "TabIDList")
    private String      TabIDList;
    /**
     *  布控设备，设备布控时使用。可对多个设备进行布控。携带多个设备
     * ID时使用英文半角分号分隔；为空表示布控到当前行政区域所有设备
     */
    @JSONField(name = "DeviceList")
    private String      DeviceList;
    /**
     * 预警灵敏度 ，预警灵敏度：1-3 级，1 级最高（相似度低于
     * 70%），3 级最低（相似度大于等于90%）。预警灵敏度越高，则触发预警的相似度阈值越
     * 低，误报率越高。各厂商分析系统可根据预警灵敏度级别，设置布控的相似度阈值 .【选填】
     */
    @JSONField(name = "AlarmSensitivity")
    private int         AlarmSensitivity = 3;
}
