|
@@ -2,8 +2,13 @@ package com.ozs.base.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.ozs.base.domain.BaseProfessional;
|
|
|
+import com.ozs.base.domain.vo.BaseProfessionalVo;
|
|
|
import com.ozs.base.mapper.BaseProfessionalMapper;
|
|
|
import com.ozs.base.service.BaseProfessionalService;
|
|
|
+import com.ozs.common.core.domain.entity.SysDictType;
|
|
|
+import com.ozs.common.exception.ServiceException;
|
|
|
+import com.ozs.common.utils.DictUtils;
|
|
|
+import com.ozs.common.utils.bean.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -17,21 +22,37 @@ public class BaseProfessionalServiceImpl extends ServiceImpl<BaseProfessionalMap
|
|
|
private BaseProfessionalMapper baseProfessionalMapper;
|
|
|
|
|
|
@Override
|
|
|
- public List<BaseProfessional> selectBaseProfessional(BaseProfessional baseProfessional) {
|
|
|
- List<BaseProfessional> allList = baseProfessionalMapper.selectBaseProfessional(baseProfessional);
|
|
|
- List<BaseProfessional> treeList = buildTree(allList);
|
|
|
+ public void deleteIds(List<Integer> deleteIds) {
|
|
|
+ for (Integer deleteId : deleteIds) {
|
|
|
+ BaseProfessional baseProfessional = baseProfessionalMapper.selectById(deleteId);
|
|
|
+ List<BaseProfessional> baseProfessionalList = baseProfessionalMapper.selectByParentCode(baseProfessional.getProfessionalCode());
|
|
|
+// int ii = baseProfessionalMapper.countByParentCode(baseProfessional.getProfessionalCode());
|
|
|
+ if (baseProfessionalList.size() > 0) {
|
|
|
+ throw new ServiceException(String.format("%1$s已有子级,不能删除", baseProfessional.getProfessionalName()));
|
|
|
+ }
|
|
|
+ baseProfessionalMapper.deleteById(deleteId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<BaseProfessionalVo> selectBaseProfessional(BaseProfessionalVo baseProfessionalVo) {
|
|
|
+ List<BaseProfessional> allList = baseProfessionalMapper.selectBaseProfessional(baseProfessionalVo);
|
|
|
+ // 将实体类转换为Vo类
|
|
|
+ List<BaseProfessionalVo> allListVo = BeanUtils.entityListToVOList(allList, BaseProfessionalVo.class);
|
|
|
+ List<BaseProfessionalVo> treeList = buildTree(allListVo);
|
|
|
return treeList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 构建树形结构
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
- public static List<BaseProfessional> buildTree(List<BaseProfessional> allList) {
|
|
|
+ public static List<BaseProfessionalVo> buildTree(List<BaseProfessionalVo> allList) {
|
|
|
//创建集合封装最终数据
|
|
|
- List<BaseProfessional> trees = new ArrayList<>();
|
|
|
+ List<BaseProfessionalVo> trees = new ArrayList<>();
|
|
|
//遍历所有菜单集合
|
|
|
- for (BaseProfessional baseProfessional : allList) {
|
|
|
+ for (BaseProfessionalVo baseProfessional : allList) {
|
|
|
//找到递归入口,parentId=0
|
|
|
if (baseProfessional.getParentCode().equals("0")) {
|
|
|
trees.add(findChildren(baseProfessional, allList));
|
|
@@ -44,18 +65,19 @@ public class BaseProfessionalServiceImpl extends ServiceImpl<BaseProfessionalMap
|
|
|
* 从根节点进行递归查询,查询子节点
|
|
|
* 判断 编码 = 父级编码是否相同,如果相同是子节点,进行数据封装
|
|
|
*/
|
|
|
- private static BaseProfessional findChildren(BaseProfessional baseProfessional, List<BaseProfessional> allList) {
|
|
|
+ private static BaseProfessionalVo findChildren(BaseProfessionalVo baseProfessional, List<BaseProfessionalVo> allList) {
|
|
|
//数据初始化
|
|
|
- baseProfessional.setBaseProfessionalList(new ArrayList<BaseProfessional>());
|
|
|
+ baseProfessional.setBaseProfessionalVoList(new ArrayList<BaseProfessionalVo>());
|
|
|
//遍历递归查找
|
|
|
- for (BaseProfessional it : allList) {
|
|
|
+ for (BaseProfessionalVo it : allList) {
|
|
|
if (baseProfessional.getProfessionalCode().equals(it.getParentCode())) {
|
|
|
- if (baseProfessional.getBaseProfessionalList() == null) {
|
|
|
- baseProfessional.setBaseProfessionalList(new ArrayList<>());
|
|
|
+ if (baseProfessional.getBaseProfessionalVoList() == null) {
|
|
|
+ baseProfessional.setBaseProfessionalVoList(new ArrayList<>());
|
|
|
}
|
|
|
- baseProfessional.getBaseProfessionalList().add(findChildren(it, allList));
|
|
|
+ baseProfessional.getBaseProfessionalVoList().add(findChildren(it, allList));
|
|
|
}
|
|
|
}
|
|
|
return baseProfessional;
|
|
|
}
|
|
|
+
|
|
|
}
|