fix:【BPM 工作流】流程模型分类删除时,额外校验是否被流程模型所使用。
This commit is contained in:
@@ -74,6 +74,7 @@ public interface ErrorCodeConstants {
|
|||||||
ErrorCode CATEGORY_NOT_EXISTS = new ErrorCode(1_009_012_000, "流程分类不存在");
|
ErrorCode CATEGORY_NOT_EXISTS = new ErrorCode(1_009_012_000, "流程分类不存在");
|
||||||
ErrorCode CATEGORY_NAME_DUPLICATE = new ErrorCode(1_009_012_001, "流程分类名字【{}】重复");
|
ErrorCode CATEGORY_NAME_DUPLICATE = new ErrorCode(1_009_012_001, "流程分类名字【{}】重复");
|
||||||
ErrorCode CATEGORY_CODE_DUPLICATE = new ErrorCode(1_009_012_002, "流程分类编码【{}】重复");
|
ErrorCode CATEGORY_CODE_DUPLICATE = new ErrorCode(1_009_012_002, "流程分类编码【{}】重复");
|
||||||
|
ErrorCode CATEGORY_DELETE_FAIL_MODEL_USED = new ErrorCode(1_009_012_003, "删除失败,流程分类【{}】已被流程模型使用,请先删除对应的流程模型");
|
||||||
|
|
||||||
// ========== BPM 流程监听器 1-009-013-000 ==========
|
// ========== BPM 流程监听器 1-009-013-000 ==========
|
||||||
ErrorCode PROCESS_LISTENER_NOT_EXISTS = new ErrorCode(1_009_013_000, "流程监听器不存在");
|
ErrorCode PROCESS_LISTENER_NOT_EXISTS = new ErrorCode(1_009_013_000, "流程监听器不存在");
|
||||||
|
|||||||
@@ -34,6 +34,9 @@ public class BpmCategoryServiceImpl implements BpmCategoryService {
|
|||||||
@Resource
|
@Resource
|
||||||
private BpmCategoryMapper bpmCategoryMapper;
|
private BpmCategoryMapper bpmCategoryMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BpmModelService modelService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createCategory(BpmCategorySaveReqVO createReqVO) {
|
public Long createCategory(BpmCategorySaveReqVO createReqVO) {
|
||||||
// 校验唯一
|
// 校验唯一
|
||||||
@@ -77,15 +80,22 @@ public class BpmCategoryServiceImpl implements BpmCategoryService {
|
|||||||
@Override
|
@Override
|
||||||
public void deleteCategory(Long id) {
|
public void deleteCategory(Long id) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
validateCategoryExists(id);
|
BpmCategoryDO category = validateCategoryExists(id);
|
||||||
|
// 校验是否被流程模型使用
|
||||||
|
Long count = modelService.getModelCountByCategory(category.getCode());
|
||||||
|
if (count > 0) {
|
||||||
|
throw exception(CATEGORY_DELETE_FAIL_MODEL_USED, category.getName());
|
||||||
|
}
|
||||||
// 删除
|
// 删除
|
||||||
bpmCategoryMapper.deleteById(id);
|
bpmCategoryMapper.deleteById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateCategoryExists(Long id) {
|
private BpmCategoryDO validateCategoryExists(Long id) {
|
||||||
if (bpmCategoryMapper.selectById(id) == null) {
|
BpmCategoryDO category = bpmCategoryMapper.selectById(id);
|
||||||
|
if (category == null) {
|
||||||
throw exception(CATEGORY_NOT_EXISTS);
|
throw exception(CATEGORY_NOT_EXISTS);
|
||||||
}
|
}
|
||||||
|
return category;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -24,6 +24,14 @@ public interface BpmModelService {
|
|||||||
*/
|
*/
|
||||||
List<Model> getModelList(String name);
|
List<Model> getModelList(String name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据分类编码获得流程模型数量
|
||||||
|
*
|
||||||
|
* @param category 分类编码
|
||||||
|
* @return 流程模型数量
|
||||||
|
*/
|
||||||
|
Long getModelCountByCategory(String category);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建流程模型
|
* 创建流程模型
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -88,6 +88,14 @@ public class BpmModelServiceImpl implements BpmModelService {
|
|||||||
return modelQuery.list();
|
return modelQuery.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getModelCountByCategory(String category) {
|
||||||
|
return repositoryService.createModelQuery()
|
||||||
|
.modelCategory(category)
|
||||||
|
.modelTenantId(FlowableUtils.getTenantId())
|
||||||
|
.count();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public String createModel(@Valid BpmModelSaveReqVO createReqVO) {
|
public String createModel(@Valid BpmModelSaveReqVO createReqVO) {
|
||||||
|
|||||||
Reference in New Issue
Block a user