From 23b688e436a89845e92d861adb5875e625e90d9f Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期五, 14 三月 2025 11:43:18 +0800 Subject: [PATCH] Merge branch 'dev' --- flowable/src/main/java/com/ycl/service/common/TaskCommonService.java | 45 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 42 insertions(+), 3 deletions(-) diff --git a/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java b/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java index 9debdb2..a789590 100644 --- a/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java +++ b/flowable/src/main/java/com/ycl/service/common/TaskCommonService.java @@ -2,6 +2,7 @@ import com.alibaba.fastjson2.JSONObject; import com.ycl.common.constant.ProcessConstants; +import com.ycl.common.core.domain.entity.SysDictData; import com.ycl.common.core.domain.entity.SysUser; import com.ycl.common.enums.FlowComment; import com.ycl.common.enums.business.TaskStatusEnum; @@ -10,6 +11,9 @@ import com.ycl.domain.vo.FormDetailVO; import com.ycl.flow.FindNextNodeUtil; import com.ycl.service.ISysFormService; +import com.ycl.system.service.ISysDeptService; +import com.ycl.system.service.ISysDictDataService; +import com.ycl.system.service.ISysDictTypeService; import com.ycl.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.flowable.bpmn.model.*; @@ -44,6 +48,8 @@ private final TaskService taskService; private final HistoryService historyService; private final ISysUserService sysUserService; + private final ISysDeptService deptService; + private final ISysDictTypeService sysDictDService; /** * 閫氳繃褰撳墠鑺傜偣瀹氫箟key锛岃幏鍙栧叾涓婁竴涓妭鐐圭殑淇℃伅锛屽鏋滃墠闈㈡槸骞惰鐨勪細杩斿洖澶氫釜(鍖呭惈褰撳墠鑺傜偣) @@ -105,6 +111,8 @@ } formDetailVO.setCanJump(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_JUMP_TEXT)); formDetailVO.setCanWait(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_WAIT_TEXT)); + formDetailVO.setCanHangup(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_HANGUP_TEXT)); + formDetailVO.setUserTask(currentElement); defKeys.add(formDetailVO); this.beforeNodeInfo(currentElement, defKeys); @@ -174,7 +182,9 @@ formDetailVO.setBeforeNodeName(incomingFlow.getSourceFlowElement().getName()); formDetailVO.setCanJump(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_JUMP_TEXT)); formDetailVO.setCanWait(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_WAIT_TEXT)); + formDetailVO.setUserTask((UserTask) incomingFlow.getSourceFlowElement()); defKeys.add(formDetailVO); + continue; } else { beforeNodeInfo(incomingFlow.getSourceFlowElement(), defKeys); } @@ -190,7 +200,9 @@ formDetailVO.setBeforeNodeName(incomingFlow.getSourceFlowElement().getName()); formDetailVO.setCanJump(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_JUMP_TEXT)); formDetailVO.setCanWait(this.checkHasExeProperty(currentElement.getExtensionElements().get("properties"), ProcessConstants.EXTENSION_PROPERTY_CAN_WAIT_TEXT)); + formDetailVO.setUserTask((UserTask) incomingFlow.getSourceFlowElement()); defKeys.add(formDetailVO); + continue; } else { beforeNodeInfo(incomingFlow.getSourceFlowElement(), defKeys); } @@ -201,7 +213,7 @@ /** - * 鑾峰彇褰撳墠鑺傜偣鐨勪笂涓�鑺傜偣id锛屼笉鍙嶆倲褰撳墠鑺傜偣淇℃伅锛屽鏋滃墠闈㈡槸骞惰锛岄偅涔堜細杩斿洖澶氫釜 + * 鑾峰彇褰撳墠鑺傜偣鐨勪笂涓�鑺傜偣id锛屼笉杩斿洖褰撳墠鑺傜偣淇℃伅锛屽鏋滃墠闈㈡槸骞惰锛岄偅涔堜細杩斿洖澶氫釜 * * @param processDefId 娴佺▼瀹氫箟id * @param currentNodeDefId 褰撳墠鑺傜偣瀹氫箟id @@ -311,15 +323,42 @@ * @return */ public List<String> getCurrentUserGroups() { - String deptId = "dept:" + SecurityUtils.getLoginUser().getDeptId(); List<String> roleIds; if (CollectionUtils.isEmpty(SecurityUtils.getLoginUser().getUser().getRoles())) { roleIds = new ArrayList<>(1); } else { roleIds = SecurityUtils.getLoginUser().getUser().getRoles().stream().map(role -> role.getRoleId() + "").collect(Collectors.toList()); } - roleIds.add(deptId); + if (Objects.nonNull(SecurityUtils.getLoginUser().getDeptId())) { + List<Long> deptIds = deptService.getChildIds(SecurityUtils.getLoginUser().getDeptId()); + List<String> deptIdList = deptIds.stream().map(id -> "dept:" + id).collect(Collectors.toList()); + roleIds.addAll(deptIdList); + } return roleIds; } + /** + * 澶勭悊娴佺▼涓殑鍙橀噺 + * + * @param variables + * @param taskDefKey + * @return + */ + public Map<String, Object> handleVar(Map<String, Object> variables, String taskDefKey) { + Map<String, Object> processVariables = new HashMap<>(); + //鏌ュ嚭瀛楀吀涓渶瑕佹敞鍏ョ殑瀛楁淇℃伅 + List<String> dictList = sysDictDService.selectDictDataByType("flow_variables").stream().map(SysDictData::getDictValue).collect(Collectors.toList()); + Map<String, Object> newV = new HashMap<>(2); + if (!org.springframework.util.CollectionUtils.isEmpty(variables)) { + for (String key : variables.keySet()) { + newV.put(taskDefKey + "&" + key, variables.get(key)); + //瀛楀吀閲屾湁灏辨斁鍏ユ祦绋嬪彉閲忎腑 + if (!org.apache.commons.collections4.CollectionUtils.isEmpty(dictList) && dictList.contains(key)) { + processVariables.put(key,variables.get(key)); + } + } + } + return processVariables; + } + } -- Gitblit v1.8.0