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

import com.jeeplus.common.persistence.ActEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField;
import com.jeeplus.modules.sys.entity.Office;
import com.jeeplus.modules.sys.entity.User;
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-02
 */
public class WorkFullMeetingminutes extends ActEntity<WorkFullMeetingminutes> {
	
	private static final long serialVersionUID = 1L;
	private WorkFullManage workFullManage;		// 项目
	private String workFullManageId ;   //项目id
	private String sourceCompany;		// 来源单位
	private Date meetingTime;		// 会议时间
	private String meetingAddress;		// 会议地点
	private String meetingOffice;		// 召开部门
	private Office office;           //召开部门
	private String meetingRecorderId;		// 会议记录人
	private User   meetingRecorder ;        //会议记录人
	private String meetingMembers;		// 与会人员id
	private String meetingMembersNames ; //与会人员名字
	private List<User> membersList ;  //与会人员
	private String meetingTopic;		// 会议主题
	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 name ;           //用作额外传递数据，无实义


	// 流程任务
	private Task task;
	//
	private Map<String, Object> variables;
	// 运行中的流程实例
	private ProcessInstance processInstance;
	// 历史的流程实例
	private HistoricProcessInstance historicProcessInstance;
	// 流程定义
	private ProcessDefinition processDefinition;
	
	public WorkFullMeetingminutes() {
		super();
	}

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

	@ExcelField(title="项目id", align=2, sort=1)
	public WorkFullManage getWorkFullManage() {
		return workFullManage;
	}

	public void setWorkFullManage(WorkFullManage workFullManage) {
		this.workFullManage = workFullManage;
	}
	
	@ExcelField(title="来源单位", align=2, sort=2)
	public String getSourceCompany() {
		return sourceCompany;
	}

	public void setSourceCompany(String sourceCompany) {
		this.sourceCompany = sourceCompany;
	}
	
	@ExcelField(title="会议时间", align=2, sort=3)
	public Date getMeetingTime() {
		return meetingTime;
	}

	public void setMeetingTime(Date meetingTime) {
		this.meetingTime = meetingTime;
	}
	
	@ExcelField(title="会议地点", align=2, sort=4)
	public String getMeetingAddress() {
		return meetingAddress;
	}

	public void setMeetingAddress(String meetingAddress) {
		this.meetingAddress = meetingAddress;
	}
	
	@ExcelField(title="召开部门", align=2, sort=5)
	public String getMeetingOffice() {
		return meetingOffice;
	}

	public void setMeetingOffice(String meetingOffice) {
		this.meetingOffice = meetingOffice;
	}
	
	@ExcelField(title="会议记录人", align=2, sort=6)
	public String getMeetingRecorderId() {
		return meetingRecorderId;
	}

	public void setMeetingRecorderId(String meetingRecorderId) {
		this.meetingRecorderId = meetingRecorderId;
	}
	
	@ExcelField(title="与会人员", align=2, sort=7)
	public String getMeetingMembers() {
		return meetingMembers;
	}

	public void setMeetingMembers(String meetingMembers) {
		this.meetingMembers = meetingMembers;
	}
	
	@ExcelField(title="会议主题", align=2, sort=8)
	public String getMeetingTopic() {
		return meetingTopic;
	}

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

	public void setProcessInstanceId(String processInstanceId) {
		this.processInstanceId = processInstanceId;
	}
	
	@ExcelField(title="审核状态（0暂存，1审核中，2已通过，3未通过）", dictType="work_full_meetingminutes_status", align=2, sort=10)
	public String getStatus() {
		return status;
	}

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

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

	public String getWorkFullManageId() {
		return workFullManageId;
	}

	public void setWorkFullManageId(String workFullManageId) {
		this.workFullManageId = workFullManageId;
	}

	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 User getMeetingRecorder() {
		return meetingRecorder;
	}

	public void setMeetingRecorder(User meetingRecorder) {
		this.meetingRecorder = meetingRecorder;
	}

	public List<User> getMembersList() {
		return membersList;
	}

	public void setMembersList(List<User> membersList) {
		this.membersList = membersList;
	}

	public String getName() {
		return name;
	}

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

	public String getMeetingMembersNames() {
		return meetingMembersNames;
	}

	public void setMeetingMembersNames(String meetingMembersNames) {
		this.meetingMembersNames = meetingMembersNames;
	}

	public Office getOffice() {
		return office;
	}

	public void setOffice(Office office) {
		this.office = office;
	}

	public String getOfficeId() {
		return officeId;
	}

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

	public Boolean getProcessEnded() {
		return processEnded;
	}

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