package com.casic.missiles.modular.system.model;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.enums.poi.BorderStyleEnum;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * <p>
 * 闸井信息表
 * </p>
 *
 * @author lwh
 * @since 2019-05-13
 */
@TableName("bus_well_info")
@HeadRowHeight(15)
@ContentRowHeight(20)
@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
@ExcelIgnoreUnannotated
@Data
public class BusWellInfo extends Model<BusWellInfo> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 井盖编号
     */
    @ExcelProperty("点位编号")
    @NotEmpty(message = "点位编号不能为空")
    @TableField("WELL_CODE")
    private String wellCode;
    /**
     * 井盖名称
     */
    @ExcelProperty("点位名称")
    @NotEmpty(message = "点位名称不能为空")
    @TableField("WELL_NAME")
    private String wellName;
    /**
     * 井深
     */
    //@NotEmpty(message="井深不能为空")
    @ExcelProperty("井深")
    @Digits(integer = 2, fraction = 2, message = "井深必须为正数且最多两位小数")
    @TableField("DEEP")
    private Float deep;
    /**
     * 地区
     */
    @ExcelProperty("区")
    @NotBlank(message = "区不能为空")
    @TableField(exist = false)
    private String qu;
    /**
     * 区域
     */
    @ExcelProperty("街道")
//    @NotBlank(message = "街道不能为空")
    @TableField("AREA")
    private String area;

    /**
     * 区域
     */
    @ExcelProperty("道路")
    @TableField("ROAD")
    private String road;
    /**
     * 第三方坐标系X
     */
    @ExcelProperty("经度")
    @NotEmpty(message = "经度不能为空")
    @TableField("COORDINATE_X")
    private String coordinateX;
    /**
     * 第三方坐标Y
     */
    @ExcelProperty("纬度")
    @NotEmpty(message = "纬度不能为空")
    @TableField("COORDINATE_Y")
    private String coordinateY;
    /**
     * 百度纬度
     */
    @TableField("LAT_BAIDU")
    private String latBaidu;
    /**
     * 百度经度
     */
    @TableField("LNG_BAIDU")
    private String lngBaidu;
    /**
     * 高德经度
     */
    @TableField("LNG_GAODE")
    private String lngGaode;
    /**
     * 高德纬度
     */
    @TableField("LAT_GAODE")
    private String latGaode;


    /**
     * 位置
     */
    @ExcelProperty("详细地址")
    @NotBlank(message = "详细地址不能为空")
    @TableField("POSITION")
    private String position;
    /**
     * 部门编号
     */
    @ExcelProperty("权属单位代码")
    @NotNull(message = "权属单位代码不能为空")
    @TableField("DEPTID")
    private Long deptid;
    /**
     * 路标图片路径集合
     */
    @TableField("PHOTOS")
    private String photos;
    /**
     * 备注
     */
    @TableField("NOTES")
    private String notes;
    /**
     * 井类型
     */
    @ExcelProperty("点位类型")
    @NotBlank(message = "点位类型不能为空")
    @TableField("WELL_TYPE")
    private String wellType;

    /**
     * 井类型名称
     */
    @TableField(exist = false)
    private String wellTypeName;
//    /**
//     * 责任人
//     */
//    @TableField("STAFF")
//    private String staff;
//    /**
//     * 电话
//     */
//    @TableField("TEL")
//    private String tel;
    /**
     * 时间戳
     */
    @TableField("TS")
    private Date ts;
    /**
     * 是否有效
     */
    private String valid;
    /**
     * 布防状态
     */
    @TableField("BFZT")
    private String bfzt;

    /**
     * 权属单位名称
     */
    @TableField(exist = false)
    private String deptName;

    /**
     * 维护单位/小组id
     */
    @ExcelProperty("点位维护单位代码")
    @NotNull(message = "点位维护单位代码不能为空")
    @TableField("RESPONSIBLE_DEPT")
    private Long responsibleDept;

    /**
     * 井标签备用1
     */
    @TableField("WELL_FLAG_1")
    private String wellFlag1;

    /**
     * 井标签备用2
     */
    @TableField("WELL_FLAG_2")
    private String wellFlag2;

    /**
     * 井标签备用3
     */
    @TableField("WELL_FLAG_3")
    private String wellFlag3;

    /**
     * 维护单位/小组名称
     */
    @TableField(exist = false)
    private String responsibleDeptName;

    /**
     * 布防状态名称
     */
    @TableField(exist = false)
    private String bfztName;

    /**
     * 闸井设备总数
     */
    @TableField(exist = false)
    private Integer deviceCount;


}
