|
@ -18,11 +18,13 @@ import com.qs.serve.modules.bms.entity.bo.BmsRegionBatchBo; |
|
|
import com.qs.serve.modules.bms.entity.so.BmsBizRegionTreeSo; |
|
|
import com.qs.serve.modules.bms.entity.so.BmsBizRegionTreeSo; |
|
|
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.*; |
|
|
|
|
|
import com.qs.serve.modules.sys.service.SysPostUserService; |
|
|
import com.qs.serve.modules.tbs.common.TbsCenterType; |
|
|
import com.qs.serve.modules.tbs.common.TbsCenterType; |
|
|
import com.qs.serve.modules.tbs.entity.TbsBudget; |
|
|
import com.qs.serve.modules.tbs.entity.TbsBudget; |
|
|
import com.qs.serve.modules.tbs.service.TbsBudgetService; |
|
|
import com.qs.serve.modules.tbs.service.TbsBudgetService; |
|
|
import lombok.AllArgsConstructor; |
|
|
import lombok.AllArgsConstructor; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
|
import org.jetbrains.annotations.Nullable; |
|
|
import org.springframework.cache.annotation.Cacheable; |
|
|
import org.springframework.cache.annotation.Cacheable; |
|
|
import org.springframework.security.access.prepost.PreAuthorize; |
|
|
import org.springframework.security.access.prepost.PreAuthorize; |
|
|
import org.springframework.web.bind.annotation.*; |
|
|
import org.springframework.web.bind.annotation.*; |
|
@ -51,6 +53,7 @@ public class BmsRegion2Controller { |
|
|
private BmsRegionUserService bmsRegionUserService; |
|
|
private BmsRegionUserService bmsRegionUserService; |
|
|
private TbsBudgetService tbsBudgetService; |
|
|
private TbsBudgetService tbsBudgetService; |
|
|
private BirBudgetTargetService birBudgetTargetService; |
|
|
private BirBudgetTargetService birBudgetTargetService; |
|
|
|
|
|
private SysPostUserService postUserService; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 列表 |
|
|
* 列表 |
|
@ -82,6 +85,38 @@ public class BmsRegion2Controller { |
|
|
regionIds.addAll(supplier.listBizRegionIds()); |
|
|
regionIds.addAll(supplier.listBizRegionIds()); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
return buildTreeSortUpward(regionIds); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 树查询(当前负责人及区域负责人) |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
private List<BmsRegionTreeVo> treeByCurrentUserAndRegionMgr(String supplierId){ |
|
|
|
|
|
String userId = AuthContextUtils.getSysUserId(); |
|
|
|
|
|
List<String> userIds = postUserService.listByChildIds(userId); |
|
|
|
|
|
userIds.add(userId); |
|
|
|
|
|
LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>(); |
|
|
|
|
|
lqw.eq(BmsRegionUser::getType,1); |
|
|
|
|
|
lqw.in(BmsRegionUser::getUserId,userIds); |
|
|
|
|
|
List<BmsRegionUser> regionUsers = bmsRegionUserService.list(lqw); |
|
|
|
|
|
List<String> regionIds = regionUsers.stream().map(BmsRegionUser::getRegionId).collect(Collectors.toList()); |
|
|
|
|
|
if(StringUtils.hasText(supplierId)){ |
|
|
|
|
|
BmsSupplier supplier = bmsSupplierService.getById(supplierId); |
|
|
|
|
|
if(supplier.listBizRegionIds()!=null){ |
|
|
|
|
|
regionIds.addAll(supplier.listBizRegionIds()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return buildTreeSortUpward(regionIds); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 向上创建树数据 |
|
|
|
|
|
* @param regionIds |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
@Nullable |
|
|
|
|
|
private List<BmsRegionTreeVo> buildTreeSortUpward(List<String> regionIds) { |
|
|
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)); |
|
@ -189,6 +224,7 @@ public class BmsRegion2Controller { |
|
|
@GetMapping("/tree") |
|
|
@GetMapping("/tree") |
|
|
@PreAuthorize("hasRole('bms:region:query')") |
|
|
@PreAuthorize("hasRole('bms:region:query')") |
|
|
public R<List<BmsRegionTreeVo>> getTree(BmsBizRegionTreeSo so){ |
|
|
public R<List<BmsRegionTreeVo>> getTree(BmsBizRegionTreeSo so){ |
|
|
|
|
|
// 用于审批辅助
|
|
|
if(so.getLoadByCurrent()!=null&&so.getLoadByCurrent().equals(2)) { |
|
|
if(so.getLoadByCurrent()!=null&&so.getLoadByCurrent().equals(2)) { |
|
|
BirBudgetTargetSo query = new BirBudgetTargetSo(); |
|
|
BirBudgetTargetSo query = new BirBudgetTargetSo(); |
|
|
query.setLoadType(so.getType()); |
|
|
query.setLoadType(so.getType()); |
|
@ -210,6 +246,7 @@ public class BmsRegion2Controller { |
|
|
} |
|
|
} |
|
|
return R.ok(treeVoList); |
|
|
return R.ok(treeVoList); |
|
|
} |
|
|
} |
|
|
|
|
|
// 当前负责人
|
|
|
if(so.getLoadByCurrent()!=null&&so.getLoadByCurrent().equals(1)){ |
|
|
if(so.getLoadByCurrent()!=null&&so.getLoadByCurrent().equals(1)){ |
|
|
if(so.getOnlySupplierFlag()!=null&&so.getOnlySupplierFlag().equals(1)){ |
|
|
if(so.getOnlySupplierFlag()!=null&&so.getOnlySupplierFlag().equals(1)){ |
|
|
BmsSupplier supplier = bmsSupplierService.getById(so.getSupplierId()); |
|
|
BmsSupplier supplier = bmsSupplierService.getById(so.getSupplierId()); |
|
@ -227,6 +264,24 @@ public class BmsRegion2Controller { |
|
|
return R.ok(treeByCurrentUser(so.getSupplierId())); |
|
|
return R.ok(treeByCurrentUser(so.getSupplierId())); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
// 当前负责人及区域负责人
|
|
|
|
|
|
if(so.getLoadByCurrent()!=null&&so.getLoadByCurrent().equals(3)){ |
|
|
|
|
|
if(so.getOnlySupplierFlag()!=null&&so.getOnlySupplierFlag().equals(1)){ |
|
|
|
|
|
BmsSupplier supplier = bmsSupplierService.getById(so.getSupplierId()); |
|
|
|
|
|
List<BmsRegion2> rlist = bmsRegion2Service.listByIds(supplier.listBizRegionIds()); |
|
|
|
|
|
List<BmsRegionTreeVo> treeVoList = new ArrayList<>(); |
|
|
|
|
|
for (BmsRegion2 region2 : rlist) { |
|
|
|
|
|
BmsRegionTreeVo treeNode = CopierUtil.copy(region2,new BmsRegionTreeVo()); |
|
|
|
|
|
treeNode.setId(region2.getId()); |
|
|
|
|
|
treeNode.setParentId(region2.getPid()); |
|
|
|
|
|
treeNode.setSort(0); |
|
|
|
|
|
treeVoList.add(treeNode); |
|
|
|
|
|
} |
|
|
|
|
|
return R.ok(treeVoList); |
|
|
|
|
|
}else { |
|
|
|
|
|
return R.ok(treeByCurrentUserAndRegionMgr(so.getSupplierId())); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
return R.ok(bmsRegion2Service.getTree(so.getListUserFlag()!=null&&so.getListUserFlag().equals(1))); |
|
|
return R.ok(bmsRegion2Service.getTree(so.getListUserFlag()!=null&&so.getListUserFlag().equals(1))); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|