|
@@ -2,21 +2,22 @@ package cn.iocoder.yudao.module.bpm.service.definition;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.ObjUtil;
|
|
|
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.category.BpmCategoryPageReqVO;
|
|
|
import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.category.BpmCategorySaveReqVO;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import jakarta.annotation.Resource;
|
|
|
-import org.springframework.validation.annotation.Validated;
|
|
|
-
|
|
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmCategoryDO;
|
|
|
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
-
|
|
|
import cn.iocoder.yudao.module.bpm.dal.mysql.category.BpmCategoryMapper;
|
|
|
+import jakarta.annotation.Resource;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
import java.util.Collection;
|
|
|
import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+import java.util.stream.IntStream;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
|
|
@@ -58,7 +59,7 @@ public class BpmCategoryServiceImpl implements BpmCategoryService {
|
|
|
private void validateCategoryNameUnique(BpmCategorySaveReqVO updateReqVO) {
|
|
|
BpmCategoryDO category = bpmCategoryMapper.selectByName(updateReqVO.getName());
|
|
|
if (category == null
|
|
|
- || ObjUtil.equal(category.getId(), updateReqVO.getId())) {
|
|
|
+ || ObjUtil.equal(category.getId(), updateReqVO.getId())) {
|
|
|
return;
|
|
|
}
|
|
|
throw exception(CATEGORY_NAME_DUPLICATE, updateReqVO.getName());
|
|
@@ -67,7 +68,7 @@ public class BpmCategoryServiceImpl implements BpmCategoryService {
|
|
|
private void validateCategoryCodeUnique(BpmCategorySaveReqVO updateReqVO) {
|
|
|
BpmCategoryDO category = bpmCategoryMapper.selectByCode(updateReqVO.getCode());
|
|
|
if (category == null
|
|
|
- || ObjUtil.equal(category.getId(), updateReqVO.getId())) {
|
|
|
+ || ObjUtil.equal(category.getId(), updateReqVO.getId())) {
|
|
|
return;
|
|
|
}
|
|
|
throw exception(CATEGORY_CODE_DUPLICATE, updateReqVO.getCode());
|
|
@@ -110,4 +111,20 @@ public class BpmCategoryServiceImpl implements BpmCategoryService {
|
|
|
return bpmCategoryMapper.selectListByStatus(status);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void updateCategorySortBatch(List<Long> ids) {
|
|
|
+ // 校验分类都存在
|
|
|
+ List<BpmCategoryDO> categories = bpmCategoryMapper.selectByIds(ids);
|
|
|
+ if (categories.size() != ids.size()) {
|
|
|
+ throw exception(CATEGORY_NOT_EXISTS);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量更新排序
|
|
|
+ List<BpmCategoryDO> updateList = IntStream.range(0, ids.size())
|
|
|
+ .mapToObj(index -> new BpmCategoryDO().setId(ids.get(index)).setSort(index))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ bpmCategoryMapper.updateBatch(updateList);
|
|
|
+ }
|
|
|
+
|
|
|
}
|