From da8b4d5114b90e9cc67d116f0dd2159b90adb8c4 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 05 三月 2025 17:07:26 +0800
Subject: [PATCH] 任务展示单位名称bug

---
 business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java |  177 ++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 97 insertions(+), 80 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 1ad1628..f20ff2b 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -19,9 +19,7 @@
 import com.ycl.domain.entity.*;
 import com.ycl.domain.form.*;
 import com.ycl.domain.json.*;
-import com.ycl.domain.vo.CustomerTaskVO;
-import com.ycl.domain.vo.IndexCustomerTaskVO;
-import com.ycl.domain.vo.ProjectProcessDetailVO;
+import com.ycl.domain.vo.*;
 import com.ycl.event.event.TaskLogEvent;
 import com.ycl.mapper.ProjectEngineeringMapper;
 import com.ycl.mapper.ProjectInfoMapper;
@@ -29,13 +27,13 @@
 import com.ycl.service.*;
 import com.ycl.common.base.Result;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ycl.domain.vo.ProjectProcessVO;
 import com.ycl.domain.query.ProjectProcessQuery;
 import com.ycl.service.common.TaskCommonService;
 import com.ycl.system.service.ISysDeptService;
 import com.ycl.system.service.ISysDictTypeService;
 import com.ycl.system.service.ISysRoleService;
 import com.ycl.system.service.ISysUserService;
+import com.ycl.utils.TreeUtil;
 import lombok.Synchronized;
 import org.apache.commons.lang3.StringUtils;
 import org.flowable.bpmn.model.*;
@@ -104,8 +102,20 @@
         IPage<ProjectProcessVO> page = PageUtil.getPage(query, ProjectProcessVO.class);
         baseMapper.getPage(query, page);
         for (ProjectProcessVO vo : page.getRecords()) {
+            List<ProjectEngineeringVO> childList = baseMapper.getEngineeringList(vo.getId());
+            childList.stream().forEach(child -> {
+                if (StringUtils.isNotBlank(child.getProcessDefId())) {
+                    ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(child.getProcessDefId()).singleResult();
+                    if (Objects.nonNull(processDefinition)) {
+                        child.setSuspended(processDefinition.isSuspended());
+                        child.setFlowableProcessName(processDefinition.getName() + "(v" + processDefinition.getVersion() + ")");
+                        child.setDeployId(processDefinition.getDeploymentId());
+                    }
+                }
+            });
+            vo.setChildren(TreeUtil.treeForProjectEng(childList));
             vo.setStatus(vo.getProjectStatus());
-            if (Objects.nonNull(vo.getProcessDefId())) {
+            if (StringUtils.isNotBlank(vo.getProcessDefId())) {
                 ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(vo.getProcessDefId()).singleResult();
                 if (Objects.nonNull(processDefinition)) {
                     vo.setSuspended(processDefinition.isSuspended());
@@ -146,7 +156,6 @@
         Long unitId = null;
         if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) {
             ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper)
-                    .select(ProjectInfo::getProjectOwnerUnit)
                     .eq(ProjectInfo::getId, form.getProjectId())
                     .one();
             if (Objects.isNull(project)) {
@@ -155,7 +164,6 @@
             unitId = project.getProjectOwnerUnit();
         } else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) {
             ProjectEngineering projectEngineering = new LambdaQueryChainWrapper<>(projectEngineeringMapper)
-                    .select(ProjectEngineering::getDepartment)
                     .eq(ProjectEngineering::getId, form.getProjectId())
                     .one();
             if (Objects.isNull(projectEngineering)) {
@@ -186,7 +194,6 @@
         Long unitId = null;
         if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) {
             ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper)
-                    .select(ProjectInfo::getProjectOwnerUnit)
                     .eq(ProjectInfo::getId, form.getProjectId())
                     .one();
             if (Objects.isNull(project)) {
@@ -195,7 +202,6 @@
             unitId = project.getProjectOwnerUnit();
         } else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) {
             ProjectEngineering projectEngineering = new LambdaQueryChainWrapper<>(projectEngineeringMapper)
-                    .select(ProjectEngineering::getDepartment)
                     .eq(ProjectEngineering::getId, form.getProjectId())
                     .one();
             if (Objects.isNull(projectEngineering)) {
@@ -241,6 +247,7 @@
         variables.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUserId());
         // 灏嗚椤圭洰鐨勭敵璇蜂汉锛堜笟涓绘柟锛変綔涓烘祦绋嬩腑鏌愪簺鐜妭鐨勫鐞嗕汉
         variables.put(ProcessConstants.DATA_LAUNCH, "dept:" + createBy);
+        variables.put("a", 1);
         ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefId, projectId + "", variables);
         return processInstance.getId();
     }
@@ -392,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);
@@ -739,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) {
@@ -756,7 +778,7 @@
                 processLog.getId(),
                 processLog.getUserId(),
                 form.getProjectId(),
-                form.getProcessInsId(),
+                task.getProcessInstanceId(),
                 form.getTaskId(),
                 task.getTaskDefinitionKey(),
                 task.getName(),
@@ -986,11 +1008,11 @@
                         vo.setHandlerType(HandlerTypeEnum.USER);
                         SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee()));
                         if (Objects.nonNull(sysUser)) {
-                            handlerIds.add(sysUser.getUserId());
-                            handlerNames.add(this.getUserShowName(sysUser));
+                            vo.getHandlerId().add(sysUser.getUserId());
+                            vo.getHandlerName().add(this.getUserShowName(sysUser));
                             if (Objects.nonNull(sysUser.getDept())) {
-                                handlerUnitIds.add(sysUser.getDept().getDeptId());
-                                handlerUnitNames.add(sysUser.getDept().getDeptName());
+                                vo.getHandlerUnitId().add(sysUser.getDept().getDeptId());
+                                vo.getHandlerUnitName().add(sysUser.getDept().getDeptName());
                             }
                         }
                     } else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) {
@@ -1007,17 +1029,17 @@
                                     // 閮ㄩ棬
                                     SysDept dept = sysDeptService.selectDeptById(Long.parseLong(split[1]));
                                     if (Objects.nonNull(dept)) {
-                                        handlerUnitIds.add(dept.getDeptId());
-                                        handlerUnitNames.add(dept.getDeptName());
-                                        handlerNames.add(this.getDeptLeaderShowName(dept));
+                                        vo.getHandlerUnitId().add(dept.getDeptId());
+                                        vo.getHandlerUnitName().add(dept.getDeptName());
+                                        vo.getHandlerName().add(this.getDeptLeaderShowName(dept));
                                     }
                                 }
                             } else {
                                 vo.setHandlerType(HandlerTypeEnum.ROLE);
                                 SysRole role = sysRoleService.selectRoleById(Long.parseLong(groupId));
                                 if (Objects.nonNull(role)) {
-                                    handlerUnitIds.add(role.getRoleId());
-                                    handlerUnitNames.add(role.getRoleName());
+                                    vo.getHandlerUnitId().add(role.getRoleId());
+                                    vo.getHandlerUnitName().add(role.getRoleName());
                                 }
                             }
                         }
@@ -1031,18 +1053,19 @@
                     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)) {
+                            vo.getHandlerId().add(handlerUserId);
+                            vo.getHandlerName().add(this.getUserShowName(handlerUser));
+                            if (Objects.nonNull(handlerUser.getDept())) {
+                                vo.getHandlerUnitName().add(handlerUser.getDept().getDeptName());
+                                vo.getHandlerUnitId().add(handlerUser.getDept().getDeptId());
+                            }
                         }
                     }
                     vo.setTaskDefinitionKey(historicTasks.get(0).getTaskDefinitionKey());
-                    this.setPromoterAndHandler(vo, historicTasks.get(0).getIdentityLinks());
                 }
             } else {
                 vo.setTaskStatus(TaskStatusEnum.TODO);
@@ -1106,25 +1129,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;
     }
 
@@ -1385,9 +1410,12 @@
                 if (Objects.nonNull(handlerUser)) {
                     vo.getHandlerId().add(handlerUserId);
                     vo.getHandlerName().add(this.getUserShowName(handlerUser));
+                    if (Objects.nonNull(handlerUser.getDept())) {
+                        vo.getHandlerUnitId().add(handlerUser.getDept().getDeptId());
+                        vo.getHandlerUnitName().add(handlerUser.getDept().getDeptName());
+                    }
                 }
                 vo.setTaskDefinitionKey(hisTask.getTaskDefinitionKey());
-                this.setPromoterAndHandler(vo, hisTask.getIdentityLinks());
             }
 
             this.distinctVo(vo);
@@ -1922,17 +1950,6 @@
      * @param identityLinkInfos 濡傛灉鏄凡瀹屾垚鐨勪换鍔★紝鐢ㄨ繖涓幓鍙栧叧鑱旂殑鐢ㄦ埛/鐢ㄦ埛缁�
      */
     private void setPromoterAndHandler(CustomerTaskVO taskVO, List<? extends IdentityLinkInfo> identityLinkInfos) {
-//        this.setPromoterInfo(taskVO);
-
-        // 涓�涓换鍔″彲鑳芥湁澶氫釜鍊欓�変汉/缁勶紝鎵�浠ラ渶瑕佷娇鐢╨ist
-        List<Long> handlerIds = new ArrayList<>(2);
-        List<String> handlerNames = new ArrayList<>(2);
-        List<Long> handlerUnitIds = new ArrayList<>(2);
-        List<String> handlerUnitNames = new ArrayList<>(2);
-        taskVO.setHandlerId(handlerIds);
-        taskVO.setHandlerName(handlerNames);
-        taskVO.setHandlerUnitId(handlerUnitIds);
-        taskVO.setHandlerUnitName(handlerUnitNames);
 
         // 娴佺▼澶勭悊浜轰俊鎭�
         if (TaskStatusEnum.TODO.equals(taskVO.getTaskStatus())) {
@@ -1946,11 +1963,11 @@
                     SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId()));
                     if (Objects.nonNull(sysUser)) {
                         taskVO.setHandlerType(HandlerTypeEnum.USER);
-                        handlerIds.add(sysUser.getUserId());
-                        handlerNames.add(this.getUserShowName(sysUser));
+                        taskVO.getHandlerId().add(sysUser.getUserId());
+                        taskVO.getHandlerName().add(this.getUserShowName(sysUser));
                         if (Objects.nonNull(sysUser.getDept())) {
-                            handlerUnitIds.add(sysUser.getDept().getDeptId());
-                            handlerUnitNames.add(sysUser.getDept().getDeptName());
+                            taskVO.getHandlerUnitId().add(sysUser.getDept().getDeptId());
+                            taskVO.getHandlerUnitName().add(sysUser.getDept().getDeptName());
                         }
                     }
                     // 缁戝畾鐨勬槸瑙掕壊鎴栬�呮槸閮ㄩ棬锛岄渶瑕佹牴鎹甶d鍒ゆ柇
@@ -1962,16 +1979,16 @@
                             // 閮ㄩ棬
                             SysDept dept = sysDeptService.selectDeptById(Long.parseLong(split[1]));
                             if (Objects.nonNull(dept)) {
-                                handlerUnitIds.add(dept.getDeptId());
-                                handlerUnitNames.add(dept.getDeptName());
+                                taskVO.getHandlerUnitId().add(dept.getDeptId());
+                                taskVO.getHandlerUnitName().add(dept.getDeptName());
                             }
                         }
                     } else {
                         taskVO.setHandlerType(HandlerTypeEnum.ROLE);
                         SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId()));
                         if (Objects.nonNull(role)) {
-                            handlerUnitIds.add(role.getRoleId());
-                            handlerUnitNames.add(role.getRoleName());
+                            taskVO.getHandlerUnitId().add(role.getRoleId());
+                            taskVO.getHandlerUnitName().add(role.getRoleName());
                         }
                     }
                 }
@@ -1983,11 +2000,11 @@
                     taskVO.setHandlerType(HandlerTypeEnum.USER);
                     SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId()));
                     if (Objects.nonNull(sysUser)) {
-                        handlerIds.add(sysUser.getUserId());
-                        handlerNames.add(this.getUserShowName(sysUser));
+                        taskVO.getHandlerId().add(sysUser.getUserId());
+                        taskVO.getHandlerName().add(this.getUserShowName(sysUser));
                         if (Objects.nonNull(sysUser.getDept())) {
-                            handlerUnitIds.add(sysUser.getDept().getDeptId());
-                            handlerUnitNames.add(sysUser.getDept().getDeptName());
+                            taskVO.getHandlerUnitId().add(sysUser.getDept().getDeptId());
+                            taskVO.getHandlerUnitName().add(sysUser.getDept().getDeptName());
                         }
                     }
                     // 缁戝畾鐨勬槸瑙掕壊锛屾煡鍑鸿鑹插悕绉�
@@ -1999,16 +2016,16 @@
                             // 閮ㄩ棬
                             SysDept dept = sysDeptService.selectDeptById(Long.parseLong(split[1]));
                             if (Objects.nonNull(dept)) {
-                                handlerUnitIds.add(dept.getDeptId());
-                                handlerUnitNames.add(dept.getDeptName());
+                                taskVO.getHandlerUnitId().add(dept.getDeptId());
+                                taskVO.getHandlerUnitName().add(dept.getDeptName());
                             }
                         }
                     } else {
                         taskVO.setHandlerType(HandlerTypeEnum.ROLE);
                         SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId()));
                         if (Objects.nonNull(role)) {
-                            handlerUnitIds.add(role.getRoleId());
-                            handlerUnitNames.add(role.getRoleName());
+                            taskVO.getHandlerUnitId().add(role.getRoleId());
+                            taskVO.getHandlerUnitName().add(role.getRoleName());
                         }
                     }
                 }

--
Gitblit v1.8.0