Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
开发团队
Flowable Engine
提交
c8ebab58
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,发现更多精彩内容 >>
提交
c8ebab58
编写于
2月 16, 2015
作者:
J
Joram Barrez
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #518 from m4ng0/query-multiple-pids
Added a method (processInstanceIdIn) in TaskInfoQuery
上级
ed6ad3fc
4f773ed6
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
138 addition
and
0 deletion
+138
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/HistoricTaskInstanceQueryImpl.java
...g/activiti/engine/impl/HistoricTaskInstanceQueryImpl.java
+26
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/TaskQueryImpl.java
...src/main/java/org/activiti/engine/impl/TaskQueryImpl.java
+26
-0
modules/activiti-engine/src/main/java/org/activiti/engine/task/TaskInfoQuery.java
...src/main/java/org/activiti/engine/task/TaskInfoQuery.java
+5
-0
modules/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/HistoricTaskInstance.xml
...s/org/activiti/db/mapping/entity/HistoricTaskInstance.xml
+14
-0
modules/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Task.xml
...rc/main/resources/org/activiti/db/mapping/entity/Task.xml
+14
-0
modules/activiti-engine/src/test/java/org/activiti/engine/test/api/task/TaskQueryTest.java
...java/org/activiti/engine/test/api/task/TaskQueryTest.java
+53
-0
未找到文件。
modules/activiti-engine/src/main/java/org/activiti/engine/impl/HistoricTaskInstanceQueryImpl.java
浏览文件 @
c8ebab58
...
@@ -45,6 +45,7 @@ public class HistoricTaskInstanceQueryImpl extends AbstractVariableQueryImpl<His
...
@@ -45,6 +45,7 @@ public class HistoricTaskInstanceQueryImpl extends AbstractVariableQueryImpl<His
protected
String
deploymentId
;
protected
String
deploymentId
;
protected
List
<
String
>
deploymentIds
;
protected
List
<
String
>
deploymentIds
;
protected
String
processInstanceId
;
protected
String
processInstanceId
;
protected
List
<
String
>
processInstanceIds
;
protected
String
processInstanceBusinessKey
;
protected
String
processInstanceBusinessKey
;
protected
String
processInstanceBusinessKeyLike
;
protected
String
processInstanceBusinessKeyLike
;
protected
String
processInstanceBusinessKeyLikeIgnoreCase
;
protected
String
processInstanceBusinessKeyLikeIgnoreCase
;
...
@@ -145,6 +146,28 @@ public class HistoricTaskInstanceQueryImpl extends AbstractVariableQueryImpl<His
...
@@ -145,6 +146,28 @@ public class HistoricTaskInstanceQueryImpl extends AbstractVariableQueryImpl<His
return
this
;
return
this
;
}
}
@Override
public
HistoricTaskInstanceQueryImpl
processInstanceIdIn
(
List
<
String
>
processInstanceIds
)
{
if
(
processInstanceIds
==
null
)
{
throw
new
ActivitiIllegalArgumentException
(
"Process instance id list is null"
);
}
if
(
processInstanceIds
.
isEmpty
())
{
throw
new
ActivitiIllegalArgumentException
(
"Process instance id list is empty"
);
}
for
(
String
processInstanceId
:
processInstanceIds
)
{
if
(
processInstanceId
==
null
)
{
throw
new
ActivitiIllegalArgumentException
(
"None of the given process instance ids can be null"
);
}
}
if
(
inOrStatement
)
{
this
.
orQueryObject
.
processInstanceIds
=
processInstanceIds
;
}
else
{
this
.
processInstanceIds
=
processInstanceIds
;
}
return
this
;
}
public
HistoricTaskInstanceQueryImpl
processInstanceBusinessKey
(
String
processInstanceBusinessKey
)
{
public
HistoricTaskInstanceQueryImpl
processInstanceBusinessKey
(
String
processInstanceBusinessKey
)
{
if
(
inOrStatement
)
{
if
(
inOrStatement
)
{
this
.
orQueryObject
.
processInstanceBusinessKey
=
processInstanceBusinessKey
;
this
.
orQueryObject
.
processInstanceBusinessKey
=
processInstanceBusinessKey
;
...
@@ -1189,6 +1212,9 @@ public class HistoricTaskInstanceQueryImpl extends AbstractVariableQueryImpl<His
...
@@ -1189,6 +1212,9 @@ public class HistoricTaskInstanceQueryImpl extends AbstractVariableQueryImpl<His
public
String
getProcessInstanceId
()
{
public
String
getProcessInstanceId
()
{
return
processInstanceId
;
return
processInstanceId
;
}
}
public
List
<
String
>
getProcessInstanceIds
()
{
return
processInstanceIds
;
}
public
String
getProcessInstanceBusinessKey
()
{
public
String
getProcessInstanceBusinessKey
()
{
return
processInstanceBusinessKey
;
return
processInstanceBusinessKey
;
}
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/TaskQueryImpl.java
浏览文件 @
c8ebab58
...
@@ -67,6 +67,7 @@ public class TaskQueryImpl extends AbstractVariableQueryImpl<TaskQuery, Task> im
...
@@ -67,6 +67,7 @@ public class TaskQueryImpl extends AbstractVariableQueryImpl<TaskQuery, Task> im
protected
String
tenantIdLike
;
protected
String
tenantIdLike
;
protected
boolean
withoutTenantId
;
protected
boolean
withoutTenantId
;
protected
String
processInstanceId
;
protected
String
processInstanceId
;
protected
List
<
String
>
processInstanceIds
;
protected
String
executionId
;
protected
String
executionId
;
protected
Date
createTime
;
protected
Date
createTime
;
protected
Date
createTimeBefore
;
protected
Date
createTimeBefore
;
...
@@ -550,6 +551,28 @@ public class TaskQueryImpl extends AbstractVariableQueryImpl<TaskQuery, Task> im
...
@@ -550,6 +551,28 @@ public class TaskQueryImpl extends AbstractVariableQueryImpl<TaskQuery, Task> im
return
this
;
return
this
;
}
}
@Override
public
TaskQuery
processInstanceIdIn
(
List
<
String
>
processInstanceIds
)
{
if
(
processInstanceIds
==
null
)
{
throw
new
ActivitiIllegalArgumentException
(
"Process instance id list is null"
);
}
if
(
processInstanceIds
.
isEmpty
())
{
throw
new
ActivitiIllegalArgumentException
(
"Process instance id list is empty"
);
}
for
(
String
processInstanceId
:
processInstanceIds
)
{
if
(
processInstanceId
==
null
)
{
throw
new
ActivitiIllegalArgumentException
(
"None of the given process instance ids can be null"
);
}
}
if
(
orActive
)
{
orQueryObject
.
processInstanceIds
=
processInstanceIds
;
}
else
{
this
.
processInstanceIds
=
processInstanceIds
;
}
return
this
;
}
public
TaskQueryImpl
processInstanceBusinessKey
(
String
processInstanceBusinessKey
)
{
public
TaskQueryImpl
processInstanceBusinessKey
(
String
processInstanceBusinessKey
)
{
if
(
orActive
)
{
if
(
orActive
)
{
orQueryObject
.
processInstanceBusinessKey
=
processInstanceBusinessKey
;
orQueryObject
.
processInstanceBusinessKey
=
processInstanceBusinessKey
;
...
@@ -1238,6 +1261,9 @@ public class TaskQueryImpl extends AbstractVariableQueryImpl<TaskQuery, Task> im
...
@@ -1238,6 +1261,9 @@ public class TaskQueryImpl extends AbstractVariableQueryImpl<TaskQuery, Task> im
public
String
getProcessInstanceId
()
{
public
String
getProcessInstanceId
()
{
return
processInstanceId
;
return
processInstanceId
;
}
}
public
List
<
String
>
getProcessInstanceIds
()
{
return
processInstanceIds
;
}
public
String
getExecutionId
()
{
public
String
getExecutionId
()
{
return
executionId
;
return
executionId
;
}
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/task/TaskInfoQuery.java
浏览文件 @
c8ebab58
...
@@ -175,6 +175,11 @@ public interface TaskInfoQuery<T extends TaskInfoQuery<?, ?>, V extends TaskInfo
...
@@ -175,6 +175,11 @@ public interface TaskInfoQuery<T extends TaskInfoQuery<?, ?>, V extends TaskInfo
*/
*/
T
processInstanceId
(
String
processInstanceId
);
T
processInstanceId
(
String
processInstanceId
);
/**
* Only select tasks for the given process ids.
*/
T
processInstanceIdIn
(
List
<
String
>
processInstanceIds
);
/** Only select tasks foe the given business key */
/** Only select tasks foe the given business key */
T
processInstanceBusinessKey
(
String
processInstanceBusinessKey
);
T
processInstanceBusinessKey
(
String
processInstanceBusinessKey
);
...
...
modules/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/HistoricTaskInstance.xml
浏览文件 @
c8ebab58
...
@@ -339,6 +339,13 @@
...
@@ -339,6 +339,13 @@
<if
test=
"processInstanceId != null"
>
<if
test=
"processInstanceId != null"
>
and RES.PROC_INST_ID_ = #{processInstanceId}
and RES.PROC_INST_ID_ = #{processInstanceId}
</if>
</if>
<if
test=
"processInstanceIds != null && processInstanceIds.size() > 0"
>
and RES.PROC_INST_ID_ IN
<foreach
item=
"processInstance"
index=
"index"
collection=
"processInstanceIds"
open=
"("
separator=
","
close=
")"
>
#{processInstance}
</foreach>
</if>
<if
test=
"processInstanceBusinessKey != null"
>
<if
test=
"processInstanceBusinessKey != null"
>
and HPI.BUSINESS_KEY_ = #{processInstanceBusinessKey}
and HPI.BUSINESS_KEY_ = #{processInstanceBusinessKey}
</if>
</if>
...
@@ -615,6 +622,13 @@
...
@@ -615,6 +622,13 @@
<if
test=
"orQueryObject.processInstanceId != null"
>
<if
test=
"orQueryObject.processInstanceId != null"
>
or RES.PROC_INST_ID_ = #{orQueryObject.processInstanceId}
or RES.PROC_INST_ID_ = #{orQueryObject.processInstanceId}
</if>
</if>
<if
test=
"orQueryObject.processInstanceIds != null && orQueryObject.processInstanceIds.size() > 0"
>
or RES.PROC_INST_ID_ IN
<foreach
item=
"processInstance"
index=
"index"
collection=
"orQueryObject.processInstanceIds"
open=
"("
separator=
","
close=
")"
>
#{processInstance}
</foreach>
</if>
<if
test=
"orQueryObject.processInstanceBusinessKey != null"
>
<if
test=
"orQueryObject.processInstanceBusinessKey != null"
>
or HPI.BUSINESS_KEY_ = #{orQueryObject.processInstanceBusinessKey}
or HPI.BUSINESS_KEY_ = #{orQueryObject.processInstanceBusinessKey}
</if>
</if>
...
...
modules/activiti-engine/src/main/resources/org/activiti/db/mapping/entity/Task.xml
浏览文件 @
c8ebab58
...
@@ -393,6 +393,13 @@
...
@@ -393,6 +393,13 @@
<if
test=
"processInstanceId != null"
>
<if
test=
"processInstanceId != null"
>
and RES.PROC_INST_ID_ = #{processInstanceId}
and RES.PROC_INST_ID_ = #{processInstanceId}
</if>
</if>
<if
test=
"processInstanceIds != null && processInstanceIds.size() > 0"
>
and RES.PROC_INST_ID_ IN
<foreach
item=
"processInstance"
index=
"index"
collection=
"processInstanceIds"
open=
"("
separator=
","
close=
")"
>
#{processInstance}
</foreach>
</if>
<if
test=
"processInstanceBusinessKey != null"
>
<if
test=
"processInstanceBusinessKey != null"
>
and E.BUSINESS_KEY_ = #{processInstanceBusinessKey}
and E.BUSINESS_KEY_ = #{processInstanceBusinessKey}
</if>
</if>
...
@@ -691,6 +698,13 @@
...
@@ -691,6 +698,13 @@
<if
test=
"orQueryObject.processInstanceId != null"
>
<if
test=
"orQueryObject.processInstanceId != null"
>
or RES.PROC_INST_ID_ = #{orQueryObject.processInstanceId}
or RES.PROC_INST_ID_ = #{orQueryObject.processInstanceId}
</if>
</if>
<if
test=
"orQueryObject.processInstanceIds != null && orQueryObject.processInstanceIds.size() > 0"
>
or RES.PROC_INST_ID_ IN
<foreach
item=
"processInstance"
index=
"index"
collection=
"orQueryObject.processInstanceIds"
open=
"("
separator=
","
close=
")"
>
#{processInstance}
</foreach>
</if>
<if
test=
"orQueryObject.processInstanceBusinessKey != null"
>
<if
test=
"orQueryObject.processInstanceBusinessKey != null"
>
or E.BUSINESS_KEY_ = #{orQueryObject.processInstanceBusinessKey}
or E.BUSINESS_KEY_ = #{orQueryObject.processInstanceBusinessKey}
</if>
</if>
...
...
modules/activiti-engine/src/test/java/org/activiti/engine/test/api/task/TaskQueryTest.java
浏览文件 @
c8ebab58
...
@@ -1986,6 +1986,59 @@ public class TaskQueryTest extends PluggableActivitiTestCase {
...
@@ -1986,6 +1986,59 @@ public class TaskQueryTest extends PluggableActivitiTestCase {
.
taskId
(
"invalid"
)
.
taskId
(
"invalid"
)
.
processCategoryNotIn
(
Collections
.
singletonList
(
"Examples"
)).
count
());
.
processCategoryNotIn
(
Collections
.
singletonList
(
"Examples"
)).
count
());
}
}
@Deployment
(
resources
={
"org/activiti/engine/test/api/task/TaskQueryTest.testProcessDefinition.bpmn20.xml"
})
public
void
testProcessInstanceIdIn
()
throws
Exception
{
ProcessInstance
processInstance
=
runtimeService
.
startProcessInstanceByKey
(
"oneTaskProcess"
);
final
Task
task
=
taskService
.
createTaskQuery
().
processInstanceIdIn
(
Arrays
.
asList
(
processInstance
.
getId
())).
singleResult
();
assertNotNull
(
task
);
assertEquals
(
"theTask"
,
task
.
getTaskDefinitionKey
());
assertEquals
(
processInstance
.
getId
(),
task
.
getProcessInstanceId
());
assertEquals
(
0
,
taskService
.
createTaskQuery
().
processInstanceIdIn
(
Arrays
.
asList
(
"unexisting"
)).
count
());
}
@Deployment
(
resources
={
"org/activiti/engine/test/api/task/TaskQueryTest.testProcessDefinition.bpmn20.xml"
})
public
void
testProcessInstanceIdInOr
()
throws
Exception
{
ProcessInstance
processInstance
=
runtimeService
.
startProcessInstanceByKey
(
"oneTaskProcess"
);
final
Task
task
=
taskService
.
createTaskQuery
()
.
or
()
.
taskId
(
"invalid"
)
.
processInstanceIdIn
(
Arrays
.
asList
(
processInstance
.
getId
())).
singleResult
();
assertNotNull
(
task
);
assertEquals
(
"theTask"
,
task
.
getTaskDefinitionKey
());
assertEquals
(
processInstance
.
getId
(),
task
.
getProcessInstanceId
());
assertEquals
(
0
,
taskService
.
createTaskQuery
()
.
or
()
.
taskId
(
"invalid"
)
.
processInstanceIdIn
(
Arrays
.
asList
(
"unexisting"
)).
count
());
}
@Deployment
(
resources
={
"org/activiti/engine/test/api/task/TaskQueryTest.testProcessDefinition.bpmn20.xml"
})
public
void
testProcessInstanceIdInMultiple
()
throws
Exception
{
ProcessInstance
processInstance1
=
runtimeService
.
startProcessInstanceByKey
(
"oneTaskProcess"
);
ProcessInstance
processInstance2
=
runtimeService
.
startProcessInstanceByKey
(
"oneTaskProcess"
);
assertEquals
(
2
,
taskService
.
createTaskQuery
().
processInstanceIdIn
(
Arrays
.
asList
(
processInstance1
.
getId
(),
processInstance2
.
getId
())).
count
());
assertEquals
(
2
,
taskService
.
createTaskQuery
().
processInstanceIdIn
(
Arrays
.
asList
(
processInstance1
.
getId
(),
processInstance2
.
getId
(),
"unexisting"
)).
count
());
assertEquals
(
0
,
taskService
.
createTaskQuery
().
processInstanceIdIn
(
Arrays
.
asList
(
"unexisting1"
,
"unexisting2"
)).
count
());
}
@Deployment
(
resources
={
"org/activiti/engine/test/api/task/TaskQueryTest.testProcessDefinition.bpmn20.xml"
})
public
void
testProcessInstanceIdInOrMultiple
()
throws
Exception
{
ProcessInstance
processInstance1
=
runtimeService
.
startProcessInstanceByKey
(
"oneTaskProcess"
);
ProcessInstance
processInstance2
=
runtimeService
.
startProcessInstanceByKey
(
"oneTaskProcess"
);
assertEquals
(
2
,
taskService
.
createTaskQuery
().
or
().
taskId
(
"invalid"
).
processInstanceIdIn
(
Arrays
.
asList
(
processInstance1
.
getId
(),
processInstance2
.
getId
())).
count
());
assertEquals
(
2
,
taskService
.
createTaskQuery
().
or
().
taskId
(
"invalid"
).
processInstanceIdIn
(
Arrays
.
asList
(
processInstance1
.
getId
(),
processInstance2
.
getId
(),
"unexisting"
)).
count
());
assertEquals
(
0
,
taskService
.
createTaskQuery
().
or
().
taskId
(
"invalid"
).
processInstanceIdIn
(
Arrays
.
asList
(
"unexisting1"
,
"unexisting2"
)).
count
());
}
@Deployment
(
resources
={
"org/activiti/engine/test/api/task/TaskQueryTest.testProcessDefinition.bpmn20.xml"
})
@Deployment
(
resources
={
"org/activiti/engine/test/api/task/TaskQueryTest.testProcessDefinition.bpmn20.xml"
})
public
void
testProcessInstanceBusinessKey
()
throws
Exception
{
public
void
testProcessInstanceBusinessKey
()
throws
Exception
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录