工作流程审核不通过、预告警单处理、终端周期检测等需求
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")
|
||||
|
||||
Reference in New Issue
Block a user