From db13cc9c96850fdd02f73b787fbaaadb73c03dc7 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期三, 15 一月 2025 17:29:41 +0800 Subject: [PATCH] 启动项目时,根据项目创建人(暂时这样)设置流程变量,动态替换任务处理人 --- business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 23 +++++++++++++++++++---- 1 files changed, 19 insertions(+), 4 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 cce4972..1eb9919 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java @@ -156,6 +156,7 @@ entity.setProcessDefId(processDefId); entity.setProcessInsId(processInsId); baseMapper.insert(entity); + return Result.ok("娴佺▼鍚姩鎴愬姛"); } @@ -167,6 +168,14 @@ * @return */ private String startPro(Long projectId, String processDefId) { + + ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper) + .select(ProjectInfo::getCreateBy) + .eq(ProjectInfo::getId, projectId) + .one(); + if (Objects.isNull(project)) { + throw new RuntimeException("椤圭洰涓嶅瓨鍦�"); + } ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefId) .latestVersion().singleResult(); if (Objects.nonNull(processDefinition) && processDefinition.isSuspended()) { @@ -177,6 +186,9 @@ SysUser sysUser = SecurityUtils.getLoginUser().getUser(); identityService.setAuthenticatedUserId(sysUser.getUserId().toString()); variables.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUserId()); + + // 灏嗚椤圭洰鐨勭敵璇蜂汉锛堜笟涓绘柟锛変綔涓烘祦绋嬩腑鏌愪簺鐜妭鐨勫鐞嗕汉 + variables.put(ProcessConstants.DATA_LAUNCH, project.getCreateBy()); ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefId, projectId + "", variables); return processInstance.getId(); } @@ -687,12 +699,15 @@ vo.setTaskId(historicTasks.get(0).getId()); vo.setExecutionId(historicTasks.get(0).getExecutionId()); 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(handlerUser.getNickName()); + vo.setActualHandlerUserId(historicTasks.get(0).getAssignee()); + vo.setActualHandlerUserName(handlerUser.getNickName()); } vo.setTaskDefinitionKey(historicTasks.get(0).getTaskDefinitionKey()); this.setPromoterAndHandler(vo, historicTasks.get(0).getIdentityLinks()); @@ -754,8 +769,8 @@ SysUser handlerUser = sysUserService.selectUserById(handlerUserId); if (Objects.nonNull(handlerUser)) { - vo.setHandlerId(Arrays.asList(handlerUserId)); - vo.setHandlerName(Arrays.asList(handlerUser.getNickName())); + vo.setActualHandlerUserId(hisTaskList.get(0).getAssignee()); + vo.setActualHandlerUserName(handlerUser.getNickName()); } vo.setTaskDefinitionKey(hisTaskList.get(0).getTaskDefinitionKey()); this.setPromoterAndHandler(vo, hisTaskList.get(0).getIdentityLinks()); @@ -1053,12 +1068,12 @@ taskVO.setHandlerType(HandlerTypeEnum.USER); SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId())); if (Objects.nonNull(sysUser)) { -// taskVO.setHandlerId(sysUser.getUserId()); + handlerIds.add(sysUser.getUserId()); + handlerNames.add(sysUser.getNickName()); if (Objects.nonNull(sysUser.getDept())) { handlerUnitIds.add(sysUser.getDept().getDeptId()); handlerUnitNames.add(sysUser.getDept().getDeptName()); } -// taskVO.setHandlerName(sysUser.getNickName()); } // 缁戝畾鐨勬槸瑙掕壊锛屾煡鍑鸿鑹插悕绉� } else if (StringUtils.isNotBlank(identityLink.getGroupId())) { -- Gitblit v1.8.0