|
@@ -363,12 +363,15 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
|
|
List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("company_id", companyId));
|
|
|
//结果列表
|
|
|
List<DepartmentVO> list = new ArrayList<>();
|
|
|
+ //获取全部的顶层部门
|
|
|
List<Department> rootDepartments = departmentList.stream().filter(dept -> dept.getSuperiorId() == null).collect(Collectors.toList());
|
|
|
rootDepartments.forEach(root->{
|
|
|
DepartmentVO rootDeptVO = formatDepartmentToVO(root, departmentOtherManagerList);
|
|
|
list.add(rootDeptVO);
|
|
|
fillSubDepartmentList(departmentList, rootDeptVO, departmentOtherManagerList);
|
|
|
});
|
|
|
+ //递归排序
|
|
|
+ seqResultDeptList(list);
|
|
|
//返回数据
|
|
|
httpRespMsg.data = list;
|
|
|
} catch (NullPointerException e) {
|
|
@@ -427,6 +430,7 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
|
|
|
|
|
//将部门PO转化为部门VO
|
|
|
private DepartmentVO formatDepartmentToVO(Department department, List<DepartmentOtherManager> departmentOtherManagerList) {
|
|
|
+ //获取该部门的其他管理者
|
|
|
List<String> collect = departmentOtherManagerList.stream().filter(dm -> dm.getDepartmentId().equals(department.getDepartmentId())).map(vo -> vo.getOtherManagerId()).collect(Collectors.toList());
|
|
|
//这俩东西并没有继承关系
|
|
|
return new DepartmentVO()
|
|
@@ -436,7 +440,8 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
|
|
.setParentId(department.getSuperiorId())
|
|
|
.setOtherManagerIds(collect)
|
|
|
.setReportAuditUserid(department.getReportAuditUserid())
|
|
|
- .setDdDeptid(department.getDdDeptid());
|
|
|
+ .setDdDeptid(department.getDdDeptid())
|
|
|
+ .setSeq(department.getSeq());
|
|
|
}
|
|
|
|
|
|
//获取某个项目下的统计
|
|
@@ -1522,4 +1527,55 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
|
|
return exportWxDepartment(supDept,departmentList) + "/" + depHierarchy;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 对部门进行排序
|
|
|
+ * @param request
|
|
|
+ * @param list
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg seqList(HttpServletRequest request, List<DepartmentVO> list) {
|
|
|
+ HttpRespMsg msg = new HttpRespMsg();
|
|
|
+ ArrayList<Department> departments = new ArrayList<>();
|
|
|
+ seqDeptList(departments, list);
|
|
|
+ departmentService.updateBatchById(departments);
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 递归对返回的部门数据进行排序
|
|
|
+ * @param list
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<DepartmentVO> seqResultDeptList(List<DepartmentVO> list){
|
|
|
+ list.sort(Comparator.comparing(dept->dept.getSeq()));
|
|
|
+ for (DepartmentVO departmentVO : list) {
|
|
|
+ if (departmentVO.getChildren()!=null){
|
|
|
+ seqResultDeptList(departmentVO.getChildren());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 递归对DepartmentVO进行拆分排序
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<Department> seqDeptList(ArrayList<Department> departments,List<DepartmentVO> list){
|
|
|
+ Integer seq = 1;
|
|
|
+ for (DepartmentVO departmentVO : list) {
|
|
|
+ Department department = new Department();
|
|
|
+ department.setDepartmentId(departmentVO.getId());
|
|
|
+ department.setSeq(seq);
|
|
|
+ seq++;
|
|
|
+ departments.add(department);
|
|
|
+ if (departmentVO.getChildren()!=null){
|
|
|
+ seqDeptList(departments,departmentVO.getChildren());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return departments;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|