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
* @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 {
@Override
public boolean deleteInstance(List<Long> businessIds) {
public boolean deleteInstance(List<String> businessIds) {
log.warn("服务调用异常 -> 降级处理");
return false;
}

View File

@@ -1,7 +1,9 @@
package org.dromara.workflow.controller;
import cn.hutool.core.convert.Convert;
import lombok.RequiredArgsConstructor;
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.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
@@ -76,7 +78,7 @@ public class FlwInstanceController extends BaseController {
*/
@DeleteMapping("/deleteByBusinessIds/{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;
@Override
public boolean deleteInstance(List<Long> businessIds) {
public boolean deleteInstance(List<String> businessIds) {
return workflowService.deleteInstance(businessIds);
}

View File

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

View File

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

View File

@@ -181,8 +181,8 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean deleteByBusinessIds(List<Long> businessIds) {
List<FlowInstance> flowInstances = flowInstanceMapper.selectList(new LambdaQueryWrapper<FlowInstance>().in(FlowInstance::getBusinessId, StreamUtils.toList(businessIds, Convert::toStr)));
public boolean deleteByBusinessIds(List<String> businessIds) {
List<FlowInstance> flowInstances = flowInstanceMapper.selectList(new LambdaQueryWrapper<FlowInstance>().in(FlowInstance::getBusinessId, businessIds));
if (CollUtil.isEmpty(flowInstances)) {
log.warn("未找到对应的流程实例信息,无法执行删除操作。");
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.exception.ServiceException;
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.mybatis.core.domain.BaseEntity;
import org.dromara.common.mybatis.core.page.PageQuery;
@@ -168,7 +169,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService {
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(List<Long> ids) {
workflowService.deleteInstance(ids);
workflowService.deleteInstance(StreamUtils.toList(ids, Convert::toStr));
return baseMapper.deleteByIds(ids) > 0;
}

View File

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