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 com.sundot.airport.system.domain.vo.CheckProjectItemTreeVo;
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_task
 *
 * @author ruoyi
 * @date 2025-09-07
 */
@TableName("check_task")
public class CheckTask extends BaseEntity {
    private static final long serialVersionUID = 1L;

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

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

    /**
     * 检查任务编码
     */
    @Excel(name = "检查任务编码")
    private String taskCode;

    /**
     * 检查任务名称
     */
    @Excel(name = "检查任务名称")
    private String taskName;

    /**
     * 检查开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "检查开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkStartTime;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private String status;

    /**
     * 检查级别
     */
    @Excel(name = "检查级别")
    private String checkLevel;

    /**
     * 被检查级别
     */
    @Excel(name = "被检查级别")
    private String checkedLevel;

    /**
     * 检查结果
     */
    @Excel(name = "检查结果")
    private String checkResult;

    /**
     * 检查类别
     */
    @Excel(name = "检查类别")
    private String checkCategory;

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

    /**
     * 任务描述
     */
    @Excel(name = "任务描述")
    private String description;

    /**
     * 检查结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "检查结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkEndTime;

    /**
     * 是否定期任务(0=否,1=是)
     */
    @Excel(name = "是否定期任务(0=否,1=是)")
    private Long isRegularTasks;

    /**
     * 定期任务规则类型
     */
    @Excel(name = "定期任务规则类型")
    private String ruleType;

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

    /**
     * 检查级别名称
     */
    @Excel(name = "检查级别名称")
    private String checkLevelDesc;

    /**
     * 被检查级别名称
     */
    @Excel(name = "被检查级别名称")
    private String checkedLevelDesc;

    /**
     * 检查结果名称
     */
    @Excel(name = "检查结果名称")
    private String checkResultDesc;

    /**
     * 检查类别名称
     */
    @Excel(name = "检查类别名称")
    private String checkCategoryDesc;

    /**
     * 定期任务规则类型名称
     */
    @Excel(name = "定期任务规则类型名称")
    private String ruleTypeDesc;

    /**
     * 是否队内自查(0=否;1=是)
     */
    @Excel(name = "是否队内自查(0=否;1=是)")
    private Integer isSelfCheck;

    /**
     * 定期任务规则次数
     */
    @Excel(name = "定期任务规则次数")
    private Long ruleTypeNum;

    /**
     * 创建人ID
     */
    @Excel(name = "创建人ID")
    private Long createId;

    /**
     * 更新人ID
     */
    @Excel(name = "更新人ID")
    private Long updateId;

    /**
     * 自查大队ID
     */
    @Excel(name = "自查大队ID")
    private Long selfCheckDeptId;

    /**
     * 自查大队名称
     */
    @Excel(name = "自查大队名称")
    private String selfCheckDeptName;

    /**
     * 是否已读
     */
    @TableField(exist = false)
    private boolean isRead;

    /**
     * 检查项明细列表
     */
    @TableField(exist = false)
    private List<CheckProjectItem> checkProjectItemList;

    /**
     * 检查项明细列表树形结构
     */
    @TableField(exist = false)
    private List<CheckProjectItemTreeVo> checkProjectItemTreeVoList;

    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 setTaskCode(String taskCode) {
        this.taskCode = taskCode;
    }

    public String getTaskCode() {
        return taskCode;
    }

    public void setTaskName(String taskName) {
        this.taskName = taskName;
    }

    public String getTaskName() {
        return taskName;
    }

    public void setCheckStartTime(Date checkStartTime) {
        this.checkStartTime = checkStartTime;
    }

    public Date getCheckStartTime() {
        return checkStartTime;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setCheckLevel(String checkLevel) {
        this.checkLevel = checkLevel;
    }

    public String getCheckLevel() {
        return checkLevel;
    }

    public void setCheckedLevel(String checkedLevel) {
        this.checkedLevel = checkedLevel;
    }

    public String getCheckedLevel() {
        return checkedLevel;
    }

    public void setCheckResult(String checkResult) {
        this.checkResult = checkResult;
    }

    public String getCheckResult() {
        return checkResult;
    }

    public void setCheckCategory(String checkCategory) {
        this.checkCategory = checkCategory;
    }

    public String getCheckCategory() {
        return checkCategory;
    }

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

    public Long getId() {
        return id;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }

    public void setCheckEndTime(Date checkEndTime) {
        this.checkEndTime = checkEndTime;
    }

    public Date getCheckEndTime() {
        return checkEndTime;
    }

    public void setIsRegularTasks(Long isRegularTasks) {
        this.isRegularTasks = isRegularTasks;
    }

    public Long getIsRegularTasks() {
        return isRegularTasks;
    }

    public void setRuleType(String ruleType) {
        this.ruleType = ruleType;
    }

    public String getRuleType() {
        return ruleType;
    }

    public void setStatusDesc(String statusDesc) {
        this.statusDesc = statusDesc;
    }

    public String getStatusDesc() {
        return statusDesc;
    }

    public void setCheckLevelDesc(String checkLevelDesc) {
        this.checkLevelDesc = checkLevelDesc;
    }

    public String getCheckLevelDesc() {
        return checkLevelDesc;
    }

    public void setCheckedLevelDesc(String checkedLevelDesc) {
        this.checkedLevelDesc = checkedLevelDesc;
    }

    public String getCheckedLevelDesc() {
        return checkedLevelDesc;
    }

    public void setCheckResultDesc(String checkResultDesc) {
        this.checkResultDesc = checkResultDesc;
    }

    public String getCheckResultDesc() {
        return checkResultDesc;
    }

    public void setCheckCategoryDesc(String checkCategoryDesc) {
        this.checkCategoryDesc = checkCategoryDesc;
    }

    public String getCheckCategoryDesc() {
        return checkCategoryDesc;
    }

    public void setRuleTypeDesc(String ruleTypeDesc) {
        this.ruleTypeDesc = ruleTypeDesc;
    }

    public String getRuleTypeDesc() {
        return ruleTypeDesc;
    }

    public void setIsSelfCheck(Integer isSelfCheck) {
        this.isSelfCheck = isSelfCheck;
    }

    public Integer getIsSelfCheck() {
        return isSelfCheck;
    }

    public void setRuleTypeNum(Long ruleTypeNum) {
        this.ruleTypeNum = ruleTypeNum;
    }

    public Long getRuleTypeNum() {
        return ruleTypeNum;
    }

    public void setCreateId(Long createId) {
        this.createId = createId;
    }

    public Long getCreateId() {
        return createId;
    }

    public void setUpdateId(Long updateId) {
        this.updateId = updateId;
    }

    public Long getUpdateId() {
        return updateId;
    }

    public void setSelfCheckDeptId(Long selfCheckDeptId) {
        this.selfCheckDeptId = selfCheckDeptId;
    }

    public Long getSelfCheckDeptId() {
        return selfCheckDeptId;
    }

    public void setSelfCheckDeptName(String selfCheckDeptName) {
        this.selfCheckDeptName = selfCheckDeptName;
    }

    public String getSelfCheckDeptName() {
        return selfCheckDeptName;
    }

    public boolean isRead() {
        return isRead;
    }

    public void setRead(boolean read) {
        isRead = read;
    }

    public List<CheckProjectItem> getCheckProjectItemList() {
        return checkProjectItemList;
    }

    public void setCheckProjectItemList(List<CheckProjectItem> checkProjectItemList) {
        this.checkProjectItemList = checkProjectItemList;
    }

    public List<CheckProjectItemTreeVo> getCheckProjectItemTreeVoList() {
        return checkProjectItemTreeVoList;
    }

    public void setCheckProjectItemTreeVoList(List<CheckProjectItemTreeVo> checkProjectItemTreeVoList) {
        this.checkProjectItemTreeVoList = checkProjectItemTreeVoList;
    }

    @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("taskCode", getTaskCode())
                .append("taskName", getTaskName())
                .append("checkStartTime", getCheckStartTime())
                .append("status", getStatus())
                .append("checkLevel", getCheckLevel())
                .append("checkedLevel", getCheckedLevel())
                .append("checkResult", getCheckResult())
                .append("checkCategory", getCheckCategory())
                .append("id", getId())
                .append("description", getDescription())
                .append("checkEndTime", getCheckEndTime())
                .append("isRegularTasks", getIsRegularTasks())
                .append("ruleType", getRuleType())
                .append("statusDesc", getStatusDesc())
                .append("checkLevelDesc", getCheckLevelDesc())
                .append("checkedLevelDesc", getCheckedLevelDesc())
                .append("checkResultDesc", getCheckResultDesc())
                .append("checkCategoryDesc", getCheckCategoryDesc())
                .append("ruleTypeDesc", getRuleTypeDesc())
                .append("remark", getRemark())
                .append("isSelfCheck", getIsSelfCheck())
                .append("ruleTypeNum", getRuleTypeNum())
                .append("createId", getCreateId())
                .append("updateId", getUpdateId())
                .append("selfCheckDeptId", getSelfCheckDeptId())
                .append("selfCheckDeptName", getSelfCheckDeptName())
                .append("isRead", isRead())
                .append("checkProjectItemList", getCheckProjectItemList())
                .append("checkProjectItemTreeVoList", getCheckProjectItemTreeVoList())
                .toString();
    }
}
