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<>();