refactor(xispeak): 将删除单个流程接口下沉至 tasktask 通用模块

deleteSingleProcess 由 BgXiSpeakController 迁移至 TaskTaskController,
作为通用接口供各业务模块复用。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
wsm
2026-05-26 09:58:14 +08:00
co-authored by Claude Opus 4.7
parent 4ac462425c
commit 119c148c25
6 changed files with 43 additions and 44 deletions
@@ -222,6 +222,25 @@ public class TaskTaskController extends JeecgController<TaskTask, ITaskTaskServi
return success ? Result.OK("更新成功") : Result.error("更新失败,未找到对应任务记录");
}
/**
* 删除单个流程实例
*
* @param processInstId 流程实例ID
* @return
*/
@AutoLog(value = "删除单个流程实例")
@Operation(summary = "删除单个流程实例")
@PostMapping(value = "/deleteSingleProcess")
public Result<String> deleteSingleProcess(@RequestParam("processInstId") String processInstId) {
if (oConvertUtils.isEmpty(processInstId)) {
return Result.error("流程实例ID不能为空");
}
if (taskTaskService.deleteSingleProcess(processInstId)) {
return Result.OK("删除流程成功");
}
return Result.error("删除流程失败");
}
/**
* 导出excel
*
@@ -18,4 +18,5 @@ public interface ITaskTaskService extends IService<TaskTask> {
Result<?> handleFlowStart(TaskTask taskTask, String username, Integer intervalType, Integer startCount)throws Exception;
List<TaskTask> getTaskTaskListByBusinessId(String businessId) throws Exception;
boolean updateDeptHandlerName(String processInstanceId, String deptHandlerName);
boolean deleteSingleProcess(String processInstId);
}
@@ -174,4 +174,27 @@ public class TaskTaskServiceImpl extends ServiceImpl<TaskTaskMapper, TaskTask> i
taskTask.setDeptHandlerName(deptHandlerName);
return this.updateById(taskTask);
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean deleteSingleProcess(String processInstId) {
LambdaQueryWrapper<TaskTask> queryWrapper = new LambdaQueryWrapper<TaskTask>()
.eq(TaskTask::getProcessInstId, processInstId)
.last("for update");
TaskTask taskTask = this.getOne(queryWrapper, false);
if (taskTask == null) {
log.warn("删除单个流程时未找到关联的tasktask记录, processInstId: {}", processInstId);
return false;
}
long count = runtimeService.createProcessInstanceQuery()
.processInstanceId(processInstId)
.count();
if (count > 0) {
runtimeService.deleteProcessInstance(processInstId, "删除单个流程");
log.info("成功中止运行中的流程实例: {}", processInstId);
}
LambdaQueryWrapper<TaskTask> deleteWrapper = new LambdaQueryWrapper<TaskTask>()
.eq(TaskTask::getProcessInstId, processInstId);
return this.remove(deleteWrapper);
}
}