fix: 修复流程办理报错

This commit is contained in:
2023-10-26 16:01:07 +08:00
parent 97f937ddd9
commit 21a25ae474
2 changed files with 32 additions and 0 deletions
@@ -27,10 +27,13 @@ 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.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.delegate.BaseExecutionListener;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.repository.*;
import org.activiti.engine.runtime.ProcessInstance;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cglib.beans.BeanMap;
@@ -437,6 +440,31 @@ public class ModelerController {
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
@GetMapping("/clearAllProcesses")
@ApiOperation("清理所有流程")
public void clearAllProcesses() {
// 获取流程引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 获取RuntimeService并删除所有流程实例
List<ProcessInstance> instances = processEngine.getRuntimeService()
.createProcessInstanceQuery()
.list();
for (ProcessInstance instance : instances) {
processEngine.getRuntimeService()
.deleteProcessInstance(instance.getId(), "Cleanup all instances");
}
// 获取RepositoryService并删除所有流程
List<ProcessDefinition> definitions = processEngine.getRepositoryService()
.createProcessDefinitionQuery()
.list();
for (ProcessDefinition definition : definitions) {
processEngine.getRepositoryService()
.deleteDeployment(definition.getDeploymentId(), true);
}
}
}
@@ -73,6 +73,9 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
@Override
public InitChangeDataVO getHandleData(String taskId) {
if (!actFlowCommonService.taskExists(taskId)) {
throw new JeroBootException("任务不存在");
}
InitChangeDataVO initChangeDataVO = new InitChangeDataVO();
// 使用流程引擎根据taskId找到流程实例Id
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
@@ -81,6 +84,7 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
CommonVO commonVO = new CommonVO();
commonVO.setPrcName(process.getPrcName());
commonVO.setTaskId(process.getTaskId());
commonVO.setPrcMes(process.getPrcMes());
commonVO.setDueTime(process.getDueTime());
initChangeDataVO.setCommonVO(commonVO);