package com.tofly.install.entity;

import java.util.Date;

import org.apache.ibatis.type.JdbcType;
import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.haiqiu.tools.excel.annotation.Excel;
import com.tofly.utils.NullHandler;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * 报装业务实体
 * @author zhoux
 *
 */
@Data
@Accessors(chain = true)
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@TableName(value = "TF_YWPN_APPLY_INSTALL", resultMap = "applyInstallMap")
@KeySequence("TF_YWPN_APPLY_INSTALL")
@ApiModel(value = "ApplyInstall对象", description = "报装业务")
public class ApplyInstall extends Model<ApplyInstall> {

    /**
     * 主键ID
     */
    @Excel(name = "主键ID")
    @ApiModelProperty(value = "主键ID")
    @TableId(type = IdType.INPUT)
    private Long id; 
    
    
    /**
     * 流程实例ID
     */
    @Excel(name = "流程实例ID")
    @ApiModelProperty(value = "流程实例ID")
    private Long processInstanceId; 
    
    
    
    

    /**
     * 用户名称
     */
    @ApiModelProperty(value = "用户名称")
    private String consumerName;
    
    
    /**
     * 详细地址
     */
    @ApiModelProperty(value = "详细地址")
    private String consumerAddress;
    
    
    /**
     * 业务类型id
     */
    @ApiModelProperty(value = "业务类型id，关联字典pcid=66400")
    private String buinessType;
    
    
    /**
     * 申请人
     */
    @ApiModelProperty(value = "申请人")
    private String applyUserName;
    
    
    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话")
    private String contactPhoneNo;
    
    
    /**
     * 申请日期
     */
    @ApiModelProperty(value = "申请日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date applyDate;
    
    
    
    /**
     * 安装数量
     */
    @ApiModelProperty(value = "安装数量")
    private Integer installNum;

    
    /**
     * 安装说明
     */
    @ApiModelProperty(value = "安装说明")
    @TableField(jdbcType = JdbcType.VARCHAR,updateStrategy = FieldStrategy.IGNORED,typeHandler = NullHandler.class)
    private String installDescription;
    
    
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField(jdbcType = JdbcType.VARCHAR,updateStrategy = FieldStrategy.IGNORED,typeHandler = NullHandler.class)
    private String remark;
    
    /**
     * 登记人
     */
    @ApiModelProperty(value = "登记人")
    private String registerUser;
    
    
    
    
    /**
     * 登记人ID
     */
    @ApiModelProperty(value = "登记人ID")
    private Long registerUserId;
    
    
    
    
    /**
     * 登记时间
     */
    @ApiModelProperty(value = "登记时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date registerDate;
    
    
    
        
    /**
     * 附件json
     */
    @ApiModelProperty(value = "附件json")
    private String annex;
    
    
    
    
    /**
     * 报装编号
     */
    @ApiModelProperty(value = "报装编号")
    private String applyInstallNo;
    
    
    
    /**
     * 删除标志
     */
    @ApiModelProperty(value = "删除标志 1 未删除 、2已删除")
    private Integer delFlag;
    
    
    @ApiModelProperty(value = "生成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    
    
    /**
     * 报装申请状态标志
     */
    @ApiModelProperty(value = "状态标志 1 未提交 、2已提交")
    private Integer applyStatus;


    /**
     * 业务类型名称
     */
    @ApiModelProperty(value = "业务类型名称")
    @TableField(exist = false)
    private String buinessTypeName;




}