package com.boman.domain.dto;


import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author zhong.h
 * createTime: 2021/6/17
 * description:任务中心的DTO
 */

public class TaskDto extends BaseDto {
    private static final long serialVersionUID = -1L;

    /**
     * 主键id
     */
    @JSONField
    private Long id;

    /**
     * 上一次的任务id
     */
    private Long lastTaskId;

    /**
     * 批处理数据的id以","分隔
     */
    private String ids;

    /**
     * 任务所属节点id
     */
    private Long nodeId;

    /**
     * 流程实例id
     */
    @JSONField
    private Long instanceId;

    /**
     * 任务所属动作
     */
    private Long actId;

    /**
     * 任务动作类别:定时任务设置的就算作自动
     */
    private Short actType;

    /**
     * 版本
     */
    private Integer rev;

    /**
     * 任务描述
     */
    private String description;

    /**
     * 任务创建时间
     */
    @JSONField(name = "startTime", format = "yyyy-MM-dd HH:mm")
    private Date createTime;

    /**
     * 任务修改时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm")
    private Date updateTime;

    private String approvedTime;

    /**
     * 上一步任务实例
     */
    private Long lastTask;

    /**
     * 任务执行状态
     */
    private Short excuStatus;

    /**
     * 审批人编号
     */
    private Long approver;

    /**
     * 转派人编号
     */
    private Long delegateId;


    /**
     * 详情查询类型：待办为0，历史为1
     */
    private Integer loadType;

    /**
     * 操作类型：同意,驳回，转派
     */
    private Short type;

    /**
     * 业务编号
     */
    private Long businessCode;

    /**
     * 业务类型
     */
    private Long businessType;

    /**
     * 业务单据
     */
    private String businessBody;

    /**
     * 发起人id
     */
    private Long initiator;

    /**
     * 发起人中文名
     */
    private String initiatorName;

    /**
     * 是否是本人
     */
    private Boolean isinitiator;

    /**
     * 当前用户id
     */
    private Long userId;

    /**
     * 列表查询类型
     */
    private String searchType;

    /**
     * 审批人类型
     */
    private Short approverType;

    /**
     * 用于时间段的截至时间
     */
    private String endTime;

    /**
     * 驳回节点
     */
    private Long backId;

    /**
     * 模板id
     */
    private Long moduleId;

    /**
     * 流程状态
     */
    private Short processStatus;

    //业务数据编号
    private String businessNumber;

    /**
     * 审批人中文名
     */
    private String approverName;

    /**
     * 单据类型中文名
     */
    private String businessTypeName;

    /**
     * 掌云或条件搜索字段
     */
    private String searchField;

    /**
     * 审批人id，和审批人中文名
     */
    private List<Map<String,String>> approverInfo;

    /**
     * 批次号
     */
    private Integer batch;

    /**
     * 人工干预驳回节点id
     */
    private Long backNodeId;

    /**
     * 人工干预同意节点id
     */
    private Long passNodeId;

    /**
     * 是否轮询
     */
    private Boolean isPoll;

    /**
     * 节点名称，代办列表的节点名称筛
     */
    private String nodeName;

    /** 表名 */
    private String tableName;

    /***/
    private String other;

    /**
     * 扩展节点审核人
     */
    private String candidatorId;

    private String candidatorTableName;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getLastTaskId() {
        return lastTaskId;
    }

    public void setLastTaskId(Long lastTaskId) {
        this.lastTaskId = lastTaskId;
    }

    public String getIds() {
        return ids;
    }

    public void setIds(String ids) {
        this.ids = ids;
    }

    public Long getNodeId() {
        return nodeId;
    }

    public void setNodeId(Long nodeId) {
        this.nodeId = nodeId;
    }

    public Long getInstanceId() {
        return instanceId;
    }

    public void setInstanceId(Long instanceId) {
        this.instanceId = instanceId;
    }

    public Long getActId() {
        return actId;
    }

    public void setActId(Long actId) {
        this.actId = actId;
    }

    public Short getActType() {
        return actType;
    }

    public void setActType(Short actType) {
        this.actType = actType;
    }

    public Integer getRev() {
        return rev;
    }

    public void setRev(Integer rev) {
        this.rev = rev;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getApprovedTime() {
        return approvedTime;
    }

    public void setApprovedTime(String approvedTime) {
        this.approvedTime = approvedTime;
    }

    public Long getLastTask() {
        return lastTask;
    }

    public void setLastTask(Long lastTask) {
        this.lastTask = lastTask;
    }

    public Short getExcuStatus() {
        return excuStatus;
    }

    public void setExcuStatus(Short excuStatus) {
        this.excuStatus = excuStatus;
    }

    public Long getApprover() {
        return approver;
    }

    public void setApprover(Long approver) {
        this.approver = approver;
    }

    public Long getDelegateId() {
        return delegateId;
    }

    public void setDelegateId(Long delegateId) {
        this.delegateId = delegateId;
    }

    public Integer getLoadType() {
        return loadType;
    }

    public void setLoadType(Integer loadType) {
        this.loadType = loadType;
    }

    public Short getType() {
        return type;
    }

    public void setType(Short type) {
        this.type = type;
    }

    public Long getBusinessCode() {
        return businessCode;
    }

    public void setBusinessCode(Long businessCode) {
        this.businessCode = businessCode;
    }

    public Long getBusinessType() {
        return businessType;
    }

    public void setBusinessType(Long businessType) {
        this.businessType = businessType;
    }

    public String getBusinessBody() {
        return businessBody;
    }

    public void setBusinessBody(String businessBody) {
        this.businessBody = businessBody;
    }

    public Long getInitiator() {
        return initiator;
    }

    public void setInitiator(Long initiator) {
        this.initiator = initiator;
    }

    public String getInitiatorName() {
        return initiatorName;
    }

    public void setInitiatorName(String initiatorName) {
        this.initiatorName = initiatorName;
    }

    public Boolean getIsinitiator() {
        return isinitiator;
    }

    public void setIsinitiator(Boolean isinitiator) {
        this.isinitiator = isinitiator;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getSearchType() {
        return searchType;
    }

    public void setSearchType(String searchType) {
        this.searchType = searchType;
    }

    public Short getApproverType() {
        return approverType;
    }

    public void setApproverType(Short approverType) {
        this.approverType = approverType;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public Long getBackId() {
        return backId;
    }

    public void setBackId(Long backId) {
        this.backId = backId;
    }

    public Long getModuleId() {
        return moduleId;
    }

    public void setModuleId(Long moduleId) {
        this.moduleId = moduleId;
    }

    public Short getProcessStatus() {
        return processStatus;
    }

    public void setProcessStatus(Short processStatus) {
        this.processStatus = processStatus;
    }

    public String getBusinessNumber() {
        return businessNumber;
    }

    public void setBusinessNumber(String businessNumber) {
        this.businessNumber = businessNumber;
    }

    public String getApproverName() {
        return approverName;
    }

    public void setApproverName(String approverName) {
        this.approverName = approverName;
    }

    public String getBusinessTypeName() {
        return businessTypeName;
    }

    public void setBusinessTypeName(String businessTypeName) {
        this.businessTypeName = businessTypeName;
    }

    public String getSearchField() {
        return searchField;
    }

    public void setSearchField(String searchField) {
        this.searchField = searchField;
    }

    public List<Map<String, String>> getApproverInfo() {
        return approverInfo;
    }

    public void setApproverInfo(List<Map<String, String>> approverInfo) {
        this.approverInfo = approverInfo;
    }

    public Integer getBatch() {
        return batch;
    }

    public void setBatch(Integer batch) {
        this.batch = batch;
    }

    public Long getBackNodeId() {
        return backNodeId;
    }

    public void setBackNodeId(Long backNodeId) {
        this.backNodeId = backNodeId;
    }

    public Long getPassNodeId() {
        return passNodeId;
    }

    public void setPassNodeId(Long passNodeId) {
        this.passNodeId = passNodeId;
    }

    public Boolean getPoll() {
        return isPoll;
    }

    public void setPoll(Boolean poll) {
        isPoll = poll;
    }

    public String getNodeName() {
        return nodeName;
    }

    public void setNodeName(String nodeName) {
        this.nodeName = nodeName;
    }

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public String getOther() {
        return other;
    }

    public void setOther(String other) {
        this.other = other;
    }

    public String getCandidatorId() {
        return candidatorId;
    }

    public void setCandidatorId(String candidatorId) {
        this.candidatorId = candidatorId;
    }

    public String getCandidatorTableName() {
        return candidatorTableName;
    }

    public void setCandidatorTableName(String candidatorTableName) {
        this.candidatorTableName = candidatorTableName;
    }
}