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

import java.io.Serializable;
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-01 11:33
 */
@Data
@ApiModel("车辆维修保养汇总表 VO")
public class TmsRepairRecordHVO 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 = "维修保养单号")
	@NotBlank(message = "维修保养单号必填", groups = { AddGroup.class, EditGroup.class })
	@Size(max = 64, message = "维修保养单号最大长度64", groups = { AddGroup.class, EditGroup.class })
	private String billno;

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

	@ApiModelProperty(value = "保养维修类型(0:维修 1:保养)")
	@Size(max = 20, message = "保养维修类型(0:维修 1:保养)最大长度20", groups = { AddGroup.class, EditGroup.class })
	private String repairType;

	@ApiModelProperty(value = "当前里程")
	private Double presentMileage;

	@ApiModelProperty(value = "规则编号")
	@Size(max = 64, message = "规则编号最大长度64", groups = { AddGroup.class, EditGroup.class })
	private String ruleNo;

	@ApiModelProperty(value = "上次保养日期")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date lastRepairTime;

	@ApiModelProperty(value = "维修厂编号")
	@Size(max = 64, message = "维修厂编号最大长度64", groups = { AddGroup.class, EditGroup.class })
	private String gsCode;

	@ApiModelProperty(value = "估损金额")
	private Double estimateAmount;

	@ApiModelProperty(value = "维修保养日期")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date repairTime;

	@ApiModelProperty(value = "实际金额")
	private Double amount;

	@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;

	private Integer pageNum;

	private Integer pageSize;

	@ApiModelProperty(value = "维保时间 开始")
	private String sdate;

	@ApiModelProperty(value = "维保时间 结束")
	private String edate;

	@ApiModelProperty(value = "查询标识")
	private String flag;

	private String auditdescrible;

	@ApiModelProperty(value = "维修厂名称")
	private String gsName;
}
