package com.zcloud.safetyDutyList.dto.clientobject.tasklist;

import com.alibaba.cola.dto.ClientObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * 安全责任清单客户端对象
 * <p>
 * 用于向前端返回清单列表和详情数据，
 * 包含清单的基本信息、状态、周期、下发信息等字段，
 * 以及通过联表查询获取的部门名称、人员名称、任务数、反馈状态等聚合字段。
 */
@Data
public class TaskListCO extends ClientObject {
    @ApiModelProperty(value = "主键")
    private Long id;
    @ApiModelProperty(value = "清单UUID（业务主键）")
    private String taskListId;
    @ApiModelProperty(value = "清单名称")
    private String taskListName;
    @ApiModelProperty(value = "任务级别：1-企业级 2-部门级 3-班组级")
    private Integer taskLevel;
    @ApiModelProperty(value = "责任岗位")
    private String responsibilityPost;
    @ApiModelProperty(value = "开启/关闭：0-关 1-开")
    private Integer switchFlag;
    @ApiModelProperty(value = "状态：1-进行中 2-已完成 3-已关闭")
    private Integer status;
    @ApiModelProperty(value = "执行周期开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime periodStartTime;
    @ApiModelProperty(value = "执行周期结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime periodEndTime;
    @ApiModelProperty(value = "清单分数")
    private BigDecimal ratingScore;
    @ApiModelProperty(value = "评分人ID")
    private Long ratingUserId;
    @ApiModelProperty(value = "评分人姓名")
    private String ratingUserName;
    @ApiModelProperty(value = "评分部门ID")
    private Long ratingDepartmentId;
    @ApiModelProperty(value = "评分部门名称")
    private String ratingDepartmentName;
    @ApiModelProperty(value = "下发状态：0-未下发 1-已下发")
    private Integer issueStatus;
    @ApiModelProperty(value = "下发时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime issueTime;
    @ApiModelProperty(value = "执行公司ID")
    private Long executeCorpId;
    @ApiModelProperty(value = "执行公司名称")
    private String executeCorpName;
    @ApiModelProperty(value = "执行部门ID")
    private Long executeDepartmentId;
    @ApiModelProperty(value = "执行部门名称")
    private String executeDepartmentName;
    @ApiModelProperty(value = "执行人员ID")
    private Long executeUserId;
    @ApiModelProperty(value = "执行人员名称")
    private String executeUserName;
    @ApiModelProperty(value = "任务数")
    private Integer taskCount;
    @ApiModelProperty(value = "反馈状态：1-正常 2-异常")
    private Integer feedbackStatus;
}
