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.TBProjectExchange;
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 TBProjectExchangeViewResult implements Serializable {

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

    @ApiModelProperty(value = "项目变更计划信息")
    TBProjectExchange tbProjectExchange;

    @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 TBProjectExchangeViewResult() {

    }

    public TBProjectExchangeViewResult(CrmProjectResult crmInfo, TBProjectExchange tbProjectExchange) {
        this.crmInfo = crmInfo;
        this.tbProjectExchange = tbProjectExchange;
    }

    public TBProjectExchangeViewResult(CrmProjectResult crmInfo, TBProjectExchange tbProjectExchange, List<Long> taskIdList, List<FlowTaskResult> flowTaskHistoryList, FlowTaskResult currFlowTaskResult, List<TFFlowViewLogResult> flowApproveHistoryList) {
        this.crmInfo = crmInfo;
        this.tbProjectExchange = tbProjectExchange;
        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 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 TBProjectExchange getTbProjectExchange() {
        return tbProjectExchange;
    }

    public void setTbProjectExchange(TBProjectExchange tbProjectExchange) {
        this.tbProjectExchange = tbProjectExchange;
    }

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

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

    public FlowTaskResult getCurrFlowTaskResult() {
        return currFlowTaskResult;
    }

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