/**
 * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
 */
package com.jeeplus.modules.workvisa.entity;

import com.jeeplus.common.persistence.ActEntity;
import com.jeeplus.modules.sys.entity.Workattachment;
import com.jeeplus.modules.workfullmanage.entity.WorkFullManage;

import com.jeeplus.common.persistence.DataEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 工程签证Entity
 * @author liuw
 * @version 2017-10-31
 */
public class WorkVisa extends ActEntity<WorkVisa> {
	
	private static final long serialVersionUID = 1L;
	private String initiateClient;		// 发起单位
	private String cprojectName;		// 单位工程名称
	private String constructionExample;		// 施工标段
	private String visaNumber;		// 签证单编号
	private String visaArea;		// 签证范围
	private String theme;		// 主题内容
	private String visaContent;		// 签证单主要内容
	private String replySuggest;		// 审价批复意见
	private WorkFullManage fullManage;		// 全过程管理项目
	private String status;		// 项目状态  1暂存2审核中3未通过4已通过5已撤销
	private String companyId;		// 公司id
	private String officeId;
	private Boolean processEnded;            //流程是否走到了结束状态(结束：false，未结束：true)
	public String getOfficeId() {
		return officeId;
	}

	public void setOfficeId(String officeId) {
		this.officeId = officeId;
	}
	//work_attachment中attachment_flag = 37 工程签证附件
	private Workattachment attachmentFile;     //附件
	//private List<Workattachment> workattachmentList = new ArrayList<>();



	private List<Workattachment> workAttachments = new ArrayList<>();
	private String name;			//查看修改标识
	private String processInstanceId; // 流程实例编号
	// -- 临时属性 --//
	// 流程任务
	private Task task;
	private Map<String, Object> variables;
	// 运行中的流程实例
	private ProcessInstance processInstance;
	// 历史的流程实例
	private HistoricProcessInstance historicProcessInstance;
	// 流程定义
	private ProcessDefinition processDefinition;

	public Task getTask() {
		return task;
	}

	public void setTask(Task task) {
		this.task = task;
	}

	public Map<String, Object> getVariables() {
		return variables;
	}

	public void setVariables(Map<String, Object> variables) {
		this.variables = variables;
	}

	public Boolean getProcessEnded() {
		return processEnded;
	}

	public void setProcessEnded(Boolean processEnded) {
		this.processEnded = processEnded;
	}

	public ProcessInstance getProcessInstance() {
		return processInstance;
	}

	public void setProcessInstance(ProcessInstance processInstance) {
		this.processInstance = processInstance;
	}

	public HistoricProcessInstance getHistoricProcessInstance() {
		return historicProcessInstance;
	}

	public void setHistoricProcessInstance(HistoricProcessInstance historicProcessInstance) {
		this.historicProcessInstance = historicProcessInstance;
	}

	public ProcessDefinition getProcessDefinition() {
		return processDefinition;
	}

	public void setProcessDefinition(ProcessDefinition processDefinition) {
		this.processDefinition = processDefinition;
	}


	public String getProcessInstanceId() {
		return processInstanceId;
	}

	public void setProcessInstanceId(String processInstanceId) {
		this.processInstanceId = processInstanceId;
	}

	/*public List<Workattachment> getWorkattachmentList() {
		return workattachmentList;
	}

	public void setWorkattachmentList(List<Workattachment> workattachmentList) {
		this.workattachmentList = workattachmentList;
	}*/
	public List<Workattachment> getWorkAttachments() {
		return workAttachments;
	}

	public void setWorkAttachments(List<Workattachment> workAttachments) {
		this.workAttachments = workAttachments;
	}
	public String getCompanyId() {
		return companyId;
	}

	public void setCompanyId(String companyId) {
		this.companyId = companyId;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Workattachment getAttachmentFile() {
		return attachmentFile;
	}

	public void setAttachmentFile(Workattachment attachmentFile) {
		this.attachmentFile = attachmentFile;
	}

	public WorkVisa() {
		super();
	}

	public WorkVisa(String id){
		super(id);
	}

	@ExcelField(title="发起单位", align=2, sort=7)
	public String getInitiateClient() {
		return initiateClient;
	}

	public void setInitiateClient(String initiateClient) {
		this.initiateClient = initiateClient;
	}
	
	@ExcelField(title="单位工程名称", align=2, sort=8)
	public String getCprojectName() {
		return cprojectName;
	}

	public void setCprojectName(String cprojectName) {
		this.cprojectName = cprojectName;
	}
	
	@ExcelField(title="施工标段", align=2, sort=9)
	public String getConstructionExample() {
		return constructionExample;
	}

	public void setConstructionExample(String constructionExample) {
		this.constructionExample = constructionExample;
	}
	
	@ExcelField(title="签证单编号", align=2, sort=10)
	public String getVisaNumber() {
		return visaNumber;
	}

	public void setVisaNumber(String visaNumber) {
		this.visaNumber = visaNumber;
	}
	
	@ExcelField(title="签证范围", align=2, sort=11)
	public String getVisaArea() {
		return visaArea;
	}

	public void setVisaArea(String visaArea) {
		this.visaArea = visaArea;
	}
	
	@ExcelField(title="主题内容", align=2, sort=12)
	public String getTheme() {
		return theme;
	}

	public void setTheme(String theme) {
		this.theme = theme;
	}
	
	@ExcelField(title="签证单主要内容", align=2, sort=13)
	public String getVisaContent() {
		return visaContent;
	}

	public void setVisaContent(String visaContent) {
		this.visaContent = visaContent;
	}
	
	@ExcelField(title="审价批复意见", align=2, sort=14)
	public String getReplySuggest() {
		return replySuggest;
	}

	public void setReplySuggest(String replySuggest) {
		this.replySuggest = replySuggest;
	}
	
	@ExcelField(title="全过程管理项目", align=2, sort=15)
	public WorkFullManage getFullManage() {
		return fullManage;
	}

	public void setFullManage(WorkFullManage fullManage) {
		this.fullManage = fullManage;
	}
	
	@ExcelField(title="项目状态", align=2, sort=16)
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
	
}