Browse Source

feat: 区域调整

checkBack
Yen 1 year ago
parent
commit
12ac0bea25
  1. 55
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java
  2. 43
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java

55
src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java

@ -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)));
} }

43
src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java

@ -18,11 +18,13 @@ 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.his.entity.HisUserSupplier; import com.qs.serve.modules.his.entity.HisUserSupplier;
import com.qs.serve.modules.his.service.HisUserSupplierService; import com.qs.serve.modules.his.service.HisUserSupplierService;
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.*;
@ -55,6 +57,7 @@ public class BmsRegionController {
private TbsBudgetService tbsBudgetService; private TbsBudgetService tbsBudgetService;
private BmsCostCenterService bmsCostCenterService; private BmsCostCenterService bmsCostCenterService;
private BirBudgetTargetService birBudgetTargetService; private BirBudgetTargetService birBudgetTargetService;
private SysPostUserService postUserService;
/** /**
* 列表 * 列表
@ -115,13 +118,24 @@ public class BmsRegionController {
if(so.getStopFlag()==null){ if(so.getStopFlag()==null){
so.setStopFlag(0); so.setStopFlag(0);
} }
// 当前负责人
if(so.getLoadByCurrent()!=null&&so.getLoadByCurrent().equals(1)){ if(so.getLoadByCurrent()!=null&&so.getLoadByCurrent().equals(1)){
return R.ok(treeByCurrentUser(so.getSupplierId(),so.getStopFlag())); return R.ok(treeByCurrentUser(so.getSupplierId(),so.getStopFlag()));
} }
// 当前负责人及下属负责人
if(so.getLoadByCurrent()!=null&&so.getLoadByCurrent().equals(3)){
return R.ok(treeByCurrentUserAndChildUser(so.getSupplierId(),so.getStopFlag()));
}
return R.ok(bmsRegionService.getTree(so.getListUserFlag()!=null&&so.getListUserFlag().equals(1), so.getStopFlag())); return R.ok(bmsRegionService.getTree(so.getListUserFlag()!=null&&so.getListUserFlag().equals(1), so.getStopFlag()));
} }
/**
* 加载当前负责人的
* @param supplierId
* @param stopFlag
* @return
*/
public List<BmsRegionTreeVo> treeByCurrentUser(String supplierId,Integer stopFlag){ public List<BmsRegionTreeVo> treeByCurrentUser(String supplierId,Integer stopFlag){
String userId = AuthContextUtils.getSysUserId(); String userId = AuthContextUtils.getSysUserId();
LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>();
@ -133,8 +147,33 @@ public class BmsRegionController {
BmsSupplier supplier = bmsSupplierService.getById(supplierId); BmsSupplier supplier = bmsSupplierService.getById(supplierId);
regionIds.addAll(supplier.listSaleRegionIds()); regionIds.addAll(supplier.listSaleRegionIds());
} }
//List<HisUserSupplier> hisUserSuppliers = hisUserSupplierService.selectHisSupplier(null,false); return buildRegionTreeByRegionIds(stopFlag, regionIds);
//List<Long> supplierIds = hisUserSuppliers.stream().map(HisUserSupplier::getSupplierId).collect(Collectors.toList()); }
/**
* 加载当前负责人和下属的
* @param supplierId
* @param stopFlag
* @return
*/
public List<BmsRegionTreeVo> treeByCurrentUserAndChildUser(String supplierId,Integer stopFlag){
String userId = AuthContextUtils.getSysUserId();
List<String> userIds = postUserService.listByChildIds(userId);
userIds.add(userId);
LambdaQueryWrapper<BmsRegionUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(BmsRegionUser::getType,0);
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);
regionIds.addAll(supplier.listSaleRegionIds());
}
return buildRegionTreeByRegionIds(stopFlag, regionIds);
}
@Nullable
private List<BmsRegionTreeVo> buildRegionTreeByRegionIds(Integer stopFlag, List<String> regionIds) {
List<Long> supplierIds = hisUserSupplierService.selectHisSupplier(null,false); List<Long> supplierIds = hisUserSupplierService.selectHisSupplier(null,false);
supplierIds.add(0L); supplierIds.add(0L);
List<BmsSupplier> supplierList = bmsSupplierService.listByIds(supplierIds); List<BmsSupplier> supplierList = bmsSupplierService.listByIds(supplierIds);

Loading…
Cancel
Save