package com.hzs.common.domain.system.sys;

import com.baomidou.mybatisplus.annotation.*;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.web.domain.BaseEntity;
import lombok.*;
import lombok.experimental.Accessors;
import org.apache.ibatis.type.JdbcType;

/**
 * 审批业务表
 *
 * @author hzs
 * @since 2022-09-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@KeySequence("SYS_APPROVAL_BUSINESS_SEQ")
@TableName("SYS_APPROVAL_BUSINESS")
public class SysApprovalBusiness extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId("PK_ID")
    private Long pkId;

    /**
     * 审批业务单号
     */
    @TableField("APPROVAL_CODE")
    private String approvalCode;

    /**
     * 审批业务ID
     */
    @TableField("PK_APPROVAL")
    private Integer pkApproval;

    /**
     * 审批业务大型（EApprovalType）
     */
    @TableField("APPROVAL_TYPE")
    private Integer approvalType;

    /**
     * 审批业务类型（EApprovalBusiness）
     */
    @TableField("APPROVAL_BUSINESS")
    private Integer approvalBusiness;

    /**
     * 业务类型内容（自定义签呈）
     */
    @TableField("APPROVAL_BUSINESS_VAL")
    private String approvalBusinessVal;

    /**
     * 业务单号
     */
    @TableField("BUSINESS_CODE")
    private String businessCode;

    /**
     * 审批状态（0=草稿，2=待审核，3=审核中，4=已驳回，5=已审核，9=已作废）
     */
    @TableField("APPROVAL_STATUS")
    private Integer approvalStatus;

    /**
     * 审批结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("END_TIME")
    private Date endTime;

    /**
     * 审批用户ID（当前审批用户）
     */
    @TableField(value = "PK_USER", jdbcType = JdbcType.NUMERIC, updateStrategy = FieldStrategy.IGNORED)
    private Long pkUser;

    /**
     * 签呈类型（1=普通件，2=急件，3=密件）
     */
    @TableField("SIGN_TYPE")
    private Integer signType;

    /**
     * 情况说明
     */
    @TableField("REMARK")
    private String remark;

    /**
     * 发起部门ID
     */
    @TableField("PK_DEPT")
    private Long pkDept;

    /**
     * 发起部门名称
     */
    @TableField("DEPT_NAME")
    private String deptName;

    /**
     * 发起人名称
     */
    @TableField("USER_NAME")
    private String userName;

    /**
     * 签呈来源（1=后台，2=前台）
     */
    @TableField("SIGN_SOURCE")
    private Integer signSource;

    /**
     * 审批最终操作（1=通过，2=驳回）
     */
    @TableField("APPROVAL_OPERATION")
    private Integer approvalOperation;

    /**
     * 系统类型（2=新零售，3=美业）
     */
    @TableField("SYSTEM_TYPE")
    private Integer systemType;

}
