diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/bg/xispeak/service/impl/BgXiSpeakServiceImpl.java b/jeecg-module-supervision/src/main/java/org/jeecg/modules/bg/xispeak/service/impl/BgXiSpeakServiceImpl.java index 6c87ef0..482686a 100644 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/bg/xispeak/service/impl/BgXiSpeakServiceImpl.java +++ b/jeecg-module-supervision/src/main/java/org/jeecg/modules/bg/xispeak/service/impl/BgXiSpeakServiceImpl.java @@ -10,6 +10,8 @@ import org.jeecg.common.system.vo.SelectTreeModel; import org.jeecg.modules.bg.xispeak.entity.BgXiSpeak; import org.jeecg.modules.bg.xispeak.mapper.BgXiSpeakMapper; import org.jeecg.modules.bg.xispeak.service.IBgXiSpeakService; +import org.jeecg.modules.taskapprovalopinion.entity.TaskApprovalOpinion; +import org.jeecg.modules.taskapprovalopinion.service.ITaskApprovalOpinionService; import org.jeecg.modules.tasktask.entity.TaskTask; import org.jeecg.modules.tasktask.service.impl.TaskTaskServiceImpl; import org.springframework.beans.factory.annotation.Autowired; @@ -36,6 +38,7 @@ public class BgXiSpeakServiceImpl extends ServiceImpl() + .eq(TaskApprovalOpinion::getProcessInstId, procId)); } - // 4. 【核心修改:删除用】重新创建一个干净的 Wrapper,绝不能带 for update! + // 4. 重新创建一个干净的 Wrapper,绝不能带 for update! LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper() - .eq(TaskTask::getBusinessId, id); // 不要加 .last("for update") + .eq(TaskTask::getBusinessId, id); - taskTaskServiceImpl.remove(deleteWrapper); // 使用干净的 Wrapper 执行删除 + taskTaskServiceImpl.remove(deleteWrapper); return true; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/impl/TaskTaskServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/impl/TaskTaskServiceImpl.java index 9fc8278..1178c96 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/impl/TaskTaskServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/impl/TaskTaskServiceImpl.java @@ -9,6 +9,8 @@ import org.flowable.engine.RuntimeService; import org.flowable.engine.runtime.ProcessInstance; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.extbpm.process.exception.BpmException; +import org.jeecg.modules.taskapprovalopinion.entity.TaskApprovalOpinion; +import org.jeecg.modules.taskapprovalopinion.service.ITaskApprovalOpinionService; import org.jeecg.modules.extbpm.process.service.impl.BpmBaseExtApiImpl; import org.jeecg.modules.tasktask.constant.FlowConstants; import org.jeecg.modules.tasktask.entity.TaskTask; @@ -38,6 +40,8 @@ public class TaskTaskServiceImpl extends ServiceImpl i private BpmBaseExtApiImpl bpmBaseExtApiImpl; @Autowired private RuntimeService runtimeService; + @Autowired + private ITaskApprovalOpinionService taskApprovalOpinionService; @Transactional(rollbackFor = Exception.class) public boolean singleFlowStart(TaskTask taskTask, String userName) throws Exception { String jsonString = Optional.ofNullable(taskTask.getJsonData()) @@ -193,6 +197,9 @@ public class TaskTaskServiceImpl extends ServiceImpl i runtimeService.deleteProcessInstance(processInstId, "删除单个流程"); log.info("成功中止运行中的流程实例: {}", processInstId); } + taskApprovalOpinionService.remove( + new LambdaQueryWrapper() + .eq(TaskApprovalOpinion::getProcessInstId, processInstId)); LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper() .eq(TaskTask::getProcessInstId, processInstId); return this.remove(deleteWrapper);