核心信息提取

This commit is contained in:
2024-06-19 08:31:51 +08:00
parent 0140a1166d
commit 9a9af5db5d
31 changed files with 507 additions and 133 deletions

View File

@@ -2,10 +2,18 @@ package com.njcn.bpm.utils;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.njcn.bpm.pojo.dto.BpmInstanceInfo;
import com.njcn.bpm.pojo.dto.PageResult;
import com.njcn.bpm.pojo.po.BpmForm;
import com.njcn.bpm.pojo.vo.instance.BpmProcessInstanceVO;
import com.njcn.bpm.pojo.vo.task.BpmTaskVO;
import com.njcn.bpm.service.IBpmService;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.supervision.api.BusinessCommonFeignClient;
import com.njcn.supervision.enums.SupervisionKeyEnum;
import com.njcn.supervision.enums.SupervisionResponseEnum;
import com.njcn.user.pojo.po.Dept;
import com.njcn.user.pojo.vo.UserVO;
import org.flowable.engine.history.HistoricProcessInstance;
@@ -15,10 +23,13 @@ import org.flowable.task.api.history.HistoricTaskInstance;
import org.flowable.task.service.impl.persistence.entity.TaskEntityImpl;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import org.springframework.validation.beanvalidation.SpringValidatorAdapter;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import static com.njcn.bpm.utils.CollectionUtils.*;
import static com.njcn.bpm.utils.MapUtils.findAndThen;
@@ -34,9 +45,12 @@ public interface BpmTaskConvert {
BpmTaskConvert INSTANCE = Mappers.getMapper(BpmTaskConvert.class);
default PageResult<BpmTaskVO> buildTodoTaskPage(PageResult<Task> pageResult,
Map<String, ProcessInstance> processInstanceMap,
Map<String, UserVO> userMap) {
Map<String, UserVO> userMap,
BusinessCommonFeignClient businessCommonFeignClient) {
return BeanUtils.toBean(pageResult, BpmTaskVO.class, taskVO -> {
ProcessInstance processInstance = processInstanceMap.get(taskVO.getProcessInstanceId());
@@ -46,11 +60,21 @@ public interface BpmTaskConvert {
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());
}
});
}
default PageResult<BpmTaskVO> buildTaskPage(PageResult<HistoricTaskInstance> pageResult,
Map<String, HistoricProcessInstance> processInstanceMap,
Map<String, UserVO> userMap,