package com.sundot.airport.check.domain;

import java.util.Date;
import java.util.List;

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.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sundot.airport.common.annotation.Excel;
import com.sundot.airport.common.core.domain.BaseEntity;

/**
 * 检查单和检查记录和问题整改的检查项明细对象 check_project_item
 *
 * @author ruoyi
 * @date 2025-07-11
 */
@TableName("check_project_item")
public class CheckProjectItem extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 租户号
     */
    private String tenantId;

    /**
     * 乐观锁
     */
    private Long revision;

    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 检查单ID或者检查记录ID或者问题整改ID
     */
    @Excel(name = "检查单ID或者检查记录ID或者问题整改ID")
    private Long sourceId;

    /**
     * 检查项目编码
     */
    @Excel(name = "检查项目编码")
    private String projectCode;

    /**
     * 类型
     */
    @Excel(name = "类型")
    private String type;

    /**
     * 检查项目名称
     */
    @Excel(name = "检查项目名称")
    private String projectName;

    /**
     * 1级分类编码
     */
    @Excel(name = "1级分类编码")
    private String categoryCodeOne;

    /**
     * 1级分类名称
     */
    @Excel(name = "1级分类名称")
    private String categoryNameOne;

    /**
     * 2级分类编码
     */
    @Excel(name = "2级分类编码")
    private String categoryCodeTwo;

    /**
     * 2级分类名称
     */
    @Excel(name = "2级分类名称")
    private String categoryNameTwo;

    /**
     * 得分
     */
    @Excel(name = "得分")
    private Long score;

    /**
     * 得分等级
     */
    @Excel(name = "得分等级")
    private String scoreLevel;

    /**
     * 类型名称
     */
    @Excel(name = "类型名称")
    private String typeDesc;

    /**
     * 得分等级名称
     */
    @Excel(name = "得分等级名称")
    private String scoreLevelDesc;

    /**
     * 检查内容
     */
    @Excel(name = "检查内容")
    private String inspectionContent;

    /**
     * 总分
     */
    @Excel(name = "总分")
    private Long scoreTotal;

    /**
     * 评价类型
     */
    @Excel(name = "评价类型")
    private String evaluationType;

    /**
     * 评价类型名称
     */
    @Excel(name = "评价类型名称")
    private String evaluationTypeDesc;

    /**
     * 整改人
     */
    @Excel(name = "整改人")
    private Long correctionUserId;

    /**
     * 整改人名称
     */
    @Excel(name = "整改人名称")
    private String correctionUserName;

    /**
     * 整改期限
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "整改期限", width = 30, dateFormat = "yyyy-MM-dd")
    private Date rectificationDeadline;

    /**
     * 整改状态
     */
    @Excel(name = "整改状态")
    private String correctionStatus;

    /**
     * 整改状态名称
     */
    @Excel(name = "整改状态名称")
    private String correctionStatusDesc;

    /**
     * 问题描述
     */
    @Excel(name = "问题描述")
    private String problemDescription;

    /**
     * 附件ID
     */
    @Excel(name = "附件ID")
    private String attachmentId;

    /**
     * 附件URL
     */
    @Excel(name = "附件URL")
    private String attachmentUrl;

    /**
     * 附件名称
     */
    @Excel(name = "附件名称")
    private String attachmentName;

    /**
     * 奖励建议
     */
    @Excel(name = "奖励建议")
    private String rewardSuggestion;

    /**
     * 涉及人员列表
     */
    @TableField(exist = false)
    private List<CheckUser> checkUserList;

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public String getTenantId() {
        return tenantId;
    }

    public void setRevision(Long revision) {
        this.revision = revision;
    }

    public Long getRevision() {
        return revision;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setSourceId(Long sourceId) {
        this.sourceId = sourceId;
    }

    public Long getSourceId() {
        return sourceId;
    }

    public void setProjectCode(String projectCode) {
        this.projectCode = projectCode;
    }

    public String getProjectCode() {
        return projectCode;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setCategoryCodeOne(String categoryCodeOne) {
        this.categoryCodeOne = categoryCodeOne;
    }

    public String getCategoryCodeOne() {
        return categoryCodeOne;
    }

    public void setCategoryNameOne(String categoryNameOne) {
        this.categoryNameOne = categoryNameOne;
    }

    public String getCategoryNameOne() {
        return categoryNameOne;
    }

    public void setCategoryCodeTwo(String categoryCodeTwo) {
        this.categoryCodeTwo = categoryCodeTwo;
    }

    public String getCategoryCodeTwo() {
        return categoryCodeTwo;
    }

    public void setCategoryNameTwo(String categoryNameTwo) {
        this.categoryNameTwo = categoryNameTwo;
    }

    public String getCategoryNameTwo() {
        return categoryNameTwo;
    }

    public void setScore(Long score) {
        this.score = score;
    }

    public Long getScore() {
        return score;
    }

    public void setScoreLevel(String scoreLevel) {
        this.scoreLevel = scoreLevel;
    }

    public String getScoreLevel() {
        return scoreLevel;
    }

    public void setTypeDesc(String typeDesc) {
        this.typeDesc = typeDesc;
    }

    public String getTypeDesc() {
        return typeDesc;
    }

    public void setScoreLevelDesc(String scoreLevelDesc) {
        this.scoreLevelDesc = scoreLevelDesc;
    }

    public String getScoreLevelDesc() {
        return scoreLevelDesc;
    }

    public void setInspectionContent(String inspectionContent) {
        this.inspectionContent = inspectionContent;
    }

    public String getInspectionContent() {
        return inspectionContent;
    }

    public void setScoreTotal(Long scoreTotal) {
        this.scoreTotal = scoreTotal;
    }

    public Long getScoreTotal() {
        return scoreTotal;
    }

    public void setEvaluationType(String evaluationType) {
        this.evaluationType = evaluationType;
    }

    public String getEvaluationType() {
        return evaluationType;
    }

    public void setEvaluationTypeDesc(String evaluationTypeDesc) {
        this.evaluationTypeDesc = evaluationTypeDesc;
    }

    public String getEvaluationTypeDesc() {
        return evaluationTypeDesc;
    }

    public void setCorrectionUserId(Long correctionUserId) {
        this.correctionUserId = correctionUserId;
    }

    public Long getCorrectionUserId() {
        return correctionUserId;
    }

    public void setCorrectionUserName(String correctionUserName) {
        this.correctionUserName = correctionUserName;
    }

    public String getCorrectionUserName() {
        return correctionUserName;
    }

    public void setRectificationDeadline(Date rectificationDeadline) {
        this.rectificationDeadline = rectificationDeadline;
    }

    public Date getRectificationDeadline() {
        return rectificationDeadline;
    }

    public void setCorrectionStatus(String correctionStatus) {
        this.correctionStatus = correctionStatus;
    }

    public String getCorrectionStatus() {
        return correctionStatus;
    }

    public void setCorrectionStatusDesc(String correctionStatusDesc) {
        this.correctionStatusDesc = correctionStatusDesc;
    }

    public String getCorrectionStatusDesc() {
        return correctionStatusDesc;
    }

    public void setProblemDescription(String problemDescription) {
        this.problemDescription = problemDescription;
    }

    public String getProblemDescription() {
        return problemDescription;
    }

    public void setAttachmentId(String attachmentId) {
        this.attachmentId = attachmentId;
    }

    public String getAttachmentId() {
        return attachmentId;
    }

    public void setAttachmentUrl(String attachmentUrl) {
        this.attachmentUrl = attachmentUrl;
    }

    public String getAttachmentUrl() {
        return attachmentUrl;
    }

    public void setAttachmentName(String attachmentName) {
        this.attachmentName = attachmentName;
    }

    public String getAttachmentName() {
        return attachmentName;
    }

    public void setRewardSuggestion(String rewardSuggestion) {
        this.rewardSuggestion = rewardSuggestion;
    }

    public String getRewardSuggestion() {
        return rewardSuggestion;
    }

    public List<CheckUser> getCheckUserList() {
        return checkUserList;
    }

    public void setCheckUserList(List<CheckUser> checkUserList) {
        this.checkUserList = checkUserList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("tenantId", getTenantId())
                .append("revision", getRevision())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("id", getId())
                .append("sourceId", getSourceId())
                .append("projectCode", getProjectCode())
                .append("type", getType())
                .append("projectName", getProjectName())
                .append("categoryCodeOne", getCategoryCodeOne())
                .append("categoryNameOne", getCategoryNameOne())
                .append("categoryCodeTwo", getCategoryCodeTwo())
                .append("categoryNameTwo", getCategoryNameTwo())
                .append("score", getScore())
                .append("scoreLevel", getScoreLevel())
                .append("typeDesc", getTypeDesc())
                .append("scoreLevelDesc", getScoreLevelDesc())
                .append("remark", getRemark())
                .append("inspectionContent", getInspectionContent())
                .append("scoreTotal", getScoreTotal())
                .append("evaluationType", getEvaluationType())
                .append("evaluationTypeDesc", getEvaluationTypeDesc())
                .append("correctionUserId", getCorrectionUserId())
                .append("correctionUserName", getCorrectionUserName())
                .append("rectificationDeadline", getRectificationDeadline())
                .append("correctionStatus", getCorrectionStatus())
                .append("correctionStatusDesc", getCorrectionStatusDesc())
                .append("problemDescription", getProblemDescription())
                .append("attachmentId", getAttachmentId())
                .append("attachmentUrl", getAttachmentUrl())
                .append("attachmentName", getAttachmentName())
                .append("rewardSuggestion", getRewardSuggestion())
                .append("checkUserList", getCheckUserList())
                .toString();
    }
}
