Procházet zdrojové kódy

update 调整获取下一节点,增加用户分页查询参数

gssong před 1 měsícem
rodič
revize
15eb08c065

+ 5 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java

@@ -103,6 +103,11 @@ public class SysUserBo extends BaseEntity {
      */
     private Long roleId;
 
+    /**
+     * 用户ID
+     */
+    private String userIds;
+
     /**
      * 排除不查询的用户(工作流用)
      */

+ 12 - 3
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserService.java

@@ -16,10 +16,17 @@ import java.util.List;
 public interface ISysUserService {
 
 
+    /**
+     * 根据条件分页查询用户列表
+     *
+     * @param user      用户信息
+     * @param pageQuery 发呢也
+     * @return 用户信息
+     */
     TableDataInfo<SysUserVo> selectPageUserList(SysUserBo user, PageQuery pageQuery);
 
     /**
-     * 根据条件分页查询用户列表
+     * 导出用户列表
      *
      * @param user 用户信息
      * @return 用户信息集合信息
@@ -29,7 +36,8 @@ public interface ISysUserService {
     /**
      * 根据条件分页查询已分配用户角色列表
      *
-     * @param user 用户信息
+     * @param user      用户信息
+     * @param pageQuery 分页
      * @return 用户信息集合信息
      */
     TableDataInfo<SysUserVo> selectAllocatedList(SysUserBo user, PageQuery pageQuery);
@@ -37,7 +45,8 @@ public interface ISysUserService {
     /**
      * 根据条件分页查询未分配用户角色列表
      *
-     * @param user 用户信息
+     * @param user      用户信息
+     * @param pageQuery 分页
      * @return 用户信息集合信息
      */
     TableDataInfo<SysUserVo> selectUnallocatedList(SysUserBo user, PageQuery pageQuery);

+ 1 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

@@ -79,6 +79,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
         QueryWrapper<SysUser> wrapper = Wrappers.query();
         wrapper.eq("u.del_flag", SystemConstants.NORMAL)
             .eq(ObjectUtil.isNotNull(user.getUserId()), "u.user_id", user.getUserId())
+            .in(StringUtils.isNotBlank(user.getUserIds()), "u.user_id", StringUtils.splitTo(user.getUserIds(), Convert::toLong))
             .like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName())
             .eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus())
             .like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber())

+ 10 - 12
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java

@@ -518,24 +518,22 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
         Definition definition = defService.getById(task.getDefinitionId());
         //获取下一节点列表
         List<Node> nextNodeList = nodeService.getNextNodeList(task.getDefinitionId(), task.getNodeCode(), null, SkipType.PASS.getKey(), variables);
+        List<FlowNode> nextFlowNodes = BeanUtil.copyToList(nextNodeList, FlowNode.class);
         if (CollUtil.isNotEmpty(nextNodeList)) {
             //构建以下节点数据
-            List<Task> buildTaskList = StreamUtils.toList(nextNodeList, node -> taskService.addTask(node, instance, definition, null));
+            List<Task> buildNextTaskList = StreamUtils.toList(nextNodeList, node -> taskService.addTask(node, instance, definition, null));
             //办理人变量替换
-            ExpressionUtil.evalVariable(buildTaskList, MapUtil.mergeAll(instance.getVariableMap(), variables));
-            for (Node nextNode : nextNodeList) {
-                buildTaskList.stream().filter(t -> t.getNodeCode().equals(nextNode.getNodeCode())).findFirst().ifPresent(t -> {
-                    nextNode.setPermissionFlag(StringUtils.join(t.getPermissionList(), StringUtils.SEPARATOR));
+            ExpressionUtil.evalVariable(buildNextTaskList, MapUtil.mergeAll(instance.getVariableMap(), variables));
+            for (FlowNode flowNode : nextFlowNodes) {
+                buildNextTaskList.stream().filter(t -> t.getNodeCode().equals(flowNode.getNodeCode())).findFirst().ifPresent(t -> {
+                    List<UserDTO> users = flwTaskAssigneeService.fetchUsersByStorageId(flowNode.getPermissionFlag());
+                    if (CollUtil.isNotEmpty(users)) {
+                        flowNode.setPermissionFlag(StreamUtils.join(users, e -> String.valueOf(e.getUserId())));
+                    }
                 });
             }
-            List<FlowNode> flowNodes = BeanUtil.copyToList(nextNodeList, FlowNode.class);
-            for (FlowNode flowNode : flowNodes) {
-                if (StringUtils.isNotBlank(flowNode.getPermissionFlag())) {
-                    flwTaskAssigneeService.fetchUsersByStorageId(flowNode.getPermissionFlag());
-                }
-            }
         }
-        return BeanUtil.copyToList(nextNodeList, FlowNode.class);
+        return nextFlowNodes;
     }
 
     /**