/** 根据任务历史,创建待办任务. */ public void processHistoryTask( HistoricTaskInstanceEntity historicTaskInstanceEntity, HistoricActivityInstanceEntity historicActivityInstanceEntity) { /* * historicTaskInstanceEntity.setEndTime(null); historicTaskInstanceEntity.setDurationInMillis(null); * historicActivityInstanceEntity.setEndTime(null); historicActivityInstanceEntity.setDurationInMillis(null); */ // 创建新任务 TaskEntity task = TaskEntity.create(new Date()); task.setProcessDefinitionId(historicTaskInstanceEntity.getProcessDefinitionId()); // task.setId(historicTaskInstanceEntity.getId()); // task.setAssigneeWithoutCascade(historicTaskInstanceEntity.getAssignee()); task.setAssigneeWithoutCascade(this.userId); task.setParentTaskIdWithoutCascade(historicTaskInstanceEntity.getParentTaskId()); task.setNameWithoutCascade(historicTaskInstanceEntity.getName()); task.setTaskDefinitionKey(historicTaskInstanceEntity.getTaskDefinitionKey()); task.setExecutionId(historicTaskInstanceEntity.getExecutionId()); task.setPriority(historicTaskInstanceEntity.getPriority()); task.setProcessInstanceId(historicTaskInstanceEntity.getProcessInstanceId()); task.setExecutionId(historicTaskInstanceEntity.getExecutionId()); task.setDescriptionWithoutCascade(historicTaskInstanceEntity.getDescription()); task.setTenantId(historicTaskInstanceEntity.getTenantId()); Context.getCommandContext().getTaskEntityManager().insert(task); // 把流程指向任务对应的节点 ExecutionEntity executionEntity = Context.getCommandContext() .getExecutionEntityManager() .findExecutionById(historicTaskInstanceEntity.getExecutionId()); executionEntity.setActivity(getActivity(historicActivityInstanceEntity)); // 创建HistoricActivityInstance Context.getCommandContext().getHistoryManager().recordActivityStart(executionEntity); // 创建HistoricTaskInstance Context.getCommandContext().getHistoryManager().recordTaskCreated(task, executionEntity); Context.getCommandContext().getHistoryManager().recordTaskId(task); // 更新ACT_HI_ACTIVITY里的assignee字段 Context.getCommandContext().getHistoryManager().recordTaskAssignment(task); try { // humanTask this.createHumanTask(task, historicTaskInstanceEntity); } catch (Exception ex) { logger.error(ex.getMessage(), ex); } }
public void processHistoryTask( HistoricTaskInstanceEntity historicTaskInstanceEntity, HistoricActivityInstanceEntity historicActivityInstanceEntity) { historicTaskInstanceEntity.setEndTime(null); historicTaskInstanceEntity.setDurationInMillis(null); historicActivityInstanceEntity.setEndTime(null); historicActivityInstanceEntity.setDurationInMillis(null); TaskEntity task = TaskEntity.create(new Date()); task.setProcessDefinitionId(historicTaskInstanceEntity.getProcessDefinitionId()); task.setId(historicTaskInstanceEntity.getId()); task.setAssigneeWithoutCascade(historicTaskInstanceEntity.getAssignee()); task.setParentTaskIdWithoutCascade(historicTaskInstanceEntity.getParentTaskId()); task.setNameWithoutCascade(historicTaskInstanceEntity.getName()); task.setTaskDefinitionKey(historicTaskInstanceEntity.getTaskDefinitionKey()); task.setExecutionId(historicTaskInstanceEntity.getExecutionId()); task.setPriority(historicTaskInstanceEntity.getPriority()); task.setProcessInstanceId(historicTaskInstanceEntity.getProcessInstanceId()); task.setDescriptionWithoutCascade(historicTaskInstanceEntity.getDescription()); task.setTenantId(historicTaskInstanceEntity.getTenantId()); Context.getCommandContext().getTaskEntityManager().insert(task); try { HumanTaskConnector humanTaskConnector = ApplicationContextHelper.getBean(HumanTaskConnector.class); // humantask humanTaskConnector.removeHumanTaskByTaskId(historicTaskInstanceEntity.getId()); this.createHumanTask(task); } catch (Exception ex) { logger.error(ex.getMessage(), ex); } ExecutionEntity executionEntity = Context.getCommandContext() .getExecutionEntityManager() .findExecutionById(historicTaskInstanceEntity.getExecutionId()); executionEntity.setActivity(getActivity(historicActivityInstanceEntity)); }