|
@@ -152,59 +152,54 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public List<SysDeptVo> getDeptTree(String deptId, SysDeptParam param) {
|
|
public List<SysDeptVo> getDeptTree(String deptId, SysDeptParam param) {
|
|
|
- if(Objects.isNull(deptId)){
|
|
|
|
|
- deptId = "";
|
|
|
|
|
- }
|
|
|
|
|
- String sysCode = param.getSysCode();
|
|
|
|
|
- String userSystemCode = null;
|
|
|
|
|
- if (StringUtils.isEmpty(sysCode)){
|
|
|
|
|
- userSystemCode = baseController.getUserSystemCode();
|
|
|
|
|
- }else{
|
|
|
|
|
- userSystemCode = sysCode;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ deptId = Objects.toString(deptId, "");
|
|
|
|
|
+
|
|
|
|
|
+ String userSystemCode = Optional.ofNullable(param.getSysCode())
|
|
|
|
|
+ .filter(StringUtils::isNotEmpty)
|
|
|
|
|
+ .orElseGet(baseController::getUserSystemCode);
|
|
|
|
|
+
|
|
|
SysSystem bySysCode = sysSystemService.getBySysCode(userSystemCode);
|
|
SysSystem bySysCode = sysSystemService.getBySysCode(userSystemCode);
|
|
|
- List<SysDeptVo> sysDepts = new ArrayList<>();
|
|
|
|
|
SysDept sysDept = getById(deptId);
|
|
SysDept sysDept = getById(deptId);
|
|
|
- SysDeptVo sysDeptVo = new SysDeptVo(sysDept);
|
|
|
|
|
|
|
|
|
|
- List<SysDept> depts = baseMapper.selectDeptVoList(deptId, userSystemCode);
|
|
|
|
|
- List<SysDeptVo> voDept = new ArrayList<>();
|
|
|
|
|
- depts.forEach(item->{
|
|
|
|
|
- SysDeptVo sysDeptv = new SysDeptVo(item);
|
|
|
|
|
- List<String> areas = new ArrayList<>();
|
|
|
|
|
- areas.add(item.getProvince());
|
|
|
|
|
- areas.add(item.getCity());
|
|
|
|
|
- areas.add(item.getArea());
|
|
|
|
|
- List<SysArea> sysAreaVos = sysAreaService.queryAllByAreaCode(areas);
|
|
|
|
|
- String areaString = "";
|
|
|
|
|
- for(int i=0;i<sysAreaVos.size();i++){
|
|
|
|
|
- areaString = areaString + sysAreaVos.get(i).getAreaCname() + "-";
|
|
|
|
|
- }
|
|
|
|
|
- if(!areaString.isEmpty()) {
|
|
|
|
|
- sysDeptv.setDivision(areaString.substring(0, areaString.length() - 1));
|
|
|
|
|
- }
|
|
|
|
|
- if(!Objects.isNull(item.getLeaderId())){
|
|
|
|
|
- SysUserJzgInfo userByUserId = sysUserJzgInfoService.getUserByUserId(item.getLeaderId());
|
|
|
|
|
- if(!Objects.isNull(userByUserId)){
|
|
|
|
|
- sysDeptv.setLeaderName(userByUserId.getName());
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- voDept.add(sysDeptv);
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- Map<String, List<SysDeptVo>> map = voDept.stream().collect(Collectors.groupingBy(SysDeptVo::getParentId));
|
|
|
|
|
- voDept.forEach(i -> i.setChildren(map.getOrDefault(i.getId(), new ArrayList<>())));
|
|
|
|
|
- if(!Objects.isNull(sysDept)) {
|
|
|
|
|
- sysDepts = map.get(sysDeptVo.getParentId());
|
|
|
|
|
- }else{
|
|
|
|
|
- sysDepts = map.get("0");
|
|
|
|
|
- }
|
|
|
|
|
- List<SysDeptVo> newResultDept = new ArrayList<>();
|
|
|
|
|
- newResultDept.addAll(sysDepts);
|
|
|
|
|
- return newResultDept;
|
|
|
|
|
|
|
+ List<SysDeptVo> voDept = baseMapper.selectDeptVoList(deptId, userSystemCode, param.getName())
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .map(item -> {
|
|
|
|
|
+ SysDeptVo sysDeptVo = new SysDeptVo(item);
|
|
|
|
|
+
|
|
|
|
|
+ // 获取区域信息
|
|
|
|
|
+ List<String> areas = Arrays.asList(item.getProvince(), item.getCity(), item.getArea());
|
|
|
|
|
+ String areaString = sysAreaService.queryAllByAreaCode(areas).stream()
|
|
|
|
|
+ .map(SysArea::getAreaCname)
|
|
|
|
|
+ .collect(Collectors.joining("-"));
|
|
|
|
|
+
|
|
|
|
|
+ if (StringUtils.isNotEmpty(areaString)) {
|
|
|
|
|
+ sysDeptVo.setDivision(areaString);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 设置负责人信息
|
|
|
|
|
+ Optional.ofNullable(item.getLeaderId())
|
|
|
|
|
+ .map(sysUserJzgInfoService::getUserByUserId)
|
|
|
|
|
+ .map(SysUserJzgInfo::getName)
|
|
|
|
|
+ .ifPresent(sysDeptVo::setLeaderName);
|
|
|
|
|
+
|
|
|
|
|
+ return sysDeptVo;
|
|
|
|
|
+ })
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+
|
|
|
|
|
+ // 按父ID分组
|
|
|
|
|
+ Map<String, List<SysDeptVo>> deptMap = voDept.stream()
|
|
|
|
|
+ .collect(Collectors.groupingBy(SysDeptVo::getParentId));
|
|
|
|
|
+
|
|
|
|
|
+ // 设置子部门
|
|
|
|
|
+ voDept.forEach(dept -> dept.setChildren(deptMap.getOrDefault(dept.getId(), new ArrayList<>())));
|
|
|
|
|
+
|
|
|
|
|
+ return Optional.ofNullable(sysDept)
|
|
|
|
|
+ .map(d -> deptMap.get(d.getParentId()))
|
|
|
|
|
+ .orElseGet(() -> deptMap.getOrDefault("0", new ArrayList<>()));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public boolean setDeptLeader(DeptLeaderVo deptLeaderVo) {
|
|
public boolean setDeptLeader(DeptLeaderVo deptLeaderVo) {
|
|
|
List<SysDept> depts = this.list(new LambdaQueryWrapper<SysDept>()
|
|
List<SysDept> depts = this.list(new LambdaQueryWrapper<SysDept>()
|