From 001876ed79400dcf36e0558c1e744e0693ee9020 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 04 三月 2025 10:53:21 +0800 Subject: [PATCH] 流程日志bug、流程推进全部事项分页bug --- business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 88 ++++++++++++++++++++++++++++---------------- 1 files changed, 56 insertions(+), 32 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..cccd853 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); @@ -1106,25 +1128,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