初始化
This commit is contained in:
parent
d82d7462ea
commit
68011d046e
|
|
@ -104,11 +104,29 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
|||
if (StrUtil.isBlank(request.getName()) && StrUtil.isBlank(request.getNo())) {
|
||||
return getPage(request.getPage(), request.getPageSize());
|
||||
} else {
|
||||
// return search();
|
||||
return getPage(request.getPage(), request.getPageSize());
|
||||
return searchByKey(request);
|
||||
}
|
||||
}
|
||||
|
||||
private PageData<DepartmentVO> searchByKey(DepartmentSearchQO request) {
|
||||
List<Department> departments = lambdaQuery()
|
||||
.like(StrUtil.isNotBlank(request.getName()), Department::getName, request.getName())
|
||||
.like(StrUtil.isNotBlank(request.getNo()), Department::getSourceId, request.getNo())
|
||||
.list();
|
||||
if (CollectionUtil.isEmpty(departments)) {
|
||||
return new PageData<>();
|
||||
}
|
||||
List<Department> list = new CopyOnWriteArrayList<>(departments);
|
||||
list.forEach(department -> bindParent(department, list));
|
||||
List<DepartmentVO> datas = Convert.toList(DepartmentVO.class, list);
|
||||
bindTree2(datas);
|
||||
return new PageData<DepartmentVO>()
|
||||
.setPage(request.getPage())
|
||||
.setPageSize(request.getPageSize())
|
||||
.setTotal(datas.size())
|
||||
.setItems(datas);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<Long> getWithChildren(Long deptId) {
|
||||
Set<Long> ids = lambdaQuery()
|
||||
|
|
@ -138,11 +156,11 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
|||
bindParent(department, list);
|
||||
});
|
||||
List<DepartmentSimpleVO> datas = Convert.toList(DepartmentSimpleVO.class, list);
|
||||
bindTree(datas);
|
||||
bindTree1(datas);
|
||||
return datas;
|
||||
}
|
||||
|
||||
private void bindTree(List<DepartmentSimpleVO> datas) {
|
||||
private void bindTree1(List<DepartmentSimpleVO> datas) {
|
||||
datas.sort(Comparator.comparing(DepartmentSimpleVO::getId).reversed());
|
||||
Iterator<DepartmentSimpleVO> iterator = datas.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
|
|
@ -155,6 +173,19 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
|||
}
|
||||
}
|
||||
|
||||
private void bindTree2(List<DepartmentVO> datas) {
|
||||
datas.sort(Comparator.comparing(DepartmentVO::getId).reversed());
|
||||
Iterator<DepartmentVO> iterator = datas.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
DepartmentVO vo = iterator.next();
|
||||
DepartmentVO parentVO = datas.stream().filter(d -> Objects.equals(d.getId(), vo.getParentId())).findFirst().orElse(null);
|
||||
if (Objects.nonNull(parentVO)) {
|
||||
parentVO.getChildren().add(0, vo);
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void bindParent(Department department, List<Department> departments) {
|
||||
if (department.getParentId() != 0L
|
||||
&& departments.stream().noneMatch(d -> Objects.equals(d.getId(), department.getParentId()))) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue