package com.blueland.bpm.engine.core.model;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 流程客户端输入对象
 * @author lw
 *
 */
public class ProcessInputModel implements java.io.Serializable{
	private static final long serialVersionUID = 1L;
	
	/**
	 * 流程应用系统
	 */
	private String wf_appId;
	/**
	 * 流程标题
	 */
	private String wf_procTitle;
	/**
	 * 动作处理标识
	 */
	private String wf_actionType;
	/**
	 * 流程定义ID,对应引擎自动生成的ID,规则为(流程定义KEY:版本号:部署ID)
	 */
	private String wf_procDefId;
	/**
	 * 流程定义KEY,对应建模的时候流程定义ID
	 */
	private String wf_procDefKey;
	/**
	 * 动作处理标识
	 */
	private String wf_procDefName;
	/**
	 * 流程实例ID
	 */
	private String wf_procInstId;
	
	/**
	 * 父流程实例ID
	 */
	private String wf_parentProcInstId;
	/**
	 * 当前环节定义Id
	 */
	private String wf_curActDefId;
	
	/**
	 * 当前环节定义类型
	 */
	private String wf_curActDefType;
	
	/**
	 * 当前环节定义Name
	 */
	private String wf_curActDefName;
	/**
	 * 当前环节实例Id
	 */
	private String wf_curActInstId;
	/**
	 * 当前环节实例Name
	 */
	private String wf_curActInstName;
	/**
	 * 下一个环节定义ID	
	 */
	private String wf_nextActDefId;
	/**
	 * 下一个环节定义Name
	 */
	private String wf_nextActDefName;
	/**
	 * 下一个环节定义类型
	 */
	private String wf_nextActDefType;
	private String wf_preActSender;
	/**
	 * 发送人ID
	 */
	private String wf_sendUserId;
	/**
	 * 发送人ID
	 */
	private String wf_sender;
	/**
	 * 发送人姓名
	 */
	private String wf_sendUserName;
	
	/**
	 * 发送人组织ID
	 */
	private String wf_sendUserOrgId;
	/**
	 * 发送人组织ID
	 */
	private String wf_sendUserOrgName;
	/**
	 * 发送人公司ID
	 */
	private String wf_sendUserCompanyId;
	/**
	 * 接收者列表(user1;user2;user3)
	 */
	private List<ActivityReceiverModel> wf_receivers;
	/**
	 * 接收者列表(user1;user2;user3)
	 */
	private String wf_receiver;
	
	/**
	 * 页面处理时间	格式：年月日时分秒	必须
	 */
	private String wf_pageDealTime;
	
	private String wf_fields;
	
	/**
	 * 流程变量,存在于当前流程实例生命周期中
	 */
	private Map<String,Object> wf_variables=new HashMap<String,Object>();
	
	/**
	 * 页面中需要存储的表单元素，表示为：key:字段ID,value:字段值
	 */
	private Map<String,Object> fields=new HashMap<String,Object>();
	/**
	 * <附件路径+附件名>	页面传的该字段只在新增和修改附件的情况下填写，并且是该环节上的所有附件组合串	(没有附件时候，和没有对附件进行过修改时，该字段不需要)
	 */
	private String wf_attachments;
	/**
	 * 当前环节意见
	 */
	private String wf_curComment;
	/**
	 * 批量处理标识
	 */
	private String wf_batchId;
	
	
	/**
	 * 意见展示区域
	 */
	private String wf_commentDisplayArea;
	
	private String wf_businessKey;
	
	/**
	 * 业务数据对象
	 */
	private BusinessDataObject wf_businessDataObject;
	
	/**
	 * 扩业务的流程数据对象
	 */
	private BusinessDataObject wf_throughBizDataObject;
	
	/**
	 * 流程待办URL
	 */
	private String wf_uniteworkUrl;
	
	/**
	 * 桌面端、网页端访问待办详情的方式，指访问该待办采⽤的协议，具体参考统一待办规范
	 */
	private String wf_cportalProtocol ;
	/**
	 * 手机端统一待办处理URL，如果不传，取流程配置的手机端统一待办路径。流程平台在产生待办的时候会在这个URL之后附加流程实例的相关参数
	 */
	private String wf_mportalUrl;
	/**
	 * 手机端访问待办详情的方式，指访问该待办采⽤的协议，具体参考统一待办规范
	 */
	private String wf_mportalProtocol;
	/**
	 * 该属性仅在手机端使用，readonly指该待办在移动端是否只读。具体参考统一待办规范
	 */
	private String wf_otherSysDealStatus;
	
	/**
	 * 流程下一环节处理时限
	 */
	private int wf_actLimitTime;
	
	/**
	 * 是否前端自动查询出下一步人员,用于ParallelMultiInstanceBehavior初始化人员的判断
	 */
	private boolean wf_webAutoQueryNextUserFlag;
	
	/**
	 * 是否前端自动查询出下一步人员,用于ParallelMultiInstanceBehavior初始化人员的判断
	 */
	private boolean wf_webAutoQueryNextActFlag;
	
	
	private String wf_uniteCategory;
	
	public String getWf_procTitle() {
		return wf_procTitle;
	}
	public void setWf_procTitle(String wf_procTitle) {
		this.wf_procTitle = wf_procTitle;
	}
	
	public String getWf_actionType() {
		return wf_actionType;
	}
	public void setWf_actionType(String wf_actionType) {
		this.wf_actionType = wf_actionType;
	}
	
	public String getWf_procDefId() {
		return wf_procDefId;
	}
	public void setWf_procDefId(String wf_procDefId) {
		this.wf_procDefId = wf_procDefId;
	}
	public String getWf_procDefKey() {
		return wf_procDefKey;
	}
	public void setWf_procDefKey(String wf_procDefKey) {
		this.wf_procDefKey = wf_procDefKey;
	}
	public String getWf_procDefName() {
		return wf_procDefName;
	}
	public void setWf_procDefName(String wf_procDefName) {
		this.wf_procDefName = wf_procDefName;
	}
	public String getWf_procInstId() {
		return wf_procInstId;
	}
	public void setWf_procInstId(String wf_procInstId) {
		this.wf_procInstId = wf_procInstId;
	}
	public String getWf_curActDefId() {
		return wf_curActDefId;
	}
	public void setWf_curActDefId(String wf_curActDefId) {
		this.wf_curActDefId = wf_curActDefId;
	}
	public String getWf_curActDefName() {
		return wf_curActDefName;
	}
	public void setWf_curActDefName(String wf_curActDefName) {
		this.wf_curActDefName = wf_curActDefName;
	}
	public String getWf_curActInstId() {
		return wf_curActInstId;
	}
	public void setWf_curActInstId(String wf_curActInstId) {
		this.wf_curActInstId = wf_curActInstId;
	}
	public String getWf_curActInstName() {
		return wf_curActInstName;
	}
	public void setWf_curActInstName(String wf_curActInstName) {
		this.wf_curActInstName = wf_curActInstName;
	}
	public String getWf_nextActDefId() {
		return wf_nextActDefId;
	}
	public void setWf_nextActDefId(String wf_nextActDefId) {
		this.wf_nextActDefId = wf_nextActDefId;
	}
	public String getWf_nextActDefName() {
		return wf_nextActDefName;
	}
	public void setWf_nextActDefName(String wf_nextActDefName) {
		this.wf_nextActDefName = wf_nextActDefName;
	}
	public String getWf_sender() {
		return wf_sender;
	}
	public void setWf_sender(String wf_sender) {
		this.wf_sender = wf_sender;
	}
	
	public String getWf_preActSender() {
		return wf_preActSender;
	}
	public void setWf_preActSender(String wf_preActSender) {
		this.wf_preActSender = wf_preActSender;
	}
	public String getWf_pageDealTime() {
		return wf_pageDealTime;
	}
	public void setWf_pageDealTime(String wf_pageDealTime) {
		this.wf_pageDealTime = wf_pageDealTime;
	}
	public String getWf_attachments() {
		return wf_attachments;
	}
	public void setWf_attachments(String wf_attachments) {
		this.wf_attachments = wf_attachments;
	}
	public String getWf_curComment() {
		return wf_curComment;
	}
	public void setWf_curComment(String wf_curComment) {
		this.wf_curComment = wf_curComment;
	}
	public String getWf_businessKey() {
		return wf_businessKey;
	}
	public void setWf_businessKey(String wf_businessKey) {
		this.wf_businessKey = wf_businessKey;
	}
	public void addField(String key,String value) {
		 fields.put(key, value);
	}
	public Map<String, Object> getFields() {
		 return this.fields;
	}
	public void setFields(Map<String, Object> fields) {
		this.fields = fields;
	}
	public String getWf_fields() {
		return wf_fields;
	}
	public void setWf_fields(String wf_fields) {
		this.wf_fields = wf_fields;
	}
	public String getWf_curActDefType() {
		return wf_curActDefType;
	}
	public void setWf_curActDefType(String wf_curActDefType) {
		this.wf_curActDefType = wf_curActDefType;
	}
	public String getWf_nextActDefType() {
		return wf_nextActDefType;
	}
	public void setWf_nextActDefType(String wf_nextActDefType) {
		this.wf_nextActDefType = wf_nextActDefType;
	}
	public Map<String,Object> getWf_variables() {
		return wf_variables;
	}
	public void setWf_variables(Map<String,Object> wf_variables) {
		this.wf_variables = wf_variables;
	}
	
	public String getWf_commentDisplayArea() {
		return wf_commentDisplayArea;
	}
	public void setWf_commentDisplayArea(String wf_commentDisplayArea) {
		this.wf_commentDisplayArea = wf_commentDisplayArea;
	}
	
	
	public String getWf_appId() {
		return wf_appId;
	}

	public void setWf_appId(String wf_appId) {
		this.wf_appId = wf_appId;
	}
	public String getWf_sendUserName() {
		return wf_sendUserName;
	}
	public void setWf_sendUserName(String wf_sendUserName) {
		this.wf_sendUserName = wf_sendUserName;
	}
	public void addWf_variable(String key,Object value) {
		if(wf_variables==null)
			this.wf_variables=new HashMap();
		wf_variables.put(key, value);
	}
	
	
	public String getWf_sendUserOrgId() {
		return wf_sendUserOrgId;
	}
	public void setWf_sendUserOrgId(String wf_sendUserOrgId) {
		this.wf_sendUserOrgId = wf_sendUserOrgId;
	}
	public String getWf_sendUserOrgName() {
		return wf_sendUserOrgName;
	}
	public void setWf_sendUserOrgName(String wf_sendUserOrgName) {
		this.wf_sendUserOrgName = wf_sendUserOrgName;
	}
	public String getWf_sendUserCompanyId() {
		return wf_sendUserCompanyId;
	}
	public void setWf_sendUserCompanyId(String wf_sendUserCompanyId) {
		this.wf_sendUserCompanyId = wf_sendUserCompanyId;
	}
	public BusinessDataObject getWf_businessDataObject() {
		return wf_businessDataObject;
	}
	public void setWf_businessDataObject(BusinessDataObject wf_businessDataObject) {
		this.wf_businessDataObject = wf_businessDataObject;
	}
	public BusinessDataObject getWf_throughBizDataObject() {
		return wf_throughBizDataObject;
	}
	public void setWf_throughBizDataObject(
			BusinessDataObject wf_throughBizDataObject) {
		this.wf_throughBizDataObject = wf_throughBizDataObject;
	}
	public String getWf_parentProcInstId() {
		return wf_parentProcInstId;
	}
	public void setWf_parentProcInstId(String wf_parentProcInstId) {
		this.wf_parentProcInstId = wf_parentProcInstId;
	}
	
	public String getWf_receiver() {
		return wf_receiver;
	}
	public void setWf_receiver(String wf_receiver) {
		this.wf_receiver = wf_receiver;
	}
	
	public String getWf_sendUserId() {
		return wf_sendUserId;
	}
	public void setWf_sendUserId(String wf_sendUserId) {
		this.wf_sendUserId = wf_sendUserId;
	}
	public List<ActivityReceiverModel> getWf_receivers() {
		return wf_receivers;
	}
	public void setWf_receivers(List<ActivityReceiverModel> wf_receivers) {
		this.wf_receivers = wf_receivers;
	}
	
	public String getWf_uniteworkUrl() {
		return wf_uniteworkUrl;
	}
	public void setWf_uniteworkUrl(String wf_uniteworkUrl) {
		this.wf_uniteworkUrl = wf_uniteworkUrl;
	}
	
	public String getWf_batchId() {
		return wf_batchId;
	}
	public void setWf_batchId(String wf_batchId) {
		this.wf_batchId = wf_batchId;
	}
	
	public int getWf_actLimitTime() {
		return this.wf_actLimitTime;
	}
	
	public void setWf_actLimitTime(int actLimitTime) {
		this.wf_actLimitTime = actLimitTime;
	}
	
	
	public boolean getWf_webAutoQueryNextUserFlag() {
		return wf_webAutoQueryNextUserFlag;
	}
	public void setWf_webAutoQueryNextUserFlag(boolean wf_webAutoQueryNextUserFlag) {
		this.wf_webAutoQueryNextUserFlag = wf_webAutoQueryNextUserFlag;
	}
	public boolean getWf_webAutoQueryNextActFlag() {
		return wf_webAutoQueryNextActFlag;
	}
	public void setWf_webAutoQueryNextActFlag(boolean wf_webAutoQueryNextActFlag) {
		this.wf_webAutoQueryNextActFlag = wf_webAutoQueryNextActFlag;
	}
	public static long getSerialversionuid() {
		return serialVersionUID;
	}
	
	
	public String getWf_uniteCategory() {
		return wf_uniteCategory;
	}
	public void setWf_uniteCategory(String wf_uniteCategory) {
		this.wf_uniteCategory = wf_uniteCategory;
	}
	
	
	public String getWf_cportalProtocol() {
		return wf_cportalProtocol;
	}
	public void setWf_cportalProtocol(String wf_cportalProtocol) {
		this.wf_cportalProtocol = wf_cportalProtocol;
	}
	public String getWf_mportalUrl() {
		return wf_mportalUrl;
	}
	public void setWf_mportalUrl(String wf_mportalUrl) {
		this.wf_mportalUrl = wf_mportalUrl;
	}
	public String getWf_mportalProtocol() {
		return wf_mportalProtocol;
	}
	public void setWf_mportalProtocol(String wf_mportalProtocol) {
		this.wf_mportalProtocol = wf_mportalProtocol;
	}
	
	
	public String getWf_otherSysDealStatus() {
		return wf_otherSysDealStatus;
	}
	public void setWf_otherSysDealStatus(String wf_otherSysDealStatus) {
		this.wf_otherSysDealStatus = wf_otherSysDealStatus;
	}
	public String toString(){
		return org.apache.commons.lang3.builder.ToStringBuilder.reflectionToString(this);
	}
	
	
}
