package com.zcloud.safetyDutyList.persistence.dataobject.tasklist;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 任务详情数据对象
 * <p>
 * 对应数据库表safety_accountability_task_detail，
 * 用于MyBatis-Plus操作任务详情数据的持久化对象。
 * 联表查询时通过@TableField(exist=false)映射关联表的虚拟字段。
 */
@Data
@TableName("safety_accountability_task_detail")
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class TaskDetailDO extends BaseDO {
    @ApiModelProperty(value = "明细UUID（业务主键）")
    private String taskDetailId;
    @ApiModelProperty(value = "任务清单ID")
    private String taskListId;
    @ApiModelProperty(value = "执行内容")
    private String executeContent;
    @ApiModelProperty(value = "反馈周期类型：1-每月 2-季度 3-半年 4-年")
    private Integer feedbackCycleType;
    @ApiModelProperty(value = "任务状态：1-进行中 2-已完成 3-已关闭")
    private Integer taskStatus;
    @ApiModelProperty(value = "反馈状态：1-正常 2-存在异常")
    private Integer feedbackStatus;
    @ApiModelProperty(value = "任务分值")
    private BigDecimal taskScore;
    @ApiModelProperty(value = "任务评分")
    private BigDecimal taskRating;
    @ApiModelProperty(value = "评分时间")
    private LocalDateTime ratingTime;
    @ApiModelProperty(value = "评分部门ID")
    private Long ratingDepartmentId;
    @ApiModelProperty(value = "评分人ID")
    private Long ratingUserId;

    @ApiModelProperty(value = "反馈次数")
    @TableField(exist = false)
    private Integer feedbackCount;
    @ApiModelProperty(value = "当前周期是否已反馈：0-否 1-是")
    @TableField(exist = false)
    private Integer currentPeriodFeedback;
    @ApiModelProperty(value = "清单名称")
    @TableField(exist = false)
    private String taskListName;
    @ApiModelProperty(value = "任务级别")
    @TableField(exist = false)
    private Integer taskLevel;
    @ApiModelProperty(value = "责任岗位")
    @TableField(exist = false)
    private String responsibilityPost;
    @ApiModelProperty(value = "评分部门名称")
    @TableField(exist = false)
    private String ratingDepartmentName;
    @ApiModelProperty(value = "评分人姓名")
    @TableField(exist = false)
    private String ratingUserName;
}
