From c007f0ca1785db093d48f4846cda82fe8e955765 Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期三, 27 五月 2020 09:59:29 +0800 Subject: [PATCH] merage --- src/main/java/com/highdatas/mdm/service/act/impl/RuntimeServiceImpl.java | 188 ----------------------------------------------- 1 files changed, 0 insertions(+), 188 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/service/act/impl/RuntimeServiceImpl.java b/src/main/java/com/highdatas/mdm/service/act/impl/RuntimeServiceImpl.java index d5095aa..3d99d29 100644 --- a/src/main/java/com/highdatas/mdm/service/act/impl/RuntimeServiceImpl.java +++ b/src/main/java/com/highdatas/mdm/service/act/impl/RuntimeServiceImpl.java @@ -1,38 +1,12 @@ package com.highdatas.mdm.service.act.impl; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.highdatas.mdm.process.canvas.ProcessDiagramGenerator; import lombok.extern.slf4j.Slf4j; -import org.activiti.bpmn.model.BpmnModel; -import org.activiti.editor.language.json.converter.BpmnJsonConverter; 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.impl.RepositoryServiceImpl; -import org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity; -import org.activiti.engine.impl.pvm.PvmTransition; -import org.activiti.engine.impl.pvm.ReadOnlyProcessDefinition; -import org.activiti.engine.impl.pvm.process.ActivityImpl; -import org.activiti.engine.repository.Model; -import org.activiti.engine.repository.ProcessDefinition; -import org.activiti.engine.runtime.Execution; -import org.activiti.engine.runtime.ProcessInstance; -import org.activiti.engine.runtime.ProcessInstanceQuery; -import org.activiti.engine.task.Task; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.List; @Slf4j @Service public class RuntimeServiceImpl extends BaseServiceImpl implements com.highdatas.mdm.service.act.RuntimeService{ @@ -44,167 +18,5 @@ TaskService taskService; @Autowired HistoryService historyService; - - - - public void getList() { - ProcessInstanceQuery query = service.createProcessInstanceQuery(); - List<ProcessInstance> instanceList = query.list(); - //resultPool.addValue(null, instanceList, new ProcessInstanceWriter()); - } - @Override - public void deleteProcess(String processId) { - service.deleteProcessInstance(processId, "缁堟娴佺▼"); - } - - - public void startProcess(String processId) { - ProcessInstance process = service.startProcessInstanceById(processId); - } - - public void suspendProcess(String processId) { - service.suspendProcessInstanceById(processId); - } - - public void activateProcess(String processId) { - service.activateProcessInstanceById(processId); - } - - public void getDiagram(String processId, HttpServletResponse response) { - Task task = taskService.createTaskQuery().processInstanceId(processId).singleResult(); - if (task ==null) { - return ; - } - InputStream resource = null; - try { - ProcessDefinition singleResult = repositoryService.createProcessDefinitionQuery().processDefinitionId(task.getProcessDefinitionId()).singleResult(); - Model model = repositoryService.createModelQuery().deploymentId(singleResult.getDeploymentId()).singleResult(); - JsonNode editorNode = new ObjectMapper().readTree(repositoryService.getModelEditorSource(model.getId())); - BpmnJsonConverter jsonConverter = new BpmnJsonConverter(); - BpmnModel bpmnModel = jsonConverter.convertToBpmnModel(editorNode); - List<String> activeActivityIds = service.getActiveActivityIds(task.getExecutionId()); - ProcessDiagramGenerator diagramGenerator = new ProcessDiagramGenerator(); - resource = diagramGenerator.generateDiagram(bpmnModel, "png",activeActivityIds,activeActivityIds, "瀹嬩綋","瀹嬩綋" ,null, null,0); - response.setHeader("Content-Type", "image/png"); - OutputStream outputStream = response.getOutputStream(); - byte[] b = new byte[1024]; - int len; - while ((len = resource.read(b, 0, 1024)) != -1) { - outputStream.write(b, 0, len); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - if (resource != null) { - try { - resource.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - } - - public void getActivitiProccessImage(String processId, HttpServletResponse response) { - try { - if (StringUtils.isEmpty(processId)) { - return; - } - - List<HistoricProcessInstance> list = historyService.createHistoricProcessInstanceQuery().processInstanceId(processId).list(); - if (list.size() == 0) { - return; - } - HistoricProcessInstance processInstance = list.get(0); - - if (processInstance != null) { - ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService) - .getDeployedProcessDefinition(processInstance.getProcessDefinitionId()); - List<HistoricActivityInstance> historicActivityInstanceList = historyService.createHistoricActivityInstanceQuery() - .processInstanceId(processId).orderByHistoricActivityInstanceId().asc().list(); - List<String> executedActivityIdList = new ArrayList<String>(); - int index = 1; - - for (HistoricActivityInstance activityInstance : historicActivityInstanceList) { - executedActivityIdList.add(activityInstance.getActivityId()); - index++; - } - - List<String> flowIds = new ArrayList<String>(); - flowIds = getHighLightedFlows(processDefinition, historicActivityInstanceList); - BpmnModel bpmnModel = repositoryService - .getBpmnModel(processInstance.getProcessDefinitionId()); -// ProcessDiagramGenerator pec = processEngine.getProcessEngineConfiguration().getProcessDiagramGenerator(); - com.highdatas.mdm.process.canvas.ProcessDiagramGenerator pec = new com.highdatas.mdm.process.canvas.ProcessDiagramGenerator(); - - InputStream imageStream = pec.generateDiagram(bpmnModel, "png", executedActivityIdList, flowIds,"瀹嬩綋","寰蒋闆呴粦",null,null,2.0); - response.setContentType("image/png"); - OutputStream os = response.getOutputStream(); - int bytesRead = 0; - byte[] buffer = new byte[1024*8]; - - while ((bytesRead = imageStream.read(buffer, 0, 1024*8)) != -1) { - os.write(buffer, 0, bytesRead); - } - os.close(); - imageStream.close(); - } - } - catch (Exception e) { - e.printStackTrace(); - } - } - - public List<String> getHighLightedFlows(ProcessDefinitionEntity processDefinitionEntity,List<HistoricActivityInstance> historicActivityInstances) { - List<String> highFlows = new ArrayList<String>(); - - for (int i = 0; i < historicActivityInstances.size() - 1; i++) { - ActivityImpl activityImpl = processDefinitionEntity.findActivity(historicActivityInstances.get(i).getActivityId()); - List<ActivityImpl> sameStartTimeNodes = new ArrayList<ActivityImpl>(); - ActivityImpl sameActivityImpl1 = processDefinitionEntity.findActivity(historicActivityInstances.get(i + 1).getActivityId()); - sameStartTimeNodes.add(sameActivityImpl1); - - for (int j = i + 1; j < historicActivityInstances.size() - 1; j++) { - HistoricActivityInstance activityImpl1 = historicActivityInstances.get(j); - HistoricActivityInstance activityImpl2 = historicActivityInstances.get(j + 1); - if (activityImpl1.getStartTime().equals(activityImpl2.getStartTime())) { - ActivityImpl sameActivityImpl2 = processDefinitionEntity.findActivity(activityImpl2.getActivityId()); - sameStartTimeNodes.add(sameActivityImpl2); - } - else { - break; - } - } - List<PvmTransition> pvmTransitions = activityImpl.getOutgoingTransitions(); - - for (PvmTransition pvmTransition : pvmTransitions) { - ActivityImpl pvmActivityImpl = (ActivityImpl) pvmTransition.getDestination(); - if (sameStartTimeNodes.contains(pvmActivityImpl)) { - highFlows.add(pvmTransition.getId()); - } - } - } - return highFlows; - } - public ActivityImpl getCurrentAcitivity(String processDefinitionId) { - Execution execution = service.createExecutionQuery().processDefinitionId(processDefinitionId).singleResult(); - String activityId = execution.getActivityId(); - ActivityImpl currentActivity = queryTargetActivity(activityId); - log.debug(currentActivity.getId()+""+currentActivity.getProperty("name")); - return currentActivity; - } - - public ActivityImpl queryTargetActivity(String id){ - ReadOnlyProcessDefinition deployedProcessDefinition = (ProcessDefinitionEntity)((RepositoryServiceImpl)repositoryService).getDeployedProcessDefinition("ziyouliu:1:4"); - @SuppressWarnings("unchecked") - - List<ActivityImpl> activities = (List<ActivityImpl>) deployedProcessDefinition.getActivities(); - for (ActivityImpl activityImpl : activities) { - if(activityImpl.getId().equals(id)){ - return activityImpl; - } - } - return null; - } } -- Gitblit v1.8.0