/**
 *
 */
package org.springblade.finance.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author wookvn
 *
 */
@Data
@TableName("INT_FINANCE_BILL_AUDIT")
@ApiModel(value = "FinanceBillAudit对象", description = "结算单审核")
public class FinanceBillAudit implements Serializable {
	/**
	 *
	 */
	private static final long serialVersionUID = 1L;

	@ApiModelProperty(value = "结算单审核主键")
	@TableId(value="AID",type = IdType.ASSIGN_ID)
	@JsonSerialize(using=ToStringSerializer.class)
	private Long aid;

	@ApiModelProperty(value = "结算单关联唯一键")
	@TableField("SID")
	@JsonSerialize(using=ToStringSerializer.class)
	private Long sid;

	@ApiModelProperty(value = "所属结算次数(1-第一次，2-第二次)")
	@TableField("AUDITTYPE")
	private Integer auditType;

	@ApiModelProperty(value = "审核状态(1-待审核/2-已推送/3-已驳回/4-待回传/5-已回传/6-已作废)")
	@TableField("AUDITSTATUS")
	private Integer auditStatus;

	@ApiModelProperty(value = "驳回原因")
	@TableField("REJECTREASON")
	private String rejectReason;

	@ApiModelProperty(value = "创建人ID[后台设置]")
	@TableField("CREATEBYUSERID")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long createByUserId;

	@ApiModelProperty(value = "创建人姓名[后台设置]")
	@TableField("CREATEBYNAME")
	private String createByName;

	@ApiModelProperty(value = "创建时间[后台设置]")
	@TableField("CREATETIME")
	private Date createTime;

	@ApiModelProperty(value = "驳回时间[后台设置]")
	@TableField("REJECTTIME")
	private Date rejectTime;

	@ApiModelProperty(value = "回传时间[后台设置]")
	@TableField("UPLOADTIME")
	private Date uploadTime;

	@ApiModelProperty(value = "回传文件名")
	@TableField("UPLOADFILENAME")
	private String uploadFileName;

	@ApiModelProperty(value = "回传文件下载地址")
	@TableField("UPLOADFILEURI")
	private String uploadFileUri;

	/**
	 * 结算单数据
	 */
	@TableField(exist = false)
	private DateRangeAccount dateRangeAccount;

	/**
	 * 明细列表
	 */
	@TableField(exist = false)
	List<IntOdrangeAccountSubView> subList;

	/**
	 * 审核人列表
	 */
	@TableField(exist = false)
	private List<FinanceBillAuditUser> userList;

	/**
	 * 审核人姓名逗号分隔
	 */
	@TableField(exist = false)
	private String userNames;

	/**
	 * 回传文件ID
	 */
	@TableField(exist = false)
	private String fid;
}
