|
@ -6,10 +6,7 @@ import com.qs.serve.common.model.dto.PageVo; |
|
|
import com.qs.serve.common.model.dto.R; |
|
|
import com.qs.serve.common.model.dto.R; |
|
|
import com.qs.serve.common.model.enums.BizType; |
|
|
import com.qs.serve.common.model.enums.BizType; |
|
|
import com.qs.serve.common.model.enums.SystemModule; |
|
|
import com.qs.serve.common.model.enums.SystemModule; |
|
|
import com.qs.serve.common.util.CollectionUtil; |
|
|
import com.qs.serve.common.util.*; |
|
|
import com.qs.serve.common.util.CopierUtil; |
|
|
|
|
|
import com.qs.serve.common.util.PageUtil; |
|
|
|
|
|
import com.qs.serve.common.util.TreeUtil; |
|
|
|
|
|
import com.qs.serve.modules.bms.entity.*; |
|
|
import com.qs.serve.modules.bms.entity.*; |
|
|
import com.qs.serve.modules.bms.entity.bo.BmsCostCenterBo; |
|
|
import com.qs.serve.modules.bms.entity.bo.BmsCostCenterBo; |
|
|
import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo; |
|
|
import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo; |
|
@ -48,25 +45,51 @@ public class BmsSubjectController { |
|
|
private BmsSubjectRegionService bmsSubjectRegionService; |
|
|
private BmsSubjectRegionService bmsSubjectRegionService; |
|
|
private BmsRegionService bmsRegionService; |
|
|
private BmsRegionService bmsRegionService; |
|
|
private BmsRegion2Service bmsRegion2Service; |
|
|
private BmsRegion2Service bmsRegion2Service; |
|
|
|
|
|
private BmsSupplierService bmsSupplierService; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 树查询 |
|
|
* 树查询 |
|
|
* @param param |
|
|
* @param |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
@GetMapping("/tree") |
|
|
@GetMapping("/tree") |
|
|
@PreAuthorize("hasRole('bms:subject:query')") |
|
|
@PreAuthorize("hasRole('bms:subject:query')") |
|
|
public R<List<BmsSubjectTreeVo>> getPage(BmsSubject param){ |
|
|
public R<List<BmsSubjectTreeVo>> getPage(String supplierId){ |
|
|
LambdaQueryWrapper<BmsSubject> subjectWrapper = new LambdaQueryWrapper<>(param); |
|
|
List<BmsSubject> subjectList; |
|
|
List<BmsSubject> list = bmsSubjectService.list(subjectWrapper); |
|
|
if(StringUtils.hasText(supplierId)){ |
|
|
List<BmsSubjectTreeVo> treeVoList = list.stream().map(subject->{ |
|
|
BmsSupplier bmsSupplier = bmsSupplierService.getById(supplierId); |
|
|
|
|
|
List<BmsSubjectRegion> subjectRegionList = bmsSubjectRegionService.listByRegionIds(bmsSupplier.listBizRegionIds(),1); |
|
|
|
|
|
List<BmsSubjectRegion> subjectRegionList2 = bmsSubjectRegionService.listByRegionIds(bmsSupplier.listSaleRegionIds(),0); |
|
|
|
|
|
subjectRegionList.addAll(subjectRegionList2); |
|
|
|
|
|
//加载允许适用的科目
|
|
|
|
|
|
List<Long> subjectIds = subjectRegionList.stream().map(BmsSubjectRegion::getSubjectId) |
|
|
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
|
|
subjectList = bmsSubjectService.listByIds(subjectIds); |
|
|
|
|
|
List<Long> parentIds = subjectList.stream().filter(a->!a.getPid().equals(0L)) |
|
|
|
|
|
.map(BmsSubject::getPid).distinct().collect(Collectors.toList()); |
|
|
|
|
|
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()); |
|
|
|
|
|
if(CollectionUtil.isNotEmpty(parentIds2)){ |
|
|
|
|
|
List<BmsSubject> subjectList3 = bmsSubjectService.listByIds(parentIds2); |
|
|
|
|
|
subjectList.addAll(subjectList3); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}else { |
|
|
|
|
|
LambdaQueryWrapper<BmsSubject> subjectWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
|
subjectList = bmsSubjectService.list(subjectWrapper); |
|
|
|
|
|
} |
|
|
|
|
|
List<BmsSubjectTreeVo> treeVoList = subjectList.stream().map(subject->{ |
|
|
BmsSubjectTreeVo treeNode = CopierUtil.copy(subject,new BmsSubjectTreeVo()); |
|
|
BmsSubjectTreeVo treeNode = CopierUtil.copy(subject,new BmsSubjectTreeVo()); |
|
|
treeNode.setId(subject.getId().toString()); |
|
|
treeNode.setId(subject.getId().toString()); |
|
|
treeNode.setParentId(subject.getPid().toString()); |
|
|
treeNode.setParentId(subject.getPid().toString()); |
|
|
treeNode.setSort(0); |
|
|
treeNode.setSort(0); |
|
|
return treeNode; |
|
|
return treeNode; |
|
|
}).collect(Collectors.toList()); |
|
|
}).collect(Collectors.toList()); |
|
|
return R.ok(TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING)); |
|
|
treeVoList = TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING); |
|
|
|
|
|
return R.ok(treeVoList); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@ -139,6 +162,9 @@ public class BmsSubjectController { |
|
|
subject.setPathNames(subject.getSubjectName()); |
|
|
subject.setPathNames(subject.getSubjectName()); |
|
|
}else { |
|
|
}else { |
|
|
BmsSubject parent = bmsSubjectService.getById(subject.getPid()); |
|
|
BmsSubject parent = bmsSubjectService.getById(subject.getPid()); |
|
|
|
|
|
if(parent.getLevel()+1>3){ |
|
|
|
|
|
Assert.throwEx("最多支持3级"); |
|
|
|
|
|
} |
|
|
subject.setLevel(parent.getLevel()+1); |
|
|
subject.setLevel(parent.getLevel()+1); |
|
|
subject.setPathNames(parent.getPathNames()+"_"+subject.getSubjectName()); |
|
|
subject.setPathNames(parent.getPathNames()+"_"+subject.getSubjectName()); |
|
|
} |
|
|
} |
|
|