智慧保安后台管理-外网-验收版本
tangzy
2021-12-06 cc057177b2fb17aee9a173a6adbabdc578fd74c7
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
@@ -19,13 +19,20 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import org.springblade.common.cache.SysCache;
import org.springblade.common.vo.DeptVo;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.node.ForestNodeMerger;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringPool;
import org.springblade.modules.information.entity.Information;
import org.springblade.modules.information.service.IInformationService;
import org.springblade.modules.jurisdiction.entity.Jurisdiction;
import org.springblade.modules.jurisdiction.service.JurisdictionService;
import org.springblade.modules.system.entity.Dept;
import org.springblade.modules.system.mapper.DeptMapper;
import org.springblade.modules.system.node.TreeNode;
@@ -36,6 +43,7 @@
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -46,9 +54,14 @@
 * @author Chill
 */
@Service
@AllArgsConstructor
public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements IDeptService {
   private static final String TENANT_ID = "tenantId";
   private static final String PARENT_ID = "parentId";
   private final IInformationService iInformationService;
   private final JurisdictionService jurisdictionService;
   @Override
   public List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param) {
@@ -195,10 +208,6 @@
      return ForestNodeMerger.merge(baseMapper.securityLazyTree(jurisdiction, parentId));
   }
   @Override
   public List<String> selectIn() {
      return baseMapper.selectIn();
   }
   /**
    * 懒加载获取部门树形结构(包含用户数据)
@@ -241,17 +250,63 @@
    * @return
    */
   @Override
   public List<TreeNodes> lazyTreeUsers(String tenantId, Long parentId) {
      Map<Long,TreeNodes> map = baseMapper.lazyTreeUsers(parentId);
      System.out.println("map = " + map.size());
   public List<TreeNodes> lazyTreeUsers(Integer type,Long deptId) {
      Map<Long,TreeNodes> map = new HashMap<>();
      //保安向保安汇报
      if(type==1){
         map = baseMapper.lazyTreeUsers(type,deptId,null);
      }
      //查当前公司人员
      if(type==4){
         map = baseMapper.lazyTreeUsers(null,deptId,null);
      }
      //保安向民警汇报
      if(type==2){
         //查询当前保安所在的辖区
         Information information = new Information();
         information.setDepartmentid(deptId.toString());
         Information one = iInformationService.getOne(Condition.getQueryWrapper(information));
         if (null!=one) {
            //找辖区对应的组织机构id
            Jurisdiction jurisdiction = jurisdictionService.getById(one.getJurisdiction());
            if (null != jurisdiction) {
               Dept dept = new Dept();
               dept.setDeptName(jurisdiction.getDeptName());
               Dept dept1 = this.getOne(Condition.getQueryWrapper(dept));
               map = baseMapper.lazyTreeUsersPublicSecurity(type, dept1.getId(), one.getJurisdiction());
            }
         }
      }
      //民警向民警汇报,需要南昌市及当前民警所在辖区的部门数据
      if(type==3){
         //当前取所有的民警数据
         map = baseMapper.lazyTreeUsersPublicSecuritys(type,null,null);
      }
      List<TreeNodes> tree = new ArrayList<>();
      map.forEach((id,treeNodes) ->{
         if (map.containsKey(treeNodes.getParentId())){
            map.get(treeNodes.getParentId()).getChildren().add(treeNodes);
      Map<Long, TreeNodes> finalMap = map;
      map.forEach((id, treeNodes) ->{
         if (finalMap.containsKey(treeNodes.getParentId())){
            finalMap.get(treeNodes.getParentId()).getChildren().add(treeNodes);
         }else {
            tree.add(treeNodes);
         }
      });
      return tree;
   }
   @Override
   public List<DeptVO> selectInfo() {
      return ForestNodeMerger.merge(baseMapper.selectInfo());
   }
   @Override
   public List<DeptVo> selDeptList() {
      return baseMapper.selDeptList();
   }
   @Override
   public List<String> selectIn() {
      return baseMapper.selectIn();
   }
}