|
@@ -5,6 +5,7 @@ import com.flow.entity.FlowDefine;
|
|
|
import com.flow.entity.FlowInstance;
|
|
|
import com.flow.entity.FlowTask;
|
|
|
import com.flow.entity.Notify;
|
|
|
+import com.flow.entity.node.Node;
|
|
|
import com.flow.entity.settings.CancelConfig;
|
|
|
import com.flow.entity.settings.Settings;
|
|
|
import com.flow.enums.ApprovalNobodyEnum;
|
|
@@ -12,6 +13,7 @@ import com.flow.enums.AssigneeTypeEnum;
|
|
|
import com.flow.enums.NotifyEnum;
|
|
|
import com.flow.enums.ProcessStatus;
|
|
|
import com.flow.flowable.event.CustomFlowableEngineEvent;
|
|
|
+import com.flow.flowable.model.JumpServiceTask;
|
|
|
import com.flow.flowable.utils.ProcessElementUtil;
|
|
|
import com.flow.service.FlowDefineService;
|
|
|
import com.flow.service.FlowInstanceService;
|
|
@@ -27,7 +29,8 @@ import org.flowable.engine.delegate.event.AbstractFlowableEngineEventListener;
|
|
|
import org.flowable.engine.delegate.event.FlowableCancelledEvent;
|
|
|
import org.flowable.engine.delegate.event.FlowableProcessStartedEvent;
|
|
|
import org.flowable.engine.delegate.event.impl.FlowableProcessCancelledEventImpl;
|
|
|
-import org.flowable.engine.impl.persistence.entity.ExecutionEntityImpl;
|
|
|
+import org.flowable.engine.impl.persistence.entity.*;
|
|
|
+import org.flowable.spring.SpringProcessEngineConfiguration;
|
|
|
import org.flowable.task.service.impl.persistence.entity.TaskEntityImpl;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
@@ -35,6 +38,7 @@ import org.springframework.transaction.support.TransactionSynchronization;
|
|
|
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
|
|
@@ -51,6 +55,8 @@ public class GlobalActivityEventListener extends AbstractFlowableEngineEventList
|
|
|
private NotifyService notifyService;
|
|
|
@Autowired
|
|
|
private FlowInstanceService flowInstanceService;
|
|
|
+ @Autowired
|
|
|
+ private SpringProcessEngineConfiguration springProcessEngineConfiguration;
|
|
|
|
|
|
// 任务创建监听器
|
|
|
@Override
|
|
@@ -183,7 +189,24 @@ public class GlobalActivityEventListener extends AbstractFlowableEngineEventList
|
|
|
}
|
|
|
|
|
|
protected void activityJump(CustomFlowableEngineEvent event) {
|
|
|
-
|
|
|
+ ExecutionEntityImpl entity = event.getEntity();
|
|
|
+ JumpServiceTask jumpServiceTask = (JumpServiceTask) entity.getCurrentFlowElement();
|
|
|
+ String targetNode = jumpServiceTask.getTargetNode();
|
|
|
+ FlowDefine flowDefine = flowDefineService.getDefine(event.getProcessDefinitionId());
|
|
|
+ Node target = flowDefine.findFlowNodeOfType(Node.class, targetNode);
|
|
|
+ ActivityInstanceEntityManager activityInstanceEntityManager = springProcessEngineConfiguration.getActivityInstanceEntityManager();
|
|
|
+ List<ActivityInstanceEntity> activityInstanceEntityList = activityInstanceEntityManager.findActivityInstancesByExecutionAndActivityId(event.getExecutionId(), entity.getActivityId());
|
|
|
+ for (ActivityInstanceEntity activityInstanceEntity : activityInstanceEntityList) {
|
|
|
+ activityInstanceEntity.setDeleteReason(String.format("<span>跳转至 <span class='color-primary'>%s</span></span>", target.getName()));
|
|
|
+ activityInstanceEntityManager.update(activityInstanceEntity);
|
|
|
+ }
|
|
|
+ HistoricActivityInstanceEntityManager historicActivityInstanceEntityManager = springProcessEngineConfiguration.getHistoricActivityInstanceEntityManager();
|
|
|
+ List<HistoricActivityInstanceEntity> historicActivityInstanceEntities = historicActivityInstanceEntityManager.findHistoricActivityInstancesByExecutionAndActivityId(event.getExecutionId(), entity.getActivityId());
|
|
|
+ for (HistoricActivityInstanceEntity historicActivityInstanceEntity : historicActivityInstanceEntities) {
|
|
|
+ historicActivityInstanceEntity.setDeleteReason(String.format("<span>跳转至 <span class='color-primary'>%s</span></span>", target.getName()));
|
|
|
+ historicActivityInstanceEntityManager.update(historicActivityInstanceEntity);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+
|
|
|
}
|