package com.ruoyi.postCheck.domain;

import java.util.ArrayList;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 岗检责任制清单对象 post_list
 *
 * @author csg
 * @date 2023-12-20
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel(value = "岗检责任制清单对象")
@TableName("post_list") // 数据库表名
public class PostList extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    private Long id;

    @ApiModelProperty("状态：1-待审核；2-审核中；3-通过；4-驳回；")
    @TableField(value = "status")
    @Excel(name = "状态：1-待审核；2-审核中；3-通过；4-驳回；")
    private Integer status;

    @ApiModelProperty("审核人ID")
    @TableField(value = "status_by_user_id")
    @Excel(name = "审核人ID")
    private Long statusByUserId;

    @ApiModelProperty("审核人姓名")
    @TableField(value = "status_by_user_name")
    @Excel(name = "审核人姓名")
    private String statusByUserName;

    @ApiModelProperty("所在单位")
    @TableField(value = "unit_id")
    @Excel(name = "所在单位")
    private String unitId;

    @ApiModelProperty("岗位ID")
    @TableField(value = "post_id")
    private Long postId;

    @ApiModelProperty("岗位名称View")
    @TableField(exist = false)
    @Excel(name = "岗位名称")
    private String postName;

    @ApiModelProperty("岗位级别")
    @TableField(value = "position_level")
    @Excel(name = "岗位级别")
    private String positionLevel;

    @ApiModelProperty("直接上级")
    @TableField(value = "direct_superior")
    @Excel(name = "直接上级")
    private String directSuperior;

    @ApiModelProperty("辖员人数")
    @TableField(value = "subordinate_count")
    @Excel(name = "辖员人数")
    private Integer subordinateCount;

    @ApiModelProperty("所在部门ID")
    @TableField(value = "dept_id")
    private String deptId;

    @ApiModelProperty("所在部门View")
    @TableField(exist = false)
    @Excel(name = "所在部门")
    private String deptName;

    @ApiModelProperty("岗位编码")
    @TableField(value = "position_code")
    @Excel(name = "岗位编码")
    private String positionCode;

    @ApiModelProperty("是否涉密")
    @TableField(value = "is_confidential")
    @Excel(name = "是否涉密")
    private String isConfidential;


    @ApiModelProperty("直接下级")
    @TableField(value = "direct_subordinate")
    @Excel(name = "直接下级")
    private String directSubordinate;

    @ApiModelProperty("编制日期")
    @TableField(value = "creation_date")
    @Excel(name = "编制日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationDate;

    @ApiModelProperty("修订日期")
    @TableField(value = "revision_date")
    @Excel(name = "修订日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date revisionDate;

    @ApiModelProperty("工作摘要")
    @TableField(value = "job_summary")
    @Excel(name = "工作摘要")
    private String jobSummary;

    @ApiModelProperty("创建者用户ID")
    @TableField(value = "create_user_id")
    @Excel(name = "创建者用户ID")
    private Long createUserId;

    /** 岗检责任制清单明细信息 */
    @TableField(exist = false)
    private List<PostListInfo> children = new ArrayList<>();

}
