|
@@ -8,7 +8,6 @@ import com.management.platform.mapper.DepartmentMapper;
|
|
|
import com.management.platform.mapper.UserMapper;
|
|
|
import com.management.platform.service.DepartmentService;
|
|
|
import com.management.platform.util.HttpRespMsg;
|
|
|
-import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
@@ -38,19 +37,23 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
try {
|
|
|
//筛选公司下所有的部门
|
|
|
- Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
|
|
|
+// Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
|
|
|
+ Integer companyId = 6;
|
|
|
List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>()
|
|
|
.eq("company_id", companyId));
|
|
|
+ //结果列表
|
|
|
List<DepartmentVO> list = new ArrayList<>();
|
|
|
- Stack<DepartmentVO> stack1 = new Stack<>(); //存放上依赖下的栈
|
|
|
- Stack<DepartmentVO> stack2 = new Stack<>(); //临时存放对1中的依赖
|
|
|
- Stack<DepartmentVO> stack3 = new Stack<>(); //存放所有要塞进去的东西
|
|
|
+ Stack<DepartmentVO>
|
|
|
+ //存放顺序依赖的主栈
|
|
|
+ stack1 = new Stack<>(),
|
|
|
+ //存放主栈中的依赖的上半段的栈
|
|
|
+ stack2 = new Stack<>(),
|
|
|
+ //存放最后塞入列表前的栈
|
|
|
+ stack3 = new Stack<>();
|
|
|
for (int i = 0; i < departmentList.size(); i++) {
|
|
|
Department department = departmentList.get(i);
|
|
|
if (department.getSuperiorId() == null) {
|
|
|
- DepartmentVO departmentVO = new DepartmentVO();
|
|
|
- BeanUtils.copyProperties(department, departmentVO);
|
|
|
- stack1.push(departmentVO);
|
|
|
+ stack1.push(formatDepartmentToVO(department));
|
|
|
departmentList.remove(i--);
|
|
|
}
|
|
|
}
|
|
@@ -59,11 +62,9 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
|
|
DepartmentVO temp = stack1.peek();
|
|
|
for (int i = 0; i < departmentList.size(); i++) {
|
|
|
Department department = departmentList.get(i);
|
|
|
- if (department.getSuperiorId().equals(temp.getDepartmentId())) {
|
|
|
+ if (department.getSuperiorId().equals(temp.getId())) {
|
|
|
isPushed = true;
|
|
|
- DepartmentVO departmentVO = new DepartmentVO();
|
|
|
- BeanUtils.copyProperties(department, departmentVO);
|
|
|
- stack1.push(departmentVO);
|
|
|
+ stack1.push(formatDepartmentToVO(department));
|
|
|
departmentList.remove(i--);
|
|
|
}
|
|
|
}
|
|
@@ -73,13 +74,13 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
|
|
}
|
|
|
while (!stack1.isEmpty()) {
|
|
|
DepartmentVO first = stack1.pop();
|
|
|
- Integer superiorId = first.getSuperiorId();
|
|
|
+ Integer superiorId = first.getParentId();
|
|
|
if (superiorId != null) {
|
|
|
stack3.push(first);
|
|
|
- while (stack2.peek().getSuperiorId() != null && stack2.peek().getSuperiorId().equals(superiorId)) {
|
|
|
+ while (stack2.peek().getParentId() != null && stack2.peek().getParentId().equals(superiorId)) {
|
|
|
stack3.push(stack2.pop());
|
|
|
}
|
|
|
- while (stack1.peek().getSuperiorId() != null && stack1.peek().getSuperiorId().equals(superiorId)) {
|
|
|
+ while (stack1.peek().getParentId() != null && stack1.peek().getParentId().equals(superiorId)) {
|
|
|
stack3.push(stack1.pop());
|
|
|
}
|
|
|
List<DepartmentVO> targetList = new ArrayList<>();
|
|
@@ -96,10 +97,17 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
|
|
}
|
|
|
httpRespMsg.data = list;
|
|
|
} catch (NullPointerException e) {
|
|
|
- e.printStackTrace();
|
|
|
httpRespMsg.setError("验证失败");
|
|
|
return httpRespMsg;
|
|
|
}
|
|
|
return httpRespMsg;
|
|
|
}
|
|
|
+
|
|
|
+ private DepartmentVO formatDepartmentToVO(Department department) {
|
|
|
+ return new DepartmentVO()
|
|
|
+ .setId(department.getDepartmentId())
|
|
|
+ .setLabel(department.getDepartmentName())
|
|
|
+ .setParentId(department.getSuperiorId());
|
|
|
+ }
|
|
|
+
|
|
|
}
|