From c9533d1889a36bbd671354fee081c6512c667946 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 05 十二月 2024 05:41:56 +0800 Subject: [PATCH] 流程办理回显逻辑变更:处理当前节点只拉取上一个节点及本节点的表单数据 --- business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 41 insertions(+), 2 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 103571d..50f95df 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java @@ -12,6 +12,7 @@ import com.ycl.common.core.domain.entity.SysRole; import com.ycl.common.core.domain.entity.SysUser; import com.ycl.common.enums.FlowComment; +import com.ycl.common.enums.business.HandlerTypeEnum; import com.ycl.common.enums.business.TaskStatusEnum; import com.ycl.common.utils.SecurityUtils; import com.ycl.constant.TaskTypeConstant; @@ -52,6 +53,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; +import org.springframework.util.CollectionUtils; import java.util.*; import java.util.stream.Collectors; @@ -286,6 +288,7 @@ for (IdentityLink identityLink : identityLinksForTask) { // 缁戝畾鐨勬槸鐢ㄦ埛锛屾煡鍑虹敤鎴峰鍚嶃�侀儴闂� if (StringUtils.isNotBlank(identityLink.getUserId())) { + taskVO.setHandlerType(HandlerTypeEnum.USER); SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId())); if (Objects.nonNull(sysUser)) { taskVO.setHandlerId(sysUser.getUserId()); @@ -298,6 +301,7 @@ // 缁戝畾鐨勬槸瑙掕壊鎴栬�呴儴闂� } else if (StringUtils.isNotBlank(identityLink.getGroupId())) { if (identityLink.getGroupId().startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1 + taskVO.setHandlerType(HandlerTypeEnum.DEPT); String[] split = identityLink.getGroupId().split(":"); if (split.length > 1) { // 閮ㄩ棬 @@ -310,6 +314,7 @@ } } } else { + taskVO.setHandlerType(HandlerTypeEnum.ROLE); SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId())); if (Objects.nonNull(role)) { taskVO.setHandlerUnitId(Long.parseLong(identityLink.getGroupId())); @@ -332,6 +337,30 @@ .eq(ProjectProcess::getProcessDefId, query.getProcessDefId()) .list(); return Result.ok().data(list); + } + + @Override + public Result taskIsAuditing(String processDefinitionId, String taskId) { + BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId); + Collection<Process> processes = bpmnModel.getProcesses(); + for (Process process : processes) { + Collection<FlowElement> flowElements = process.getFlowElements(); + for (FlowElement flowElement : flowElements) { + if (flowElement instanceof UserTask) { + UserTask userTask = (UserTask) flowElement; + List<ExtensionElement> extensionElements = userTask.getExtensionElements().get("flowable:properties"); + if (! CollectionUtils.isEmpty(extensionElements)) { + for (ExtensionElement extensionElement : extensionElements) { + String fieldName = extensionElement.getAttributeValue(taskId,"name"); + String fieldValue = extensionElement.getAttributeValue(taskId,"value"); + System.out.println("Field Name: " + fieldName + ", Field Value: " + fieldValue); + } + } + } + + } + } + return null; } /** @@ -387,6 +416,7 @@ for (IdentityLink identityLink : identityLinksForTask) { // 缁戝畾鐨勬槸鐢ㄦ埛锛屾煡鍑虹敤鎴峰鍚嶃�侀儴闂� if (StringUtils.isNotBlank(identityLink.getUserId())) { + taskVO.setHandlerType(HandlerTypeEnum.USER); SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId())); if (Objects.nonNull(sysUser)) { taskVO.setHandlerId(sysUser.getUserId()); @@ -399,6 +429,7 @@ // 缁戝畾鐨勬槸瑙掕壊鎴栬�呴儴闂� } else if (StringUtils.isNotBlank(identityLink.getGroupId())) { if (identityLink.getGroupId().startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1 + taskVO.setHandlerType(HandlerTypeEnum.DEPT); String[] split = identityLink.getGroupId().split(":"); if (split.length > 1) { // 閮ㄩ棬 @@ -411,6 +442,7 @@ } } } else { + taskVO.setHandlerType(HandlerTypeEnum.ROLE); SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId())); if (Objects.nonNull(role)) { taskVO.setHandlerUnitId(Long.parseLong(identityLink.getGroupId())); @@ -440,7 +472,6 @@ int startNum = pageSize * (pageNum - 1); int endNum = startNum + pageSize; List<UserTask> allUserTaskElement = this.getAllUserTaskElement(processDefinitionId); - result.total(allUserTaskElement.size()); if (startNum >= allUserTaskElement.size()) { // 濡傛灉璧峰绱㈠紩瓒呭嚭浜嗗垪琛ㄧ殑澶у皬锛岃繑鍥炰竴涓┖鍒楄〃 return new ArrayList<>(); @@ -449,6 +480,7 @@ // 妯℃嫙妯$硦鏌ヨ allUserTaskElement = allUserTaskElement.stream().filter(taskEl -> taskEl.getName().contains(taskName)).collect(Collectors.toList()); } + result.total(allUserTaskElement.size()); int end = Math.min(endNum, allUserTaskElement.size()); List<UserTask> userTasks = allUserTaskElement.subList(startNum, end); // 鏌ュ嚭娴佺▼ @@ -472,6 +504,7 @@ if (Objects.isNull(historicTask)) { // 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡 if (StringUtils.isNotBlank(userTask.getAssignee())) { + vo.setHandlerType(HandlerTypeEnum.USER); SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee())); if (Objects.nonNull(sysUser)) { vo.setHandlerId(sysUser.getUserId()); @@ -482,6 +515,7 @@ } else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) { String groupId = userTask.getCandidateGroups().get(0); if (groupId.startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1 + vo.setHandlerType(HandlerTypeEnum.DEPT); String[] split = groupId.split(":"); if (split.length > 1) { // 閮ㄩ棬 @@ -494,6 +528,7 @@ } } } else { + vo.setHandlerType(HandlerTypeEnum.ROLE); SysRole role = sysRoleService.selectRoleById(Long.parseLong(groupId)); if (Objects.nonNull(role)) { vo.setHandlerUnitId(Long.parseLong(groupId)); @@ -547,7 +582,7 @@ int startNum = pageSize * (pageNum - 1); int endNum = startNum + pageSize; List<UserTask> allUserTaskElement = this.getAllUserTaskElement(processDefinitionId); - result.total(allUserTaskElement.size()); + if (startNum >= allUserTaskElement.size()) { // 濡傛灉璧峰绱㈠紩瓒呭嚭浜嗗垪琛ㄧ殑澶у皬锛岃繑鍥炰竴涓┖鍒楄〃 return new ArrayList<>(); @@ -556,6 +591,7 @@ // 妯℃嫙妯$硦鏌ヨ allUserTaskElement = allUserTaskElement.stream().filter(taskEl -> taskEl.getName().contains(taskName)).collect(Collectors.toList()); } + result.total(allUserTaskElement.size()); int end = Math.min(endNum, allUserTaskElement.size()); List<UserTask> userTasks = allUserTaskElement.subList(startNum, end); // 鏌ュ嚭娴佺▼ @@ -579,6 +615,7 @@ if (Objects.isNull(historicTask)) { // 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡 if (StringUtils.isNotBlank(userTask.getAssignee())) { + vo.setHandlerType(HandlerTypeEnum.USER); SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee())); if (Objects.nonNull(sysUser)) { vo.setHandlerId(sysUser.getUserId()); @@ -589,6 +626,7 @@ } else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) { String groupId = userTask.getCandidateGroups().get(0); if (groupId.startsWith("dept")) { // 閮ㄩ棬鐨刬d鏄姞浜嗗墠缂�鐨勫锛歞ept:1 + vo.setHandlerType(HandlerTypeEnum.DEPT); String[] split = groupId.split(":"); if (split.length > 1) { // 閮ㄩ棬 @@ -601,6 +639,7 @@ } } } else { + vo.setHandlerType(HandlerTypeEnum.ROLE); SysRole role = sysRoleService.selectRoleById(Long.parseLong(groupId)); if (Objects.nonNull(role)) { vo.setHandlerUnitId(Long.parseLong(groupId)); -- Gitblit v1.8.0