From 3cbfc1624bb7a23a4dfa62ec4558578b00be56b3 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 04 三月 2025 21:59:55 +0800
Subject: [PATCH] 流程日志查询bug、督办日志bug

---
 business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java |   85 ++++++++++++++++++++++++++----------------
 1 files changed, 52 insertions(+), 33 deletions(-)

diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
index 87cfdd1..23c7f21 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -399,13 +399,28 @@
             taskVO.setTaskDefinitionKey(task.getTaskDefinitionKey());
 
             // 娴佺▼椤圭洰淇℃伅
-            ProjectInfo project = baseMapper.getProjectInfo(task.getProcessInstanceId());
-            if (Objects.nonNull(project)) {
-                taskVO.setProjectId(project.getId());
-                taskVO.setProjectName(project.getProjectName());
-            } else {
-                continue;
+            ProjectProcess projectProcess = new LambdaQueryChainWrapper<>(baseMapper)
+                    .eq(ProjectProcess::getProcessInsId, task.getProcessInstanceId())
+                    .one();
+            String projectId = "";
+            String projectName = "";
+            if (Objects.nonNull(projectProcess)) {
+                if (projectProcess.getProjectType().equals(ProjectProcessTypeEnum.PROJECT)) {
+                    ProjectInfo project = projectInfoMapper.selectById(projectProcess.getProjectId());
+                    if (Objects.nonNull(project)) {
+                        projectId = projectProcess.getProjectId();
+                        projectName = project.getProjectName();
+                    }
+                } else if (projectProcess.getProjectType().equals(ProjectProcessTypeEnum.ENGINEERING)) {
+                    ProjectEngineering engineering = projectEngineeringMapper.selectById(projectProcess.getProjectId());
+                    if (Objects.nonNull(engineering)) {
+                        projectId = projectProcess.getProjectId();
+                        projectName = engineering.getProjectName();
+                    }
+                }
             }
+            taskVO.setProjectId(projectId);
+            taskVO.setProjectName(projectName);
 
             // 娴佺▼鍙戣捣浜轰俊鎭�
             this.setPromoterInfo(taskVO);
@@ -746,7 +761,7 @@
         ProcessLog processLog = new LambdaQueryChainWrapper<>(processLogService.getBaseMapper())
                 .eq(ProcessLog::getTaskId, form.getTaskId())
                 .eq(ProcessLog::getEventType, ProcessLogEventTypeEnum.SUPERVISE)
-                .eq(ProcessLog::getProcessInsId, form.getProcessInsId())
+                .eq(ProcessLog::getProcessInsId, task.getProcessInstanceId())
                 .one();
         List<SuperviseData> dataList;
         if (processLog != null) {
@@ -763,7 +778,7 @@
                 processLog.getId(),
                 processLog.getUserId(),
                 form.getProjectId(),
-                form.getProcessInsId(),
+                task.getProcessInstanceId(),
                 form.getTaskId(),
                 task.getTaskDefinitionKey(),
                 task.getName(),
@@ -1038,14 +1053,16 @@
                     vo.setCreateTime(historicTasks.get(0).getStartTime());
 
                     // 鏌ヨ瀹為檯澶勭悊浜�
-                    long handlerUserId = Long.parseLong(historicTasks.get(0).getAssignee());
-                    SysUser handlerUser = sysUserService.selectUserById(handlerUserId);
-                    if (Objects.nonNull(handlerUser)) {
-                        handlerIds.add(handlerUserId);
-                        handlerNames.add(this.getUserShowName(handlerUser));
-                        if (Objects.nonNull(handlerUser.getDept())) {
-                            handlerUnitNames.add(handlerUser.getDept().getDeptName());
-                            handlerUnitIds.add(handlerUser.getDept().getDeptId());
+                    if (StringUtils.isNotBlank(historicTasks.get(0).getAssignee())) {
+                        long handlerUserId = Long.parseLong(historicTasks.get(0).getAssignee());
+                        SysUser handlerUser = sysUserService.selectUserById(handlerUserId);
+                        if (Objects.nonNull(handlerUser)) {
+                            handlerIds.add(handlerUserId);
+                            handlerNames.add(this.getUserShowName(handlerUser));
+                            if (Objects.nonNull(handlerUser.getDept())) {
+                                handlerUnitNames.add(handlerUser.getDept().getDeptName());
+                                handlerUnitIds.add(handlerUser.getDept().getDeptId());
+                            }
                         }
                     }
                     vo.setTaskDefinitionKey(historicTasks.get(0).getTaskDefinitionKey());
@@ -1113,25 +1130,27 @@
                     .orderByHistoricTaskInstanceStartTime()
                     .desc()
                     .list();
-
-            vo.setTaskStatus(TaskStatusEnum.FINISHED);
-            // 濡傛灉鏄凡瀹屾垚鐨勶紝淇℃伅闇�瑕佸崟鐙祴鍊�
-            vo.setTaskId(hisTaskList.get(0).getId());
-            vo.setExecutionId(hisTaskList.get(0).getExecutionId());
-            vo.setCreateTime(hisTaskList.get(0).getStartTime());
-            // 鏌ヨ瀹為檯澶勭悊浜�
-            long handlerUserId = Long.parseLong(hisTaskList.get(0).getAssignee());
-            SysUser handlerUser = sysUserService.selectUserById(handlerUserId);
-            if (Objects.nonNull(handlerUser)) {
-
-                vo.setActualHandlerUserId(hisTaskList.get(0).getAssignee());
-                vo.setActualHandlerUserName(handlerUser.getNickName());
+            // 濡傛灉鏈壘鍒板巻鍙蹭换鍔★紝璇存槑杩欎釜浠诲姟鍙兘澶勪簬鏌愪釜浜掓枼缃戝叧涓嬶紝瀹為檯骞舵湭鎵ц
+            if (CollectionUtils.isEmpty(hisTaskList)) {
+                vo.setTaskStatus(TaskStatusEnum.NOT_START);
+            } else {
+                vo.setTaskStatus(TaskStatusEnum.FINISHED);
+                // 濡傛灉鏄凡瀹屾垚鐨勶紝淇℃伅闇�瑕佸崟鐙祴鍊�
+                vo.setTaskId(hisTaskList.get(0).getId());
+                vo.setExecutionId(hisTaskList.get(0).getExecutionId());
+                vo.setCreateTime(hisTaskList.get(0).getStartTime());
+                // 鏌ヨ瀹為檯澶勭悊浜�
+                long handlerUserId = Long.parseLong(hisTaskList.get(0).getAssignee());
+                SysUser handlerUser = sysUserService.selectUserById(handlerUserId);
+                if (Objects.nonNull(handlerUser)) {
+                    vo.setActualHandlerUserId(hisTaskList.get(0).getAssignee());
+                    vo.setActualHandlerUserName(handlerUser.getNickName());
+                }
+                vo.setTaskDefinitionKey(hisTaskList.get(0).getTaskDefinitionKey());
+                this.setPromoterAndHandler(vo, hisTaskList.get(0).getIdentityLinks());
             }
-            vo.setTaskDefinitionKey(hisTaskList.get(0).getTaskDefinitionKey());
-            this.setPromoterAndHandler(vo, hisTaskList.get(0).getIdentityLinks());
-
             return vo;
-        }).collect(Collectors.toList());
+        }).filter(Objects::nonNull).collect(Collectors.toList());
         return vos;
     }
 

--
Gitblit v1.8.0