From ff4092e5b2a2fb0c954c28a3c01a0cf869e110ae Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Fri, 30 Aug 2024 09:28:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=A8=A1=E5=9D=97=EF=BC=8Cget=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E4=B8=8D=E9=9C=80=E8=A6=81=E6=95=B0=E6=8D=AE=E6=9D=83?= =?UTF-8?q?=E9=99=90=20=E6=96=B0=E5=A2=9E=20=E6=9F=A5=E8=AF=A2=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=B7=B2=E7=BB=8F=E5=AE=A1=E6=89=B9=E8=BF=87=E7=9A=84?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF=20=E4=BF=AE=E6=94=B9=20?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E7=AE=A1=E7=90=86=E6=9A=82=E6=97=B6=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/oa/BpmOAWorkTaskController.java | 1 + .../admin/task/BpmTaskController.java | 32 +++++++++++++++++++ .../config/DataPermissionConfiguration.java | 5 ++- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAWorkTaskController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAWorkTaskController.java index 908700cd..dc4eba8a 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAWorkTaskController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOAWorkTaskController.java @@ -59,6 +59,7 @@ public class BpmOAWorkTaskController { @GetMapping("/get") @Operation(summary = "获得任务分配") @Parameter(name = "id", description = "编号", required = true, example = "1024") + @DataPermission(enable = false) public CommonResult getTask(@RequestParam("id") Long id) { BpmOAWorkTaskDO workTask = workTaskService.getWorkTask(id); diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java index 2a79a1aa..fee44262 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java @@ -1,23 +1,31 @@ package cn.iocoder.yudao.module.bpm.controller.admin.task; +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*; import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import org.flowable.task.api.Task; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getLoginUserId; @Tag(name = "管理后台 - 流程任务实例") @@ -30,6 +38,9 @@ public class BpmTaskController { @Resource private BpmTaskService taskService; + @Resource + private AdminUserApi userApi; + /** * add by yaojun 2024.1.3 * 流程审核添加了抄送用户(多用户)的功能 @@ -148,4 +159,25 @@ public class BpmTaskController { return success(taskService.getCurrentTaskIdByProcessInstanceId(processInstanceId)); } + @GetMapping("getAssigneeUserId") + @Operation(summary = "根据流程实例ID,获取审批人信息") + @Parameter(name = "processInstanceId", description = "流程实例 ID", required = true) + @DataPermission(enable = false) + public CommonResult> getAssigneeUserIdByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) { + + List userRespDTO = new ArrayList<>(); + + List tasks = taskService.getTasksByProcessInstanceId(processInstanceId); + + // 获取用户信息 + List userIds = convertList(tasks, Task::getAssignee); + if (CollUtil.isEmpty(userIds)) { + return success(userRespDTO); + } + + userRespDTO = userApi.getUserList(userIds.stream().map(Long::parseLong).collect(Collectors.toList())).getCheckedData(); + userRespDTO = userRespDTO.stream().filter(user -> user.getStatus().equals(CommonStatusEnum.ENABLE.getStatus())).collect(Collectors.toList()); + + return success(userRespDTO); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/datapermission/config/DataPermissionConfiguration.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/datapermission/config/DataPermissionConfiguration.java index 0245cf05..89abe111 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/datapermission/config/DataPermissionConfiguration.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/datapermission/config/DataPermissionConfiguration.java @@ -1,7 +1,6 @@ package cn.iocoder.yudao.module.bpm.framework.datapermission.config; import cn.iocoder.yudao.framework.datapermission.core.rule.dept.DeptDataPermissionRuleCustomizer; -import cn.iocoder.yudao.module.bpm.dal.dataobject.financialpayment.FinancialPaymentDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAWorkTaskDO; import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; import org.springframework.context.annotation.Bean; @@ -21,11 +20,11 @@ public class DataPermissionConfiguration { // user rule.addUserColumn(BpmProcessInstanceExtDO.class, "start_user_id"); rule.addUserColumn(BpmOAWorkTaskDO.class, "from_user_id"); - rule.addUserColumn(FinancialPaymentDO.class, "user_id"); +// rule.addUserColumn(FinancialPaymentDO.class, "user_id"); //dept rule.addDeptColumn(BpmOAWorkTaskDO.class, "from_dept_id"); - rule.addDeptColumn(FinancialPaymentDO.class, "dept_id"); +// rule.addDeptColumn(FinancialPaymentDO.class, "dept_id"); }; }