| | |
| | | import com.ycl.domain.form.TaskDelegationForm; |
| | | import com.ycl.domain.json.TaskDelegateData; |
| | | import com.ycl.domain.vo.CustomerTaskVO; |
| | | import com.ycl.domain.vo.IndexCustomerTaskVO; |
| | | import com.ycl.domain.vo.ProjectProcessDetailVO; |
| | | import com.ycl.mapper.ProjectInfoMapper; |
| | | import com.ycl.mapper.ProjectProcessMapper; |
| | |
| | | |
| | | } |
| | | return ok; |
| | | } |
| | | |
| | | @Override |
| | | public void getIndexTodoTask(String taskName, int pageSize, int pageNum, Result result) { |
| | | TaskQuery taskQuery = taskService.createTaskQuery() |
| | | .active() |
| | | .includeProcessVariables() |
| | | .includeIdentityLinks() |
| | | .orderByTaskCreateTime().desc(); |
| | | |
| | | if (StringUtils.isNotBlank(taskName)) { |
| | | taskQuery.processDefinitionNameLike(taskName); |
| | | } |
| | | result.total(taskQuery.count()); |
| | | List<Task> taskList = taskQuery.listPage(pageSize * (pageNum - 1), pageSize); |
| | | List<IndexCustomerTaskVO> vos = new ArrayList<>(); |
| | | for (Task task : taskList) { |
| | | IndexCustomerTaskVO taskVO = new IndexCustomerTaskVO(); |
| | | // 当前流程信息 |
| | | taskVO.setTaskId(task.getId()); |
| | | taskVO.setCreateTime(task.getCreateTime()); |
| | | taskVO.setProcessDefId(task.getProcessDefinitionId()); |
| | | taskVO.setExecutionId(task.getExecutionId()); |
| | | taskVO.setTaskName(task.getName()); |
| | | taskVO.setTaskStatus(TaskStatusEnum.TODO); |
| | | // 流程定义信息 |
| | | ProcessDefinition pd = repositoryService.createProcessDefinitionQuery() |
| | | .processDefinitionId(task.getProcessDefinitionId()) |
| | | .singleResult(); |
| | | taskVO.setDeployId(pd.getDeploymentId()); |
| | | taskVO.setProcessName(pd.getName()); |
| | | taskVO.setProcessInsId(task.getProcessInstanceId()); |
| | | taskVO.setTaskDefinitionKey(task.getTaskDefinitionKey()); |
| | | |
| | | // 流程项目信息 |
| | | ProjectInfo project = baseMapper.getProjectInfo(task.getProcessInstanceId()); |
| | | if (Objects.nonNull(project)) { |
| | | taskVO.setProjectId(project.getId()); |
| | | taskVO.setProjectName(project.getProjectName()); |
| | | } |
| | | |
| | | // 流程发起人信息 |
| | | this.setPromoterInfo(taskVO); |
| | | |
| | | // 一个任务可能有多个候选人/组,所以需要使用list |
| | | List<Long> handlerIds = new ArrayList<>(2); |
| | | List<String> handlerNames = new ArrayList<>(2); |
| | | List<Long> handlerUnitIds = new ArrayList<>(2); |
| | | List<String> handlerUnitNames = new ArrayList<>(2); |
| | | |
| | | // 流程处理人信息 |
| | | List<? extends IdentityLinkInfo> identityLinks = task.getIdentityLinks(); |
| | | for (IdentityLinkInfo identityLink : identityLinks) { |
| | | // 绑定的是用户,查出用户姓名、部门 |
| | | if (StringUtils.isNotBlank(identityLink.getUserId())) { |
| | | taskVO.setHandlerType(HandlerTypeEnum.USER); |
| | | SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId())); |
| | | 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 (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) { |
| | | // 部门 |
| | | SysDept dept = sysDeptService.selectDeptById(Long.parseLong(split[1])); |
| | | if (Objects.nonNull(dept)) { |
| | | handlerUnitIds.add(dept.getDeptId()); |
| | | handlerUnitNames.add(dept.getDeptName()); |
| | | } |
| | | } |
| | | } else { |
| | | taskVO.setHandlerType(HandlerTypeEnum.ROLE); |
| | | SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId())); |
| | | if (Objects.nonNull(role)) { |
| | | handlerUnitIds.add(role.getRoleId()); |
| | | handlerUnitNames.add(role.getRoleName()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | vos.add(taskVO); |
| | | } |
| | | result.put("taskList", vos); |
| | | } |
| | | |
| | | @Override |
| | |
| | | SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId())); |
| | | if (Objects.nonNull(role)) { |
| | | handlerUnitIds.add(Long.parseLong(identityLink.getGroupId())); |
| | | handlerUnitNames.add(role.getRoleName()); |
| | | } |
| | | } |
| | | } |