Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
开发团队
Flowable Engine
提交
50a84bdd
F
Flowable Engine
项目概览
开发团队
/
Flowable Engine
通知
9
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Flowable Engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
50a84bdd
编写于
10月 08, 2017
作者:
J
Joram Barrez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Cmmn: basic support for human task history
上级
c0c14988
变更
11
展开全部
隐藏空白更改
内联
并排
Showing
11 changed file
with
886 addition
and
14 deletion
+886
-14
modules/flowable-cmmn-api/src/main/java/org/flowable/cmmn/engine/CmmnHistoryService.java
...ain/java/org/flowable/cmmn/engine/CmmnHistoryService.java
+2
-2
modules/flowable-cmmn-api/src/main/java/org/flowable/cmmn/engine/history/HistoricTaskInstanceQuery.java
...owable/cmmn/engine/history/HistoricTaskInstanceQuery.java
+31
-2
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/CmmnEngineConfiguration.java
...ava/org/flowable/cmmn/engine/CmmnEngineConfiguration.java
+1
-1
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/CmmnHistoryServiceImpl.java
...org/flowable/cmmn/engine/impl/CmmnHistoryServiceImpl.java
+6
-5
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/CmmnTaskServiceImpl.java
...va/org/flowable/cmmn/engine/impl/CmmnTaskServiceImpl.java
+2
-2
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/behavior/impl/HumanTaskActivityBehavior.java
.../engine/impl/behavior/impl/HumanTaskActivityBehavior.java
+2
-0
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/history/CmmnHistoricTaskInstanceQueryImpl.java
...ngine/impl/history/CmmnHistoricTaskInstanceQueryImpl.java
+789
-0
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/history/CmmnHistoryManager.java
...flowable/cmmn/engine/impl/history/CmmnHistoryManager.java
+7
-0
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/history/DefaultCmmnHistoryManager.java
...e/cmmn/engine/impl/history/DefaultCmmnHistoryManager.java
+22
-0
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/util/CommandContextUtil.java
...rg/flowable/cmmn/engine/impl/util/CommandContextUtil.java
+9
-1
modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/task/CmmnTaskServiceTest.java
...java/org/flowable/cmmn/test/task/CmmnTaskServiceTest.java
+15
-1
未找到文件。
modules/flowable-cmmn-api/src/main/java/org/flowable/cmmn/engine/CmmnHistoryService.java
浏览文件 @
50a84bdd
...
...
@@ -14,8 +14,8 @@ package org.flowable.cmmn.engine;
import
org.flowable.cmmn.engine.history.HistoricCaseInstanceQuery
;
import
org.flowable.cmmn.engine.history.HistoricMilestoneInstanceQuery
;
import
org.flowable.cmmn.engine.history.HistoricTaskInstanceQuery
;
import
org.flowable.cmmn.engine.history.HistoricVariableInstanceQuery
;
import
org.flowable.task.service.history.HistoricTaskInstanceQuery
;
/**
* @author Joram Barrez
...
...
@@ -28,7 +28,7 @@ public interface CmmnHistoryService {
HistoricVariableInstanceQuery
createHistoricVariableInstanceQuery
();
//
HistoricTaskInstanceQuery createHistoricTaskInstanceQuery();
HistoricTaskInstanceQuery
createHistoricTaskInstanceQuery
();
void
deleteHistoricCaseInstance
(
String
caseInstanceId
);
}
modules/flowable-cmmn-api/src/main/java/org/flowable/cmmn/engine/history/HistoricTaskInstanceQuery.java
浏览文件 @
50a84bdd
...
...
@@ -12,12 +12,41 @@
*/
package
org.flowable.cmmn.engine.history
;
import
org.flowable.engine.common.api.query.Query
;
import
java.util.Date
;
import
org.flowable.task.service.TaskInfoQuery
;
import
org.flowable.task.service.history.HistoricTaskInstance
;
/**
* @author Joram Barrez
*/
public
interface
HistoricTaskInstanceQuery
extends
Query
<
HistoricTaskInstanceQuery
,
HistoricTaskInstance
>
{
public
interface
HistoricTaskInstanceQuery
extends
TaskInfoQuery
<
HistoricTaskInstanceQuery
,
HistoricTaskInstance
>
{
HistoricTaskInstanceQuery
caseInstanceId
(
String
caseInstanceId
);
HistoricTaskInstanceQuery
caseDefinitionId
(
String
caseDefinitionId
);
HistoricTaskInstanceQuery
planItemInstanceId
(
String
planItemInstanceId
);
HistoricTaskInstanceQuery
taskDeleteReason
(
String
taskDeleteReason
);
HistoricTaskInstanceQuery
taskDeleteReasonLike
(
String
taskDeleteReasonLike
);
HistoricTaskInstanceQuery
finished
();
HistoricTaskInstanceQuery
unfinished
();
HistoricTaskInstanceQuery
taskParentTaskId
(
String
parentTaskId
);
HistoricTaskInstanceQuery
taskCompletedOn
(
Date
endDate
);
HistoricTaskInstanceQuery
taskCompletedBefore
(
Date
endDate
);
HistoricTaskInstanceQuery
taskCompletedAfter
(
Date
endDate
);
HistoricTaskInstanceQuery
orderByHistoricTaskInstanceDuration
();
HistoricTaskInstanceQuery
orderByHistoricTaskInstanceStartTime
();
HistoricTaskInstanceQuery
orderByHistoricTaskInstanceEndTime
();
HistoricTaskInstanceQuery
orderByDeleteReason
();
}
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/CmmnEngineConfiguration.java
浏览文件 @
50a84bdd
...
...
@@ -28,6 +28,7 @@ import org.flowable.cmmn.engine.impl.CmmnEngineImpl;
import
org.flowable.cmmn.engine.impl.CmmnHistoryServiceImpl
;
import
org.flowable.cmmn.engine.impl.CmmnManagementServiceImpl
;
import
org.flowable.cmmn.engine.impl.CmmnRepositoryServiceImpl
;
import
org.flowable.cmmn.engine.impl.CmmnTaskServiceImpl
;
import
org.flowable.cmmn.engine.impl.ServiceImpl
;
import
org.flowable.cmmn.engine.impl.agenda.CmmnEngineAgendaFactory
;
import
org.flowable.cmmn.engine.impl.agenda.CmmnEngineAgendaSessionFactory
;
...
...
@@ -95,7 +96,6 @@ import org.flowable.cmmn.engine.impl.process.ProcessInstanceService;
import
org.flowable.cmmn.engine.impl.runtime.CaseInstanceHelper
;
import
org.flowable.cmmn.engine.impl.runtime.CaseInstanceHelperImpl
;
import
org.flowable.cmmn.engine.impl.runtime.CmmnRuntimeServiceImpl
;
import
org.flowable.cmmn.engine.impl.task.CmmnTaskServiceImpl
;
import
org.flowable.cmmn.engine.impl.task.DefaultCmmnTaskVariableScopeResolver
;
import
org.flowable.engine.common.AbstractEngineConfiguration
;
import
org.flowable.engine.common.api.delegate.FlowableFunctionDelegate
;
...
...
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/CmmnHistoryServiceImpl.java
浏览文件 @
50a84bdd
...
...
@@ -15,10 +15,11 @@ package org.flowable.cmmn.engine.impl;
import
org.flowable.cmmn.engine.CmmnHistoryService
;
import
org.flowable.cmmn.engine.history.HistoricCaseInstanceQuery
;
import
org.flowable.cmmn.engine.history.HistoricMilestoneInstanceQuery
;
import
org.flowable.cmmn.engine.history.HistoricTaskInstanceQuery
;
import
org.flowable.cmmn.engine.history.HistoricVariableInstanceQuery
;
import
org.flowable.cmmn.engine.impl.cmd.DeleteHistoricCaseInstanceCmd
;
import
org.flowable.cmmn.engine.impl.history.CmmnHistoricTaskInstanceQueryImpl
;
import
org.flowable.cmmn.engine.impl.history.CmmnHistoricVariableInstanceQueryImpl
;
import
org.flowable.task.service.history.HistoricTaskInstanceQuery
;
/**
* @author Joram Barrez
...
...
@@ -46,9 +47,9 @@ public class CmmnHistoryServiceImpl extends ServiceImpl implements CmmnHistorySe
commandExecutor
.
execute
(
new
DeleteHistoricCaseInstanceCmd
(
caseInstanceId
));
}
//
@Override
//
public HistoricTaskInstanceQuery createHistoricTaskInstanceQuery() {
//
//
}
@Override
public
HistoricTaskInstanceQuery
createHistoricTaskInstanceQuery
()
{
return
new
CmmnHistoricTaskInstanceQueryImpl
(
commandExecutor
);
}
}
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/
task/
CmmnTaskServiceImpl.java
→
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/CmmnTaskServiceImpl.java
浏览文件 @
50a84bdd
...
...
@@ -10,13 +10,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.flowable.cmmn.engine.impl
.task
;
package
org.flowable.cmmn.engine.impl
;
import
java.util.Map
;
import
org.flowable.cmmn.engine.CmmnTaskService
;
import
org.flowable.cmmn.engine.impl.ServiceImpl
;
import
org.flowable.cmmn.engine.impl.cmd.CompleteTaskCmd
;
import
org.flowable.cmmn.engine.impl.task.CmmnTaskQueryImpl
;
import
org.flowable.cmmn.engine.task.TaskQuery
;
/**
...
...
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/behavior/impl/HumanTaskActivityBehavior.java
浏览文件 @
50a84bdd
...
...
@@ -73,6 +73,7 @@ public class HumanTaskActivityBehavior extends TaskActivityBehavior {
handleCandidateGroups
(
commandContext
,
planItemInstanceEntity
,
expressionManager
,
taskEntity
);
taskService
.
insertTask
(
taskEntity
,
true
);
CommandContextUtil
.
getCmmnHistoryManager
(
commandContext
).
recordTaskCreated
(
taskEntity
);
}
else
{
// if not blocking, treat as a manual task. No need to create a task entry.
...
...
@@ -253,6 +254,7 @@ public class HumanTaskActivityBehavior extends TaskActivityBehavior {
for
(
TaskEntity
taskEntity
:
taskEntities
)
{
if
(!
taskEntity
.
isDeleted
())
{
taskService
.
deleteTask
(
taskEntity
,
true
);
CommandContextUtil
.
getCmmnHistoryManager
(
commandContext
).
recordTaskEnd
(
taskEntity
,
null
);
}
}
...
...
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/history/CmmnHistoricTaskInstanceQueryImpl.java
0 → 100644
浏览文件 @
50a84bdd
此差异已折叠。
点击以展开。
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/history/CmmnHistoryManager.java
浏览文件 @
50a84bdd
...
...
@@ -14,6 +14,7 @@ package org.flowable.cmmn.engine.impl.history;
import
org.flowable.cmmn.engine.impl.persistence.entity.CaseInstanceEntity
;
import
org.flowable.cmmn.engine.runtime.MilestoneInstance
;
import
org.flowable.task.service.impl.persistence.entity.TaskEntity
;
import
org.flowable.variable.service.impl.persistence.entity.VariableInstanceEntity
;
/**
...
...
@@ -34,5 +35,11 @@ public interface CmmnHistoryManager {
void
recordVariableUpdate
(
VariableInstanceEntity
variable
);
void
recordVariableRemoved
(
VariableInstanceEntity
variable
);
void
recordTaskCreated
(
TaskEntity
task
);
void
recordTaskEnd
(
TaskEntity
task
,
String
deleteReason
);
void
recordTaskInfoChange
(
TaskEntity
taskEntity
);
}
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/history/DefaultCmmnHistoryManager.java
浏览文件 @
50a84bdd
...
...
@@ -24,6 +24,7 @@ import org.flowable.cmmn.engine.impl.persistence.entity.HistoricMilestoneInstanc
import
org.flowable.cmmn.engine.impl.util.CommandContextUtil
;
import
org.flowable.cmmn.engine.runtime.MilestoneInstance
;
import
org.flowable.engine.common.impl.history.HistoryLevel
;
import
org.flowable.task.service.impl.persistence.entity.TaskEntity
;
import
org.flowable.variable.service.impl.persistence.entity.VariableInstanceEntity
;
/**
...
...
@@ -120,4 +121,25 @@ public class DefaultCmmnHistoryManager implements CmmnHistoryManager {
}
}
@Override
public
void
recordTaskCreated
(
TaskEntity
task
)
{
if
(
cmmnEngineConfiguration
.
getHistoryLevel
().
isAtLeast
(
HistoryLevel
.
AUDIT
))
{
CommandContextUtil
.
getHistoricTaskService
().
recordTaskCreated
(
task
);
}
}
@Override
public
void
recordTaskEnd
(
TaskEntity
task
,
String
deleteReason
)
{
if
(
cmmnEngineConfiguration
.
getHistoryLevel
().
isAtLeast
(
HistoryLevel
.
AUDIT
))
{
CommandContextUtil
.
getHistoricTaskService
().
recordTaskEnd
(
task
,
deleteReason
);
}
}
@Override
public
void
recordTaskInfoChange
(
TaskEntity
taskEntity
)
{
if
(
cmmnEngineConfiguration
.
getHistoryLevel
().
isAtLeast
(
HistoryLevel
.
AUDIT
))
{
CommandContextUtil
.
getHistoricTaskService
().
recordTaskInfoChange
(
taskEntity
);
}
}
}
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/util/CommandContextUtil.java
浏览文件 @
50a84bdd
...
...
@@ -37,9 +37,9 @@ import org.flowable.engine.common.impl.el.ExpressionManager;
import
org.flowable.engine.common.impl.interceptor.CommandContext
;
import
org.flowable.engine.common.impl.interceptor.EngineConfigurationConstants
;
import
org.flowable.engine.common.impl.persistence.cache.EntityCache
;
import
org.flowable.identitylink.service.IdentityLink
;
import
org.flowable.identitylink.service.IdentityLinkService
;
import
org.flowable.identitylink.service.IdentityLinkServiceConfiguration
;
import
org.flowable.task.service.HistoricTaskService
;
import
org.flowable.task.service.TaskService
;
import
org.flowable.task.service.TaskServiceConfiguration
;
import
org.flowable.variable.service.HistoricVariableService
;
...
...
@@ -224,6 +224,14 @@ public class CommandContextUtil {
return
getTaskServiceConfiguration
(
commandContext
).
getTaskService
();
}
public
static
HistoricTaskService
getHistoricTaskService
()
{
return
getHistoricTaskService
(
getCommandContext
());
}
public
static
HistoricTaskService
getHistoricTaskService
(
CommandContext
commandContext
)
{
return
getTaskServiceConfiguration
(
commandContext
).
getHistoricTaskService
();
}
public
static
TaskServiceConfiguration
getTaskServiceConfiguration
()
{
return
getTaskServiceConfiguration
(
getCommandContext
());
}
...
...
modules/flowable-cmmn-engine/src/test/java/org/flowable/cmmn/test/task/CmmnTaskServiceTest.java
浏览文件 @
50a84bdd
...
...
@@ -14,14 +14,16 @@ package org.flowable.cmmn.test.task;
import
static
org
.
junit
.
Assert
.
assertEquals
;
import
static
org
.
junit
.
Assert
.
assertNotNull
;
import
static
org
.
junit
.
Assert
.
assertNull
;
import
org.flowable.cmmn.engine.impl.persistence.entity.PlanItemInstanceEntity
;
import
org.flowable.cmmn.engine.impl.variable.VariableScopeType
;
import
org.flowable.cmmn.engine.runtime.CaseInstance
;
import
org.flowable.cmmn.engine.runtime.PlanItemInstance
;
import
org.flowable.cmmn.engine.test.CmmnDeployment
;
import
org.flowable.cmmn.engine.test.FlowableCmmnTestCase
;
import
org.flowable.engine.common.impl.history.HistoryLevel
;
import
org.flowable.task.service.Task
;
import
org.flowable.task.service.history.HistoricTaskInstance
;
import
org.junit.Test
;
/**
...
...
@@ -37,8 +39,20 @@ public class CmmnTaskServiceTest extends FlowableCmmnTestCase {
assertNotNull
(
task
);
assertEquals
(
"johnDoe"
,
task
.
getAssignee
());
if
(
cmmnEngineConfiguration
.
getHistoryLevel
().
isAtLeast
(
HistoryLevel
.
ACTIVITY
))
{
HistoricTaskInstance
historicTaskInstance
=
cmmnHistoryService
.
createHistoricTaskInstanceQuery
().
caseInstanceId
(
caseInstance
.
getId
()).
singleResult
();
assertNotNull
(
historicTaskInstance
);
assertNull
(
historicTaskInstance
.
getEndTime
());
}
cmmnTaskService
.
complete
(
task
.
getId
());
assertCaseInstanceEnded
(
caseInstance
);
if
(
cmmnEngineConfiguration
.
getHistoryLevel
().
isAtLeast
(
HistoryLevel
.
ACTIVITY
))
{
HistoricTaskInstance
historicTaskInstance
=
cmmnHistoryService
.
createHistoricTaskInstanceQuery
().
caseInstanceId
(
caseInstance
.
getId
()).
singleResult
();
assertNotNull
(
historicTaskInstance
);
assertNotNull
(
historicTaskInstance
.
getEndTime
());
}
}
@Test
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录