mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 12:18:42 +08:00 
			
		
		
		
	【功能调整】工作流:工作流程的流转记录,不区分父子任务
This commit is contained in:
		@@ -8,7 +8,6 @@ import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*;
 | 
				
			|||||||
import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert;
 | 
					import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert;
 | 
				
			||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
 | 
					import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
 | 
				
			||||||
import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService;
 | 
					import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService;
 | 
				
			||||||
import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService;
 | 
					 | 
				
			||||||
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
 | 
					import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
 | 
				
			||||||
import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
 | 
					import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
 | 
				
			||||||
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 | 
					import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 | 
				
			||||||
@@ -20,7 +19,6 @@ import io.swagger.v3.oas.annotations.Parameter;
 | 
				
			|||||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
					import io.swagger.v3.oas.annotations.tags.Tag;
 | 
				
			||||||
import jakarta.annotation.Resource;
 | 
					import jakarta.annotation.Resource;
 | 
				
			||||||
import jakarta.validation.Valid;
 | 
					import jakarta.validation.Valid;
 | 
				
			||||||
import org.flowable.bpmn.model.BpmnModel;
 | 
					 | 
				
			||||||
import org.flowable.bpmn.model.UserTask;
 | 
					import org.flowable.bpmn.model.UserTask;
 | 
				
			||||||
import org.flowable.engine.history.HistoricProcessInstance;
 | 
					import org.flowable.engine.history.HistoricProcessInstance;
 | 
				
			||||||
import org.flowable.engine.runtime.ProcessInstance;
 | 
					import org.flowable.engine.runtime.ProcessInstance;
 | 
				
			||||||
@@ -30,7 +28,10 @@ import org.springframework.security.access.prepost.PreAuthorize;
 | 
				
			|||||||
import org.springframework.validation.annotation.Validated;
 | 
					import org.springframework.validation.annotation.Validated;
 | 
				
			||||||
import org.springframework.web.bind.annotation.*;
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.*;
 | 
					import java.util.Collections;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					import java.util.Set;
 | 
				
			||||||
import java.util.stream.Stream;
 | 
					import java.util.stream.Stream;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 | 
					import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 | 
				
			||||||
@@ -49,8 +50,6 @@ public class BpmTaskController {
 | 
				
			|||||||
    private BpmProcessInstanceService processInstanceService;
 | 
					    private BpmProcessInstanceService processInstanceService;
 | 
				
			||||||
    @Resource
 | 
					    @Resource
 | 
				
			||||||
    private BpmFormService formService;
 | 
					    private BpmFormService formService;
 | 
				
			||||||
    @Resource
 | 
					 | 
				
			||||||
    private BpmProcessDefinitionService bpmProcessDefinitionService;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Resource
 | 
					    @Resource
 | 
				
			||||||
    private AdminUserApi adminUserApi;
 | 
					    private AdminUserApi adminUserApi;
 | 
				
			||||||
@@ -135,10 +134,8 @@ public class BpmTaskController {
 | 
				
			|||||||
        // 获得 Form Map
 | 
					        // 获得 Form Map
 | 
				
			||||||
        Map<Long, BpmFormDO> formMap = formService.getFormMap(
 | 
					        Map<Long, BpmFormDO> formMap = formService.getFormMap(
 | 
				
			||||||
                convertSet(taskList, task -> NumberUtils.parseLong(task.getFormKey())));
 | 
					                convertSet(taskList, task -> NumberUtils.parseLong(task.getFormKey())));
 | 
				
			||||||
        // 获得 BpmnModel
 | 
					 | 
				
			||||||
        BpmnModel bpmnModel = bpmProcessDefinitionService.getProcessDefinitionBpmnModel(processInstance.getProcessDefinitionId());
 | 
					 | 
				
			||||||
        return success(BpmTaskConvert.INSTANCE.buildTaskListByProcessInstanceId(taskList, processInstance,
 | 
					        return success(BpmTaskConvert.INSTANCE.buildTaskListByProcessInstanceId(taskList, processInstance,
 | 
				
			||||||
                formMap, userMap, deptMap, bpmnModel));
 | 
					                formMap, userMap, deptMap));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @PutMapping("/approve")
 | 
					    @PutMapping("/approve")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.bpm.convert.task;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import cn.hutool.core.collection.CollUtil;
 | 
					import cn.hutool.core.collection.CollUtil;
 | 
				
			||||||
import cn.hutool.core.map.MapUtil;
 | 
					import cn.hutool.core.map.MapUtil;
 | 
				
			||||||
import cn.hutool.core.util.StrUtil;
 | 
					 | 
				
			||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
					import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
				
			||||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 | 
					import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 | 
				
			||||||
import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
 | 
					import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
 | 
				
			||||||
@@ -10,13 +9,10 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 | 
				
			|||||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO;
 | 
					import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceRespVO;
 | 
				
			||||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
 | 
					import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
 | 
				
			||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
 | 
					import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
 | 
				
			||||||
import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum;
 | 
					 | 
				
			||||||
import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils;
 | 
					 | 
				
			||||||
import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.FlowableUtils;
 | 
					import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.FlowableUtils;
 | 
				
			||||||
import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO;
 | 
					import cn.iocoder.yudao.module.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO;
 | 
				
			||||||
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
 | 
					import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
 | 
				
			||||||
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 | 
					import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 | 
				
			||||||
import org.flowable.bpmn.model.BpmnModel;
 | 
					 | 
				
			||||||
import org.flowable.engine.history.HistoricProcessInstance;
 | 
					import org.flowable.engine.history.HistoricProcessInstance;
 | 
				
			||||||
import org.flowable.engine.runtime.ProcessInstance;
 | 
					import org.flowable.engine.runtime.ProcessInstance;
 | 
				
			||||||
import org.flowable.task.api.Task;
 | 
					import org.flowable.task.api.Task;
 | 
				
			||||||
@@ -29,7 +25,7 @@ import java.util.Date;
 | 
				
			|||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
 | 
					import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
 | 
				
			||||||
import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen;
 | 
					import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -85,9 +81,8 @@ public interface BpmTaskConvert {
 | 
				
			|||||||
                                                                 HistoricProcessInstance processInstance,
 | 
					                                                                 HistoricProcessInstance processInstance,
 | 
				
			||||||
                                                                 Map<Long, BpmFormDO> formMap,
 | 
					                                                                 Map<Long, BpmFormDO> formMap,
 | 
				
			||||||
                                                                 Map<Long, AdminUserRespDTO> userMap,
 | 
					                                                                 Map<Long, AdminUserRespDTO> userMap,
 | 
				
			||||||
                                                                 Map<Long, DeptRespDTO> deptMap,
 | 
					                                                                 Map<Long, DeptRespDTO> deptMap) {
 | 
				
			||||||
                                                                 BpmnModel bpmnModel) {
 | 
					        return CollectionUtils.convertList(taskList, task -> {
 | 
				
			||||||
        List<BpmTaskRespVO> taskVOList = CollectionUtils.convertList(taskList, task -> {
 | 
					 | 
				
			||||||
            BpmTaskRespVO taskVO = BeanUtils.toBean(task, BpmTaskRespVO.class);
 | 
					            BpmTaskRespVO taskVO = BeanUtils.toBean(task, BpmTaskRespVO.class);
 | 
				
			||||||
            Integer taskStatus = FlowableUtils.getTaskStatus(task);
 | 
					            Integer taskStatus = FlowableUtils.getTaskStatus(task);
 | 
				
			||||||
            taskVO.setStatus(taskStatus).setReason(FlowableUtils.getTaskReason(task));
 | 
					            taskVO.setStatus(taskStatus).setReason(FlowableUtils.getTaskReason(task));
 | 
				
			||||||
@@ -104,21 +99,8 @@ public interface BpmTaskConvert {
 | 
				
			|||||||
            // 用户信息
 | 
					            // 用户信息
 | 
				
			||||||
            buildTaskAssignee(taskVO, task.getAssignee(), userMap, deptMap);
 | 
					            buildTaskAssignee(taskVO, task.getAssignee(), userMap, deptMap);
 | 
				
			||||||
            buildTaskOwner(taskVO, task.getOwner(), userMap, deptMap);
 | 
					            buildTaskOwner(taskVO, task.getOwner(), userMap, deptMap);
 | 
				
			||||||
            if (BpmTaskStatusEnum.RUNNING.getStatus().equals(taskStatus)) {
 | 
					 | 
				
			||||||
                // 操作按钮设置
 | 
					 | 
				
			||||||
                taskVO.setButtonsSetting(BpmnModelUtils.parseButtonsSetting(bpmnModel, task.getTaskDefinitionKey()));
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            return taskVO;
 | 
					            return taskVO;
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					 | 
				
			||||||
        // 拼接父子关系
 | 
					 | 
				
			||||||
        Map<String, List<BpmTaskRespVO>> childrenTaskMap = convertMultiMap(
 | 
					 | 
				
			||||||
                filterList(taskVOList, r -> StrUtil.isNotEmpty(r.getParentTaskId())),
 | 
					 | 
				
			||||||
                BpmTaskRespVO::getParentTaskId);
 | 
					 | 
				
			||||||
        for (BpmTaskRespVO taskVO : taskVOList) {
 | 
					 | 
				
			||||||
            taskVO.setChildren(childrenTaskMap.get(taskVO.getId()));
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return filterList(taskVOList, r -> StrUtil.isEmpty(r.getParentTaskId()));
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    default List<BpmTaskRespVO> buildTaskListByParentTaskId(List<Task> taskList,
 | 
					    default List<BpmTaskRespVO> buildTaskListByParentTaskId(List<Task> taskList,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user