private HistoricActivityInstance findHisActInst(LinkedList<HistoricActivityInstance> hisActInstList, String actId) { for (HistoricActivityInstance hisActInst : hisActInstList) { if (hisActInst.getActivityId().equals(actId)) { return hisActInst; } } return null; } }
/** * Check out the outgoing transition connected to firstActInst from startEventActList * * @param startEventActList * @param firstActInst * @return */ private PvmTransition getStartTransaction(List<ActivityImpl> startEventActList, HistoricActivityInstance firstActInst) { for (ActivityImpl startEventAct : startEventActList) { for (PvmTransition trans : startEventAct.getOutgoingTransitions()) { if (trans.getDestination().getId().equals(firstActInst.getActivityId())) { return trans; } } } return null; }
ActivityImpl activity = activityMap.get(histActInst.getActivityId()); if (activity != null) { boolean isParallel = false;
private List<String> getHighLightedFlows(String processInstanceId, ProcessDefinitionEntity processDefinition) { List<String> highLightedFlows = new ArrayList<String>(); List<HistoricActivityInstance> historicActivityInstances = historyService .createHistoricActivityInstanceQuery() .processInstanceId(processInstanceId) .orderByHistoricActivityInstanceStartTime().asc().list(); List<String> historicActivityInstanceList = new ArrayList<String>(); for (HistoricActivityInstance hai : historicActivityInstances) { historicActivityInstanceList.add(hai.getActivityId()); } // add current activities to list List<String> highLightedActivities = runtimeService.getActiveActivityIds(processInstanceId); historicActivityInstanceList.addAll(highLightedActivities); // activities and their sequence-flows for (ActivityImpl activity : processDefinition.getActivities()) { int index = historicActivityInstanceList.indexOf(activity.getId()); if (index >= 0 && index + 1 < historicActivityInstanceList.size()) { List<PvmTransition> pvmTransitionList = activity .getOutgoingTransitions(); for (PvmTransition pvmTransition : pvmTransitionList) { String destinationFlowId = pvmTransition.getDestination().getId(); if (destinationFlowId.equals(historicActivityInstanceList.get(index + 1))) { highLightedFlows.add(pvmTransition.getId()); } } } } return highLightedFlows; }
for (HistoricActivityInstance historicActivityInstance : historicActivityInstances) { assertEquals(processInstanceId, historicActivityInstance.getProcessInstanceId()); assertNotNull("Historic activity instance " + historicActivityInstance.getActivityId() + " has no activity id", historicActivityInstance.getActivityId()); assertNotNull("Historic activity instance " + historicActivityInstance.getActivityId() + " has no activity type", historicActivityInstance.getActivityType()); assertNotNull("Historic activity instance " + historicActivityInstance.getActivityId() + " has no process definition id", historicActivityInstance.getProcessDefinitionId()); assertNotNull("Historic activity instance " + historicActivityInstance.getActivityId() + " has no process instance id", historicActivityInstance.getProcessInstanceId()); assertNotNull("Historic activity instance " + historicActivityInstance.getActivityId() + " has no execution id", historicActivityInstance.getExecutionId()); assertNotNull("Historic activity instance " + historicActivityInstance.getActivityId() + " has no start time", historicActivityInstance.getStartTime()); assertNotNull("Historic activity instance " + historicActivityInstance.getActivityId() + " has no end time", historicActivityInstance.getEndTime());
for (HistoricActivityInstance historicActivityInstance : historicActivityInstances) { assertEquals(processInstanceId, historicActivityInstance.getProcessInstanceId()); assertNotNull("Historic activity instance " + historicActivityInstance.getActivityId() + " has no start time", historicActivityInstance.getStartTime()); assertNotNull("Historic activity instance " + historicActivityInstance.getActivityId() + " has no end time", historicActivityInstance.getEndTime());
/** * 历史节点对应的流程定义节点 * * @param activityInstance 历史节点 * @param activities 流程定义节点 * @return */ public ActivityImpl getActivity(HistoricActivityInstance activityInstance, List<ActivityImpl> activities) { for (ActivityImpl activity : activities) { if (activity.getId().equals(activityInstance.getActivityId())) { return activity; } } return null; }
/** * 当前节点是否已经在执行节点中 * * @param historicActivityInstanceList 已近执行的任务节点 * @param activity 判断节点 * @return false 不在完成节点中 true 在完成节点中 */ public boolean findInDoneActivityList(List<HistoricActivityInstance> historicActivityInstanceList, PvmActivity activity) { for (HistoricActivityInstance activityVo : historicActivityInstanceList) { if (activityVo.getActivityId().equals(activity.getId()) && activityVo.getEndTime() == null) { return false; } } for (HistoricActivityInstance activityVo : historicActivityInstanceList) { if (activityVo.getActivityId().equals(activity.getId()) && activityVo.getEndTime() != null) { return true; } } return false; }
for (int i = 0; i < historicActivityInstances.size() - 1; i++) {// 对历史流程节点进行遍历 ActivityImpl activityImpl = processDefinitionEntity.findActivity(historicActivityInstances.get(i) .getActivityId());// 得到节点定义的详细信息 List<ActivityImpl> sameStartTimeNodes = new ArrayList<>();// 用以保存后需开始时间相同的节点 ActivityImpl sameActivityImpl1 = processDefinitionEntity.findActivity(historicActivityInstances.get(i + 1) .getActivityId()); ActivityImpl sameActivityImpl2 = processDefinitionEntity.findActivity(activityImpl2.getActivityId ()); sameStartTimeNodes.add(sameActivityImpl2);
executedActivityIdList.add(activityInstance.getActivityId());
private HistoricActivityInstance findHisActInst(LinkedList<HistoricActivityInstance> hisActInstList, String actId){ for (HistoricActivityInstance hisActInst : hisActInstList){ if (hisActInst.getActivityId().equals(actId)){ return hisActInst; } } return null; } }
private HistoricActivityInstance findHisActInst(LinkedList<HistoricActivityInstance> hisActInstList, String actId){ for (HistoricActivityInstance hisActInst : hisActInstList){ if (hisActInst.getActivityId().equals(actId)){ return hisActInst; } } return null; } }
private HistoricActivityInstance findHisActInst(LinkedList<HistoricActivityInstance> hisActInstList, String actId) { for (HistoricActivityInstance hisActInst : hisActInstList) { if (hisActInst.getActivityId().equals(actId)) { return hisActInst; } } return null; } }
private HistoricActivityInstance findCorrespondingHistoricActivity(String stepId) { ListIterator<HistoricActivityInstance> iterator = processState.getHistoricInstances().listIterator(); while (iterator.hasNext()) { HistoricActivityInstance historicActivity = iterator.next(); if (historicActivity.getActivityId().equals(stepId)) { iterator.remove(); return historicActivity; } } return null; }
private HistoricActivityInstance findHistoricActivityInProcessExecution(List<HistoricActivityInstance> historicActivities, Execution processExecution) { for (ListIterator<HistoricActivityInstance> iterator = historicActivities.listIterator( historicActivities.size()); iterator.hasPrevious();) { HistoricActivityInstance historicActivityInstance = (HistoricActivityInstance) iterator.previous(); if (historicActivityInstance.getActivityId().equals(processExecution.getActivityId())) { return historicActivityInstance; } } return null; }
/** * Check out the outgoing transition connected to firstActInst from startEventActList * * @param startEventActList * @param firstActInst * @return */ private PvmTransition getStartTransaction(List<ActivityImpl> startEventActList, HistoricActivityInstance firstActInst){ for (ActivityImpl startEventAct: startEventActList) { for (PvmTransition trans : startEventAct.getOutgoingTransitions()) { if (trans.getDestination().getId().equals(firstActInst.getActivityId())) { return trans; } } } return null; }
/** * Check out the outgoing transition connected to firstActInst from startEventActList * * @param startEventActList * @param firstActInst * @return */ private PvmTransition getStartTransaction(List<ActivityImpl> startEventActList, HistoricActivityInstance firstActInst){ for (ActivityImpl startEventAct: startEventActList) { for (PvmTransition trans : startEventAct.getOutgoingTransitions()) { if (trans.getDestination().getId().equals(firstActInst.getActivityId())) { return trans; } } } return null; }
/** * Check out the outgoing transition connected to firstActInst from startEventActList * * @param startEventActList * @param firstActInst * @return */ private PvmTransition getStartTransaction(List<ActivityImpl> startEventActList, HistoricActivityInstance firstActInst) { for (ActivityImpl startEventAct : startEventActList) { for (PvmTransition trans : startEventAct.getOutgoingTransitions()) { if (trans.getDestination().getId().equals(firstActInst.getActivityId())) { return trans; } } } return null; }
@Override public void processEndedAndInExclusiveEndEvent(final String processInstanceId, final String endEventId) { // Assert the process instance is ended getAssertFactory().getProcessInstanceAssertable(callback).processIsEnded(processInstanceId); // Assert that there is exactly one historic activity instance for end // events and that it has the correct id callback.trace(LogMessage.PROCESS_10, processInstanceId, endEventId); final List<HistoricActivityInstance> historicActivityInstances = getHistoryService().createHistoricActivityInstanceQuery() .processInstanceId(processInstanceId).activityType("endEvent").finished().list(); Assert.assertThat(historicActivityInstances.size(), is(1)); Assert.assertThat(historicActivityInstances.get(0).getActivityId(), is(endEventId)); }
/** * Populates the job Object with completed workflow steps. * * @param job, the Job object * @param historicActivitiTasks, the completed activiti steps */ private void populateCompletedActivitiSteps(Job job, List<HistoricActivityInstance> historicActivitiTasks) { // Set completed steps List<WorkflowStep> completedWorkflowSteps = new ArrayList<>(); for (HistoricActivityInstance historicActivityInstance : historicActivitiTasks) { completedWorkflowSteps.add(new WorkflowStep(historicActivityInstance.getActivityId(), historicActivityInstance.getActivityName(), HerdDateUtils.getXMLGregorianCalendarValue(historicActivityInstance.getStartTime()), HerdDateUtils.getXMLGregorianCalendarValue(historicActivityInstance.getEndTime()))); } job.setCompletedWorkflowSteps(completedWorkflowSteps); }