mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 12:18:42 +08:00 
			
		
		
		
	优化 ProcessViewer.vue 展示流程图的效果,增加红色、绿色、灰色、橙色
This commit is contained in:
		@@ -20,4 +20,20 @@ public class BpmActivityRespVO {
 | 
			
		||||
    @ApiModelProperty(value = "流程活动的结束时间", required = true)
 | 
			
		||||
    private Date endTime;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 关联的流程任务,只有 UserTask 类型才有
 | 
			
		||||
     */
 | 
			
		||||
    private Task task;
 | 
			
		||||
 | 
			
		||||
    @ApiModel(value = "流程任务")
 | 
			
		||||
    @Data
 | 
			
		||||
    public static class Task {
 | 
			
		||||
 | 
			
		||||
        @ApiModelProperty(value = "关联的流程任务的编号", required = true, example = "2048")
 | 
			
		||||
        private String id;
 | 
			
		||||
        @ApiModelProperty(value = "关联的流程任务的结果", required = true, example = "2", notes = "参见 bpm_process_instance_result 枚举")
 | 
			
		||||
        private Integer result;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
package cn.iocoder.yudao.adminserver.modules.bpm.convert.task;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.activity.BpmActivityRespVO;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmTaskExtDO;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 | 
			
		||||
import org.activiti.engine.history.HistoricActivityInstance;
 | 
			
		||||
import org.mapstruct.Mapper;
 | 
			
		||||
import org.mapstruct.Mapping;
 | 
			
		||||
@@ -8,6 +10,7 @@ import org.mapstruct.Mappings;
 | 
			
		||||
import org.mapstruct.factory.Mappers;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * BPM 活动 Convert
 | 
			
		||||
@@ -19,7 +22,16 @@ public interface BpmActivityConvert {
 | 
			
		||||
 | 
			
		||||
    BpmActivityConvert INSTANCE = Mappers.getMapper(BpmActivityConvert.class);
 | 
			
		||||
 | 
			
		||||
    List<BpmActivityRespVO> convertList(List<HistoricActivityInstance> list);
 | 
			
		||||
    default List<BpmActivityRespVO> convertList(List<HistoricActivityInstance> list, Map<String, BpmTaskExtDO> taskExtMap) {
 | 
			
		||||
        return CollectionUtils.convertList(list, bean -> {
 | 
			
		||||
            BpmActivityRespVO respVO = convert(bean);
 | 
			
		||||
            BpmTaskExtDO taskExt = taskExtMap.get(bean.getTaskId());
 | 
			
		||||
            if (taskExt != null) {
 | 
			
		||||
                respVO.setTask(new BpmActivityRespVO.Task().setId(taskExt.getTaskId()).setResult(taskExt.getResult()));
 | 
			
		||||
            }
 | 
			
		||||
            return respVO;
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Mappings({
 | 
			
		||||
            @Mapping(source = "activityId", target = "key"),
 | 
			
		||||
 
 | 
			
		||||
@@ -46,6 +46,12 @@ public class BpmTaskExtDO extends BaseDO {
 | 
			
		||||
     * 关联 {@link Task#getId()}
 | 
			
		||||
     */
 | 
			
		||||
    private String taskId;
 | 
			
		||||
//    /**
 | 
			
		||||
//     * 任务的标识
 | 
			
		||||
//     *
 | 
			
		||||
//     * 关联 {@link Task#getTaskDefinitionKey()}
 | 
			
		||||
//     */
 | 
			
		||||
//    private String definitionKey;
 | 
			
		||||
    /**
 | 
			
		||||
     * 任务的结果
 | 
			
		||||
     *
 | 
			
		||||
 
 | 
			
		||||
@@ -19,4 +19,7 @@ public interface BpmTaskExtMapper extends BaseMapperX<BpmTaskExtDO> {
 | 
			
		||||
        return selectList("task_id", taskIds);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    default List<BpmTaskExtDO> selectListByProcessInstanceId(String processInstanceId) {
 | 
			
		||||
        return selectList("process_instance_id", processInstanceId);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
package cn.iocoder.yudao.adminserver.modules.bpm.service.task;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.*;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmTaskExtDO;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 | 
			
		||||
import org.activiti.engine.task.Task;
 | 
			
		||||
@@ -139,4 +140,12 @@ public interface BpmTaskService {
 | 
			
		||||
     */
 | 
			
		||||
    void updateTaskExtComplete(org.activiti.api.task.model.Task task);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获得流程实例对应的 Task 拓展列表
 | 
			
		||||
     *
 | 
			
		||||
     * @param processInstanceId 流程实例的编号
 | 
			
		||||
     * @return Task 拓展列表
 | 
			
		||||
     */
 | 
			
		||||
    List<BpmTaskExtDO> getTaskExtListByProcessInstanceId(String processInstanceId);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@ import cn.hutool.core.io.IoUtil;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.activity.BpmActivityRespVO;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.convert.task.BpmActivityConvert;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.convert.task.BpmTaskConvert;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmTaskExtDO;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmActivityService;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService;
 | 
			
		||||
@@ -25,9 +26,11 @@ import javax.annotation.Resource;
 | 
			
		||||
import java.io.InputStream;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.*;
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * BPM 活动实例 Service 实现类
 | 
			
		||||
@@ -57,7 +60,10 @@ public class BpmActivityServiceImpl implements BpmActivityService {
 | 
			
		||||
    public List<BpmActivityRespVO> getActivityListByProcessInstanceId(String processInstanceId) {
 | 
			
		||||
        List<HistoricActivityInstance> activityList = historyService.createHistoricActivityInstanceQuery()
 | 
			
		||||
                .processInstanceId(processInstanceId).list();
 | 
			
		||||
        return BpmActivityConvert.INSTANCE.convertList(activityList);
 | 
			
		||||
        // 拼接数据
 | 
			
		||||
        List<BpmTaskExtDO> taskExts = taskService.getTaskExtListByProcessInstanceId(processInstanceId);
 | 
			
		||||
        Map<String, BpmTaskExtDO> taskExtMap = convertMap(taskExts, BpmTaskExtDO::getTaskId);
 | 
			
		||||
        return BpmActivityConvert.INSTANCE.convertList(activityList, taskExtMap);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,6 @@
 | 
			
		||||
package cn.iocoder.yudao.adminserver.modules.bpm.service.task.impl;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.collection.CollUtil;
 | 
			
		||||
import cn.hutool.core.io.IoUtil;
 | 
			
		||||
import cn.hutool.core.util.StrUtil;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.*;
 | 
			
		||||
import cn.iocoder.yudao.adminserver.modules.bpm.convert.task.BpmTaskConvert;
 | 
			
		||||
@@ -16,36 +15,23 @@ import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
 | 
			
		||||
import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
 | 
			
		||||
import cn.iocoder.yudao.framework.activiti.core.util.ActivitiUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
			
		||||
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.object.PageUtils;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.activiti.bpmn.constants.BpmnXMLConstants;
 | 
			
		||||
import org.activiti.bpmn.model.BpmnModel;
 | 
			
		||||
import org.activiti.bpmn.model.FlowNode;
 | 
			
		||||
import org.activiti.bpmn.model.SequenceFlow;
 | 
			
		||||
import org.activiti.engine.HistoryService;
 | 
			
		||||
import org.activiti.engine.RepositoryService;
 | 
			
		||||
import org.activiti.engine.RuntimeService;
 | 
			
		||||
import org.activiti.engine.TaskService;
 | 
			
		||||
import org.activiti.engine.history.HistoricActivityInstance;
 | 
			
		||||
import org.activiti.engine.history.HistoricProcessInstance;
 | 
			
		||||
import org.activiti.engine.history.HistoricTaskInstance;
 | 
			
		||||
import org.activiti.engine.history.HistoricTaskInstanceQuery;
 | 
			
		||||
import org.activiti.engine.repository.ProcessDefinition;
 | 
			
		||||
import org.activiti.engine.runtime.ProcessInstance;
 | 
			
		||||
import org.activiti.engine.task.Task;
 | 
			
		||||
import org.activiti.engine.task.TaskQuery;
 | 
			
		||||
import org.activiti.image.ProcessDiagramGenerator;
 | 
			
		||||
import org.springframework.context.annotation.Lazy;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import org.springframework.transaction.annotation.Transactional;
 | 
			
		||||
import org.springframework.util.ObjectUtils;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Resource;
 | 
			
		||||
import javax.validation.Valid;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.io.InputStream;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.*;
 | 
			
		||||
@@ -307,4 +293,9 @@ public class BpmTaskServiceImpl implements BpmTaskService {
 | 
			
		||||
        taskExtMapper.updateByTaskId(taskExtDO);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<BpmTaskExtDO> getTaskExtListByProcessInstanceId(String processInstanceId) {
 | 
			
		||||
        return taskExtMapper.selectListByProcessInstanceId(processInstanceId);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user