pase.server
Class TaskManager

java.lang.Object
  extended by pase.server.TaskManager
All Implemented Interfaces:
com.flowring.entity.Entity, java.io.Serializable

public class TaskManager
extends java.lang.Object
implements com.flowring.entity.Entity, java.io.Serializable

管理 Task, 提供處理 Task 的各種函式. 每個 Root Task 都擁有相對應的一個 TaskManager.

Version:
1.1.5,
Author:
yschen
See Also:
ObjectManager, TaskMonitor, Serialized Form

Constructor Summary
TaskManager(java.lang.String rootId)
           
 
Method Summary
 boolean bypassTask(Task p_Task, java.lang.String p_AstID)
          bypass some task.
 void closeNonCSSignTask(java.util.List auditTaskList)
           
 java.util.HashMap completeTask(Task t)
          complete a Task.
 java.lang.String[] contentSubstitute(util.EmailReplaceAgent replaceAgent, java.lang.String[] s)
           
 java.lang.String dumpMonitor()
          dump TaskMonitor information of this TaskManager.
 boolean equals(java.lang.Object obj)
           
 java.util.Vector findSpecialMember(Task task, SpecialRole sRole)
          Special case of member-binding : "ROLE_FUNCTION_MEMBEROF"、"ROLE_FUNCTION_MANAGEROF"、"ROLE_FUNCTION_ROLEOF"、"ROLE_FUNCTION_DEPARTMENTOF" Called by triggerNextTask()
 java.util.Vector findSpecialMemberForIAPMultiSigner(Task task, SpecialRole speRole)
           
 java.lang.String flowByPassOrAnother(java.util.HashMap retValue, DBProcess dbpro, CSTaskNode csNode, java.util.List auditTaskList, CSTask csTask, CSSignInfo signInfo, float agreeWeight, float total, float agree, float disagree)
           
 boolean forceCompleteATask(Task parentTask)
           
 ArtifactManager getArtifactManager()
           
 java.lang.String getATaskNote(Task tsk)
           
 CSSignInfo getCSSignInfo(Task task)
           
 java.lang.String getCSTaskNote(Task tsk)
           
 java.lang.Object getHashKey()
           
 java.lang.String getID()
          get the TaskManager ID.It is the same as root task ID.
 ObjectManager getObjectManager()
           
 RMIServer getRmiServer()
           
 Task getRootTask()
          get the root task of this TaskManager.
 java.util.List getTaskList()
           
 TaskMonitor getTaskMonitor()
          get the TaskMonitor of this TaskManager.
 org.springframework.transaction.support.TransactionTemplate getTransactionTemplate()
           
 int getUncompletePATaskNo(Task parentTask)
           
 boolean goBackTo(int exeOrder, Task fromTask, Task toTask, boolean artMode)
           
 java.util.HashMap goBackTo(Task frontTask, java.lang.String toProID, boolean artMode)
           
 boolean InitRootProcess(PASEProcess p, java.lang.String user, java.lang.String callID, java.lang.String rootTskID)
          Initialize a root process. create a new root task. create a new TaskMonitor for this root task.
 boolean isATaskComplete(Task t)
           
 boolean isCSTaskComplete(Task t)
           
 boolean isTaskCalledByRootTask(java.lang.String taskID)
           
 boolean pickQueueTask(Task t)
          When someone start a task of queue tasks, system will remove the other queue tasks which have not started yet.
 boolean reloadRootTask(Task root)
          reload an existed root task.
 void removeAllCronEntryByTID(java.lang.String p_tID)
           
 void reScheduleTask(Task task)
           
 void reScheduleTaskExcludeNonOfficeHour(Task task)
           
 void reScheduleTaskIncludeNonOfficeHour(Task task)
           
 void setNextTaskInfo(java.lang.String tskID, java.util.HashMap retValue)
           
 void setObjectManager(ObjectManager objectManager)
           
 void setProWarningManager(ProWarningManager proWarningManager)
           
 void setRmiServer(RMIServer rmiServer)
           
 void setTaskDuration(Task t)
           
 void setTransactionTemplate(org.springframework.transaction.support.TransactionTemplate tt)
           
 boolean startAutoTask(Task t, TaskNode taskNode)
          Start executing the auto task
 java.util.HashMap startTask(Task t)
          start a task.
 java.util.HashMap suspendTask(Task t)
           
 java.lang.String toString()
           
 void update(java.lang.Object obj)
           
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TaskManager

public TaskManager(java.lang.String rootId)
Method Detail

getID

public java.lang.String getID()
get the TaskManager ID.It is the same as root task ID.

Returns:
a TaskManager ID.

getRootTask

public Task getRootTask()
get the root task of this TaskManager.

Returns:
a root task object.

getTaskMonitor

public TaskMonitor getTaskMonitor()
get the TaskMonitor of this TaskManager.

Returns:
a TaskMonitor object.

dumpMonitor

public java.lang.String dumpMonitor()
dump TaskMonitor information of this TaskManager.

Returns:
Information of TaskMonitor.

InitRootProcess

public boolean InitRootProcess(PASEProcess p,
                               java.lang.String user,
                               java.lang.String callID,
                               java.lang.String rootTskID)
                        throws pase.server.exceptions.InitialException,
                               pase.server.exceptions.BindingException
Initialize a root process. create a new root task. create a new TaskMonitor for this root task.

Parameters:
p - the root process
user - the user who triger this root process.
Returns:
true if the process start successfully. false if this process can't start.
Throws:
pase.server.exceptions.InitialException
pase.server.exceptions.BindingException
See Also:
createMonitor()

reloadRootTask

public boolean reloadRootTask(Task root)
                       throws pase.server.exceptions.InitialException
reload an existed root task.

Parameters:
root - a root task.
Returns:
true if the monitor for this root task reload successfully. flase otherwise.
Throws:
pase.server.exceptions.InitialException
See Also:
createMonitor()

startTask

public java.util.HashMap startTask(Task t)
start a task.

Parameters:
t - a task which will start.
Returns:
a HashMap. key:value = retValue:Boolean(), true if the task start successfully, false otherwise.

startAutoTask

public boolean startAutoTask(Task t,
                             TaskNode taskNode)
Start executing the auto task


pickQueueTask

public boolean pickQueueTask(Task t)
When someone start a task of queue tasks, system will remove the other queue tasks which have not started yet.

Parameters:
t - the given queue task which has been started.

findSpecialMember

public java.util.Vector findSpecialMember(Task task,
                                          SpecialRole sRole)
Special case of member-binding : "ROLE_FUNCTION_MEMBEROF"、"ROLE_FUNCTION_MANAGEROF"、"ROLE_FUNCTION_ROLEOF"、"ROLE_FUNCTION_DEPARTMENTOF" Called by triggerNextTask()

Parameters:
t - :
dbpro - :
Returns:
a Vector : mID;rID;dID

completeTask

public java.util.HashMap completeTask(Task t)
complete a Task.

Parameters:
t - a task which will complete.
Returns:
a HashMap. key:value = retValue:Boolean(), true if the task complete successfully, false otherwise.

closeNonCSSignTask

public void closeNonCSSignTask(java.util.List auditTaskList)

removeAllCronEntryByTID

public void removeAllCronEntryByTID(java.lang.String p_tID)

getUncompletePATaskNo

public int getUncompletePATaskNo(Task parentTask)

forceCompleteATask

public boolean forceCompleteATask(Task parentTask)

bypassTask

public boolean bypassTask(Task p_Task,
                          java.lang.String p_AstID)
bypass some task.


goBackTo

public java.util.HashMap goBackTo(Task frontTask,
                                  java.lang.String toProID,
                                  boolean artMode)

goBackTo

public boolean goBackTo(int exeOrder,
                        Task fromTask,
                        Task toTask,
                        boolean artMode)

getCSTaskNote

public java.lang.String getCSTaskNote(Task tsk)

getATaskNote

public java.lang.String getATaskNote(Task tsk)

getTaskList

public java.util.List getTaskList()

reScheduleTask

public void reScheduleTask(Task task)

reScheduleTaskExcludeNonOfficeHour

public void reScheduleTaskExcludeNonOfficeHour(Task task)

reScheduleTaskIncludeNonOfficeHour

public void reScheduleTaskIncludeNonOfficeHour(Task task)

suspendTask

public java.util.HashMap suspendTask(Task t)

contentSubstitute

public java.lang.String[] contentSubstitute(util.EmailReplaceAgent replaceAgent,
                                            java.lang.String[] s)

setNextTaskInfo

public void setNextTaskInfo(java.lang.String tskID,
                            java.util.HashMap retValue)

isATaskComplete

public boolean isATaskComplete(Task t)

isCSTaskComplete

public boolean isCSTaskComplete(Task t)

getCSSignInfo

public CSSignInfo getCSSignInfo(Task task)

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

getRmiServer

public RMIServer getRmiServer()

setRmiServer

public void setRmiServer(RMIServer rmiServer)

getObjectManager

public ObjectManager getObjectManager()

setObjectManager

public void setObjectManager(ObjectManager objectManager)

getTransactionTemplate

public org.springframework.transaction.support.TransactionTemplate getTransactionTemplate()

setTransactionTemplate

public void setTransactionTemplate(org.springframework.transaction.support.TransactionTemplate tt)

getArtifactManager

public ArtifactManager getArtifactManager()

setProWarningManager

public void setProWarningManager(ProWarningManager proWarningManager)

update

public void update(java.lang.Object obj)
Specified by:
update in interface com.flowring.entity.Entity

getHashKey

public java.lang.Object getHashKey()
Specified by:
getHashKey in interface com.flowring.entity.Entity

setTaskDuration

public void setTaskDuration(Task t)

isTaskCalledByRootTask

public boolean isTaskCalledByRootTask(java.lang.String taskID)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

flowByPassOrAnother

public java.lang.String flowByPassOrAnother(java.util.HashMap retValue,
                                            DBProcess dbpro,
                                            CSTaskNode csNode,
                                            java.util.List auditTaskList,
                                            CSTask csTask,
                                            CSSignInfo signInfo,
                                            float agreeWeight,
                                            float total,
                                            float agree,
                                            float disagree)

findSpecialMemberForIAPMultiSigner

public java.util.Vector findSpecialMemberForIAPMultiSigner(Task task,
                                                           SpecialRole speRole)