工作流程审核不通过、预告警单处理、终端周期检测等需求
1、提交了主pom,因为需要引入达梦数据量; 2、提交了gateway的配置文件,因为部分接口没有添加到权限中,待后续增加后再注释
This commit is contained in:
@@ -1,16 +1,25 @@
|
||||
package com.njcn.bpm.controller;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njcn.bpm.pojo.dto.PageResult;
|
||||
import com.njcn.bpm.pojo.param.instance.BpmProcessInstancePageParam;
|
||||
import com.njcn.bpm.pojo.param.task.*;
|
||||
import com.njcn.bpm.pojo.po.BpmCategory;
|
||||
import com.njcn.bpm.pojo.po.BpmForm;
|
||||
import com.njcn.bpm.pojo.vo.TodoVO;
|
||||
import com.njcn.bpm.pojo.vo.instance.BpmProcessInstanceVO;
|
||||
import com.njcn.bpm.pojo.vo.task.BpmTaskVO;
|
||||
import com.njcn.bpm.service.IBpmCategoryService;
|
||||
import com.njcn.bpm.service.IBpmFormService;
|
||||
import com.njcn.bpm.service.IBpmProcessDefinitionService;
|
||||
import com.njcn.bpm.service.task.IBpmProcessInstanceService;
|
||||
import com.njcn.bpm.service.task.IBpmTaskService;
|
||||
import com.njcn.bpm.utils.BpmProcessInstanceConvert;
|
||||
import com.njcn.bpm.utils.BpmTaskConvert;
|
||||
import com.njcn.bpm.utils.CollectionUtils;
|
||||
import com.njcn.bpm.utils.TodoVOConvert;
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
@@ -30,6 +39,7 @@ import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
import org.flowable.engine.repository.ProcessDefinition;
|
||||
import org.flowable.engine.runtime.ProcessInstance;
|
||||
import org.flowable.task.api.Task;
|
||||
import org.flowable.task.api.TaskInfo;
|
||||
@@ -42,6 +52,7 @@ import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@@ -74,6 +85,12 @@ public class BpmTaskController extends BaseController {
|
||||
@Resource
|
||||
private DeptFeignClient deptFeignClient;
|
||||
|
||||
@Resource
|
||||
private IBpmProcessDefinitionService processDefinitionService;
|
||||
|
||||
@Resource
|
||||
private IBpmCategoryService categoryService;
|
||||
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/todoList")
|
||||
@@ -100,6 +117,82 @@ public class BpmTaskController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/todoAllList")
|
||||
@ApiOperation("获取所有待办任务")
|
||||
public HttpResult<List<BpmTaskVO>> todoAllList() {
|
||||
String methodDescribe = getMethodDescribe("todoAllList");
|
||||
List<Task> pageResult = taskService.todoAllList(RequestUtil.getUserIndex());
|
||||
if (CollUtil.isEmpty(pageResult)) {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, new ArrayList<>(), methodDescribe);
|
||||
}
|
||||
// 拼接数据
|
||||
Map<String, ProcessInstance> processInstanceMap = processInstanceService.getProcessInstanceMap(
|
||||
convertSet(pageResult, Task::getProcessInstanceId));
|
||||
List<UserVO> userList = userFeignClient.getUserVOByIdList(convertList(processInstanceMap.values(), ProcessInstance::getStartUserId)).getData();
|
||||
Map<String, UserVO> userMap = CollectionUtils.convertMap(userList, UserVO::getId);
|
||||
List<BpmTaskVO> bpmTaskVOPageResult = BpmTaskConvert.INSTANCE.buildTodoTaskList(pageResult, processInstanceMap, userMap,businessCommonFeignClient);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, bpmTaskVOPageResult, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取全部待办任务
|
||||
* 1. 待办工作流程
|
||||
* 2. 审核不通过的流程,需重新编辑并发起
|
||||
* 3. 预告警事件待办
|
||||
* 4. 终端周期到期待检测
|
||||
* 5. todo... 可能电能质量问题后续也要想办法搜集进来
|
||||
*/
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/allTodoList")
|
||||
@ApiOperation("获取全部待办任务")
|
||||
@ApiImplicitParam(name = "bpmTaskQueryParam", value = "查询参数", required = true)
|
||||
public HttpResult<List<TodoVO>> allTodoList() {
|
||||
String methodDescribe = getMethodDescribe("allTodoList");
|
||||
List<TodoVO> result = new ArrayList<>();
|
||||
// 获取当前用户所有待办工作流程
|
||||
HttpResult<List<BpmTaskVO>> todoAllList = this.todoAllList();
|
||||
if(CollectionUtil.isNotEmpty(todoAllList.getData())){
|
||||
// 转为统一的todoVO3
|
||||
result.addAll(TodoVOConvert.convertByBpmTaskVO(todoAllList.getData()));
|
||||
}
|
||||
// 获取当前用户所有不通过的工作流程
|
||||
List<BpmProcessInstanceVO> rejectProcessInstanceList = getRejectProcessInstanceList();
|
||||
if(CollectionUtil.isNotEmpty(rejectProcessInstanceList)){
|
||||
// 转为统一的todoVO3
|
||||
result.addAll(TodoVOConvert.convertByBpmProcessInstance(rejectProcessInstanceList));
|
||||
}
|
||||
// 获取没有流程的一些待办信息
|
||||
result.addAll(businessCommonFeignClient.getTodoBusiness().getData());
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取当前用户所有的不通过流程
|
||||
*/
|
||||
private List<BpmProcessInstanceVO> getRejectProcessInstanceList() {
|
||||
// 先获取当前用户所有审核不通过的流程实例ID
|
||||
Set<String> instanceIdSet = businessCommonFeignClient.getAllRejectInstanceId().getData();
|
||||
if(CollUtil.isEmpty(instanceIdSet)){
|
||||
return new ArrayList<>();
|
||||
}
|
||||
List<HistoricProcessInstance> instances = processInstanceService.getRejectProcessInstanceList(RequestUtil.getUserIndex(),instanceIdSet);
|
||||
if (CollUtil.isEmpty(instances)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
// 拼接返回
|
||||
Map<String, List<Task>> taskMap = taskService.getTaskMapByProcessInstanceIds(
|
||||
convertList(instances, HistoricProcessInstance::getId));
|
||||
Map<String, ProcessDefinition> processDefinitionMap = processDefinitionService.getProcessDefinitionMap(
|
||||
convertSet(instances, HistoricProcessInstance::getProcessDefinitionId));
|
||||
Map<String, BpmCategory> categoryMap = categoryService.getCategoryMap(
|
||||
convertSet(processDefinitionMap.values(), ProcessDefinition::getCategory));
|
||||
return BpmProcessInstanceConvert.INSTANCE.buildProcessInstancePage(instances, processDefinitionMap, categoryMap, taskMap, null, null,businessCommonFeignClient);
|
||||
}
|
||||
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/doneList")
|
||||
|
||||
@@ -97,6 +97,10 @@ public interface IBpmProcessInstanceService {
|
||||
* @return 流程实例的分页
|
||||
*/
|
||||
PageResult<HistoricProcessInstance> getProcessInstancePage(String userId, BpmProcessInstancePageParam bpmProcessInstancePageParam);
|
||||
|
||||
List<HistoricProcessInstance> getRejectProcessInstanceList(String userIndex, Set<String> instanceIdSet);
|
||||
|
||||
|
||||
//
|
||||
// /**
|
||||
// * 创建流程实例(提供给前端)
|
||||
@@ -162,4 +166,5 @@ public interface IBpmProcessInstanceService {
|
||||
*/
|
||||
void delete(String id, String reason);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -175,6 +175,14 @@ public interface IBpmTaskService {
|
||||
* @return 子任务列表
|
||||
*/
|
||||
List<Task> getTaskListByParentTaskId(String parentTaskId);
|
||||
|
||||
/**
|
||||
* 根据用户id查询该用户所有的待办事项
|
||||
*
|
||||
* @param userIndex 用户id
|
||||
* @return 所有待办任务
|
||||
*/
|
||||
List<Task> todoAllList(String userIndex);
|
||||
//
|
||||
// /**
|
||||
// * 通过任务 ID,查询任务名 Map
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.njcn.bpm.constant.BpmConstants;
|
||||
import com.njcn.bpm.enums.BpmDeleteReasonEnum;
|
||||
import com.njcn.bpm.enums.BpmProcessInstanceStatusEnum;
|
||||
import com.njcn.bpm.enums.BpmResponseEnum;
|
||||
import com.njcn.bpm.enums.BpmTaskStatusEnum;
|
||||
import com.njcn.bpm.event.BpmProcessInstanceEventPublisher;
|
||||
import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
|
||||
import com.njcn.bpm.pojo.dto.PageResult;
|
||||
@@ -129,9 +130,13 @@ public class BpmProcessInstanceServiceImpl implements IBpmProcessInstanceService
|
||||
if (StrUtil.isNotEmpty(bpmProcessInstancePageParam.getCategory())) {
|
||||
processInstanceQuery.processDefinitionCategory(bpmProcessInstancePageParam.getCategory());
|
||||
}
|
||||
|
||||
if (bpmProcessInstancePageParam.getStatus() != null) {
|
||||
processInstanceQuery.variableValueEquals(BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, bpmProcessInstancePageParam.getStatus());
|
||||
}
|
||||
//流程状态排除不通过的,不通过会放在待办中,一直到该流程通过
|
||||
processInstanceQuery.variableValueNotEquals(BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, BpmTaskStatusEnum.REJECT.getStatus());
|
||||
|
||||
|
||||
String beginTimeStr = bpmProcessInstancePageParam.getSearchBeginTime();
|
||||
String endTimeStr = bpmProcessInstancePageParam.getSearchEndTime();
|
||||
@@ -150,6 +155,21 @@ public class BpmProcessInstanceServiceImpl implements IBpmProcessInstanceService
|
||||
return new PageResult<>(processInstanceList, processInstanceCount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<HistoricProcessInstance> getRejectProcessInstanceList(String userId, Set<String> instanceIdSet) {
|
||||
HistoricProcessInstanceQuery processInstanceQuery = historyService.createHistoricProcessInstanceQuery()
|
||||
// 只查询当前用户的流程实例
|
||||
.startedBy(userId)
|
||||
.includeProcessVariables()
|
||||
// 只查询已驳回的流程实例
|
||||
.variableValueEquals(BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, BpmTaskStatusEnum.REJECT.getStatus())
|
||||
//加上从业务表中产寻到的不通过的实例id
|
||||
.processInstanceIds(instanceIdSet)
|
||||
.processInstanceTenantId(FlowableUtils.getTenantId())
|
||||
.orderByProcessInstanceStartTime().desc();
|
||||
return processInstanceQuery.list();
|
||||
}
|
||||
|
||||
// @Override
|
||||
// @Transactional(rollbackFor = Exception.class)
|
||||
// public String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqVO createReqVO) {
|
||||
@@ -291,8 +311,8 @@ public class BpmProcessInstanceServiceImpl implements IBpmProcessInstanceService
|
||||
Integer processInstanceStatus = BpmProcessInstanceStatusEnum.APPROVE.getStatus();
|
||||
Map<String, Object> processVariables = instance.getProcessVariables();
|
||||
if (processVariables.containsKey(BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS)) {
|
||||
Integer stata =Integer.valueOf(processVariables.get(BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS).toString());
|
||||
if (BpmProcessInstanceStatusEnum.REJECT.getStatus()==stata) {
|
||||
Integer stata = Integer.valueOf(processVariables.get(BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS).toString());
|
||||
if (BpmProcessInstanceStatusEnum.REJECT.getStatus() == stata) {
|
||||
processInstanceStatus = BpmProcessInstanceStatusEnum.REJECT.getStatus();
|
||||
}
|
||||
}
|
||||
@@ -306,7 +326,7 @@ public class BpmProcessInstanceServiceImpl implements IBpmProcessInstanceService
|
||||
// 3. 发送流程实例的状态事件
|
||||
// 注意:此时如果去查询 ProcessInstance 的话,字段是不全的,所以去查询了 HistoricProcessInstance
|
||||
// 在审核不通过时,会触该信息,设置在审核通过时,才发送
|
||||
if(BpmProcessInstanceStatusEnum.APPROVE.getStatus()==processInstanceStatus){
|
||||
if (BpmProcessInstanceStatusEnum.APPROVE.getStatus() == processInstanceStatus) {
|
||||
HistoricProcessInstance processInstance = getHistoricProcessInstance(instance.getId());
|
||||
processInstanceEventPublisher.sendProcessInstanceResultEvent(
|
||||
BpmProcessInstanceConvert.INSTANCE.buildProcessInstanceStatusEvent(this, processInstance, processInstanceStatus));
|
||||
|
||||
@@ -112,6 +112,17 @@ public class BpmTaskServiceImpl implements IBpmTaskService {
|
||||
return new PageResult<>(tasks, count);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Task> todoAllList(String userIndex) {
|
||||
TaskQuery taskQuery = taskService.createTaskQuery()
|
||||
.taskAssignee(userIndex) // 分配给自己
|
||||
.active()
|
||||
.includeProcessVariables()
|
||||
.orderByTaskCreateTime().desc(); // 创建时间倒序
|
||||
return taskQuery.list();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public PageResult<HistoricTaskInstance> getTaskDonePage(String userId, BpmTaskParam.BpmTaskQueryParam bpmTaskQueryParam) {
|
||||
HistoricTaskInstanceQuery taskQuery = historyService.createHistoricTaskInstanceQuery()
|
||||
@@ -679,8 +690,8 @@ public class BpmTaskServiceImpl implements IBpmTaskService {
|
||||
/**
|
||||
* 创建加签子任务
|
||||
*
|
||||
* @param userIds 被加签的用户 ID
|
||||
* @param taskEntity 被加签的任务
|
||||
* @param userIds 被加签的用户 ID
|
||||
* @param taskEntity 被加签的任务
|
||||
*/
|
||||
private void createSignTaskList(List<String> userIds, TaskEntityImpl taskEntity) {
|
||||
if (CollUtil.isEmpty(userIds)) {
|
||||
@@ -709,7 +720,7 @@ public class BpmTaskServiceImpl implements IBpmTaskService {
|
||||
// 2.1 向前加签,设置审批人
|
||||
if (BpmTaskSignTypeEnum.BEFORE.getType().equals(parentTask.getScopeType())) {
|
||||
task.setAssignee(assignee);
|
||||
// 2.2 向后加签,设置 owner 不设置 assignee 是因为不能同时审批,需要等父任务完成
|
||||
// 2.2 向后加签,设置 owner 不设置 assignee 是因为不能同时审批,需要等父任务完成
|
||||
} else {
|
||||
task.setOwner(assignee);
|
||||
}
|
||||
@@ -811,6 +822,7 @@ public class BpmTaskServiceImpl implements IBpmTaskService {
|
||||
return taskService.createNativeTaskQuery().sql(sql).parameter("parentTaskId", parentTaskId).list();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取子任务个数
|
||||
*
|
||||
|
||||
@@ -70,6 +70,41 @@ public interface BpmProcessInstanceConvert {
|
||||
return vpPageResult;
|
||||
}
|
||||
|
||||
default List<BpmProcessInstanceVO> buildProcessInstancePage(List<HistoricProcessInstance> instances,
|
||||
Map<String, ProcessDefinition> processDefinitionMap,
|
||||
Map<String, BpmCategory> categoryMap,
|
||||
Map<String, List<Task>> taskMap,
|
||||
Map<String, UserVO> userMap,
|
||||
Map<String, Dept> deptMap,
|
||||
BusinessCommonFeignClient businessCommonFeignClient) {
|
||||
List<BpmProcessInstanceVO> vpInstancesResult = BeanUtils.toBean(instances, BpmProcessInstanceVO.class);
|
||||
for (int i = 0; i <instances.size(); i++) {
|
||||
BpmProcessInstanceVO respVO = vpInstancesResult.get(i);
|
||||
respVO.setStatus(FlowableUtils.getProcessInstanceStatus(instances.get(i)));
|
||||
MapUtils.findAndThen(processDefinitionMap, respVO.getProcessDefinitionId(),
|
||||
processDefinition -> respVO.setCategory(processDefinition.getCategory()));
|
||||
MapUtils.findAndThen(categoryMap, respVO.getCategory(), category -> respVO.setCategoryName(category.getName()));
|
||||
respVO.setTasks(BeanUtils.toBean(taskMap.get(respVO.getId()), BpmProcessInstanceVO.Task.class));
|
||||
// user
|
||||
if (userMap != null) {
|
||||
UserVO startUser = userMap.get(instances.get(i).getStartUserId());
|
||||
if (startUser != null) {
|
||||
respVO.setStartUser(BeanUtils.toBean(startUser, BpmProcessInstanceVO.User.class));
|
||||
MapUtils.findAndThen(deptMap, startUser.getDeptId(), dept -> respVO.getStartUser().setDeptName(dept.getName()));
|
||||
}
|
||||
}
|
||||
String processDefinitionId = respVO.getProcessDefinitionId();
|
||||
String key = processDefinitionId.substring(0,processDefinitionId.lastIndexOf(":"));
|
||||
key = key.substring(0,key.lastIndexOf(":"));
|
||||
BpmInstanceInfo instanceInfo = businessCommonFeignClient.getInstanceInfo(key, respVO.getBusinessKey()).getData();
|
||||
if(Objects.nonNull(instanceInfo)){
|
||||
respVO.setHistoryInstanceId(instanceInfo.getHistoryInstanceId());
|
||||
respVO.setInstanceSign(instanceInfo.getInstanceSign());
|
||||
}
|
||||
}
|
||||
return vpInstancesResult;
|
||||
}
|
||||
|
||||
default BpmProcessInstanceVO buildProcessInstance(HistoricProcessInstance processInstance,
|
||||
ProcessDefinition processDefinition,
|
||||
BpmProcessDefinitionInfo processDefinitionExt,
|
||||
|
||||
@@ -72,6 +72,31 @@ public interface BpmTaskConvert {
|
||||
|
||||
}
|
||||
|
||||
default List<BpmTaskVO> buildTodoTaskList(List<Task> taskList,
|
||||
Map<String, ProcessInstance> processInstanceMap,
|
||||
Map<String, UserVO> userMap,
|
||||
BusinessCommonFeignClient businessCommonFeignClient) {
|
||||
|
||||
return BeanUtils.toBean(taskList, BpmTaskVO.class, taskVO -> {
|
||||
ProcessInstance processInstance = processInstanceMap.get(taskVO.getProcessInstanceId());
|
||||
if (processInstance == null) {
|
||||
return;
|
||||
}
|
||||
taskVO.setProcessInstance(BeanUtils.toBean(processInstance, BpmTaskVO.ProcessInstance.class));
|
||||
UserVO startUserVO = userMap.get(processInstance.getStartUserId());
|
||||
taskVO.getProcessInstance().setStartUser(BeanUtils.toBean(startUserVO, BpmProcessInstanceVO.User.class));
|
||||
String processDefinitionId = taskVO.getProcessInstance().getProcessDefinitionId();
|
||||
String key = processDefinitionId.substring(0,processDefinitionId.lastIndexOf(":"));
|
||||
key = key.substring(0,key.lastIndexOf(":"));
|
||||
BpmInstanceInfo instanceInfo = businessCommonFeignClient.getInstanceInfo(key, processInstance.getBusinessKey()).getData();
|
||||
if(Objects.nonNull(instanceInfo)){
|
||||
taskVO.setHistoryInstanceId(instanceInfo.getHistoryInstanceId());
|
||||
taskVO.setInstanceSign(instanceInfo.getInstanceSign());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.njcn.bpm.utils;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.njcn.bpm.pojo.vo.TodoVO;
|
||||
import com.njcn.bpm.pojo.vo.instance.BpmProcessInstanceVO;
|
||||
import com.njcn.bpm.pojo.vo.task.BpmTaskVO;
|
||||
import com.njcn.supervision.enums.SupervisionKeyEnum;
|
||||
import com.njcn.web.utils.RequestUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 实现将各类型的数据转为待办事项
|
||||
*/
|
||||
public class TodoVOConvert {
|
||||
|
||||
/**
|
||||
* 将BpmTaskVO 转为 TodoVO
|
||||
*
|
||||
* @param bpmTaskVOS 待办流程列表
|
||||
*/
|
||||
public static List<TodoVO> convertByBpmTaskVO(List<BpmTaskVO> bpmTaskVOS) {
|
||||
if (CollectionUtil.isEmpty(bpmTaskVOS)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return bpmTaskVOS.stream().map(temp -> {
|
||||
TodoVO todoVO = new TodoVO();
|
||||
todoVO.setId(temp.getId());
|
||||
todoVO.setTaskName(temp.getName());
|
||||
todoVO.setTaskContent(temp.getInstanceSign());
|
||||
todoVO.setTaskCreateTime(temp.getCreateTime());
|
||||
// 1. 待办流程
|
||||
todoVO.setSource(1);
|
||||
todoVO.setRoutePath("");
|
||||
todoVO.setStartUser(temp.getProcessInstance().getStartUser().getName());
|
||||
todoVO.setProcessInstanceId(temp.getProcessInstanceId());
|
||||
todoVO.setHistoryInstanceId(temp.getHistoryInstanceId());
|
||||
return todoVO;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 将审核不通过的流程转为 TodoVO
|
||||
*/
|
||||
public static List<TodoVO> convertByBpmProcessInstance(List<BpmProcessInstanceVO> rejectProcessInstanceList) {
|
||||
if (CollectionUtil.isEmpty(rejectProcessInstanceList)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return rejectProcessInstanceList.stream().map(temp -> {
|
||||
TodoVO todoVO = new TodoVO();
|
||||
todoVO.setId(temp.getBusinessKey());
|
||||
todoVO.setTaskName(temp.getName());
|
||||
todoVO.setTaskContent(temp.getInstanceSign());
|
||||
todoVO.setTaskCreateTime(temp.getEndTime());
|
||||
// 1. 待办流程
|
||||
todoVO.setSource(2);
|
||||
// 处理路由
|
||||
String processDefinitionId = temp.getProcessDefinitionId();
|
||||
String key = processDefinitionId.substring(0, processDefinitionId.indexOf(":"));
|
||||
todoVO.setRoutePath(SupervisionKeyEnum.getRoutePathByKey(key));
|
||||
todoVO.setStartUser(RequestUtil.getUserNickname());
|
||||
todoVO.setProcessInstanceId(temp.getId());
|
||||
todoVO.setHistoryInstanceId(temp.getHistoryInstanceId());
|
||||
todoVO.setBusinessKey(key);
|
||||
return todoVO;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user