初始化
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())) {
|
if (StrUtil.isBlank(request.getName()) && StrUtil.isBlank(request.getNo())) {
|
||||||
return getPage(request.getPage(), request.getPageSize());
|
return getPage(request.getPage(), request.getPageSize());
|
||||||
} else {
|
} else {
|
||||||
// return search();
|
return searchByKey(request);
|
||||||
return getPage(request.getPage(), request.getPageSize());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
@Override
|
||||||
public Set<Long> getWithChildren(Long deptId) {
|
public Set<Long> getWithChildren(Long deptId) {
|
||||||
Set<Long> ids = lambdaQuery()
|
Set<Long> ids = lambdaQuery()
|
||||||
|
|
@ -138,11 +156,11 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
||||||
bindParent(department, list);
|
bindParent(department, list);
|
||||||
});
|
});
|
||||||
List<DepartmentSimpleVO> datas = Convert.toList(DepartmentSimpleVO.class, list);
|
List<DepartmentSimpleVO> datas = Convert.toList(DepartmentSimpleVO.class, list);
|
||||||
bindTree(datas);
|
bindTree1(datas);
|
||||||
return datas;
|
return datas;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void bindTree(List<DepartmentSimpleVO> datas) {
|
private void bindTree1(List<DepartmentSimpleVO> datas) {
|
||||||
datas.sort(Comparator.comparing(DepartmentSimpleVO::getId).reversed());
|
datas.sort(Comparator.comparing(DepartmentSimpleVO::getId).reversed());
|
||||||
Iterator<DepartmentSimpleVO> iterator = datas.iterator();
|
Iterator<DepartmentSimpleVO> iterator = datas.iterator();
|
||||||
while (iterator.hasNext()) {
|
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) {
|
private void bindParent(Department department, List<Department> departments) {
|
||||||
if (department.getParentId() != 0L
|
if (department.getParentId() != 0L
|
||||||
&& departments.stream().noneMatch(d -> Objects.equals(d.getId(), department.getParentId()))) {
|
&& departments.stream().noneMatch(d -> Objects.equals(d.getId(), department.getParentId()))) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue