public HistoricPlanItemInstanceResponse createHistoricPlanItemInstanceResponse(HistoricPlanItemInstance historicPlanItemInstance, RestUrlBuilder urlBuilder) { HistoricPlanItemInstanceResponse result = new HistoricPlanItemInstanceResponse(); result.setId(historicPlanItemInstance.getId()); result.setName(historicPlanItemInstance.getName()); result.setState(historicPlanItemInstance.getState()); result.setCaseDefinitionId(historicPlanItemInstance.getCaseDefinitionId()); result.setCaseInstanceId(historicPlanItemInstance.getCaseInstanceId()); result.setStageInstanceId(historicPlanItemInstance.getStageInstanceId()); result.setStage(historicPlanItemInstance.isStage()); result.setElementId(historicPlanItemInstance.getElementId()); result.setPlanItemDefinitionId(historicPlanItemInstance.getPlanItemDefinitionId()); result.setPlanItemDefinitionType(historicPlanItemInstance.getPlanItemDefinitionType()); result.setCreateTime(historicPlanItemInstance.getCreateTime()); result.setLastAvailableTime(historicPlanItemInstance.getLastAvailableTime()); result.setLastEnabledTime(historicPlanItemInstance.getLastEnabledTime()); result.setLastDisabledTime(historicPlanItemInstance.getLastDisabledTime()); result.setLastStartedTime(historicPlanItemInstance.getLastStartedTime()); result.setLastSuspendedTime(historicPlanItemInstance.getLastSuspendedTime()); result.setCompletedTime(historicPlanItemInstance.getCompletedTime()); result.setOccurredTime(historicPlanItemInstance.getOccurredTime()); result.setTerminatedTime(historicPlanItemInstance.getTerminatedTime()); result.setExitTime(historicPlanItemInstance.getExitTime()); result.setEndedTime(historicPlanItemInstance.getEndedTime()); result.setStartUserId(historicPlanItemInstance.getStartUserId()); result.setReferenceId(historicPlanItemInstance.getReferenceId()); result.setReferenceType(historicPlanItemInstance.getReferenceType()); result.setTenantId(historicPlanItemInstance.getTenantId()); result.setUrl(urlBuilder.buildUrl(CmmnRestUrls.URL_HISTORIC_PLANITEM_INSTANCE, historicPlanItemInstance.getId())); result.setHistoricCaseInstanceUrl(urlBuilder.buildUrl(CmmnRestUrls.URL_HISTORIC_CASE_INSTANCE, historicPlanItemInstance.getCaseInstanceId())); result.setCaseDefinitionUrl(urlBuilder.buildUrl(CmmnRestUrls.URL_CASE_DEFINITION, historicPlanItemInstance.getCaseDefinitionId()));
if (CollectionUtils.isNotEmpty(planItemInstances)) { for (HistoricPlanItemInstance planItemInstance : planItemInstances) { if (planItemInstance.getCompletedTime() != null || planItemInstance.getTerminatedTime() != null || planItemInstance.getOccurredTime() != null) { completedPlanItemInstances.add(planItemInstance.getPlanItemDefinitionId()); } else if (PlanItemInstanceState.ACTIVE.equals(planItemInstance.getState())) { activePlanItemInstances.add(planItemInstance.getPlanItemDefinitionId()); } else if (PlanItemInstanceState.AVAILABLE.equals(planItemInstance.getState())) { availablePlanItemInstances.add(planItemInstance.getPlanItemDefinitionId());
public static void deleteHistoricCaseInstance(CmmnEngineConfiguration cmmnEngineConfiguration, String caseInstanceId) { HistoricCaseInstanceEntityManager historicCaseInstanceEntityManager = cmmnEngineConfiguration.getHistoricCaseInstanceEntityManager(); HistoricCaseInstanceEntity historicCaseInstance = historicCaseInstanceEntityManager.findById(caseInstanceId); HistoricMilestoneInstanceEntityManager historicMilestoneInstanceEntityManager = cmmnEngineConfiguration.getHistoricMilestoneInstanceEntityManager(); historicMilestoneInstanceEntityManager.findHistoricMilestoneInstancesByQueryCriteria(new HistoricMilestoneInstanceQueryImpl().milestoneInstanceCaseInstanceId(historicCaseInstance.getId())) .forEach(m -> historicMilestoneInstanceEntityManager.delete(m.getId())); HistoricPlanItemInstanceEntityManager historicPlanItemInstanceEntityManager = cmmnEngineConfiguration.getHistoricPlanItemInstanceEntityManager(); historicPlanItemInstanceEntityManager.findByCriteria(new HistoricPlanItemInstanceQueryImpl().planItemInstanceCaseInstanceId(historicCaseInstance.getId())) .forEach(p -> historicPlanItemInstanceEntityManager.delete(p.getId())); CommandContextUtil.getHistoricIdentityLinkService().deleteHistoricIdentityLinksByScopeIdAndScopeType(historicCaseInstance.getId(), ScopeTypes.CMMN); if (cmmnEngineConfiguration.isEnableEntityLinks()) { CommandContextUtil.getHistoricEntityLinkService().deleteHistoricEntityLinksByScopeIdAndScopeType(historicCaseInstance.getId(), ScopeTypes.CMMN); } historicCaseInstanceEntityManager.delete(historicCaseInstance); // Also delete any sub cases that may be active historicCaseInstanceEntityManager.createHistoricCaseInstanceQuery().caseInstanceParentId(caseInstanceId).list() .forEach(c -> deleteHistoricCaseInstance(cmmnEngineConfiguration, c.getId())); }
.forEach(p -> historicPlanItemInstanceEntityManager.delete(p.getId()));