package org.jeecg.modules.approval.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;
import java.util.Map;

/**
 * 任务VO
 *
 * @author yao
 * @since 2019/6/15 15:19
 */
@Data
public class TaskVO {
    /**
     * 任务id
     */
    private String id;

    /**
     * 审批名称
     */
    private String approveName;

    /**
     * 任务节点名称
     */
    private String taskNodeName;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 代理人
     */
    private String assignee;
    /**
     * 流程实例id
     */
    private String processInstanceId;
    /**
     * 流程定义id
     */
    private String processDefinitionId;

    /**
     * 流程定义key
     */
    private String processDefinitionKey;
    /**
     * 流程定义key
     */
    private String processDefinitionName;

    /**
     * 描述
     */
    private String description;
    /**
     * 命令空间
     */
    private String category;

    /**
     * 用户名称
     */
    private String userName;
    /**
     * 理由
     */
    private String remarks;
    /**
     * 地址
     */
    private String taskUrl;

    /**
     * 摘要
     */
    private String summary;
    /**
     * 其他参数
     */
    private Map<String,Object> param;

    public TaskVO() {}

    public TaskVO(org.activiti.engine.task.Task t) {
        this.id = t.getId();
        this.taskNodeName = t.getName();
        this.createTime = t.getCreateTime();
        this.assignee = t.getAssignee();
        this.processInstanceId = t.getProcessInstanceId();
        this.processDefinitionId = t.getProcessDefinitionId();
        this.description = t.getDescription();
        this.category = t.getCategory();
    }
}
