Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Springboot Plus
Commits
8b0c6535
Commit
8b0c6535
authored
Apr 16, 2018
by
李家智
Browse files
flowable jump ?
parent
0a58ecc4
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
admin-workflow/src/main/java/com/ibeetl/starter/workflow/config/WorkflowConfig.java
View file @
8b0c6535
...
...
@@ -9,9 +9,11 @@ import org.springframework.context.annotation.Bean;
import
org.springframework.context.annotation.Configuration
;
import
com.ibeetl.starter.workflow.event.ProcessEndEvent
;
import
com.ibeetl.starter.workflow.event.ProcessPauseEvent
;
import
com.ibeetl.starter.workflow.event.ProcessStartEvent
;
import
com.ibeetl.starter.workflow.event.TaskEndEvent
;
import
com.ibeetl.starter.workflow.event.TaskOwnerChangeEvent
;
import
com.ibeetl.starter.workflow.event.TaskPauseEvent
;
import
com.ibeetl.starter.workflow.event.TaskStartEvent
;
import
com.ibeetl.starter.workflow.event.TaslClaimEvent
;
import
com.ibeetl.starter.workflow.service.WfNotifyService
;
...
...
@@ -69,16 +71,18 @@ public class WorkflowConfig {
}
@Override
public
void
taskPause
(
String
taskInsId
)
{
log
.
info
(
"taskIns "
+
taskInsId
+
" pause"
);
public
void
taskPause
(
TaskPauseEvent
pauseEvent
)
{
log
.
info
(
pauseEvent
);
}
@Override
public
void
processPause
(
String
processInsId
)
{
log
.
info
(
"processInsId "
+
processInsId
+
" pause"
);
public
void
processPause
(
ProcessPauseEvent
pauseEvent
)
{
log
.
info
(
pauseEvent
);
}
};
...
...
admin-workflow/src/main/java/com/ibeetl/starter/workflow/engine/cmd/BaseManagmentCmd.java
0 → 100644
View file @
8b0c6535
package
com.ibeetl.starter.workflow.engine.cmd
;
import
java.io.Serializable
;
import
java.util.Map
;
import
org.flowable.bpmn.model.FlowElement
;
import
org.flowable.engine.RuntimeService
;
import
org.flowable.engine.common.impl.interceptor.Command
;
import
org.flowable.engine.common.impl.interceptor.CommandContext
;
import
org.flowable.engine.impl.history.HistoryManager
;
import
org.flowable.engine.impl.persistence.entity.ExecutionEntity
;
import
org.flowable.engine.impl.persistence.entity.ExecutionEntityManager
;
import
org.flowable.engine.impl.util.CommandContextUtil
;
import
org.flowable.engine.impl.util.ProcessDefinitionUtil
;
import
org.flowable.task.api.TaskInfo
;
import
org.flowable.task.service.TaskService
;
import
org.flowable.task.service.impl.persistence.entity.TaskEntity
;
import
org.flowable.task.service.impl.persistence.entity.TaskEntityManager
;
import
com.ibeetl.starter.workflow.kit.Constants
;
import
com.ibeetl.starter.workflow.model.WfUser
;
import
com.ibeetl.starter.workflow.service.WfTaskService
;
public
abstract
class
BaseManagmentCmd
implements
Command
,
Serializable
{
protected
ExecutionEntityManager
executionManager
;
protected
TaskEntityManager
taskEntityManager
;
protected
HistoryManager
historyManager
;
protected
WfTaskService
service
;
protected
TaskService
taskService
;
protected
RuntimeService
runtimeService
;
public
BaseManagmentCmd
(
WfTaskService
service
)
{
this
.
service
=
service
;
}
@Override
public
Object
execute
(
CommandContext
commandContext
)
{
executionManager
=
CommandContextUtil
.
getExecutionEntityManager
();
taskEntityManager
=
CommandContextUtil
.
getTaskServiceConfiguration
().
getTaskEntityManager
();
historyManager
=
CommandContextUtil
.
getHistoryManager
();
taskService
=
CommandContextUtil
.
getTaskService
();
runtimeService
=
CommandContextUtil
.
getProcessEngineConfiguration
().
getRuntimeService
();
return
complete
();
}
protected
TaskInfo
getRunningTask
(
String
taskInsId
)
{
return
taskService
.
createTaskQuery
().
taskId
(
taskInsId
).
includeTaskLocalVariables
().
singleResult
();
}
protected
ExecutionEntity
getRunningExecutiton
(
String
executionId
)
{
return
executionManager
.
findById
(
executionId
);
}
protected
FlowElement
getCurrentFlowElement
(
String
processId
,
String
taskKey
)
{
return
ProcessDefinitionUtil
.
getBpmnModel
(
processId
).
getFlowElement
(
taskKey
);
}
protected
WfUser
getHistoryUser
(
TaskInfo
task
)
{
WfUser
user
=
new
WfUser
();
user
.
setUserId
(
task
.
getAssignee
());
Map
<
String
,
Object
>
map
=
task
.
getTaskLocalVariables
();
if
(
map
.
containsKey
(
Constants
.
VAR_TASK_ORG
))
{
user
.
setOrgId
((
String
)
map
.
get
(
Constants
.
VAR_TASK_ORG
));
}
if
(
map
.
containsKey
(
Constants
.
VAR_TASK_ROLE
))
{
user
.
setRoleId
((
String
)
map
.
get
(
Constants
.
VAR_TASK_ROLE
));
}
return
user
;
}
protected
TaskInfo
createTask
(
ExecutionEntity
taskExecution
,
FlowElement
target
)
{
//创建执行人
TaskEntity
task
=
taskEntityManager
.
create
();
task
.
setExecutionId
(
taskExecution
.
getId
());
task
.
setTaskDefinitionKey
(
target
.
getId
());
task
.
setName
(
target
.
getName
());
taskEntityManager
.
insert
(
task
);
return
task
;
}
public
abstract
Object
complete
()
;
}
admin-workflow/src/main/java/com/ibeetl/starter/workflow/engine/cmd/CommonTaskJumpCmd.java
0 → 100644
View file @
8b0c6535
package
com.ibeetl.starter.workflow.engine.cmd
;
import
org.flowable.bpmn.model.FlowElement
;
import
org.flowable.bpmn.model.Process
;
import
org.flowable.engine.FlowableEngineAgenda
;
import
org.flowable.engine.impl.persistence.entity.ExecutionEntity
;
import
org.flowable.engine.impl.util.CommandContextUtil
;
import
org.flowable.engine.impl.util.ProcessDefinitionUtil
;
import
org.flowable.task.service.impl.persistence.entity.TaskEntity
;
import
com.ibeetl.starter.workflow.model.WfUser
;
import
com.ibeetl.starter.workflow.service.WfTaskService
;
public
class
CommonTaskJumpCmd
extends
BaseManagmentCmd
{
protected
String
taskInsId
;
protected
String
target
;
WfUser
targetUser
;
String
title
;
public
CommonTaskJumpCmd
(
WfTaskService
service
,
String
taskInsId
,
String
target
,
WfUser
targetUser
,
String
title
)
{
super
(
service
);
this
.
taskInsId
=
taskInsId
;
this
.
target
=
target
;
this
.
targetUser
=
targetUser
;
this
.
title
=
title
;
}
@Override
public
Object
complete
()
{
TaskEntity
taskEntity
=
taskEntityManager
.
findById
(
taskInsId
);
ExecutionEntity
ee
=
executionManager
.
findById
(
taskEntity
.
getExecutionId
());
Process
process
=
ProcessDefinitionUtil
.
getProcess
(
ee
.
getProcessDefinitionId
());
FlowElement
targetFlowElement
=
process
.
getFlowElement
(
target
);
ee
.
setCurrentFlowElement
(
targetFlowElement
);
FlowableEngineAgenda
agenda
=
CommandContextUtil
.
getAgenda
();
agenda
.
planContinueProcessInCompensation
(
ee
);
taskEntityManager
.
delete
(
taskInsId
);
return
null
;
}
}
admin-workflow/src/main/java/com/ibeetl/starter/workflow/event/ProcessPauseEvent.java
0 → 100644
View file @
8b0c6535
package
com.ibeetl.starter.workflow.event
;
public
class
ProcessPauseEvent
{
String
processInsId
;
String
processKey
;
String
processName
;
public
String
getProcessInsId
()
{
return
processInsId
;
}
public
void
setProcessInsId
(
String
processInsId
)
{
this
.
processInsId
=
processInsId
;
}
public
String
getProcessKey
()
{
return
processKey
;
}
public
void
setProcessKey
(
String
processKey
)
{
this
.
processKey
=
processKey
;
}
public
String
getProcessName
()
{
return
processName
;
}
public
void
setProcessName
(
String
processName
)
{
this
.
processName
=
processName
;
}
@Override
public
String
toString
()
{
return
"ProcessPauseEvent [processInsId="
+
processInsId
+
", processKey="
+
processKey
+
", processName="
+
processName
+
"]"
;
}
}
admin-workflow/src/main/java/com/ibeetl/starter/workflow/event/ProcessStartEvent.java
View file @
8b0c6535
...
...
@@ -9,7 +9,9 @@ public class ProcessStartEvent {
String
processInsId
;
String
processKey
;
String
processName
;
String
taskId
;
String
taskInsId
;
String
taskName
;
WfUser
user
;
Map
processVars
;
public
String
getProcessInsId
()
{
...
...
@@ -48,6 +50,24 @@ public class ProcessStartEvent {
public
void
setUser
(
WfUser
user
)
{
this
.
user
=
user
;
}
public
String
getTaskId
()
{
return
taskId
;
}
public
void
setTaskId
(
String
taskId
)
{
this
.
taskId
=
taskId
;
}
public
String
getTaskName
()
{
return
taskName
;
}
public
void
setTaskName
(
String
taskName
)
{
this
.
taskName
=
taskName
;
}
@Override
public
String
toString
()
{
return
"ProcessStartEvent [processInsId="
+
processInsId
+
", processKey="
+
processKey
+
", processName="
+
processName
+
", taskId="
+
taskId
+
", taskInsId="
+
taskInsId
+
", taskName="
+
taskName
+
", user="
+
user
+
", processVars="
+
processVars
+
"]"
;
}
...
...
admin-workflow/src/main/java/com/ibeetl/starter/workflow/event/TaskPauseEvent.java
0 → 100644
View file @
8b0c6535
package
com.ibeetl.starter.workflow.event
;
public
class
TaskPauseEvent
{
String
taskId
;
String
taskName
;
String
taskInsId
;
String
processKey
;
String
processName
;
String
processInsId
;
public
String
getTaskId
()
{
return
taskId
;
}
public
void
setTaskId
(
String
taskId
)
{
this
.
taskId
=
taskId
;
}
public
String
getTaskName
()
{
return
taskName
;
}
public
void
setTaskName
(
String
taskName
)
{
this
.
taskName
=
taskName
;
}
public
String
getTaskInsId
()
{
return
taskInsId
;
}
public
void
setTaskInsId
(
String
taskInsId
)
{
this
.
taskInsId
=
taskInsId
;
}
public
String
getProcessKey
()
{
return
processKey
;
}
public
void
setProcessKey
(
String
processKey
)
{
this
.
processKey
=
processKey
;
}
public
String
getProcessName
()
{
return
processName
;
}
public
void
setProcessName
(
String
processName
)
{
this
.
processName
=
processName
;
}
public
String
getProcessInsId
()
{
return
processInsId
;
}
public
void
setProcessInsId
(
String
processInsId
)
{
this
.
processInsId
=
processInsId
;
}
@Override
public
String
toString
()
{
return
"TaskPauseEvent [taskId="
+
taskId
+
", taskName="
+
taskName
+
", taskInsId="
+
taskInsId
+
", processKey="
+
processKey
+
", processName="
+
processName
+
", processInsId="
+
processInsId
+
"]"
;
}
}
admin-workflow/src/main/java/com/ibeetl/starter/workflow/kit/Constants.java
View file @
8b0c6535
...
...
@@ -6,9 +6,9 @@ public class Constants {
public
static
final
String
VAR_TASK_ROLE
=
"_roleId"
;
public
static
final
String
VAR_TASK_TITLE
=
"_title"
;
public
static
final
String
VAR_LAST_TASK_ID
=
"_lastTaskId"
;
public
static
final
String
VAR_USER_FLAG
=
"_userFlag"
;
public
static
final
String
VAR_TASK_WAIT
=
"_wait"
;
public
static
final
String
VAR_PROCESS_STATUS
=
"_processStatus"
;
public
static
final
String
VAR_BUTTON_CODE
=
"_buttonCode"
;
public
static
final
String
TYPE_COMMENT_AGREE
=
"comment"
;
public
static
final
String
TYPE_COMMENT_DELEGATE
=
"delegate"
;
...
...
@@ -25,6 +25,9 @@ public class Constants {
//环节对应的页面
public
static
final
String
EXT_TASK_PAGE
=
"page"
;
/* 工作流支持的操作 */
//普通按钮
public
static
final
String
BUTTON_TYPE_GENERAL
=
"general"
;
//任意跳转
...
...
@@ -34,8 +37,8 @@ public class Constants {
//回到上一个任务,有问题
public
static
final
String
BUTTON_TYPE_BACK
=
"back"
;
//自动
public
static
final
String
BUTTON_TYPE_AUTO
=
"auto"
;
//自动
汇聚,用于并行或者多实例
public
static
final
String
BUTTON_TYPE_AUTO
=
"auto
Join
"
;
//直接结束流程的按钮
public
static
final
String
BUTTON_TYPE_END_PROCESS
=
"complete"
;
//多实例
...
...
@@ -45,17 +48,13 @@ public class Constants {
//等待
public
static
final
String
BUTTON_TYPE_WAIT
=
"wait"
;
//按照角色选取
public
static
final
String
USER_ROLE
=
"role"
;
/*工作流能提供的选人策略,业务侧选人策略自定义,不包含在如下列表里*/
//流程的历史执行人
public
static
final
String
USER_task_history
=
"task_history"
;
//流程的创建者
public
static
final
String
USER_PROCESS_CREATOR
=
"processe_creator"
;
//来自于某个变量,因此不必选取,暂时没有这个需求,取消
// public static final String USER_DYNAMIC_VARS = "dynamic_vars";
//业务侧按钮的渲人策略
public
static
final
String
CHOOSE_ONE
=
"one"
;
public
static
final
String
CHOOSE_RANDOM_ONE
=
"random_one"
;
public
static
final
String
CHOOSE_MUTIPLE
=
"mutiple"
;
}
admin-workflow/src/main/java/com/ibeetl/starter/workflow/service/WfNotifyService.java
View file @
8b0c6535
package
com.ibeetl.starter.workflow.service
;
import
com.ibeetl.starter.workflow.event.ProcessEndEvent
;
import
com.ibeetl.starter.workflow.event.ProcessPauseEvent
;
import
com.ibeetl.starter.workflow.event.ProcessStartEvent
;
import
com.ibeetl.starter.workflow.event.TaskEndEvent
;
import
com.ibeetl.starter.workflow.event.TaskOwnerChangeEvent
;
import
com.ibeetl.starter.workflow.event.TaskPauseEvent
;
import
com.ibeetl.starter.workflow.event.TaskStartEvent
;
import
com.ibeetl.starter.workflow.event.TaslClaimEvent
;
...
...
@@ -15,8 +17,8 @@ import com.ibeetl.starter.workflow.event.TaslClaimEvent;
public
interface
WfNotifyService
{
public
void
processStart
(
ProcessStartEvent
startEvent
);
public
void
taskStart
(
TaskStartEvent
startEvent
);
public
void
taskPause
(
String
taskInsId
);
public
void
processPause
(
String
processInsId
);
public
void
taskPause
(
TaskPauseEvent
pauseEvent
);
public
void
processPause
(
ProcessPauseEvent
pauseEvent
);
public
void
taskEnd
(
TaskEndEvent
endEvent
);
public
void
processEnd
(
ProcessEndEvent
endEvent
);
public
void
taskOwnerChanged
(
TaskOwnerChangeEvent
changeEvent
);
...
...
admin-workflow/src/main/java/com/ibeetl/starter/workflow/service/impl/WfTaskServiceImpl.java
View file @
8b0c6535
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment