diff --git a/common/common-core/pom.xml b/common/common-core/pom.xml
index 5662a73..cf777c5 100644
--- a/common/common-core/pom.xml
+++ b/common/common-core/pom.xml
@@ -123,6 +123,11 @@
mcp-java8-sdk
0.8.1
+
+ com.github.krrr.mcp-java8-sdk
+ mcp
+ 0.8.1
+
diff --git a/common/common-flow/src/main/java/apelet/common/flow/controller/FlowOperationController.java b/common/common-flow/src/main/java/apelet/common/flow/controller/FlowOperationController.java
index eeda8f5..bfd4255 100644
--- a/common/common-flow/src/main/java/apelet/common/flow/controller/FlowOperationController.java
+++ b/common/common-flow/src/main/java/apelet/common/flow/controller/FlowOperationController.java
@@ -540,11 +540,12 @@ public class FlowOperationController {
/**
* 返回当前用户待办的任务列表。
*
- * @param processDefinitionKey 流程标识。
- * @param processDefinitionName 流程定义名 (模糊查询)。
- * @param taskName 任务名称 (模糊查询)。
- * @param title 节点标题关键字,模糊匹配。
- * @param pageParam 分页对象。
+ * @param processDefinitionKey 流程标识。
+ * @param processDefinitionName 流程定义名 (模糊查询)。
+ * @param taskName 任务名称 (模糊查询)。
+ * @param title 节点标题关键字,模糊匹配。
+ * @param processInstanceInitiator 流程发起人登录名,模糊匹配;为空则不按发起人过滤。
+ * @param pageParam 分页对象。
* @return 返回当前用户待办的任务列表。如果指定流程标识,则仅返回该流程的待办任务列表。
*/
@DisableDataFilter
@@ -554,10 +555,12 @@ public class FlowOperationController {
@MyRequestBody String processDefinitionName,
@MyRequestBody String taskName,
@MyRequestBody String title,
+ @MyRequestBody String initiator,
@MyRequestBody(required = true) MyPageParam pageParam) {
String username = TokenData.takeFromRequest().getLoginName();
MyPageData pageData = flowApiService.getTaskListByUserName(
- username, processDefinitionKey, processDefinitionName, taskName, title, pageParam);
+ username, processDefinitionKey, processDefinitionName, taskName, title,
+ initiator, pageParam);
List flowTaskVoList = flowApiService.convertToFlowTaskList(pageData.getDataList());
return ResponseResult.success(MyPageUtil.makeResponseData(flowTaskVoList, pageData.getTotalCount()));
}
diff --git a/common/common-flow/src/main/java/apelet/common/flow/service/FlowApiService.java b/common/common-flow/src/main/java/apelet/common/flow/service/FlowApiService.java
index ca43961..c7d2543 100644
--- a/common/common-flow/src/main/java/apelet/common/flow/service/FlowApiService.java
+++ b/common/common-flow/src/main/java/apelet/common/flow/service/FlowApiService.java
@@ -282,11 +282,12 @@ public interface FlowApiService {
* @param definitionName 流程定义名。
* @param taskName 任务名称。
* @param title 节点标题关键字,模糊匹配;为空时不按标题过滤。
+ * @param initiator 流程发起人登录名,模糊匹配;为空时不按发起人过滤。
* @param pageParam 分页对象。
* @return 用户的任务列表。
*/
MyPageData getTaskListByUserName(String username, String definitionKey, String definitionName,
- String taskName, String title, MyPageParam pageParam);
+ String taskName, String title, String initiator, MyPageParam pageParam);
/**
* 获取用户的任务数量。这其中包括当前用户作为指派人和候选人。
diff --git a/common/common-flow/src/main/java/apelet/common/flow/service/impl/FlowApiServiceImpl.java b/common/common-flow/src/main/java/apelet/common/flow/service/impl/FlowApiServiceImpl.java
index a91968d..c71c08a 100644
--- a/common/common-flow/src/main/java/apelet/common/flow/service/impl/FlowApiServiceImpl.java
+++ b/common/common-flow/src/main/java/apelet/common/flow/service/impl/FlowApiServiceImpl.java
@@ -695,7 +695,8 @@ public class FlowApiServiceImpl implements FlowApiService {
@Override
public MyPageData getTaskListByUserName(String username, String definitionKey, String definitionName,
- String taskName, String title, MyPageParam pageParam) {
+ String taskName, String title, String initiator,
+ MyPageParam pageParam) {
TaskQuery query = this.createQuery();
if (StrUtil.isNotBlank(definitionKey)) {
query.processDefinitionKey(definitionKey);
@@ -706,6 +707,11 @@ public class FlowApiServiceImpl implements FlowApiService {
if (StrUtil.isNotBlank(taskName)) {
query.taskNameLike("%" + taskName + "%");
}
+ // 发起人登录名在流程启动时写入流程变量 initiator,可由 Flowable 直接过滤,无需再做 Java 侧后置过滤。
+ if (StrUtil.isNotBlank(initiator)) {
+ query.processVariableValueLike(
+ FlowConstant.PROC_INSTANCE_INITIATOR_VAR, "%" + initiator.trim() + "%");
+ }
this.buildCandidateCondition(query, username);
query.orderByTaskCreateTime().desc();
Map multiInstanceTaskMap = new HashMap<>();