update 优化 删除业务ID的方法,支持字符串类型的业务ID

This commit is contained in:
疯狂的狮子Li
2025-11-19 16:31:21 +08:00
parent 0ef3439750
commit 4a870fa135
9 changed files with 13 additions and 10 deletions

View File

@@ -21,7 +21,7 @@ public interface RemoteWorkflowService {
* @param businessIds 业务id * @param businessIds 业务id
* @return 结果 * @return 结果
*/ */
boolean deleteInstance(List<Long> businessIds); boolean deleteInstance(List<String> businessIds);
/** /**
* 获取当前流程状态 * 获取当前流程状态

View File

@@ -17,7 +17,7 @@ import java.util.Map;
public class RemoteWorkflowServiceMock implements RemoteWorkflowService { public class RemoteWorkflowServiceMock implements RemoteWorkflowService {
@Override @Override
public boolean deleteInstance(List<Long> businessIds) { public boolean deleteInstance(List<String> businessIds) {
log.warn("服务调用异常 -> 降级处理"); log.warn("服务调用异常 -> 降级处理");
return false; return false;
} }

View File

@@ -1,7 +1,9 @@
package org.dromara.workflow.controller; package org.dromara.workflow.controller;
import cn.hutool.core.convert.Convert;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log; import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType; import org.dromara.common.log.enums.BusinessType;
@@ -76,7 +78,7 @@ public class FlwInstanceController extends BaseController {
*/ */
@DeleteMapping("/deleteByBusinessIds/{businessIds}") @DeleteMapping("/deleteByBusinessIds/{businessIds}")
public R<Void> deleteByBusinessIds(@PathVariable List<Long> businessIds) { public R<Void> deleteByBusinessIds(@PathVariable List<Long> businessIds) {
return toAjax(flwInstanceService.deleteByBusinessIds(businessIds)); return toAjax(flwInstanceService.deleteByBusinessIds(StreamUtils.toList(businessIds, Convert::toStr)));
} }
/** /**

View File

@@ -24,7 +24,7 @@ public class RemoteWorkflowServiceImpl implements RemoteWorkflowService {
private final WorkflowService workflowService; private final WorkflowService workflowService;
@Override @Override
public boolean deleteInstance(List<Long> businessIds) { public boolean deleteInstance(List<String> businessIds) {
return workflowService.deleteInstance(businessIds); return workflowService.deleteInstance(businessIds);
} }

View File

@@ -75,7 +75,7 @@ public interface IFlwInstanceService {
* @param businessIds 业务id * @param businessIds 业务id
* @return 结果 * @return 结果
*/ */
boolean deleteByBusinessIds(List<Long> businessIds); boolean deleteByBusinessIds(List<String> businessIds);
/** /**
* 按照实例id删除流程实例 * 按照实例id删除流程实例

View File

@@ -20,7 +20,7 @@ public interface WorkflowService {
* @param businessIds 业务id * @param businessIds 业务id
* @return 结果 * @return 结果
*/ */
boolean deleteInstance(List<Long> businessIds); boolean deleteInstance(List<String> businessIds);
/** /**
* 获取当前流程状态 * 获取当前流程状态

View File

@@ -181,8 +181,8 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean deleteByBusinessIds(List<Long> businessIds) { public boolean deleteByBusinessIds(List<String> businessIds) {
List<FlowInstance> flowInstances = flowInstanceMapper.selectList(new LambdaQueryWrapper<FlowInstance>().in(FlowInstance::getBusinessId, StreamUtils.toList(businessIds, Convert::toStr))); List<FlowInstance> flowInstances = flowInstanceMapper.selectList(new LambdaQueryWrapper<FlowInstance>().in(FlowInstance::getBusinessId, businessIds));
if (CollUtil.isEmpty(flowInstances)) { if (CollUtil.isEmpty(flowInstances)) {
log.warn("未找到对应的流程实例信息,无法执行删除操作。"); log.warn("未找到对应的流程实例信息,无法执行删除操作。");
return false; return false;

View File

@@ -13,6 +13,7 @@ import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.enums.BusinessStatusEnum; import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
@@ -168,7 +169,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(List<Long> ids) { public Boolean deleteWithValidByIds(List<Long> ids) {
workflowService.deleteInstance(ids); workflowService.deleteInstance(StreamUtils.toList(ids, Convert::toStr));
return baseMapper.deleteByIds(ids) > 0; return baseMapper.deleteByIds(ids) > 0;
} }

View File

@@ -45,7 +45,7 @@ public class WorkflowServiceImpl implements WorkflowService {
* @return 结果 * @return 结果
*/ */
@Override @Override
public boolean deleteInstance(List<Long> businessIds) { public boolean deleteInstance(List<String> businessIds) {
return flwInstanceService.deleteByBusinessIds(businessIds); return flwInstanceService.deleteByBusinessIds(businessIds);
} }