Browse Source

11482-【CR】【投资系统】增加审批流程-待办任务数量bug

hxy 3 weeks ago
parent
commit
b3f03fe845
1 changed files with 18 additions and 9 deletions
  1. 18 9
      ruoyi-admin/src/main/java/com/ruoyi/web/job/ToDoNumberJob.java

+ 18 - 9
ruoyi-admin/src/main/java/com/ruoyi/web/job/ToDoNumberJob.java

@@ -8,6 +8,7 @@ import org.flowable.engine.ProcessEngine;
 import org.flowable.engine.ProcessEngines;
 import org.flowable.engine.RuntimeService;
 import org.flowable.engine.runtime.ProcessInstance;
+import org.flowable.task.api.Task;
 import org.flowable.task.api.TaskQuery;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -49,17 +50,25 @@ public class ToDoNumberJob {
         //声明map记录用户和对应的代办数量
         Map<String,Integer> map = new HashMap<>();
         for (ProcessInstance instance : instances) {
-            TaskQuery query = engine.getTaskService().createTaskQuery()
+           /* TaskQuery query = engine.getTaskService().createTaskQuery()
                     .processInstanceId(instance.getId());
             //获取对应的待处理用户记录代办数量+1
-            String assignee = query.singleResult().getAssignee();
-            if(assignee!=null && !"".equals(assignee)){
-                //根据用户id获取用户对象
-                SysUser userInfo= sysUserService.selectUserById(Long.parseLong(assignee));
-                if (map.containsKey(userInfo.getUserName())){
-                    map.put(userInfo.getUserName(),map.get(userInfo.getUserName())+1);
-                }else {
-                    map.put(userInfo.getUserName(),1);
+            String assignee = query.singleResult().getAssignee();*/
+            List<Task> taskList = engine.getTaskService().createTaskQuery()
+                    .processInstanceId(instance.getId())
+                    .list();
+            // 遍历所有任务,获取每个处理人
+            for (Task task : taskList) {
+                String assignee = task.getAssignee();
+                // 处理每个处理人...
+                if(assignee!=null && !"".equals(assignee)){
+                    //根据用户id获取用户对象
+                    SysUser userInfo= sysUserService.selectUserById(Long.parseLong(assignee));
+                    if (map.containsKey(userInfo.getUserName())){
+                        map.put(userInfo.getUserName(),map.get(userInfo.getUserName())+1);
+                    }else {
+                        map.put(userInfo.getUserName(),1);
+                    }
                 }
             }
         }