package com.qmth.sop.business.bean.result;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.sop.business.entity.TBDingApply;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.List;

/**
 * @Description: 考勤异常申请信息view result
 * @Param:
 * @return:
 * @Author: wangliang
 * @Date: 2023/2/17
 */
public class TBDingApplyViewResult implements Serializable {

    @ApiModelProperty(value = "crm信息")
    CrmProjectResult crmInfo;

    @ApiModelProperty(value = "考勤异常申请信息")
    TBDingApply tbDingApply;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "流程任务id集合")
    private List<Long> taskIdList;

    @ApiModelProperty(value = "当前流程节点")
    private FlowTaskResult currFlowTaskResult;

    @ApiModelProperty(value = "历史流程节点信息")
    List<FlowTaskResult> flowTaskHistoryList;

    @ApiModelProperty(value = "流程审批信息")
    List<TFFlowViewLogResult> flowApproveHistoryList;

    public TBDingApplyViewResult() {

    }

    public TBDingApplyViewResult(CrmProjectResult crmInfo, TBDingApply tbDingApply) {
        this.crmInfo = crmInfo;
        this.tbDingApply = tbDingApply;
    }

    public TBDingApplyViewResult(CrmProjectResult crmInfo, TBDingApply tbDingApply, List<Long> taskIdList, List<FlowTaskResult> flowTaskHistoryList, FlowTaskResult currFlowTaskResult, List<TFFlowViewLogResult> flowApproveHistoryList) {
        this.crmInfo = crmInfo;
        this.tbDingApply = tbDingApply;
        this.taskIdList = taskIdList;
        this.flowTaskHistoryList = flowTaskHistoryList;
        this.currFlowTaskResult = currFlowTaskResult;
        this.flowApproveHistoryList = flowApproveHistoryList;
    }

    public List<Long> getTaskIdList() {
        return taskIdList;
    }

    public void setTaskIdList(List<Long> taskIdList) {
        this.taskIdList = taskIdList;
    }

    public FlowTaskResult getCurrFlowTaskResult() {
        return currFlowTaskResult;
    }

    public void setCurrFlowTaskResult(FlowTaskResult currFlowTaskResult) {
        this.currFlowTaskResult = currFlowTaskResult;
    }

    public List<FlowTaskResult> getFlowTaskHistoryList() {
        return flowTaskHistoryList;
    }

    public void setFlowTaskHistoryList(List<FlowTaskResult> flowTaskHistoryList) {
        this.flowTaskHistoryList = flowTaskHistoryList;
    }

    public List<TFFlowViewLogResult> getFlowApproveHistoryList() {
        return flowApproveHistoryList;
    }

    public void setFlowApproveHistoryList(List<TFFlowViewLogResult> flowApproveHistoryList) {
        this.flowApproveHistoryList = flowApproveHistoryList;
    }

    public CrmProjectResult getCrmInfo() {
        return crmInfo;
    }

    public void setCrmInfo(CrmProjectResult crmInfo) {
        this.crmInfo = crmInfo;
    }

    public TBDingApply getTbDingApply() {
        return tbDingApply;
    }

    public void setTbDingApply(TBDingApply tbDingApply) {
        this.tbDingApply = tbDingApply;
    }
}
