package com.ruoyi.postCheck.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiImplicitParam;
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_checked_problem
 *
 * @author csg
 * @date 2023-12-23
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel(value = "岗检问题表对象")
@TableName("post_checked_problem") // 数据库表名
public class PostCheckedProblem extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 岗检计划明细ID（岗检问题录入时列表的唯一标识）
     * 辅助完成问题录入
     */
    @TableField(exist = false)
    private Long planInfoId;

    private Long id;

    @ApiModelProperty("状态：1-待指定整改人")
    @TableField(value = "status")
    @Excel(name = "状态：1-待指定整改人", readConverterExp = "问=题录入完成时")
    private Integer status;

    @ApiModelProperty("问题编号")
    @TableField(value = "problem_no")
    @Excel(name = "问题编号", readConverterExp = "需=要甲方提供规则规则")
    private String problemNo;

    @ApiModelProperty("检查工作组ID")
    @TableField(value = "check_workgroup_id")
    @Excel(name = "检查工作组ID")
    private Long checkWorkgroupId;

    @ApiModelProperty("检查小组ID")
    @TableField(value = "check_group_id")
    @Excel(name = "检查小组ID")
    private Long checkGroupId;

//    @ApiModelProperty("检查人员ID")
//    @TableField(value = "check_user_id")
//    @Excel(name = "检查人员ID")
//    private Long checkUserId;

    @ApiModelProperty("检查人员姓名")
    @TableField(value = "check_user_name")
    @Excel(name = "检查人员姓名")
    private String checkUserName;

    @ApiModelProperty("审核1：整改部门经理ID")
    @TableField(value = "dept_approve_user_id")
    @Excel(name = "审核1：整改部门经理ID")
    private Long deptApproveUserId;

    @ApiModelProperty("审核1：整改部门经理审核时间")
    @TableField(value = "dept_approve_time")
    @Excel(name = "审核1：整改部门经理审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date deptApproveTime;

    @ApiModelProperty("审核2：专业部门的审核人ID")
    @TableField(value = "speciality_department_reviewer_id")
    @Excel(name = "审核2：专业部门的审核人ID", readConverterExp = "非=必选，方案填写人选择")
    private Long specialityDepartmentReviewerId;

    @ApiModelProperty("审核2：专业部门审核人审核时间")
    @TableField(value = "speciality_department_review_time")
    @Excel(name = "审核2：专业部门审核人审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date specialityDepartmentReviewTime;

    @ApiModelProperty("问题等级")
    @TableField(value = "problem_level")
    @Excel(name = "问题等级", readConverterExp = "1一般、2 重要")
    private String problemLevel;

    @ApiModelProperty("职责类别：1-业务职责；2-党建及党风廉政；3-安全环保职责；4-合规保密职；")
    @TableField(value = "duty_type")
    @Excel(name = "职责类别：1-业务职责；2-党建及党风廉政；3-安全环保职责；4-合规保密职；")
    private Integer dutyType;

    @ApiModelProperty("问题属性")
    @TableField(value = "problem_attribute")
    @Excel(name = "问题属性", readConverterExp = "完整问题、有效性问题、适宜性问题")
    private Integer problemAttribute;

    @ApiModelProperty("问题类别")
    @TableField(value = "problem_category")
    @Excel(name = "问题类别", readConverterExp = "职责权限问题、工作内容问题、工作标准问题、考核奖励问题、任职资格问题、其他")
    private String problemCategory;

    @ApiModelProperty("问题描述")
    @TableField(value = "description")
    @Excel(name = "问题描述")
    private String description;

    @ApiModelProperty("问题原因")
    @TableField(value = "problem_cause")
    @Excel(name = "问题原因")
    private String problemCause;

    @ApiModelProperty("是否立行立改(1-Yes；2-No；)")
    @TableField(value = "is_immediately_corrected")
    @Excel(name = "是否立行立改(1-Yes；2-No；)")
    private Integer isImmediatelyCorrected;

    @ApiModelProperty("整改措施")
    @TableField(value = "rectification_measure")
    @Excel(name = "整改措施")
    private String rectificationMeasure;

    @ApiModelProperty("整改责任部门ID")
    @TableField(value = "checked_dept_id")
    @Excel(name = "整改责任部门ID", readConverterExp = "被=检查部门ID")
    private Long checkedDeptId;

    @ApiModelProperty("整改责任岗位ID")
    @TableField(value = "checked_post_id")
    @Excel(name = "整改责任岗位ID", readConverterExp = "被=检查岗位ID")
    private Long checkedPostId;

    @ApiModelProperty("整改责任人ID")
    @TableField(value = "rectification_responsible_user_id")
    @Excel(name = "整改责任人ID")
    private Long rectificationResponsibleUserId;

    @ApiModelProperty("整改期限")
    @TableField(value = "rectification_period")
    @Excel(name = "整改期限", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date rectificationPeriod;

    @ApiModelProperty("整改情况-是否完成(1-Yes；2-No；)")
    @TableField(value = "is_rectification_completed")
    @Excel(name = "整改情况-是否完成(1-Yes；2-No；)")
    private Integer isRectificationCompleted;

    @ApiModelProperty("整改完成时间")
    @TableField(value = "rectification_completion_time")
    @Excel(name = "整改完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date rectificationCompletionTime;

    @ApiModelProperty("整改完成图片磁盘路径")
    @TableField(value = "rectification_completion_img")
    @Excel(name = "整改完成图片磁盘路径")
    private String rectificationCompletionImg;

    @ApiModelProperty("审核3：复查部门的审核人ID")
    @TableField(value = "review_department_reviewer_id")
    @Excel(name = "审核3：复查部门的审核人ID", readConverterExp = "措=施上传时必选，实施人选择")
    private Long reviewDepartmentReviewerId;

    @ApiModelProperty("审核3：复查部门的审核人复查时间")
    @TableField(value = "review_department_reviewer_time")
    @Excel(name = "审核3：复查部门的审核人复查时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date reviewDepartmentReviewerTime;

    @ApiModelProperty("复查结论")
    @TableField(value = "review_conclusion")
    @Excel(name = "复查结论")
    private String reviewConclusion;

    @ApiModelProperty("未通过理由")
    @TableField(value = "reason")
    @Excel(name = "未通过理由")
    private String reason;

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

    @ApiModelProperty("检查时间")
    @TableField(value = "check_time")
    @Excel(name = "检查时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date checkTime;


    //    ==================显示字段==============
    @ApiModelProperty("整改责任部门名称")
    @TableField(exist = false)
    private String checkedDeptName;
    @ApiModelProperty("整改责任岗位名称")
    @TableField(exist = false)
    private String checkedPostName;
    @ApiModelProperty("整改责任人名称")
    @TableField(exist = false)
    private String rectificationResponsibleUserName;
}
