文档拆分-删除目录:查询子节点bug修改

This commit is contained in:
liyawei
2022-09-13 18:59:46 +08:00
parent f6a9d1e7fc
commit 2e2373691a
3 changed files with 46 additions and 3 deletions
@@ -22,6 +22,13 @@ public interface ISarFileSplitMenuEOService extends IService<SarFileSplitMenuEO>
int addMenu(SarFileSplitMenuEO sarFileSplitMenuEO);
/**
* 根据ID查询所有的子节点包括父节点
* @param sarFileSplitMenuEO
* @return
*/
List<SarFileSplitMenuEO> queryAllChildrenById(SarFileSplitMenuEO sarFileSplitMenuEO);
void deleteMenu(String id);
int insert(SarFileSplitMenuEO sarFileSplitMenuEO);
@@ -45,6 +45,7 @@ import com.jero.modules.split.page.SarFileSplitMenuEOPage;
import com.jero.modules.split.service.IFileSplitItemsEOService;
import com.jero.modules.split.service.ISarFileSplitInfoService;
import com.jero.modules.split.service.ISarFileSplitItemsValEOService;
import com.jero.modules.split.service.ISarFileSplitMenuEOService;
import com.jero.modules.split.util.POIReadExcelToHtml;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysCategoryTreeVO;
@@ -124,6 +125,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
private IBussDocumentLibraryEOService documentLibraryEOService;
@Autowired
private ISysUserService sysUserService;
@Autowired
private ISarFileSplitMenuEOService sarFileSplitMenuEOService;
@Value(value = "${jero.path.upload}")
@@ -682,9 +685,12 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
// 查询所有子级id
SarFileSplitMenuEO sarFileSplitMenuEO = new SarFileSplitMenuEO();
sarFileSplitMenuEO.setId(value);
List<String> menuIdList = sarFileSplitMenuEOMapper.queryAllChildrenByid(sarFileSplitMenuEO).stream()
List<String> menuIdList = sarFileSplitMenuEOService.queryAllChildrenById(sarFileSplitMenuEO).stream()
.map(SarFileSplitMenuEO::getId)
.collect(Collectors.toList());
// List<String> menuIdList = sarFileSplitMenuEOMapper.queryAllChildrenByid(sarFileSplitMenuEO).stream()
// .map(SarFileSplitMenuEO::getId)
// .collect(Collectors.toList());
String menuIds = StringUtils.join(menuIdList,"','");
conditionSb.append(" and sar_file_split_items." + key + " in('" + menuIds + "')");
}
@@ -1,6 +1,6 @@
package com.jero.modules.split.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.split.entity.SarFileSplitMenuEO;
import com.jero.modules.split.mapper.SarFileSplitItemsValEOMapper;
@@ -16,6 +16,7 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -79,12 +80,41 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
return count;
}
public List<SarFileSplitMenuEO> queryAllChildrenById(SarFileSplitMenuEO sarMenuEO) {
SarFileSplitMenuEO sarFileSplitMenuEO = dao.selectByPrimaryKey(sarMenuEO.getId());
SarFileSplitMenuEOPage page = new SarFileSplitMenuEOPage();
page.setInfoId(sarFileSplitMenuEO.getInfoId());
List<SarFileSplitMenuEO> listAll = dao.queryByList(page); // 查询所有目录
List<SarFileSplitMenuEO> result = new ArrayList<>();
// 递归查询 指定父节点下的所有子节点,包括父节点
if (CollectionUtil.isNotEmpty(listAll)) {
result.add(sarFileSplitMenuEO); // 加上父节点
recursion(listAll, result, sarFileSplitMenuEO);
}
return result;
}
private void recursion(List<SarFileSplitMenuEO> listAll, List<SarFileSplitMenuEO> result, SarFileSplitMenuEO father) {
List<SarFileSplitMenuEO> childern = listAll.stream().filter(e-> father.getId().equals(e.getPId())).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(childern)) {
result.addAll(childern);
for(SarFileSplitMenuEO menuEO : childern) {
recursion(listAll, result, menuEO);
}
}
}
public void deleteMenu(String id){
List<String> menuIds = new ArrayList<>();
SarFileSplitMenuEO sarMenuEO = new SarFileSplitMenuEO();
sarMenuEO.setId(id);
// 查询当前节点及所有子节点
List<SarFileSplitMenuEO> list = dao.queryAllChildrenByid(sarMenuEO);
// List<SarFileSplitMenuEO> list = dao.queryAllChildrenByid(sarMenuEO);
List<SarFileSplitMenuEO> list = queryAllChildrenById(sarMenuEO);
if (list != null && !list.isEmpty()) {
for(SarFileSplitMenuEO menu : list){
menuIds.add(menu.getId());