Procházet zdrojové kódy

任务列表只查负责人包含本人的任务

buzhanyi před 11 měsíci
rodič
revize
7fd5e8fb2d

+ 6 - 4
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/mapper/TaskInfoMapper.java

@@ -30,10 +30,12 @@ public interface TaskInfoMapper extends JpaRepository<TaskInfoEntity, Integer>,
     @Query(value = "SELECT t.task_id taskId,t.target_task targetTask,t.task_priority taskPriority,t.task_participant taskParticipant," +
             "t.start_time startTime,t.end_time endTime,t.task_status taskStatus,t.task_creator taskCreator,t.task_index taskIndex," +
             "t.task_standard taskStandard,t.task_statements taskStatements,t.project_id projectId,t.process_instance_id processInstanceId," +
-            "t.flow_task_status flowTaskStatus,t.process_definition_id processDefinitionId  from task_info t WHERE if( ?1 !='', t.target_task = ?1 , 1=1) " +
-            "AND if( ?2 !='', t.task_status = ?2 , 1=1) and is_delete='1' order by t.create_date desc ",
-            countQuery = "select count(1)from task_info t WHERE if( ?1 !='', t.target_task = ?1 , 1=1) AND if( ?2 !='', t.task_status = ?2 , 1=1)", nativeQuery = true)
-    Page<Map<String, String>> findTaskInfo(String targetTask, String taskStatus, Pageable page);
+            "t.flow_task_status flowTaskStatus,t.process_definition_id processDefinitionId  from task_info t WHERE " +
+            "if( ?1 !='', t.task_participant LIKE %?1% , 1=1) AND " +
+            "if( ?2 !='', t.target_task = ?2 , 1=1) AND " +
+            " if( ?3 !='', t.task_status = ?3 , 1=1) and is_delete='1' order by t.create_date desc ",
+            countQuery = "select count(1)from task_info t WHERE if( ?1 !='', t.task_participant = ?1 , 1=1) AND if( ?2 !='', t.target_task = ?2 , 1=1) AND if( ?3 !='', t.task_status = ?3 , 1=1)", nativeQuery = true)
+    Page<Map<String, String>> findTaskInfo(String userId, String targetTask, String taskStatus, Pageable page);
 
     /**
      * 查询任务名称数量

+ 15 - 6
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/service/impl/TaskInfoServiceImpl.java

@@ -23,7 +23,9 @@ import com.ankaibei.workFlow.webadmin.ankaibei.service.TaskInfoService;
 import com.ankaibei.workFlow.webadmin.ankaibei.utils.FlowTaskStart;
 import com.ankaibei.workFlow.webadmin.ankaibei.vo.ResMsg;
 import com.ankaibei.workFlow.webadmin.ankaibei.vo.TaskInfoVo;
+import com.ankaibei.workflow.api.LoginApi;
 import org.apache.commons.lang3.ObjectUtils;
+import org.flowable.idm.engine.impl.cmd.GetUserInfoCmd;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
@@ -60,8 +62,11 @@ public class TaskInfoServiceImpl implements TaskInfoService {
 
     @Override
     public ResMsg findTaskInfo(Integer pageIndex, Integer pageSize, TaskInfoEntity taskInfoEntity) {
+        //拿到用户的ID,根据用户
+        String userId = TokenData.takeFromRequest().getUserId();
+        //System.out.println("tokenData:===" + tokenData.toString());
         Pageable page = PageRequest.of(pageIndex - 1, pageSize);
-        Page<Map<String, String>> all = taskInfoMapper.findTaskInfo(taskInfoEntity.getTargetTask(), taskInfoEntity.getTaskStatus(), page);
+        Page<Map<String, String>> all = taskInfoMapper.findTaskInfo(userId, taskInfoEntity.getTargetTask(), taskInfoEntity.getTaskStatus(), page);
         //先将项目信息全部查出,再根据项目ID匹配项目名称
         ArrayList<Integer> projectIds = new ArrayList<>();
         ArrayList<String> participants = new ArrayList<>();
@@ -70,15 +75,19 @@ public class TaskInfoServiceImpl implements TaskInfoService {
             participants.add(map.get("taskParticipant"));
         }
         List<ProjectInfoEntity> allById = projectInfoMapper.findAllById(projectIds);
-        //先将用户信息全部查出,再根据项目ID匹配项目名称
+        //先将用户信息全部查出,再匹配名称
         HashMap<String, String> userMap = new HashMap<>();
+        List<UserInfoEntity> userAll = userInfoMapper.findAll();
         for (String s : participants) {
             String[] split = s.split(",");
             List<String> list = Arrays.stream(split).collect(Collectors.toList());
-            List<UserInfoEntity> allByUserId = userInfoMapper.findAllByUserId(list);
             StringBuffer str = new StringBuffer();
-            for (UserInfoEntity name : allByUserId) {
-                str.append(name.getShowName()).append(",");
+            for (String s1 : list) {
+                for (UserInfoEntity userInfoEntity : userAll) {
+                    if (userInfoEntity.getUserId().equals(s1)) {
+                        str.append(userInfoEntity.getShowName()).append(",");
+                    }
+                }
             }
             userMap.put(s, str.toString());
         }
@@ -97,7 +106,7 @@ public class TaskInfoServiceImpl implements TaskInfoService {
                     }
                 }
             }
-
+            // 如果这个任务的参与人不为空,就把参与人姓名复制给参与人字段
             String taskParticipant = map.get("taskParticipant");
             if (ObjectUtils.isNotEmpty(userMap)) {
                 userMap.entrySet().stream()