package com.prolog.rdc.tms.model.vo.fleetManagement;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.prolog.product.core.base.group.AddGroup;
import com.prolog.product.core.base.group.EditGroup;

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

/**
 * 车辆违章管理表 Vo
 * <p>
 * Copyright: Copyright (C) 2020 prolog-int, Inc. All rights reserved.
 * <p>
 * Company: 湖北普罗格科技股份有限公司
 *
 *
 * @author xiaoyf
 * @since 2020-06-03 11:27
 */
@Data
@ApiModel("车辆违章管理表 VO")
public class TVmIllegalRecordVO implements Serializable {

	private static final long serialVersionUID = 1L;

	@ApiModelProperty(value = "机构ID")
	@NotBlank(message = "机构ID必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 32, message = "机构ID最大长度32", groups = { AddGroup.class, EditGroup.class })
	private Long branchId;

	@ApiModelProperty(value = "机构牌号")
	@NotBlank(message = "机构牌号必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 32, message = "机构牌号最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String branchname;

	@ApiModelProperty(value = "违章单号")
	@Size(max = 40, message = "违章单号最大长度40", groups = { AddGroup.class, EditGroup.class })
	private String illegalNo;

	@ApiModelProperty(value = "违章发生时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date illegalTime;

	@ApiModelProperty(value = "违章类别(字典ILLEGAL_TYPE)")
	@Size(max = 20, message = "违章类别(字典ILLEGAL_TYPE)最大长度20", groups = { AddGroup.class, EditGroup.class })
	private String illegalType;

	@ApiModelProperty(value = "违章地点")
	@Size(max = 500, message = "违章地点最大长度500", groups = { AddGroup.class, EditGroup.class })
	private String illegalAdd;

	@ApiModelProperty(value = "违章人员")
	@Size(max = 40, message = "违章人员最大长度40", groups = { AddGroup.class, EditGroup.class })
	private String illegalPerson;

	@ApiModelProperty(value = "车辆编号")
	@Size(max = 40, message = "车辆编号最大长度40", groups = { AddGroup.class, EditGroup.class })
	private String vehicleCode;

	@ApiModelProperty(value = "罚款")
	private Double forfeit;

	@ApiModelProperty(value = "扣分")
	private BigDecimal minusPoints;

	@ApiModelProperty(value = "发现时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date discoverTime;

	@ApiModelProperty(value = "发现人")
	@Size(max = 40, message = "发现人最大长度40", groups = { AddGroup.class, EditGroup.class })
	private String discoverPerson;

	@ApiModelProperty(value = "违章处理时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date disposeTime;

	@ApiModelProperty(value = "是否延期处罚")
	@Size(max = 2, message = "是否延期处罚最大长度2", groups = { AddGroup.class, EditGroup.class })
	private String punishPostpone;

	@ApiModelProperty(value = "延期处罚天数")
	private BigDecimal postponeDay;

	@ApiModelProperty(value = "承担对象")
	@Size(max = 40, message = "承担对象最大长度40", groups = { AddGroup.class, EditGroup.class })
	private String undertaker;

	@ApiModelProperty(value = "货物损失金额")
	private Double amountLossG;

	@ApiModelProperty(value = "车辆损失")
	private Double amountLossV;

	@ApiModelProperty(value = "理赔收入")
	private Double compensate;

	@ApiModelProperty(value = "公司处罚")
	@Size(max = 4000, message = "公司处罚最大长度4000", groups = { AddGroup.class, EditGroup.class })
	private String punishment;

	@ApiModelProperty(value = "审核时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date audittime;

	@ApiModelProperty(value = "审核人")
	@Size(max = 32, message = "审核人最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String auditperson;

	@ApiModelProperty(value = "状态")
	@NotBlank(message = "状态必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 4, message = "状态最大长度4", groups = { AddGroup.class, EditGroup.class })
	private String status;

	@ApiModelProperty(value = "备注")
	@Size(max = 1024, message = "备注最大长度1024", groups = { AddGroup.class, EditGroup.class })
	private String memo;

	@ApiModelProperty(value = "扩展字段1")
	@Size(max = 128, message = "扩展字段1最大长度128", groups = { AddGroup.class, EditGroup.class })
	private String extend01;

	@ApiModelProperty(value = "扩展字段2")
	@Size(max = 128, message = "扩展字段2最大长度128", groups = { AddGroup.class, EditGroup.class })
	private String extend02;

	@ApiModelProperty(value = "扩展字段3")
	@Size(max = 128, message = "扩展字段3最大长度128", groups = { AddGroup.class, EditGroup.class })
	private String extend03;

	@ApiModelProperty(value = "扩展字段4")
	@Size(max = 128, message = "扩展字段4最大长度128", groups = { AddGroup.class, EditGroup.class })
	private String extend04;

	@ApiModelProperty(value = "扩展字段5")
	@Size(max = 128, message = "扩展字段5最大长度128", groups = { AddGroup.class, EditGroup.class })
	private String extend05;

	@ApiModelProperty(value = "创建时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date createtime;

	@ApiModelProperty(value = "创建人")
	@Size(max = 32, message = "创建人最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String createperson;

	@ApiModelProperty(value = "修改时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date updatetime;

	@ApiModelProperty(value = "修改人")
	@Size(max = 32, message = "修改人最大长度32", groups = { AddGroup.class, EditGroup.class })
	private String updateperson;

	private Integer pageNum;

	private Integer pageSize;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date sdate;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date edate;

	@ApiModelProperty(value = "查询标识 “auditQuery” 审核界面查询     “query” 非审核界面查询")
	private String flag;

	@ApiModelProperty(value = "审核意见")
	private String auditdescrible;
}
