add TaskListener

This commit is contained in:
lijiarao
2023-10-13 18:06:23 +08:00
parent b4b569da58
commit 5746e12a20
3 changed files with 66 additions and 0 deletions
@@ -0,0 +1,18 @@
package com.jero.modules.activiti.listener;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
/**
* @author liJiaRao
* @date 2023-10-13 16:43
*/
public class CreateListener 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());
}
}
@@ -0,0 +1,15 @@
package com.jero.modules.activiti.listener;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
/**
* @author liJiaRao
* @date 2023-10-13 16:43
*/
public class EndListener implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
}
}
@@ -16,6 +16,7 @@ import org.activiti.bpmn.model.*;
import org.activiti.bpmn.model.Process;
import org.activiti.editor.language.json.converter.BpmnJsonConverter;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.repository.Model;
import org.apache.commons.io.IOUtils;
import org.springframework.stereotype.Service;
@@ -167,6 +168,38 @@ public class ProcessModelNodeService extends ServiceImpl<ProcessModelNodeMapper,
return null;
}
public Object testAddTaskListener(AddTaskVO addTaskVO) {
try {
String modelId = addTaskVO.getModelId();
String xmlNodeId = addTaskVO.getXmlNodeId();
String nodeName = addTaskVO.getNodeName();
//查询模型
Model model = repositoryService.getModel(modelId);
byte[] modelEditorSource = repositoryService.getModelEditorSource(modelId);
ObjectNode objectNode = (ObjectNode) new ObjectMapper().readTree(modelEditorSource);
BpmnModel bpmnModel = new BpmnJsonConverter().convertToBpmnModel(objectNode);
Process process = bpmnModel.getMainProcess();
UserTask flowElement1 =(UserTask) process.getFlowElement(xmlNodeId);
List<ActivitiListener> taskListeners = flowElement1.getTaskListeners();
for (ActivitiListener taskListener : taskListeners) {
taskListener.setEvent(TaskListener.EVENTNAME_CREATE);
taskListener.setImplementationType("class");
taskListener.setImplementation("com.jero.modules.activiti.listener.CreateListener");
log.info(taskListener.toString());
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public void deleteTask(AddTaskVO addTaskVO) {
try {
String modelId = addTaskVO.getModelId();