|
@@ -2,7 +2,6 @@ package com.qunzhixinxi.hnqz.admin.controller;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
-import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
@@ -31,6 +30,7 @@ import com.qunzhixinxi.hnqz.admin.service.SysCsmUserRelationService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptRelationService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysEnterpriseAreaService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.SysUserAreaService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDaAgentService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmRelationService;
|
|
@@ -56,6 +56,7 @@ import java.time.LocalDateTime;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
@@ -89,6 +90,7 @@ public class WmDaAgentController {
|
|
|
private final SysDeptRelationService sysDeptRelationService;
|
|
|
private final SysCsmUserRelationService sysCsmUserRelationService;
|
|
|
private final SysDeptCsmMapper sysDeptCsmMapper;
|
|
|
+ private final SysUserAreaService userAreaService;
|
|
|
private final SysEnterpriseAreaService enterpriseAreaService;
|
|
|
|
|
|
/**
|
|
@@ -101,36 +103,53 @@ public class WmDaAgentController {
|
|
|
@GetMapping("/page")
|
|
|
public R<?> getWmDaAgentPage(Page page, WmDaAgent wmDaAgent) {
|
|
|
|
|
|
+ Integer myselfId = SecurityUtils.getUser().getDeptId();
|
|
|
|
|
|
+ Set<Integer> ids = new HashSet<>(myselfId);
|
|
|
+
|
|
|
+ // 查询我的下游
|
|
|
WmRelation wmRelation = new WmRelation();
|
|
|
- wmRelation.setUpId(SecurityUtils.getUser().getDeptId());
|
|
|
+ wmRelation.setUpId(myselfId);
|
|
|
List<WmRelation> wmRelationList = wmRelationMapper.selectUpIdList(wmRelation);
|
|
|
- List<WmDaAgent> wmDaAgentList = new ArrayList<>();
|
|
|
- wmDaAgent.setDeptId(SecurityUtils.getUser().getDeptId());
|
|
|
- WmDaAgent wmDaAgent3 = wmDaAgentMapper.selectDeptId(wmDaAgent);
|
|
|
- if (wmDaAgent3 != null) {
|
|
|
- wmDaAgentList.add(wmDaAgent3);
|
|
|
- }
|
|
|
if (CollUtil.isNotEmpty(wmRelationList)) {
|
|
|
- List<Integer> ids = wmRelationList.stream().map(WmRelation::getDownId).collect(Collectors.toList());
|
|
|
-
|
|
|
- for (Integer id : ids) {
|
|
|
- WmDaAgent wmDaAgent1 = new WmDaAgent();
|
|
|
- wmDaAgent1.setDeptId(id);
|
|
|
- WmDaAgent wmDaAgent2 = wmDaAgentMapper.selectDeptId(wmDaAgent1);
|
|
|
- if (wmDaAgent2 != null) {
|
|
|
- wmDaAgentList.add(wmDaAgent2);
|
|
|
- }
|
|
|
+ // 下游ID
|
|
|
+ List<Integer> downIds = wmRelationList.stream().map(WmRelation::getDownId).collect(Collectors.toList());
|
|
|
+ if (CollUtil.isNotEmpty(downIds)) {
|
|
|
+ ids.addAll(downIds);
|
|
|
}
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 区域限制
|
|
|
+ List<Long> areaId;
|
|
|
+ if (CollUtil.isNotEmpty(wmDaAgent.getAreaCodes())){
|
|
|
+
|
|
|
+ areaId = wmDaAgent.getAreaCodes();
|
|
|
+
|
|
|
+ } else {
|
|
|
+ areaId = userAreaService.listUserAreas(Long.valueOf(SecurityUtils.getUser().getId()));
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- // 公司名称条件筛选
|
|
|
- if (StrUtil.isNotBlank(wmDaAgent.getGsmc())) {
|
|
|
- wmDaAgentList = wmDaAgentList.stream()
|
|
|
- .filter(agent -> StrUtil.contains(agent.getGsmc(), wmDaAgent.getGsmc()))
|
|
|
- .collect(Collectors.toList());
|
|
|
+ List<Long> entIds = enterpriseAreaService.listAreaEnts(areaId);
|
|
|
+
|
|
|
+ // 交集
|
|
|
+ Set<Integer> resSet = new HashSet<>(ids);
|
|
|
+ resSet.retainAll(entIds.stream().map(Long::intValue).collect(Collectors.toSet()));
|
|
|
+
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(resSet)){
|
|
|
+ return R.ok(page);
|
|
|
}
|
|
|
|
|
|
+ List<WmDaAgent> wmDaAgentList = wmDaAgentMapper.selectDeptByIds(resSet, wmDaAgent.getGsmc());
|
|
|
+
|
|
|
+ if (CollUtil.isEmpty(wmDaAgentList)) {
|
|
|
+ return R.ok(page);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//每页数据条数
|
|
|
Page<WmDaAgent> page1 = new Page<>();
|
|
|
int current = Long.valueOf(page.getCurrent()).intValue();
|
|
@@ -789,14 +808,14 @@ public class WmDaAgentController {
|
|
|
public R<?> listByDept() {
|
|
|
List<WmDept> dept = wmDaAgentService.listByDept();
|
|
|
|
|
|
- if (CollUtil.isNotEmpty(dept)){
|
|
|
+ if (CollUtil.isNotEmpty(dept)) {
|
|
|
|
|
|
Set<Long> collect = dept.stream().map(d -> Long.valueOf(d.getDeptId())).collect(Collectors.toSet());
|
|
|
Map<Long, List<Long>> longListMap = enterpriseAreaService.listEntAreas1(collect);
|
|
|
|
|
|
dept.forEach(d -> {
|
|
|
- d.setAreaCodes(longListMap.get(Long.valueOf(d.getDeptId())));
|
|
|
- });
|
|
|
+ d.setAreaCodes(longListMap.get(Long.valueOf(d.getDeptId())));
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
return R.ok(dept);
|