|
@ -11,6 +11,7 @@ import com.qs.serve.common.util.*; |
|
|
import com.qs.serve.modules.bms.entity.BmsRegion; |
|
|
import com.qs.serve.modules.bms.entity.BmsRegion; |
|
|
import com.qs.serve.modules.bms.entity.BmsRegion2; |
|
|
import com.qs.serve.modules.bms.entity.BmsRegion2; |
|
|
import com.qs.serve.modules.bms.entity.BmsRegionUser; |
|
|
import com.qs.serve.modules.bms.entity.BmsRegionUser; |
|
|
|
|
|
import com.qs.serve.modules.bms.entity.BmsSupplier; |
|
|
import com.qs.serve.modules.bms.entity.bo.BmsRegionBatchBo; |
|
|
import com.qs.serve.modules.bms.entity.bo.BmsRegionBatchBo; |
|
|
import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo; |
|
|
import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo; |
|
|
import com.qs.serve.modules.bms.service.*; |
|
|
import com.qs.serve.modules.bms.service.*; |
|
@ -60,72 +61,102 @@ public class BmsRegion2Controller { |
|
|
* 树查询(当前负责人) |
|
|
* 树查询(当前负责人) |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
private List<BmsRegionTreeVo> treeByCurrentUser(){ |
|
|
private List<BmsRegionTreeVo> treeByCurrentUser(String supplierId){ |
|
|
String userId = AuthContextUtils.getSysUserId(); |
|
|
String userId = AuthContextUtils.getSysUserId(); |
|
|
LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>(); |
|
|
lqw.eq(BmsRegionUser::getType,1); |
|
|
lqw.eq(BmsRegionUser::getType,1); |
|
|
lqw.eq(BmsRegionUser::getUserId,userId); |
|
|
lqw.eq(BmsRegionUser::getUserId,userId); |
|
|
List<BmsRegionUser> regionUsers = bmsRegionUserService.list(lqw); |
|
|
List<BmsRegionUser> regionUsers = bmsRegionUserService.list(lqw); |
|
|
List<String> regionIds = regionUsers.stream().map(BmsRegionUser::getRegionId).collect(Collectors.toList()); |
|
|
List<String> regionIds = regionUsers.stream().map(BmsRegionUser::getRegionId).collect(Collectors.toList()); |
|
|
|
|
|
if(StringUtils.hasText(supplierId)){ |
|
|
|
|
|
BmsSupplier supplier = bmsSupplierService.getById(supplierId); |
|
|
|
|
|
regionIds.addAll(supplier.listBizRegionIds()); |
|
|
|
|
|
} |
|
|
if(regionIds.size()>0){ |
|
|
if(regionIds.size()>0){ |
|
|
List<BmsRegion2> regionList = bmsRegion2Service.listByIds(regionIds); |
|
|
List<BmsRegion2> regionList = bmsRegion2Service.listByIds(regionIds); |
|
|
Map<Integer,List<BmsRegion2>> listMap = regionList.stream().collect(Collectors.groupingBy(BmsRegion2::getLevel)); |
|
|
Map<Integer,List<BmsRegion2>> listMap = regionList.stream().collect(Collectors.groupingBy(BmsRegion2::getLevel)); |
|
|
List<BmsRegion2> list1 = listMap.get(1)==null?new ArrayList<>():listMap.get(1); |
|
|
List<BmsRegion2> list1 = listMap.get(1)==null?new ArrayList<>():listMap.get(1); |
|
|
List<BmsRegion2> list2 = listMap.get(2)==null?new ArrayList<>():listMap.get(2); |
|
|
List<BmsRegion2> list2 = listMap.get(2)==null?new ArrayList<>():listMap.get(2); |
|
|
List<BmsRegion2> list3 = listMap.get(3)==null?new ArrayList<>():listMap.get(3); |
|
|
List<BmsRegion2> list3 = listMap.get(3)==null?new ArrayList<>():listMap.get(3); |
|
|
List<BmsRegion2> list4 = listMap.get(3)==null?new ArrayList<>():listMap.get(4); |
|
|
List<BmsRegion2> list4 = listMap.get(4)==null?new ArrayList<>():listMap.get(4); |
|
|
if (list4!=null){ |
|
|
|
|
|
list4.forEach(obj4->{ |
|
|
List<BmsRegion2> allList = new ArrayList<>(); |
|
|
boolean exist = false; |
|
|
if(CollectionUtil.isNotEmpty(list1)){ |
|
|
for (BmsRegion2 obj3 : list3) { |
|
|
allList.addAll(list1); |
|
|
if(obj3.getId().equals(obj4.getPid())){ |
|
|
List<String> lv01Pids = list1.stream().map(BmsRegion2::getId).collect(Collectors.toList()); |
|
|
List<BmsRegion2> childList = obj3.getChildNodes()==null?new ArrayList<>():obj3.getChildNodes(); |
|
|
List<BmsRegion2> level02List = bmsRegion2Service.listChild(lv01Pids); |
|
|
childList.add(obj4); |
|
|
if(CollectionUtil.isNotEmpty(level02List)){ |
|
|
obj3.setChildNodes(childList); |
|
|
allList.addAll(level02List); |
|
|
exist = true; |
|
|
//list2 去重
|
|
|
break; |
|
|
list2 = removeExistList(list2, level02List); |
|
|
} |
|
|
List<String> lv02Pids = level02List.stream().map(BmsRegion2::getId).collect(Collectors.toList()); |
|
|
} |
|
|
List<BmsRegion2> level03List = bmsRegion2Service.listChild(lv02Pids); |
|
|
if(!exist){ |
|
|
if(CollectionUtil.isNotEmpty(level03List)){ |
|
|
list3.add(obj4); |
|
|
allList.addAll(level03List); |
|
|
} |
|
|
//list3 去重
|
|
|
}); |
|
|
list3 = removeExistList(list3,level03List); |
|
|
} |
|
|
List<String> lv03Pids = level03List.stream().map(BmsRegion2::getId).collect(Collectors.toList()); |
|
|
list3.forEach(obj3->{ |
|
|
List<BmsRegion2> level04List = bmsRegion2Service.listChild(lv03Pids); |
|
|
boolean exist = false; |
|
|
//list4 去重
|
|
|
for (BmsRegion2 obj2 : list2) { |
|
|
list4 = removeExistList(list4,level04List); |
|
|
if(obj2.getId().equals(obj3.getPid())){ |
|
|
allList.addAll(level04List); |
|
|
List<BmsRegion2> childList = obj2.getChildNodes()==null?new ArrayList<>():obj2.getChildNodes(); |
|
|
} |
|
|
childList.add(obj3); |
|
|
} |
|
|
obj2.setChildNodes(childList); |
|
|
} |
|
|
exist = true; |
|
|
|
|
|
break; |
|
|
if(CollectionUtil.isNotEmpty(list2)){ |
|
|
} |
|
|
List<String> lv02Pids = list2.stream().map(BmsRegion2::getId).collect(Collectors.toList()); |
|
|
} |
|
|
List<BmsRegion2> level03List = bmsRegion2Service.listChild(lv02Pids); |
|
|
if(!exist){ |
|
|
if(CollectionUtil.isNotEmpty(level03List)){ |
|
|
list2.add(obj3); |
|
|
allList.addAll(level03List); |
|
|
} |
|
|
//list3 去重
|
|
|
}); |
|
|
list3 = removeExistList(list3,level03List); |
|
|
list2.forEach(obj2->{ |
|
|
List<String> lv03Pids = level03List.stream().map(BmsRegion2::getId).collect(Collectors.toList()); |
|
|
boolean exist = false; |
|
|
List<BmsRegion2> level04List = bmsRegion2Service.listChild(lv03Pids); |
|
|
for (BmsRegion2 obj1 : list1) { |
|
|
//list4 去重
|
|
|
if(obj1.getId().equals(obj2.getPid())){ |
|
|
list4 = removeExistList(list4,level04List); |
|
|
List<BmsRegion2> childList = obj1.getChildNodes()==null?new ArrayList<>():obj1.getChildNodes(); |
|
|
allList.addAll(level04List); |
|
|
childList.add(obj2); |
|
|
} |
|
|
obj1.setChildNodes(childList); |
|
|
list2.forEach(a->a.setPid("0")); |
|
|
exist = true; |
|
|
allList.addAll(list2); |
|
|
break; |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
if(CollectionUtil.isNotEmpty(list3)){ |
|
|
if(!exist){ |
|
|
List<String> lv03Pids = list3.stream().map(BmsRegion2::getId).collect(Collectors.toList()); |
|
|
list1.add(obj2); |
|
|
List<BmsRegion2> level04List = bmsRegion2Service.listChild(lv03Pids); |
|
|
} |
|
|
//list4 去重
|
|
|
}); |
|
|
list4 = removeExistList(list4,level04List); |
|
|
return toTreeNodeList(list1); |
|
|
allList.addAll(level04List); |
|
|
|
|
|
list3.forEach(a->a.setPid("0")); |
|
|
|
|
|
allList.addAll(list3); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(CollectionUtil.isNotEmpty(list4)){ |
|
|
|
|
|
//list4 去重
|
|
|
|
|
|
list4.forEach(a->a.setPid("0")); |
|
|
|
|
|
allList.addAll(list4); |
|
|
|
|
|
} |
|
|
|
|
|
return toTreeNodeList2(allList); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
return null; |
|
|
return null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 移除包含的列 |
|
|
|
|
|
* @param settingList |
|
|
|
|
|
* @param byPidLoadList |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
private List<BmsRegion2> removeExistList(List<BmsRegion2> settingList, List<BmsRegion2> byPidLoadList) { |
|
|
|
|
|
if(CollectionUtil.isNotEmpty(settingList)&&CollectionUtil.isNotEmpty(byPidLoadList)){ |
|
|
|
|
|
settingList = settingList.stream().filter(a-> |
|
|
|
|
|
byPidLoadList.stream().noneMatch(b->b.getId().equals(a.getId())) |
|
|
|
|
|
).collect(Collectors.toList()); |
|
|
|
|
|
} |
|
|
|
|
|
return settingList; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 翻页查询 |
|
|
* 翻页查询 |
|
|
* @param param |
|
|
* @param param |
|
@ -147,29 +178,23 @@ public class BmsRegion2Controller { |
|
|
*/ |
|
|
*/ |
|
|
@GetMapping("/tree") |
|
|
@GetMapping("/tree") |
|
|
@PreAuthorize("hasRole('bms:region:query')") |
|
|
@PreAuthorize("hasRole('bms:region:query')") |
|
|
public R<List<BmsRegionTreeVo>> getTree(Integer listUserFlag,Integer loadByCurrent){ |
|
|
public R<List<BmsRegionTreeVo>> getTree(Integer listUserFlag,Integer loadByCurrent,String supplierId){ |
|
|
if(loadByCurrent!=null&&loadByCurrent.equals(1)){ |
|
|
if(loadByCurrent!=null&&loadByCurrent.equals(1)){ |
|
|
return R.ok(treeByCurrentUser()); |
|
|
return R.ok(treeByCurrentUser(supplierId)); |
|
|
} |
|
|
} |
|
|
return R.ok(bmsRegion2Service.getTree(listUserFlag!=null&&listUserFlag.equals(1))); |
|
|
return R.ok(bmsRegion2Service.getTree(listUserFlag!=null&&listUserFlag.equals(1))); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private List<BmsRegionTreeVo> toTreeNodeList(List<BmsRegion2> list){ |
|
|
private List<BmsRegionTreeVo> toTreeNodeList2(List<BmsRegion2> list){ |
|
|
List<BmsRegionTreeVo> treeVoList = new ArrayList<>(); |
|
|
List<BmsRegionTreeVo> treeVoList = new ArrayList<>(); |
|
|
for (BmsRegion2 region2 : list) { |
|
|
for (BmsRegion2 region2 : list) { |
|
|
BmsRegionTreeVo treeNode = CopierUtil.copy(region2,new BmsRegionTreeVo()); |
|
|
BmsRegionTreeVo treeNode = CopierUtil.copy(region2,new BmsRegionTreeVo()); |
|
|
treeNode.setId(region2.getId()); |
|
|
treeNode.setId(region2.getId()); |
|
|
treeNode.setParentId(region2.getPid()); |
|
|
treeNode.setParentId(region2.getPid()); |
|
|
treeNode.setSort(0); |
|
|
treeNode.setSort(0); |
|
|
if(CollectionUtil.isNotEmpty(region2.getChildNodes())){ |
|
|
|
|
|
List<BmsRegionTreeVo> childList = toTreeNodeList(region2.getChildNodes()); |
|
|
|
|
|
for (BmsRegionTreeVo treeVo : childList) { |
|
|
|
|
|
treeNode.addChildren(treeVo); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
treeVoList.add(treeNode); |
|
|
treeVoList.add(treeNode); |
|
|
} |
|
|
} |
|
|
return treeVoList; |
|
|
return TreeUtil.build(treeVoList,TreeUtil.DEFAULT_PID_STRING); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|