/*
* QybgsqVO.java
* 版权所有 © 2011-2017 北京神舟良实信息技术有限公司
* Copyright © 2011-2017 All Rights Reserved    京ICP备13013562号
*  created by lipenghe with LAPTOP-DPSC399A
*/
package com.unis.base.common.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.unis.common.vo.groups.InsertGroup;
import com.unis.common.vo.groups.UpdateGroup;

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

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * TY_QYBGSQ-企业变更申请表
 * @author lipenghe at 
 */
@ApiModel(value = "TY_QYBGSQ:企业变更申请表-QybgsqVO", description= "A")
@Data
@Table(name= "TY_QYBGSQ")
public class QybgsqVO extends BaseEntity implements Serializable{

    @NotBlank(message = "变更申请id不能为空",groups ={UpdateGroup.class})
    @Length(max= 30, message= "变更申请id最大为30字符",groups ={UpdateGroup.class, InsertGroup.class})
    @ApiModelProperty(value = "变更申请id#<主键><唯一><检索><非空>", notes = "变更申请id", example = "变更申请id")
    @Id
    @Column(name= "SQID",length= 30, columnDefinition = "VARCHAR")
    private String sqid;

    @NotBlank(message = "企业名称不能为空",groups ={InsertGroup.class})
    @Length(max= 200, message= "企业名称最大为200字符", groups ={UpdateGroup.class, InsertGroup.class})
    @ApiModelProperty(value = "企业名称#<检索><非空>", notes = "企业名称", example = "企业名称#<检索><非空>")
    @Column(name= "QYMC", length= 200, columnDefinition = "VARCHAR")
    private String qymc;

    @NotBlank(message = "统一社会信用代码不能为空",groups ={InsertGroup.class})
    @Length(max= 35, message= "统一社会信用代码最大为35字符", groups ={UpdateGroup.class, InsertGroup.class})
    @ApiModelProperty(value = "统一社会信用代码#<非空>", notes = "统一社会信用代码", example = "统一社会信用代码#<非空>")
    @Column(name= "TYSHXYDM", length= 35, columnDefinition = "VARCHAR")
    private String tyshxydm;

    @Length(max= 50, message= "申请区域编码最大为50字符", groups ={UpdateGroup.class, InsertGroup.class})
    @ApiModelProperty(value = "申请区域编码#<检索>", notes = "申请区域编码", example = "申请区域编码#<检索>")
    @Column(name= "SQQYBM", length= 50, columnDefinition = "VARCHAR")
    private String sqqybm;

    @Length(max= 50, message= "申请区域编码名称最大为50字符", groups ={UpdateGroup.class, InsertGroup.class})
    @ApiModelProperty(value = "申请区域编码名称", notes = "申请区域编码名称", example = "申请区域编码名称")
    @Column(name= "SQQYBMMC", length= 50, columnDefinition = "VARCHAR")
    private String sqqybmmc;

    @Length(max= 200, message= "申请原因最大为200字符", groups ={UpdateGroup.class, InsertGroup.class})
    @ApiModelProperty(value = "申请原因", notes = "申请原因", example = "申请原因")
    @Column(name= "SQQY", length= 200, columnDefinition = "VARCHAR")
    private String sqqy;

    @Length(max= 30, message= "申请人id最大为30字符", groups ={UpdateGroup.class, InsertGroup.class})
    @ApiModelProperty(value = "申请人id#<检索>", notes = "申请人id", example = "申请人id#<检索>")
    @Column(name= "SQRID", length= 30, columnDefinition = "VARCHAR")
    private String sqrid;

    @Length(max= 100, message= "申请人名称最大为100字符", groups ={UpdateGroup.class, InsertGroup.class})
    @ApiModelProperty(value = "申请人名称", notes = "申请人名称", example = "申请人名称")
    @Column(name= "SQRIDMC", length= 100, columnDefinition = "VARCHAR")
    private String sqridmc;

    @ApiModelProperty(value = "申请时间#<默认值:current>", notes = "申请时间", example = "2019-10-01 08:10:46")
    @Column(name= "SQSJ", columnDefinition = "TIMESTAMP")
    @DateTimeFormat( pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "PRC")
    private Date sqsj;

    @Length(max= 20, message= "是否同意最大为20字符", groups ={UpdateGroup.class, InsertGroup.class})
    @ApiModelProperty(value = "是否同意#<检索>", notes = "是否同意", example = "是否同意")
    @Column(name= "SFTY", length= 20, columnDefinition = "VARCHAR")
    private String sfty;

    @Length(max= 200, message= "审批意见最大为200字符", groups ={UpdateGroup.class, InsertGroup.class})
    @ApiModelProperty(value = "审批意见", notes = "审批意见", example = "审批意见")
    @Column(name= "SPYJ", length= 200, columnDefinition = "VARCHAR")
    private String spyj;

    @Length(max= 30, message= "审批人id最大为30字符", groups ={UpdateGroup.class, InsertGroup.class})
    @ApiModelProperty(value = "审批人id", notes = "审批人id", example = "审批人id")
    @Column(name= "SPRID", length= 30, columnDefinition = "VARCHAR")
    private String sprid;

    @Length(max= 100, message= "审批人名称最大为100字符", groups ={UpdateGroup.class, InsertGroup.class})
    @ApiModelProperty(value = "审批人名称", notes = "审批人名称", example = "审批人名称")
    @Column(name= "SPRIDMC", length= 100, columnDefinition = "VARCHAR")
    private String spridmc;

    @ApiModelProperty(value = "审批时间#<默认值:current>", notes = "审批时间", example = "2019-10-01 08:10:46")
    @Column(name= "SPSJ", columnDefinition = "TIMESTAMP")
    @DateTimeFormat( pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "PRC")
    private Date spsj;

    @ApiModelProperty(value = "数据版本", notes = "数据版本", example = "1")
    @Column(name= "VERSION", length= 5, precision= 5, scale= 0, columnDefinition = "DECIMAL")
    private Integer version;

    @Length(max= 100, message= "变更前区域编码最大为100字符", groups ={UpdateGroup.class, InsertGroup.class})
    @ApiModelProperty(value = "变更前区域编码", notes = "变更前区域编码", example = "变更前区域编码")
    @Column(name= "BGQQYBM", length= 100, columnDefinition = "VARCHAR")
    private String bgqqybm;

    @Length(max= 100, message= "变更前区域编码名称最大为100字符", groups ={UpdateGroup.class, InsertGroup.class})
    @ApiModelProperty(value = "变更前区域编码名称", notes = "变更前区域编码名称", example = "变更前区域编码名称")
    @Column(name= "BGQQYBMMC", length= 100, columnDefinition = "VARCHAR")
    private String bgqqybmmc;

    public QybgsqVO(){
        super();
    }
}