package com.norteksoft.wf.engine.client;
import java.sql.Timestamp;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.Transient;
import com.norteksoft.wf.base.enumeration.ProcessState;
/**
* 供需走流程的实体嵌入,通知它可以在流程和实体间交互一些必要的数据
* @author wurong
*
*/
@Embeddable
public class WorkflowInfo {
/**
* 是否创建特事特办 ,true为创建
*/
protected Boolean createSpecialTask = false; //是否进行特事特办
/**
* 特事特办办理人的登录名
* 多个办理人用英文逗号隔开
*/
@Column(length=1000, nullable=true)
protected String specialTaskTransactor;//特事特办办理人
/**
* 流程实例的优先级 ,1代表最高优先级
*/
protected Integer priority = 6;//任务优先级
/**
* 工作流实例的标识ID
*/
protected String workflowId; //流程实例id
/**
* 该流程的第一个任务的id
*/
protected Long firstTaskId;//第一个任务的ID
/**
* 流程流转过程中的业务状态
*/
protected String state;//流程状态
/**
* 流程流转过程的中标准状态
*/
protected ProcessState processState = ProcessState.UNSUBMIT; //流程运行中的状态
/**
* 流程第一个环节被提交是的时间
*/
protected Date submitTime;//提交日期
/**
* 流程结束的时间
*/
protected Timestamp endTime;//流程结束时间
/**
* 流程当前环节名
*/
protected String currentActivityName;//当前环节名字
/**
* 流程对应表单的ID
*/
protected Long formId;
/**
* 流程定义的id
*/
protected String workflowDefinitionId;//流程Id
/**
* 流程定义的名字
*/
protected String workflowDefinitionName;//流程名字
/**
* 流程定义的编号
*/
protected String workflowDefinitionCode;//流程编号
/**
* 流程定义的版本号
*/
protected Integer workflowDefinitionVersion;//流程版本号
/**
* 当发生DecisionException异常时,将选择的具体流向放入这个属性后再提交
*/
@Transient
protected String transitionName;//流向名
/**
* 当发生TransactorAssignmentException异常时,将具体的办理人的登录名放入这个属性.多个办理人之间以英文逗号隔开
*/
@Transient
protected String newTransactor;//流向名
public String getWorkflowId() {
return workflowId;
}
public void setWorkflowId(String workflowId) {
this.workflowId = workflowId;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public Date getSubmitTime() {
return submitTime;
}
public void setSubmitTime(Date submitTime) {
this.submitTime = submitTime;
}
public Timestamp getEndTime() {
return endTime;
}
public void setEndTime(Timestamp endTime) {
this.endTime = endTime;
}
public String getCurrentActivityName() {
return currentActivityName;
}
public void setCurrentActivityName(String currentActivityName) {
this.currentActivityName = currentActivityName;
}
public Long getFirstTaskId() {
return firstTaskId;
}
public void setFirstTaskId(Long firstTaskId) {
this.firstTaskId = firstTaskId;
}
public ProcessState getProcessState() {
return processState;
}
public void setProcessState(ProcessState processState) {
this.processState = processState;
}
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
public Long getFormId() {
return formId;
}
public void setFormId(Long formId) {
this.formId = formId;
}
public String getWorkflowDefinitionId() {
return workflowDefinitionId;
}
public void setWorkflowDefinitionId(String workflowDefinitionId) {
this.workflowDefinitionId = workflowDefinitionId;
}
public String getWorkflowDefinitionCode() {
return workflowDefinitionCode;
}
public void setWorkflowDefinitionCode(String workflowDefinitionCode) {
this.workflowDefinitionCode = workflowDefinitionCode;
}
public String getWorkflowDefinitionName() {
return workflowDefinitionName;
}
public void setWorkflowDefinitionName(String workflowDefinitionName) {
this.workflowDefinitionName = workflowDefinitionName;
}
public Boolean getCreateSpecialTask() {
return createSpecialTask;
}
public void setCreateSpecialTask(Boolean createSpecialTask) {
this.createSpecialTask = createSpecialTask;
}
public String getSpecialTaskTransactor() {
return specialTaskTransactor;
}
public void setSpecialTaskTransactor(String specialTaskTransactor) {
this.specialTaskTransactor = specialTaskTransactor;
}
public String getTransitionName() {
return transitionName;
}
public void setTransitionName(String transitionName) {
this.transitionName = transitionName;
}
public String getNewTransactor() {
return newTransactor;
}
public void setNewTransactor(String newTransactor) {
this.newTransactor = newTransactor;
}
public Integer getWorkflowDefinitionVersion() {
return workflowDefinitionVersion;
}
public void setWorkflowDefinitionVersion(Integer workflowDefinitionVersion) {
this.workflowDefinitionVersion = workflowDefinitionVersion;
}
@Override
public String toString() {
return new StringBuilder()
.append("WorkflowInfo [currentActivityName=").append( currentActivityName)
.append( ", endTime=" ).append( endTime ).append( ", firstTaskId=" ).append( firstTaskId)
.append( ", formId=" ).append( formId ).append( ", priority=" ).append( priority)
.append(", processState=" ).append( processState ).append( ", state=" ).append( state)
.append( ", submitTime=" ).append( submitTime ).append( ", workflowId=" ).append( workflowId).append("]").toString();
}
}