/**
 * Copyright 2019 DH
 * All right reserved.
 * 项目名称: 大恒泰山系统
 * 创建日期:2022/8/22
 */
package org.springblade.modules.business.rtumanage.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.modules.business.rtumanage.entity.RtuStatusEntity;
import org.springblade.modules.business.rtumanage.entity.SensorReplaceInfo;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/***
 * Date:2022/8/22
 * Title:文件所属模块（必须填写）
 * Description：对本文件的详细描述，原则上不能少于30字
 * @author dylan
 * @version 1.0
 * Remark：认为有必要的其他信息
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class RtuStatusVO extends RtuStatusEntity {

	/**
	 * 测站名称
	 */
	@ApiModelProperty(value = "测站名称")
	private String rtuName;

	/**
	 * 经度
	 */
	@ApiModelProperty(value = "经度")
	private String lng;

	/**
	 * 纬度
	 */
	@ApiModelProperty(value = "纬度")
	private String lat;

	/**
	 * 测站位置说明
	 */
	@ApiModelProperty(value = "测站位置说明")
	private String locationDesc;

	/**
	 * 测站类型概要
	 */
	@ApiModelProperty(value = "测站类型概要")
	private String rtuKindDesc;

	/**
	 * SIM卡号
	 */
	@ApiModelProperty(value = "SIM卡号")
	private String simId;

	/**
	 * 所属机构ID
	 */
	@ApiModelProperty(value = "所属机构")
	private String orgId;

	/**
	 * 所属项目ID
	 */
	@ApiModelProperty(value = "所属项目")
	private String projectId;

	/**
	 * 机构名称
	 */
	@ApiModelProperty(value = "机构名称")
	private String orgName;

	/**
	 * 项目名称
	 */
	@ApiModelProperty(value = "项目名称")
	private String projectName;

	/**
	 * 是否雨量站
	 */
	@ApiModelProperty(value = "是否雨量站")
	private Integer isRain;

	/**
	 * 是否河道站
	 */
	@ApiModelProperty(value = "是否河道站")
	@JsonSerialize(nullsUsing = NullSerializer.class)
	private Integer isRiver;

	/**
	 * 是否水库站
	 */
	@ApiModelProperty(value = "是否水库站")
	@JsonSerialize(nullsUsing = NullSerializer.class)
	private Integer isRes;

	/**
	 * 是否墒情站
	 */
	@ApiModelProperty(value = "是否墒情站")
	@JsonSerialize(nullsUsing = NullSerializer.class)
	private Integer isGround;

	/**
	 * 是否视频站
	 */
	@ApiModelProperty(value = "是否视频站")
	@JsonSerialize(nullsUsing = NullSerializer.class)
	private Integer isVideo;

	/**
	 * 降水
	 */
	@ApiModelProperty(value = "降水")
	private String drp;

	/**
	 * 河道站
	 */
	@ApiModelProperty(value = "河道站")
	private String z;

	/**
	 * 水库站
	 */
	@ApiModelProperty(value = "水库站")
	private String rz;

	/**
	 * 墒情站
	 */
	@ApiModelProperty(value = "墒情站")
	private String ground;

	/**
	 * 测站类型
	 */
	@ApiModelProperty(value = "测站类型")
	private String rtuKinds;

	/**
	 * 所属盟市
	 */
	@ApiModelProperty(value = "所属盟市")
	private String adCity;

	/**
	 * 所属盟县旗区
	 */
	@ApiModelProperty(value = "所属盟县旗区")
	private String adDist;

	/**
	 * 行政区
	 */
	@ApiModelProperty(value = "行政区")
	private String areaName;

	/**
	 * RTU品牌
	 */
	@ApiModelProperty(value = "RTU品牌")
	private String rtuBrand;

	/**
	 * RTU型号
	 */
	@ApiModelProperty(value = "RTU型号")
	private String rtuModel;

	/**
	 * RTU更换时间
	 */
	@ApiModelProperty(value = "RTU更换时间")
	@DateTimeFormat(
		pattern = "yyyy-MM-dd"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd",timezone = "GMT+8"
	)
	private Date rtuReplaceDate;

	/**
	 * 传感器
	 */
	@ApiModelProperty(value = "传感器")
	private List<SensorReplaceInfo> sensors;

	/**
	 * 雨量传感器品牌
	 */
	@ApiModelProperty(value = "雨量传感器品牌")
	private String rainSensorBrand;

	/**
	 * 雨量传感器型号
	 */
	@ApiModelProperty(value = "雨量传感器型号")
	private String rainSensorModel;

	/**
	 * 雨量传感器更换时间
	 */
	@ApiModelProperty(value = "雨量传感器更换时间")
	@DateTimeFormat(
		pattern = "yyyy-MM-dd"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd",timezone = "GMT+8"
	)
	private Date rainSensorReplaceDate;

	/**
	 * 水位计传感器品牌
	 */
	@ApiModelProperty(value = "水位计传感器品牌")
	private String waterSensorBrand;

	/**
	 * 水位计传感器型号
	 */
	@ApiModelProperty(value = "水位计传感器型号")
	private String waterSensorModel;

	/**
	 * 水位计传感器类型
	 */
	@ApiModelProperty(value = "水位计传感器类型")
	private Long waterSensorType;


	/**
	 * 水位计传感器更换时间
	 */
	@ApiModelProperty(value = "水位计传感器更换时间")
	@DateTimeFormat(
		pattern = "yyyy-MM-dd"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd",timezone = "GMT+8"
	)
	private Date waterSensorReplaceDate;

	/**
	 * 墒情传感器品牌
	 */
	@ApiModelProperty(value = "墒情传感器品牌")
	private String groundSensorBrand;

	/**
	 * 墒情传感器型号
	 */
	@ApiModelProperty(value = "墒情传感器型号")
	private String groundSensorModel;

	/**
	 * 墒情传感器类型
	 */
	@ApiModelProperty(value = "墒情传感器类型")
	private String groundSensorType;

	/**
	 * 墒情传感器更换时间
	 */
	@ApiModelProperty(value = "墒情传感器更换时间")
	@DateTimeFormat(
		pattern = "yyyy-MM-dd"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd",timezone = "GMT+8"
	)
	private Date groundSensorReplaceDate;

	/**
	 * 供电系统电池型号
	 */
	@ApiModelProperty(value = "供电系统电池型号")
	private String batteryModel;

	/**
	 * 供电系统电池更换时间
	 */
	@ApiModelProperty(value = "供电系统电池更换时间")
	@DateTimeFormat(
		pattern = "yyyy-MM-dd"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd",timezone = "GMT+8"
	)
	private Date batteryReplaceDate;

	/**
	 * 太阳能板型号
	 */
	@ApiModelProperty(value = "太阳能板型号")
	private String sunPowerModel;

	/**
	 * 太阳能控制器型号
	 */
	@ApiModelProperty(value = "太阳能控制器型号")
	private String sunPowerControllerModel;

	/**
	 * 太阳能控制器品牌
	 */
	@ApiModelProperty(value = "太阳能控制器品牌")
	private String sunPowerControllerBrand;

	/**
	 * SIN卡号
	 */
	@ApiModelProperty(value = "SIN卡号")
	private String networkSimId;

	/**
	 * 开卡单位
	 */
	@ApiModelProperty(value = "开卡单位")
	private String networkPayer;

	/**
	 * 缴费截止时间
	 */
	@ApiModelProperty(value = "缴费截止时间")
	@DateTimeFormat(
		pattern = "yyyy-MM-dd"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd",timezone = "GMT+8"
	)
	private Date networkPayEndDate;

	/**
	 * 是否北斗通信
	 */
	@ApiModelProperty(value = "是否北斗通信")
	@JsonSerialize(nullsUsing = NullSerializer.class)
	private Integer isSatellite;

	/**
	 * 北斗通讯类型
	 */
	@ApiModelProperty(value = "北斗通讯类型")
	@JsonSerialize(nullsUsing = NullSerializer.class)
	private Long satelliteModel;

	/**
	 * 预警类别信息
	 */
	@ApiModelProperty(value = "预警类别")
	private String warnKindInfo;

	/**
	 * 运维部门
	 */
	@ApiModelProperty(value = "运维部门")
	private String manageCompany;

	/**
	 * 任务状态 0 维修中 1 正常
	 */
	@ApiModelProperty(value = "任务状态")
	@JsonSerialize(nullsUsing = NullSerializer.class)
	private Integer checkOrderStatus;

	/**
	 * 巡检状态 0 未巡检 1 已巡检
	 */
	@ApiModelProperty(value = "巡检状态")
	@JsonSerialize(nullsUsing = NullSerializer.class)
	private Integer inspectionStatus;

	/**
	 * 经纬度
	 */
	@ApiModelProperty(value = "经纬度")
	private String lngLat;

	/**
	 * 是否维修中
	 */
	@ApiModelProperty(value = "是否维修中")
	@JsonSerialize(nullsUsing = NullSerializer.class)
	private Integer isCheck;

	/**
	 * 巡检次数
	 */
	@ApiModelProperty(value = "巡检次数")
	@JsonSerialize(nullsUsing = NullSerializer.class)
	private Integer inspectionCount;

}
