package com.bs.ct.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.bs.common.annotation.Excel;
import com.bs.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import io.swagger.annotations.ApiModelProperty;

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

/**
 * 任务机构信息对象 ct_task_branch
 *
 * @author bs
 * @date 2025-02-22
 */
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("ct_task_branch")
@Data
public class CtTaskBranch extends BaseEntity{
    private static final long serialVersionUID = 1L;

    /** id */
    @TableId(value = "id",type = IdType.AUTO)
    @ApiModelProperty(value = "id")
    private Long id;

    /** 任务id */

    @Excel(name = "任务id")
    @ApiModelProperty(value = "任务id")
    private Long taskId;

    /** 任务id */

    @Excel(name = "任务ids")
    @ApiModelProperty(value = "任务ids")
    @TableField(exist = false)
    private List<Long> taskIds;

    /** 类型人员、机构 */

    @Excel(name = "类型人员、机构")
    @ApiModelProperty(value = "类型人员、机构")
    private String type;

    /** 机构代码 */

    @Excel(name = "机构代码")
    @ApiModelProperty(value = "机构代码")
    private String branchCode;

    /** 机构名称 */

    @Excel(name = "机构名称")
    @ApiModelProperty(value = "机构名称")
    private String branchName;

    /** 机构名称 */

    @Excel(name = "上级机构名称")
    @ApiModelProperty(value = "上级机构名称")
    @TableField(exist = false)
    private String branchNameParent;

    /** 机构代码 */

    @Excel(name = "用户Id")
    @ApiModelProperty(value = "用户Id")
    private String userId;

    /** 机构代码 */

    @Excel(name = "用户Ids")
    @ApiModelProperty(value = "用户Id")
    @TableField(exist = false)
    private List<String> userIds;

    /** 用户名称 */

    @Excel(name = "用户名称")
    @ApiModelProperty(value = "用户名称")
    private String userName;

    /** 任务状态   0未完成  1已逾期  2已完成  */

    @Excel(name = "任务状态")
    @ApiModelProperty(value = "任务状态")
    private String taskStatus;

    /** 备注 */

    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private String remarks;

    @TableField(exist = false)
    private CtTaskFeedback sdTaskOtherFeedbackByCreate;

    @TableField(exist = false)
    private CtTaskFeedback sdTaskOtherFeedbackByFeedback;

    @TableField(exist = false)
    private CtTaskInfo sdTaskOther;

    /** 任务要求 */

    @Excel(name = "任务内容")
    @ApiModelProperty(value = "任务内容")
    @TableField(exist = false)
    private String taskContent;

    /** 完成状态 */

    @Excel(name = "完成状态")
    @ApiModelProperty(value = "完成状态")
    @TableField(exist = false)
    private String status;

    /** 任务类型 */

    @Excel(name = "任务类型")
    @ApiModelProperty(value = "任务类型")
    @TableField(exist = false)
    private String taskType;

    /** 任务标题 */

    @Excel(name = "任务标题")
    @ApiModelProperty(value = "任务标题")
    @TableField(exist = false)
    private String taskTitle;

    @ApiModelProperty(value = "任务期限")
    @TableField(exist = false)
    private String startToEndDate;

    /** 任务发起部门 */

    @Excel(name = "任务发起部门")
    @ApiModelProperty(value = "任务发起部门")
    @TableField(exist = false)
    private String deptName;

    @Excel(name = "办理单位")
    @ApiModelProperty(value = "办理单位")
    @TableField(exist = false)
    private String transactBranchName;

    @Excel(name = "办理部门")
    @ApiModelProperty(value = "办理部门")
    @TableField(exist = false)
    private String transactDeptName;

    @Excel(name = "办理人")
    @ApiModelProperty(value = "办理人")
    @TableField(exist = false)
    private String transactInitiator;

    /** 任务发起人 */

    @Excel(name = "任务发起人")
    @ApiModelProperty(value = "任务发起人")
    @TableField(exist = false)
    private String taskInitiator;

    /** 是否为交办任务 1：是  0：否 */

    @Excel(name = "是否为交办任务")
    @ApiModelProperty(value = "是否为交办任务")
    @TableField(exist = false)
    private String isTask;

    /** 开始时间 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "开始时间")
    @TableField(exist = false)
    private Date startDate;

    /** 结束时间 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "结束时间")
    @TableField(exist = false)
    private Date endDate;

    /** 任务发布日期 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "任务发布日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "任务发布日期")
    @TableField(exist = false)
    private Date taskDate;

    @TableField(exist = false)
    private Integer pageNum;

    @TableField(exist = false)
    private Integer pageSize;

    @TableField(exist = false)
    private List<CtTaskTag> ctTaskTags;
}
