mirror of
https://github.com/dromara/RuoYi-Vue-Plus.git
synced 2025-09-29 22:56:40 +08:00
调整流程预览
This commit is contained in:
parent
fd22331be1
commit
b07b60fe60
@ -7,13 +7,12 @@ import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.workflow.domain.bo.ProcessInstanceBo;
|
||||
import org.dromara.workflow.domain.vo.ActHistoryInfoVo;
|
||||
import org.dromara.workflow.domain.vo.ProcessInstanceVo;
|
||||
import org.dromara.workflow.service.IActProcessInstanceService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 流程实例管理 控制层
|
||||
@ -65,7 +64,7 @@ public class ActProcessInstanceController extends BaseController {
|
||||
* @param processInstanceId 流程实例id
|
||||
*/
|
||||
@GetMapping("/getHistoryRecord/{processInstanceId}")
|
||||
public R<List<ActHistoryInfoVo>> getHistoryRecord(@NotBlank(message = "流程实例id不能为空") @PathVariable String processInstanceId) {
|
||||
public R<Map<String, Object>> getHistoryRecord(@NotBlank(message = "流程实例id不能为空") @PathVariable String processInstanceId) {
|
||||
return R.ok(iActProcessInstanceService.getHistoryRecord(processInstanceId));
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,47 @@
|
||||
package org.dromara.workflow.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 节点图形信息
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
public class GraphicInfoVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**
|
||||
* x坐标
|
||||
*/
|
||||
private double x;
|
||||
|
||||
/**
|
||||
* y坐标
|
||||
*/
|
||||
private double y;
|
||||
|
||||
/**
|
||||
* 节点高度
|
||||
*/
|
||||
private double height;
|
||||
|
||||
/**
|
||||
* 节点宽度
|
||||
*/
|
||||
private double width;
|
||||
|
||||
/**
|
||||
* 节点id
|
||||
*/
|
||||
private String nodeId;
|
||||
|
||||
/**
|
||||
* 节点名称
|
||||
*/
|
||||
private String nodeName;
|
||||
}
|
@ -7,6 +7,7 @@ import org.dromara.workflow.domain.vo.ActHistoryInfoVo;
|
||||
import org.dromara.workflow.domain.vo.ProcessInstanceVo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 流程实例 服务层
|
||||
@ -44,5 +45,5 @@ public interface IActProcessInstanceService {
|
||||
* @param processInstanceId 流程实例id
|
||||
* @return 结果
|
||||
*/
|
||||
List<ActHistoryInfoVo> getHistoryRecord(String processInstanceId);
|
||||
Map<String, Object> getHistoryRecord(String processInstanceId);
|
||||
}
|
||||
|
@ -16,10 +16,11 @@ import org.dromara.system.service.ISysUserService;
|
||||
import org.dromara.workflow.common.constant.FlowConstant;
|
||||
import org.dromara.workflow.domain.bo.ProcessInstanceBo;
|
||||
import org.dromara.workflow.domain.vo.ActHistoryInfoVo;
|
||||
import org.dromara.workflow.domain.vo.GraphicInfoVo;
|
||||
import org.dromara.workflow.domain.vo.ProcessInstanceVo;
|
||||
import org.dromara.workflow.flowable.CustomDefaultProcessDiagramGenerator;
|
||||
import org.dromara.workflow.service.IActProcessInstanceService;
|
||||
import org.flowable.bpmn.model.BpmnModel;
|
||||
import org.flowable.bpmn.model.*;
|
||||
import org.flowable.engine.HistoryService;
|
||||
import org.flowable.engine.RepositoryService;
|
||||
import org.flowable.engine.RuntimeService;
|
||||
@ -27,6 +28,7 @@ import org.flowable.engine.TaskService;
|
||||
import org.flowable.engine.history.HistoricActivityInstance;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
import org.flowable.engine.history.HistoricProcessInstanceQuery;
|
||||
import org.flowable.engine.impl.util.ProcessDefinitionUtil;
|
||||
import org.flowable.engine.runtime.ProcessInstance;
|
||||
import org.flowable.engine.runtime.ProcessInstanceQuery;
|
||||
import org.flowable.engine.task.Comment;
|
||||
@ -210,7 +212,8 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
* @param processInstanceId 流程实例id
|
||||
*/
|
||||
@Override
|
||||
public List<ActHistoryInfoVo> getHistoryRecord(String processInstanceId) {
|
||||
public Map<String, Object> getHistoryRecord(String processInstanceId) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
//查询任务办理记录
|
||||
List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery()
|
||||
.processInstanceId(processInstanceId).taskTenantId(TenantHelper.getTenantId()).orderByHistoricTaskInstanceEndTime().desc().list();
|
||||
@ -247,7 +250,23 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
List<ActHistoryInfoVo> finishTask = StreamUtils.filter(actHistoryInfoVoList, e -> e.getEndTime() != null);
|
||||
collect.addAll(waitingTask);
|
||||
collect.addAll(finishTask);
|
||||
return collect;
|
||||
//审批记录
|
||||
map.put("historyRecordList", collect);
|
||||
BpmnModel bpmnModel = repositoryService.getBpmnModel(list.get(0).getProcessDefinitionId());
|
||||
List<GraphicInfoVo> graphicInfoVos = new ArrayList<>();
|
||||
Collection<FlowElement> flowElements = bpmnModel.getMainProcess().getFlowElements();
|
||||
for (FlowElement flowElement : flowElements) {
|
||||
if (flowElement instanceof UserTask) {
|
||||
GraphicInfo graphicInfo = bpmnModel.getGraphicInfo(flowElement.getId());
|
||||
GraphicInfoVo graphicInfoVo = BeanUtil.toBean(graphicInfo, GraphicInfoVo.class);
|
||||
graphicInfoVo.setNodeId(flowElement.getId());
|
||||
graphicInfoVo.setNodeName(flowElement.getName());
|
||||
graphicInfoVos.add(graphicInfoVo);
|
||||
}
|
||||
}
|
||||
//节点图形信息
|
||||
map.put("graphicInfoVos", graphicInfoVos);
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user