新增支持根据businessKey查询实例列表方法
This commit is contained in:
parent
6639c40bcd
commit
35266f2314
@ -186,4 +186,19 @@ public interface QueryService {
|
||||
*/
|
||||
Optional<List<FlwInstance>> getSubProcessByInstanceId(Long instanceId);
|
||||
|
||||
/**
|
||||
* 根据业务主键获取流程实例
|
||||
*
|
||||
* @param businessKey 业务主键
|
||||
* @return 流程实例列表
|
||||
*/
|
||||
Optional<List<FlwInstance>> getInstancesByBusinessKey(String businessKey);
|
||||
|
||||
/**
|
||||
* 根据业务主键获取历史流程实例
|
||||
*
|
||||
* @param businessKey 业务主键
|
||||
* @return 历史流程实例列表
|
||||
*/
|
||||
Optional<List<FlwHisInstance>> getHisInstancesByBusinessKey(String businessKey);
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ package com.aizuda.bpm.engine.dao;
|
||||
import com.aizuda.bpm.engine.entity.FlwHisInstance;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* 历史流程实例数据访问层接口
|
||||
@ -30,5 +31,7 @@ public interface FlwHisInstanceDao {
|
||||
|
||||
FlwHisInstance selectById(Long id);
|
||||
|
||||
List<FlwHisInstance> selectListByProcessId(Long processId);
|
||||
Optional<List<FlwHisInstance>> selectListByProcessId(Long processId);
|
||||
|
||||
Optional<List<FlwHisInstance>> selectListByBusinessKey(String businessKey);
|
||||
}
|
||||
|
@ -34,4 +34,6 @@ public interface FlwInstanceDao {
|
||||
FlwInstance selectById(Long id);
|
||||
|
||||
Optional<List<FlwInstance>> selectListByParentInstanceId(Long parentInstanceId);
|
||||
|
||||
Optional<List<FlwInstance>> selectListByBusinessKey(String businessKey);
|
||||
}
|
||||
|
@ -131,4 +131,13 @@ public class QueryServiceImpl implements QueryService {
|
||||
return instanceDao.selectListByParentInstanceId(instanceId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<List<FlwInstance>> getInstancesByBusinessKey(String businessKey) {
|
||||
return instanceDao.selectListByBusinessKey(businessKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<List<FlwHisInstance>> getHisInstancesByBusinessKey(String businessKey) {
|
||||
return hisInstanceDao.selectListByBusinessKey(businessKey);
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ import com.aizuda.bpm.engine.RuntimeService;
|
||||
import com.aizuda.bpm.engine.TaskService;
|
||||
import com.aizuda.bpm.engine.assist.Assert;
|
||||
import com.aizuda.bpm.engine.assist.DateUtils;
|
||||
import com.aizuda.bpm.engine.assist.ObjectUtils;
|
||||
import com.aizuda.bpm.engine.core.Execution;
|
||||
import com.aizuda.bpm.engine.core.FlowCreator;
|
||||
import com.aizuda.bpm.engine.core.FlowLongContext;
|
||||
@ -28,7 +27,6 @@ import com.aizuda.bpm.engine.model.NodeModel;
|
||||
import com.aizuda.bpm.engine.model.ProcessModel;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Function;
|
||||
@ -302,10 +300,10 @@ public class RuntimeServiceImpl implements RuntimeService {
|
||||
*/
|
||||
@Override
|
||||
public void cascadeRemoveByProcessId(Long processId) {
|
||||
List<FlwHisInstance> flwHisInstances = hisInstanceDao.selectListByProcessId(processId);
|
||||
if (ObjectUtils.isNotEmpty(flwHisInstances)) {
|
||||
hisInstanceDao.selectListByProcessId(processId).ifPresent(hisInstances -> {
|
||||
|
||||
// 删除活动任务相关信息
|
||||
taskService.cascadeRemoveByInstanceIds(flwHisInstances.stream().map(FlowEntity::getId).collect(Collectors.toList()));
|
||||
taskService.cascadeRemoveByInstanceIds(hisInstances.stream().map(FlowEntity::getId).collect(Collectors.toList()));
|
||||
|
||||
// 删除扩展实例
|
||||
extInstanceDao.deleteByProcessId(processId);
|
||||
@ -315,7 +313,7 @@ public class RuntimeServiceImpl implements RuntimeService {
|
||||
|
||||
// 删除实例
|
||||
instanceDao.deleteByProcessId(processId);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -950,7 +950,7 @@ public class TaskServiceImpl implements TaskService {
|
||||
final long instanceId = flwTask.getInstanceId();
|
||||
execution.getEngine().startProcessInstance(flwProcess, flowCreator, null, () -> {
|
||||
FlwInstance flwInstance = new FlwInstance();
|
||||
flwInstance.setBusinessKey(nodeModel.getNodeKey());
|
||||
flwInstance.setCurrentNodeKey(nodeModel.getNodeKey());
|
||||
flwInstance.setParentInstanceId(instanceId);
|
||||
return flwInstance;
|
||||
}).ifPresent(instance -> {
|
||||
|
@ -10,6 +10,7 @@ import com.aizuda.bpm.mybatisplus.mapper.FlwHisInstanceMapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* 历史流程实例数据访问层接口实现类
|
||||
@ -55,8 +56,14 @@ public class FlwHisInstanceDaoImpl implements FlwHisInstanceDao {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FlwHisInstance> selectListByProcessId(Long processId) {
|
||||
return hisInstanceMapper.selectList(Wrappers.<FlwHisInstance>lambdaQuery()
|
||||
.eq(FlwHisInstance::getProcessId, processId));
|
||||
public Optional<List<FlwHisInstance>> selectListByProcessId(Long processId) {
|
||||
return Optional.ofNullable(hisInstanceMapper.selectList(Wrappers.<FlwHisInstance>lambdaQuery()
|
||||
.eq(FlwHisInstance::getProcessId, processId)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<List<FlwHisInstance>> selectListByBusinessKey(String businessKey) {
|
||||
return Optional.ofNullable(hisInstanceMapper.selectList(Wrappers.<FlwHisInstance>lambdaQuery()
|
||||
.eq(FlwHisInstance::getBusinessKey, businessKey)));
|
||||
}
|
||||
}
|
||||
|
@ -65,4 +65,10 @@ public class FlwInstanceDaoImpl implements FlwInstanceDao {
|
||||
return Optional.ofNullable(instanceMapper.selectList(Wrappers.<FlwInstance>lambdaQuery()
|
||||
.eq(FlwInstance::getParentInstanceId, parentInstanceId)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<List<FlwInstance>> selectListByBusinessKey(String businessKey) {
|
||||
return Optional.ofNullable(instanceMapper.selectList(Wrappers.<FlwInstance>lambdaQuery()
|
||||
.eq(FlwInstance::getBusinessKey, businessKey)));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user