|
@ -55,41 +55,52 @@ public class BmsSubjectController { |
|
|
@GetMapping("/tree") |
|
|
@GetMapping("/tree") |
|
|
@PreAuthorize("hasRole('bms:subject:query')") |
|
|
@PreAuthorize("hasRole('bms:subject:query')") |
|
|
public R<List<BmsSubjectTreeVo>> getPage(String supplierId){ |
|
|
public R<List<BmsSubjectTreeVo>> getPage(String supplierId){ |
|
|
List<BmsSubject> subjectList; |
|
|
List<BmsSubject> subjectList = bmsSubjectService.list(); |
|
|
|
|
|
List<BmsSubjectTreeVo> treeVoList = subjectList.stream().map(subject->{ |
|
|
|
|
|
BmsSubjectTreeVo treeNode = CopierUtil.copy(subject,new BmsSubjectTreeVo()); |
|
|
|
|
|
treeNode.setId(subject.getId().toString()); |
|
|
|
|
|
treeNode.setParentId(subject.getPid().toString()); |
|
|
|
|
|
treeNode.setApiSelectAble(0); |
|
|
|
|
|
treeNode.setSort(0); |
|
|
|
|
|
return treeNode; |
|
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
|
treeVoList = TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING); |
|
|
if(StringUtils.hasText(supplierId)){ |
|
|
if(StringUtils.hasText(supplierId)){ |
|
|
BmsSupplier bmsSupplier = bmsSupplierService.getById(supplierId); |
|
|
BmsSupplier bmsSupplier = bmsSupplierService.getById(supplierId); |
|
|
List<BmsSubjectRegion> subjectRegionList = bmsSubjectRegionService.listByRegionIds(bmsSupplier.listBizRegionIds(),1); |
|
|
List<BmsSubjectRegion> subjectRegionList = bmsSubjectRegionService.listByRegionIds(bmsSupplier.listBizRegionIds(),1); |
|
|
List<BmsSubjectRegion> subjectRegionList2 = bmsSubjectRegionService.listByRegionIds(bmsSupplier.listSaleRegionIds(),0); |
|
|
List<BmsSubjectRegion> subjectRegionList2 = bmsSubjectRegionService.listByRegionIds(bmsSupplier.listSaleRegionIds(),0); |
|
|
subjectRegionList.addAll(subjectRegionList2); |
|
|
subjectRegionList.addAll(subjectRegionList2); |
|
|
//加载允许适用的科目
|
|
|
//加载允许适用的科目
|
|
|
List<Long> subjectIds = subjectRegionList.stream().map(BmsSubjectRegion::getSubjectId) |
|
|
List<String> subjectIds = subjectRegionList.stream().map(a->a.getSubjectId().toString()) |
|
|
.distinct().collect(Collectors.toList()); |
|
|
.distinct().collect(Collectors.toList()); |
|
|
subjectList = bmsSubjectService.listByIds(subjectIds); |
|
|
recursionToSetSelectAble(treeVoList, subjectIds); |
|
|
List<Long> parentIds = subjectList.stream().filter(a->!a.getPid().equals(0L)) |
|
|
} |
|
|
.map(BmsSubject::getPid).distinct().collect(Collectors.toList()); |
|
|
return R.ok(treeVoList); |
|
|
if(CollectionUtil.isNotEmpty(parentIds)){ |
|
|
} |
|
|
List<BmsSubject> subjectList2 = bmsSubjectService.listByIds(parentIds); |
|
|
|
|
|
subjectList.addAll(subjectList2); |
|
|
/** |
|
|
List<Long> parentIds2 = subjectList2.stream().filter(a->!a.getPid().equals(0L)) |
|
|
* 递归设置可选 |
|
|
.map(BmsSubject::getPid).distinct().collect(Collectors.toList()); |
|
|
* @param treeVoList |
|
|
if(CollectionUtil.isNotEmpty(parentIds2)){ |
|
|
* @param subjectIds |
|
|
List<BmsSubject> subjectList3 = bmsSubjectService.listByIds(parentIds2); |
|
|
*/ |
|
|
subjectList.addAll(subjectList3); |
|
|
private void recursionToSetSelectAble(List<?> treeVoList, List<String> subjectIds) { |
|
|
|
|
|
for (Object object : treeVoList) { |
|
|
|
|
|
BmsSubjectTreeVo subjectTreeVo = (BmsSubjectTreeVo)object; |
|
|
|
|
|
if(subjectTreeVo.getChildren().size()==0){ |
|
|
|
|
|
if(subjectTreeVo.getBizRegionFlag().equals(0)&&subjectTreeVo.getSaleRegionFlag().equals(0)){ |
|
|
|
|
|
subjectTreeVo.setApiSelectAble(1); |
|
|
|
|
|
}else { |
|
|
|
|
|
for (String subjectId : subjectIds) { |
|
|
|
|
|
if(subjectTreeVo.getId().equals(subjectId)){ |
|
|
|
|
|
subjectTreeVo.setApiSelectAble(1); |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
}else { |
|
|
|
|
|
recursionToSetSelectAble(subjectTreeVo.getChildren(),subjectIds); |
|
|
} |
|
|
} |
|
|
}else { |
|
|
|
|
|
LambdaQueryWrapper<BmsSubject> subjectWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
|
subjectList = bmsSubjectService.list(subjectWrapper); |
|
|
|
|
|
} |
|
|
} |
|
|
List<BmsSubjectTreeVo> treeVoList = subjectList.stream().map(subject->{ |
|
|
|
|
|
BmsSubjectTreeVo treeNode = CopierUtil.copy(subject,new BmsSubjectTreeVo()); |
|
|
|
|
|
treeNode.setId(subject.getId().toString()); |
|
|
|
|
|
treeNode.setParentId(subject.getPid().toString()); |
|
|
|
|
|
treeNode.setSort(0); |
|
|
|
|
|
return treeNode; |
|
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
|
treeVoList = TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING); |
|
|
|
|
|
return R.ok(treeVoList); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|