工作流程审核不通过、预告警单处理、终端周期检测等需求
1、提交了主pom,因为需要引入达梦数据量; 2、提交了gateway的配置文件,因为部分接口没有添加到权限中,待后续增加后再注释
This commit is contained in:
@@ -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