|
|
@ -54,7 +54,7 @@ public class BmsSubjectController { |
|
|
|
*/ |
|
|
|
@GetMapping("/tree") |
|
|
|
@PreAuthorize("hasRole('bms:subject:query')") |
|
|
|
public R<List<BmsSubjectTreeVo>> getPage(String supplierId){ |
|
|
|
public R<List<BmsSubjectTreeVo>> getPage(String supplierId,Integer slottingFlag){ |
|
|
|
List<BmsSubject> subjectList = bmsSubjectService.list(new LambdaQueryWrapper<BmsSubject>().orderByAsc(BmsSubject::getSubjectCode)); |
|
|
|
List<BmsSubjectTreeVo> treeVoList = subjectList.stream().map(subject->{ |
|
|
|
BmsSubjectTreeVo treeNode = CopierUtil.copy(subject,new BmsSubjectTreeVo()); |
|
|
@ -64,6 +64,15 @@ public class BmsSubjectController { |
|
|
|
treeNode.setSort(0); |
|
|
|
return treeNode; |
|
|
|
}).collect(Collectors.toList()); |
|
|
|
if(1==slottingFlag){ |
|
|
|
List<BmsSubjectTreeVo> slottingList = treeVoList.stream().filter(a->a.getSlottingFlag().equals(1)).collect(Collectors.toList()); |
|
|
|
List<BmsSubjectTreeVo> newTreeVoList = new ArrayList<>(); |
|
|
|
newTreeVoList.addAll(slottingList); |
|
|
|
for(BmsSubjectTreeVo vo : slottingList) { |
|
|
|
findParentVoAndAddToList(treeVoList, newTreeVoList,vo); |
|
|
|
} |
|
|
|
treeVoList = newTreeVoList.stream().distinct().collect(Collectors.toList()); |
|
|
|
} |
|
|
|
treeVoList = TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING); |
|
|
|
if(StringUtils.hasText(supplierId)&&!supplierId.equals("0")){ |
|
|
|
BmsSupplier bmsSupplier = bmsSupplierService.getById(supplierId); |
|
|
@ -82,9 +91,20 @@ public class BmsSubjectController { |
|
|
|
recursionToSetSelectAble(treeVoList, subjectIds); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return R.ok(treeVoList); |
|
|
|
} |
|
|
|
|
|
|
|
private void findParentVoAndAddToList(List<BmsSubjectTreeVo> treeVoList, List<BmsSubjectTreeVo> newTreeVoList,BmsSubjectTreeVo vo){ |
|
|
|
List<BmsSubjectTreeVo> pVos = treeVoList.stream().filter(a->a.getId().equals(vo.getParentId())).collect(Collectors.toList()); |
|
|
|
if(pVos.size()==0){ |
|
|
|
return; |
|
|
|
}else{ |
|
|
|
BmsSubjectTreeVo pVo = pVos.get(0); |
|
|
|
newTreeVoList.add(pVo); |
|
|
|
findParentVoAndAddToList(treeVoList,newTreeVoList,pVo); |
|
|
|
} |
|
|
|
} |
|
|
|
/** |
|
|
|
* 递归设置可选 |
|
|
|
* @param treeVoList |
|
|
|