update TaskListener
This commit is contained in:
+26
-5
@@ -8,6 +8,8 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.util.MessageUtils;
|
||||
import com.jero.modules.activiti.entity.ProcessModelNode;
|
||||
import com.jero.modules.activiti.listener.CompleteListener;
|
||||
import com.jero.modules.activiti.listener.CreateListener;
|
||||
import com.jero.modules.activiti.service.LawsProcessNodeOriginService;
|
||||
import com.jero.modules.activiti.service.ProcessModelNodeService;
|
||||
import com.jero.modules.activiti.util.CreatedTools;
|
||||
@@ -19,10 +21,12 @@ import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.bpmn.converter.BpmnXMLConverter;
|
||||
import org.activiti.bpmn.model.BpmnModel;
|
||||
import org.activiti.bpmn.model.*;
|
||||
import org.activiti.bpmn.model.Process;
|
||||
import org.activiti.editor.constants.ModelDataJsonConstants;
|
||||
import org.activiti.editor.language.json.converter.BpmnJsonConverter;
|
||||
import org.activiti.engine.RepositoryService;
|
||||
import org.activiti.engine.delegate.TaskListener;
|
||||
import org.activiti.engine.repository.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -39,10 +43,7 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -91,6 +92,26 @@ public class ModelerController {
|
||||
model.setMetaInfo(modelNode.toString());
|
||||
repositoryService.saveModel(model);
|
||||
String modelId = model.getId();
|
||||
Process mainProcess = bpmnModel.getMainProcess();
|
||||
//向所有userTask节点增加创建和完成时任务监听器
|
||||
Collection<FlowElement> flowElements = mainProcess.getFlowElements();
|
||||
for (FlowElement flowElement : flowElements) {
|
||||
if (flowElement instanceof UserTask) {
|
||||
UserTask userTask = (UserTask) flowElement;
|
||||
List<ActivitiListener> taskListeners = userTask.getTaskListeners();
|
||||
ActivitiListener createListener = new ActivitiListener();
|
||||
createListener.setEvent(TaskListener.EVENTNAME_CREATE);
|
||||
createListener.setImplementationType("class");
|
||||
createListener.setImplementation(CreateListener.class.toString());
|
||||
taskListeners.add(createListener);
|
||||
ActivitiListener completeListener = new ActivitiListener();
|
||||
completeListener.setEvent(TaskListener.EVENTNAME_COMPLETE);
|
||||
completeListener.setImplementationType("class");
|
||||
completeListener.setImplementation(CompleteListener.class.toString());
|
||||
taskListeners.add(completeListener);
|
||||
userTask.setTaskListeners(taskListeners);
|
||||
}
|
||||
}
|
||||
ObjectNode objectNode = new BpmnJsonConverter().convertToJson(bpmnModel);
|
||||
repositoryService.addModelEditorSource(modelId, objectNode.toString().getBytes(StandardCharsets.UTF_8));
|
||||
//生成节点
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.jero.modules.activiti.listener;
|
||||
|
||||
import org.activiti.engine.delegate.DelegateTask;
|
||||
import org.activiti.engine.delegate.TaskListener;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
* @date 2023-10-15 17:02
|
||||
*/
|
||||
public class CompleteListener implements TaskListener {
|
||||
@Override
|
||||
public void notify(DelegateTask delegateTask) {
|
||||
System.out.println(delegateTask.getId());
|
||||
System.out.println(delegateTask.getName());
|
||||
System.out.println(delegateTask.getEventName());
|
||||
System.out.println(delegateTask.getAssignee());
|
||||
// todo 对接统一平台完成任务
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,17 @@
|
||||
package com.jero.modules.activiti.listener;
|
||||
|
||||
import org.activiti.bpmn.model.ActivitiListener;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import org.activiti.engine.delegate.DelegateExecution;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.activiti.engine.delegate.DelegateTask;
|
||||
import org.activiti.engine.delegate.TaskListener;
|
||||
import org.activiti.engine.task.DelegationState;
|
||||
import org.activiti.engine.task.IdentityLink;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
@@ -10,9 +20,32 @@ import org.activiti.engine.delegate.TaskListener;
|
||||
public class CreateListener implements TaskListener {
|
||||
@Override
|
||||
public void notify(DelegateTask delegateTask) {
|
||||
String id = delegateTask.getId();
|
||||
String name = delegateTask.getName();
|
||||
String description = delegateTask.getDescription();
|
||||
int priority = delegateTask.getPriority();
|
||||
String processInstanceId = delegateTask.getProcessInstanceId();
|
||||
String executionId = delegateTask.getExecutionId();
|
||||
String processDefinitionId = delegateTask.getProcessDefinitionId();
|
||||
Date createTime = delegateTask.getCreateTime();
|
||||
String taskDefinitionKey = delegateTask.getTaskDefinitionKey();
|
||||
boolean isSuspended = delegateTask.isSuspended();
|
||||
String tenantId = delegateTask.getTenantId();
|
||||
String formKey = delegateTask.getFormKey();
|
||||
DelegateExecution execution = delegateTask.getExecution();
|
||||
String eventName = delegateTask.getEventName();
|
||||
ActivitiListener currentActivitiListener = delegateTask.getCurrentActivitiListener();
|
||||
DelegationState delegationState = delegateTask.getDelegationState();
|
||||
String owner = delegateTask.getOwner();
|
||||
String assignee = delegateTask.getAssignee();
|
||||
Date dueDate = delegateTask.getDueDate();
|
||||
String category = delegateTask.getCategory();
|
||||
Set<IdentityLink> candidates = delegateTask.getCandidates();
|
||||
|
||||
System.out.println(delegateTask.getId());
|
||||
System.out.println(delegateTask.getName());
|
||||
System.out.println(delegateTask.getEventName());
|
||||
System.out.println(delegateTask.getAssignee());
|
||||
// todo 对接统一平台完成任务
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user