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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.common.persistence.ActEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField;
import com.jeeplus.modules.sys.entity.Workattachment;
import com.jeeplus.modules.workfullmanage.entity.WorkFullManage;
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.Date;
import java.util.List;
import java.util.Map;

/**
 * 设计变更Entity
 * @author fgy
 * @version 2017-11-03
 */
public class WorkFullDesignchange extends ActEntity<WorkFullDesignchange> {
	
	private static final long serialVersionUID = 1L;
	private String workFullManageId;		// 项目id
	private WorkFullManage workFullManage;  //项目
	private String processInstanceId;		// 流程实例id
	private Boolean processEnded;            //流程是否走到了结束状态(结束：false，未结束：true)
	private String status;		// 审核状态(0暂存，1审核中，2已通过，3未通过，4已撤销)
	private String companyId;		// 企业id
	private String officeId;
	private String unitProjectName;		// 单位工程名称
	private String changeNumber;		// 变更编号
	private String projectNumber;		// 项目编号
	private String constructSection;		// 施工标段
	private String changeSource;		// 变更来源
	private Date changeTime;		// 变更时间
	private String performer;		// 执行单位
	private String costVariation;		// 是否涉及造价变更（0否，1是）
	private String changeContext;		// 变更原因及主要内容
	private String name ;               //仅用在某些数据传递，无实义
	private List<Workattachment> workAttachments ;// 附件

	private Task task ;              //任务
	private Map<String,Object> variables ; //
	private ProcessInstance processInstance ;
	private HistoricProcessInstance historicProcessInstance;
	private ProcessDefinition processDefinition;

	public WorkFullDesignchange() {
		super();
	}

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

	@ExcelField(title="项目id", align=2, sort=1)
	public String getWorkFullManageId() {
		return workFullManageId;
	}

	public void setWorkFullManageId(String workFullManageId) {
		this.workFullManageId = workFullManageId;
	}
	
	@ExcelField(title="流程实例id", align=2, sort=2)
	public String getProcessInstanceId() {
		return processInstanceId;
	}

	public void setProcessInstanceId(String processInstanceId) {
		this.processInstanceId = processInstanceId;
	}
	
	@ExcelField(title="审核状态", dictType="work_full_designchange_status", align=2, sort=3)
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
	
	@ExcelField(title="企业id", align=2, sort=4)
	public String getCompanyId() {
		return companyId;
	}

	public void setCompanyId(String companyId) {
		this.companyId = companyId;
	}
	
	@ExcelField(title="单位工程名称", align=2, sort=5)
	public String getUnitProjectName() {
		return unitProjectName;
	}

	public void setUnitProjectName(String unitProjectName) {
		this.unitProjectName = unitProjectName;
	}
	
	@ExcelField(title="变更编号", align=2, sort=6)
	public String getChangeNumber() {
		return changeNumber;
	}

	public void setChangeNumber(String changeNumber) {
		this.changeNumber = changeNumber;
	}
	
	@ExcelField(title="项目编号", align=2, sort=7)
	public String getProjectNumber() {
		return projectNumber;
	}

	public void setProjectNumber(String projectNumber) {
		this.projectNumber = projectNumber;
	}
	
	@ExcelField(title="施工标段", align=2, sort=8)
	public String getConstructSection() {
		return constructSection;
	}

	public void setConstructSection(String constructSection) {
		this.constructSection = constructSection;
	}
	
	@ExcelField(title="变更来源", align=2, sort=9)
	public String getChangeSource() {
		return changeSource;
	}

	public void setChangeSource(String changeSource) {
		this.changeSource = changeSource;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="变更时间", align=2, sort=10)
	public Date getChangeTime() {
		return changeTime;
	}

	public void setChangeTime(Date changeTime) {
		this.changeTime = changeTime;
	}
	
	@ExcelField(title="执行单位", align=2, sort=11)
	public String getPerformer() {
		return performer;
	}

	public void setPerformer(String performer) {
		this.performer = performer;
	}
	
	@ExcelField(title="是否涉及造价变更（0否，1是）", align=2, sort=12)
	public String getCostVariation() {
		return costVariation;
	}

	public void setCostVariation(String costVariation) {
		this.costVariation = costVariation;
	}
	
	@ExcelField(title="变更原因及主要内容", align=2, sort=13)
	public String getChangeContext() {
		return changeContext;
	}

	public void setChangeContext(String changeContext) {
		this.changeContext = changeContext;
	}

	public WorkFullManage getWorkFullManage() {
		return workFullManage;
	}

	public void setWorkFullManage(WorkFullManage workFullManage) {
		this.workFullManage = workFullManage;
	}

	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 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 getName() {
		return name;
	}

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

	public String getOfficeId() {
		return officeId;
	}

	public void setOfficeId(String officeId) {
		this.officeId = officeId;
	}

	public List<Workattachment> getWorkAttachments() {
		return workAttachments;
	}

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

	public Boolean getProcessEnded() {
		return processEnded;
	}

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