From 3659ccadb8b4e58dd654c151b95bd91d110b8327 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 11 二月 2025 16:29:01 +0800 Subject: [PATCH] 业主单位表达式处理逻辑调整 --- business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 84 +++++++++++++++++++++++------------------ 1 files changed, 47 insertions(+), 37 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 dab2ebe..4dedffa 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java @@ -211,7 +211,7 @@ //娴嬭瘯瀹圭己 variables.put("miss",true); // 灏嗚椤圭洰鐨勭敵璇蜂汉锛堜笟涓绘柟锛変綔涓烘祦绋嬩腑鏌愪簺鐜妭鐨勫鐞嗕汉 - variables.put(ProcessConstants.DATA_LAUNCH, createBy); + variables.put(ProcessConstants.DATA_LAUNCH, "dept:" + createBy); ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefId, projectId + "", variables); return processInstance.getId(); } @@ -740,24 +740,25 @@ // 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡 if (StringUtils.isNotBlank(userTask.getAssignee())) { vo.setHandlerType(HandlerTypeEnum.USER); - // 澶勭悊鍙橀噺琛ㄨ揪寮� - if (userTask.getAssignee().contains(ProcessConstants.DATA_LAUNCH)) { - this.varReview(vo, projectId, processInsId); - } else { - SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee())); - if (Objects.nonNull(sysUser)) { - handlerIds.add(sysUser.getUserId()); - handlerNames.add(sysUser.getNickName()); - if (Objects.nonNull(sysUser.getDept())) { - handlerUnitIds.add(sysUser.getDept().getDeptId()); - handlerUnitNames.add(sysUser.getDept().getDeptName()); - } + SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee())); + if (Objects.nonNull(sysUser)) { + handlerIds.add(sysUser.getUserId()); + handlerNames.add(sysUser.getNickName()); + if (Objects.nonNull(sysUser.getDept())) { + handlerUnitIds.add(sysUser.getDept().getDeptId()); + handlerUnitNames.add(sysUser.getDept().getDeptName()); } } + } else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) { List<String> groupIds = userTask.getCandidateGroups(); for (String groupId : groupIds) { - if (groupId.startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1 + // 澶勭悊鍙橀噺琛ㄨ揪寮忥紝DATA_LAUNCH鍙彲鑳芥槸閮ㄩ棬涓嶄細鏄鑹诧紝鍥犱负浠h〃鐨勬槸涓氫富閮ㄩ棬 + if (groupId.contains(ProcessConstants.DATA_LAUNCH)) { + vo.setHandlerType(HandlerTypeEnum.DEPT); + this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT); + } + else if (groupId.startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1 vo.setHandlerType(HandlerTypeEnum.DEPT); String[] split = groupId.split(":"); if (split.length > 1) { @@ -766,7 +767,6 @@ if (Objects.nonNull(dept)) { handlerUnitIds.add(dept.getDeptId()); handlerUnitNames.add(dept.getDeptName()); - } } } else { @@ -911,16 +911,13 @@ // 娴佺▼澶勭悊浜轰俊鎭� List<IdentityLink> identityLinksForTask = taskService.getIdentityLinksForTask(task.getId()); for (IdentityLinkInfo identityLink : identityLinksForTask) { -// if (StringUtils.isBlank(((IdentityLinkEntityImpl)identityLink).getId())) { -// continue; -// } // 缁戝畾鐨勬槸鐢ㄦ埛锛屾煡鍑虹敤鎴峰鍚嶃�侀儴闂� if (StringUtils.isNotBlank(identityLink.getUserId())) { - // 澶勭悊鍙橀噺琛ㄨ揪寮� - if (identityLink.getUserId().contains(ProcessConstants.DATA_LAUNCH)) { - this.varReview(taskVO, projectId, task.getProcessInstanceId()); - continue; - } + // 澶勭悊鍙橀噺琛ㄨ揪寮忥紝杩愯涓殑浠诲姟鏃犻渶鍐嶅鐞嗚〃杈惧紡浜嗭紝flowable宸茬粡鑷姩鏍规嵁鍙橀噺璁剧疆浜� +// if (identityLink.getUserId().contains(ProcessConstants.DATA_LAUNCH)) { +// this.varReview(taskVO, projectId, task.getProcessInstanceId()); +// continue; +// } taskVO.setHandlerType(HandlerTypeEnum.USER); SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId())); if (Objects.nonNull(sysUser)) { @@ -1398,13 +1395,6 @@ // 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡 if (StringUtils.isNotBlank(userTask.getAssignee())) { vo.setHandlerType(HandlerTypeEnum.USER); - - // 澶勭悊鍙橀噺琛ㄨ揪寮� - if (userTask.getAssignee().contains(ProcessConstants.DATA_LAUNCH)) { - this.varReview(vo, projectId, processInsId); - vos.add(vo); - continue; - } SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee())); if (Objects.nonNull(sysUser)) { vo.getHandlerId().add(sysUser.getUserId()); @@ -1417,7 +1407,12 @@ } else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) { List<String> groupIds = userTask.getCandidateGroups(); for (String groupId : groupIds) { - if (groupId.startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1 + // 澶勭悊鍙橀噺琛ㄨ揪寮忥紝DATA_LAUNCH鍙彲鑳芥槸閮ㄩ棬涓嶄細鏄鑹诧紝鍥犱负浠h〃鐨勬槸涓氫富閮ㄩ棬 + if (groupId.contains(ProcessConstants.DATA_LAUNCH)) { + vo.setHandlerType(HandlerTypeEnum.DEPT); + this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT); + } + else if (groupId.startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1 vo.setHandlerType(HandlerTypeEnum.DEPT); String[] split = groupId.split(":"); if (split.length > 1) { @@ -1458,11 +1453,11 @@ } /** - * 澶勭悊娴佺▼鍙橀噺鐨勫鐞嗕汉鍥炴樉 + * 澶勭悊娴佺▼鍙橀噺-涓氫富鍗曚綅 * * @param vo */ - private void varReview(CustomerTaskVO vo, Long projectId, String processInsId) { + private void varYzReview(CustomerTaskVO vo, Long projectId, String processInsId, HandlerTypeEnum type) { ProjectProcess projectProcess = new LambdaQueryChainWrapper<>(projectProcessMapper) .eq(ProjectProcess::getProjectId, projectId) .eq(ProjectProcess::getProcessInsId, processInsId) @@ -1470,11 +1465,26 @@ if (Objects.isNull(projectProcess)) { throw new RuntimeException("璇ユ祦绋嬫湭缁戝畾椤圭洰"); } - SysUser user = sysUserService.selectUserById(projectProcess.getDataLaunch()); - if (Objects.nonNull(user) && Objects.nonNull(user.getDept())) { - vo.getHandlerName().add(user.getDept().getDeptName()); - vo.getHandlerId().add(user.getDept().getDeptId()); + if (HandlerTypeEnum.USER.equals(type) || HandlerTypeEnum.FIX_USER.equals(type)) { + SysUser user = sysUserService.selectUserById(projectProcess.getDataLaunch()); + if (Objects.nonNull(user) && Objects.nonNull(user.getDept())) { + vo.getHandlerName().add(user.getNickName()); + vo.getHandlerId().add(user.getUserId()); + } + } else if (HandlerTypeEnum.DEPT.equals(type)) { + SysDept dept = deptService.selectDeptById(projectProcess.getDataLaunch()); + if (Objects.nonNull(dept)) { + vo.getHandlerUnitId().add(dept.getDeptId()); + vo.getHandlerUnitName().add(dept.getDeptName()); + } + } else if (HandlerTypeEnum.ROLE.equals(type)) { + SysRole role = sysRoleService.selectRoleById(projectProcess.getDataLaunch()); + if (Objects.nonNull(role)) { + vo.getHandlerUnitId().add(role.getRoleId()); + vo.getHandlerUnitName().add(role.getRoleName()); + } } + this.distinctVo(vo); } -- Gitblit v1.8.0