|
@@ -23,6 +23,7 @@ import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysImplPlanDetailsItemService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysImplPlanDetailsService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysImplementPlanService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.SysRoleService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntDrugtableService;
|
|
|
import com.qunzhixinxi.hnqz.common.core.exception.BizException;
|
|
|
import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
|
|
@@ -59,6 +60,7 @@ public class SysImplementPlanManager {
|
|
|
private final SysImplementPlanService implementPlanService;
|
|
|
private final SysImplPlanDetailsService implPlanDetailsService;
|
|
|
private final SysDeptService deptService;
|
|
|
+ private final SysRoleService roleService;
|
|
|
private final SysImplPlanDetailsItemService implPlanDetailsItemService;
|
|
|
private final WmDaDrugEntDrugtableService drugEntDrugtableService;
|
|
|
|
|
@@ -95,8 +97,11 @@ public class SysImplementPlanManager {
|
|
|
*/
|
|
|
public Page<?> pagePlans(SysImplementPlanDTO.OnPage query, HnqzUser operator) {
|
|
|
|
|
|
+ int entLevel = roleService.getEntLevel();
|
|
|
+
|
|
|
+
|
|
|
// 获取根目录分页
|
|
|
- Page<SysImplementPlan> page = this.getPage(operator, query.getCurrent(), query.getSize(), query.getPlanName(),
|
|
|
+ Page<SysImplementPlan> page = this.getPage(operator, entLevel, query.getCurrent(), query.getSize(), query.getPlanName(),
|
|
|
query.getConsigneeId(), operator.getDeptId(), query.getPeriod());
|
|
|
|
|
|
List<SysImplementPlan> records = page.getRecords();
|
|
@@ -140,16 +145,27 @@ public class SysImplementPlanManager {
|
|
|
Page<Tree<Integer>> newPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
|
|
|
List<TreeNode<Integer>> toPages = getToPages(records, consigneeMap, skuMap);
|
|
|
|
|
|
- // Map<Integer, List<TreeNode<Integer>>> collect = toPages.stream().collect(Collectors.groupingBy(TreeNode::getParentId));
|
|
|
- //
|
|
|
- // List<List<Tree<Integer>>> builds = new ArrayList<>(collect.size());
|
|
|
- //for (Map.Entry<Integer, List<TreeNode<Integer>>> entry : collect.entrySet()){
|
|
|
- // List<Tree<Integer>> build = TreeUtil.build(entry.getValue(), entry.getKey());
|
|
|
- // builds.add(build);
|
|
|
- //}
|
|
|
+ List<Tree<Integer>> builds = new ArrayList<>();
|
|
|
+ if (entLevel == 0){
|
|
|
+ List<Tree<Integer>> build = TreeUtil.build(toPages, 0);
|
|
|
+ builds.addAll(build);
|
|
|
+ } else {
|
|
|
+ Map<Integer, List<TreeNode<Integer>>> collect = toPages.stream().collect(Collectors.groupingBy(TreeNode::getParentId));
|
|
|
+ for (TreeNode<Integer> node : toPages) {
|
|
|
+
|
|
|
+ Integer parentId = entLevel == 1 ? node.getId() : node.getParentId();
|
|
|
+
|
|
|
+ List<TreeNode<Integer>> treeNodes = collect.get(parentId);
|
|
|
+ if (CollUtil.isNotEmpty(treeNodes)) {
|
|
|
+ treeNodes.add(node);
|
|
|
+ List<Tree<Integer>> build = TreeUtil.build(treeNodes, node.getParentId());
|
|
|
+ builds.addAll(build);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- newPage.setRecords(TreeUtil.build(toPages, 0));
|
|
|
+ newPage.setRecords(builds);
|
|
|
|
|
|
return newPage;
|
|
|
}
|
|
@@ -182,8 +198,7 @@ public class SysImplementPlanManager {
|
|
|
|
|
|
TreeNode<Integer> treeNode = new TreeNode<>();
|
|
|
treeNode.setId(p.getPlanId());
|
|
|
- //treeNode.setParentId(p.getParentId());
|
|
|
- treeNode.setParentId(0);
|
|
|
+ treeNode.setParentId(p.getParentId());
|
|
|
treeNode.setName(p.getPlanName());
|
|
|
treeNode.setWeight(p.getPlanId());
|
|
|
Map<String, Object> extra = BeanUtil.beanToMap(p);
|
|
@@ -194,6 +209,7 @@ public class SysImplementPlanManager {
|
|
|
}
|
|
|
|
|
|
private Page<SysImplementPlan> getPage(HnqzUser user,
|
|
|
+ int entLevel,
|
|
|
Integer current,
|
|
|
Integer size,
|
|
|
String planName,
|
|
@@ -201,25 +217,22 @@ public class SysImplementPlanManager {
|
|
|
Integer consignorId,
|
|
|
LocalDate[] period) {
|
|
|
|
|
|
- List<Integer> roleIds = SecurityUtils.getRoles();
|
|
|
-
|
|
|
LambdaQueryWrapper<SysImplementPlan> wrapper = Wrappers.<SysImplementPlan>lambdaQuery()
|
|
|
.like(StrUtil.isNotBlank(planName), SysImplementPlan::getPlanName, planName);
|
|
|
|
|
|
- // 服务商管理员
|
|
|
- if (roleIds.contains(37)){
|
|
|
+ // 服务商管理员(只查询发给我的)
|
|
|
+ if (entLevel == 2) {
|
|
|
wrapper.eq(SysImplementPlan::getConsigneeId, user.getDeptId());
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ // 区域 (查询发给我的和我下发的)
|
|
|
+ else if (entLevel == 1) {
|
|
|
+ wrapper.and(wrp -> wrp.eq(SysImplementPlan::getConsigneeId, user.getDeptId()).or().eq(SysImplementPlan::getConsignorId, user.getDeptId()));
|
|
|
+ }
|
|
|
+ // 药企,平台(只查询我下发的)
|
|
|
+ else {
|
|
|
wrapper.eq(SysImplementPlan::getParentId, 0);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- //LambdaQueryWrapper<SysImplementPlan> wrapper = Wrappers.<SysImplementPlan>lambdaQuery()
|
|
|
- // .like(StrUtil.isNotBlank(planName), SysImplementPlan::getPlanName, planName)
|
|
|
- // .eq(SysImplementPlan::getParentId, 0);
|
|
|
- //.eq(consigneeId != null, SysImplementPlan::getConsigneeId, consigneeId)
|
|
|
- //.eq(SysImplementPlan::getConsignorId, consignorId);
|
|
|
-
|
|
|
if (ArrayUtil.isNotEmpty(period) && period.length == 2) {
|
|
|
wrapper.between(SysImplementPlan::getCreateTime, period[0], period[1]);
|
|
|
}
|