| | |
| | | package com.ycl.service.impl; |
| | | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.flowable.bpmn.model.*; |
| | | import org.flowable.bpmn.model.Process; |
| | | import org.flowable.common.engine.impl.util.CollectionUtil; |
| | | import org.flowable.engine.*; |
| | | import org.flowable.engine.history.HistoricProcessInstance; |
| | | import org.flowable.engine.repository.ProcessDefinition; |
| | |
| | | |
| | | /** |
| | | * 分页查询 |
| | | * |
| | | * @param query |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 获取流程详情 |
| | | * |
| | | * @param projectId |
| | | * @return |
| | | */ |
| | |
| | | Result result = Result.ok(); |
| | | |
| | | // 代办任务 |
| | | this.getTodoTaskList(projectProcess.getProcessInsId(),"", 5, 1, result); |
| | | this.getTodoTaskList(projectProcess.getProcessInsId(), "", 5, 1, result); |
| | | return result.data(detail); |
| | | } |
| | | |
| | |
| | | Result ok = Result.ok(); |
| | | switch (query.getTaskType()) { |
| | | case TaskTypeConstant.ALL: |
| | | this.getAllUserTask(query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName (), (int)query.getCurrentPage(), (int)query.getPageSize(), ok); |
| | | this.getAllUserTask(query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok); |
| | | break; |
| | | case TaskTypeConstant.TODO: |
| | | this.getTodoTaskList(projectProcess.getProcessInsId(), query.getTaskName(), (int)query.getPageSize(), (int)query.getCurrentPage(), ok); |
| | | this.getTodoTaskList(projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getPageSize(), (int) query.getCurrentPage(), ok); |
| | | ok.data(ok.get("taskList")); |
| | | break; |
| | | case TaskTypeConstant.CURRENT: |
| | | break; |
| | | case TaskTypeConstant.REMAINING: |
| | | this.getRemainingTask(query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName (), (int)query.getCurrentPage(), (int)query.getPageSize(), ok); |
| | | this.getRemainingTask(query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | } |
| | | 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 |
| | | 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 { |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | vos.add(taskVO); |
| | | } |
| | | result.put("taskList", vos); |
| | | } |
| | | |
| | | @Override |
| | | public Result detailByProcessInsId(com.ycl.domain.query.TaskQuery query) { |
| | | List<ProjectProcess> list = new LambdaQueryChainWrapper<>(baseMapper) |
| | | .eq(ProjectProcess::getProcessInsId, query.getProcessInsId()) |
| | | .eq(ProjectProcess::getProcessDefId, query.getProcessDefId()) |
| | | .list(); |
| | | return Result.ok().data(list); |
| | | } |
| | | |
| | | /** |
| | |
| | | * 获取所有任务 |
| | | * |
| | | * @param processDefinitionId 流程运行id |
| | | * @param processInsId 流程实例id |
| | | * @param processInsId 流程实例id |
| | | * @param pageNum |
| | | * @param pageSize |
| | | * @param result |
| | |
| | | * 查询剩余事项(未开始的任务)数量 |
| | | * |
| | | * @param processDefinitionId 流程定义id |
| | | * @param processInsId 流程实例id |
| | | * @param processInsId 流程实例id |
| | | * @return |
| | | */ |
| | | private Long getRemainingTaskNum(String processDefinitionId, String processInsId) { |
| | |
| | | } |
| | | } |
| | | } |
| | | } else if (TaskStatusEnum.FINISHED.equals(taskVO.getTaskStatus())){ |
| | | } else if (TaskStatusEnum.FINISHED.equals(taskVO.getTaskStatus())) { |
| | | for (IdentityLinkInfo identityLink : identityLinkInfos) { |
| | | // 绑定的是用户,查出用户姓名、部门 |
| | | if (StringUtils.isNotBlank(identityLink.getUserId())) { |
| | |
| | | /** |
| | | * 获取流程节点数(总任务数,不包含开始、结束等特殊的,只统计UserTask类型的) |
| | | * |
| | | * @param processDefinitionId 流程定义id |
| | | * @param processDefinitionId 流程定义id |
| | | * @return |
| | | */ |
| | | private Long getTotalTaskNum(String processDefinitionId) { |
| | |
| | | * @return |
| | | */ |
| | | private List<Task> getCurrentNodeTaskList(String processInstanceId) { |
| | | return taskService.createTaskQuery().processDefinitionId(processInstanceId).list(); |
| | | return taskService.createTaskQuery().processDefinitionId(processInstanceId).list(); |
| | | } |
| | | } |