| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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()); |
| | |
| | | } |
| | | taskVO.setHandlerName(sysUser.getNickName()); |
| | | } |
| | | // 绑定的是角色,查出角色名称 |
| | | // 绑定的是角色或者部门 |
| | | } else if (StringUtils.isNotBlank(identityLink.getGroupId())) { |
| | | SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId())); |
| | | if (Objects.nonNull(role)) { |
| | | taskVO.setHandlerUnitId(Long.parseLong(identityLink.getGroupId())); |
| | | taskVO.setHandlerUnitName("由拥有角色:【" + role.getRoleName() + "】的人处理"); |
| | | taskVO.setHandlerName("暂未处理"); |
| | | taskVO.setHandlerId(null); |
| | | if (identityLink.getGroupId().startsWith("dept")) { // 部门的id是加了前缀的如:dept:1 |
| | | taskVO.setHandlerType(HandlerTypeEnum.DEPT); |
| | | String[] split = identityLink.getGroupId().split(":"); |
| | | if (split.length > 1) { |
| | | // 部门 |
| | | SysDept dept = sysDeptService.selectDeptById(Long.parseLong(split[1])); |
| | | if (Objects.nonNull(dept)) { |
| | | taskVO.setHandlerUnitId(dept.getDeptId()); |
| | | taskVO.setHandlerUnitName(dept.getDeptName()); |
| | | taskVO.setHandlerName("暂未处理"); |
| | | taskVO.setHandlerId(null); |
| | | } |
| | | } |
| | | } else { |
| | | taskVO.setHandlerType(HandlerTypeEnum.ROLE); |
| | | SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId())); |
| | | if (Objects.nonNull(role)) { |
| | | taskVO.setHandlerUnitId(Long.parseLong(identityLink.getGroupId())); |
| | | taskVO.setHandlerUnitName("由拥有角色:【" + role.getRoleName() + "】的人处理"); |
| | | taskVO.setHandlerName("暂未处理"); |
| | | taskVO.setHandlerId(null); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | .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; |
| | | } |
| | | |
| | | /** |
| | |
| | | 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()); |
| | |
| | | // 绑定的是角色或者部门 |
| | | } else if (StringUtils.isNotBlank(identityLink.getGroupId())) { |
| | | if (identityLink.getGroupId().startsWith("dept")) { // 部门的id是加了前缀的如:dept:1 |
| | | taskVO.setHandlerType(HandlerTypeEnum.DEPT); |
| | | String[] split = identityLink.getGroupId().split(":"); |
| | | if (split.length > 1) { |
| | | // 部门 |
| | |
| | | } |
| | | } |
| | | } else { |
| | | taskVO.setHandlerType(HandlerTypeEnum.ROLE); |
| | | SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId())); |
| | | if (Objects.nonNull(role)) { |
| | | taskVO.setHandlerUnitId(Long.parseLong(identityLink.getGroupId())); |
| | |
| | | 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<>(); |
| | |
| | | // 模拟模糊查询 |
| | | 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); |
| | | // 查出流程 |
| | |
| | | if (Objects.isNull(historicTask)) { |
| | | // 未开始的任务,其关联的用户组这些都可以从UserTask中拿到,因为本身未开始的任务是没有task的,所以这里直接查 |
| | | 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()); |
| | |
| | | } else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) { |
| | | String groupId = userTask.getCandidateGroups().get(0); |
| | | if (groupId.startsWith("dept")) { // 部门的id是加了前缀的如:dept:1 |
| | | vo.setHandlerType(HandlerTypeEnum.DEPT); |
| | | String[] split = groupId.split(":"); |
| | | if (split.length > 1) { |
| | | // 部门 |
| | |
| | | } |
| | | } |
| | | } else { |
| | | vo.setHandlerType(HandlerTypeEnum.ROLE); |
| | | SysRole role = sysRoleService.selectRoleById(Long.parseLong(groupId)); |
| | | if (Objects.nonNull(role)) { |
| | | vo.setHandlerUnitId(Long.parseLong(groupId)); |
| | |
| | | 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<>(); |
| | |
| | | // 模拟模糊查询 |
| | | 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); |
| | | // 查出流程 |
| | |
| | | if (Objects.isNull(historicTask)) { |
| | | // 未开始的任务,其关联的用户组这些都可以从UserTask中拿到,因为本身未开始的任务是没有task的,所以这里直接查 |
| | | 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()); |
| | |
| | | } else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) { |
| | | String groupId = userTask.getCandidateGroups().get(0); |
| | | if (groupId.startsWith("dept")) { // 部门的id是加了前缀的如:dept:1 |
| | | vo.setHandlerType(HandlerTypeEnum.DEPT); |
| | | String[] split = groupId.split(":"); |
| | | if (split.length > 1) { |
| | | // 部门 |
| | |
| | | } |
| | | } |
| | | } else { |
| | | vo.setHandlerType(HandlerTypeEnum.ROLE); |
| | | SysRole role = sysRoleService.selectRoleById(Long.parseLong(groupId)); |
| | | if (Objects.nonNull(role)) { |
| | | vo.setHandlerUnitId(Long.parseLong(groupId)); |