package com.zjsgfa.project.zjsgfa.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zjsgfa.framework.aspectj.lang.annotation.Excel;
import com.zjsgfa.framework.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 待办事项对象 biz_todo_item
 * 
 * @author ruoyi
 * @date 2026-02-11
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BizTodoItem extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 ID */
    private Long id;

    /** 事项标题 */
    @Excel(name = "事项标题")
    private String itemName;

    /** 事项内容 */
    @Excel(name = "事项内容")
    private String itemContent;

    /** 模块名称 (必须以 uri 一致) */
    @Excel(name = "模块名称 (必须以 uri 一致)")
    private String module;

    /** 任务 ID */
    @Excel(name = "任务 ID")
    private String taskId;

    /** 流程实例 ID */
    @Excel(name = "流程实例 ID")
    private String instanceId;

    /** 任务名称 (必须以表单页面名称一致) */
    @Excel(name = "任务名称 (必须以表单页面名称一致)")
    private String taskName;

    /** 节点名称 */
    @Excel(name = "节点名称")
    private String nodeName;

    /** 是否查看 default 0 (0 否 1 是) */
    @Excel(name = "是否查看 default 0 (0 否 1 是)")
    private String isView;

    /** 是否处理 default 0 (0 否 1 是) */
    @Excel(name = "是否处理 default 0 (0 否 1 是)")
    private String isHandle;

    /** 待办人 ID */
    @Excel(name = "待办人 ID")
    private String todoUserId;

    /** 待办人名称 */
    @Excel(name = "待办人名称")
    private String todoUserName;

    /** 处理人 ID */
    @Excel(name = "处理人 ID")
    private String handleUserId;

    /** 处理人名称 */
    @Excel(name = "处理人名称")
    private String handleUserName;

    /** 通知时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "通知时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date todoTime;

    /** 处理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date handleTime;

    private String comment;


    private String searchOtherTodoFlag;

    private String orderBy;

    //当前任务名称
    private String dqtaskName;

    /**
     * 审批人电子签名
     */
    private String dzqm;

    /**
     * 撤销标识 0=不允许撤销 1=允许撤销
     */
    private String cxbs;

    /**
     * 最大处理时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date maxHandleTime;
}
