linwe
2024-08-09 8b7258c9427882bb1798f1502eaa35184c6e374e
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
@@ -20,10 +20,11 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.logging.log4j.util.Strings;
import org.springblade.common.cache.SysCache;
import org.springblade.common.node.TreeStringNode;
import org.springblade.common.utils.SpringUtils;
import org.springblade.common.utils.AuthUtils;
import org.springblade.common.utils.NodeTreeUtil;
import org.springblade.common.utils.SpringUtils;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.constant.BladeConstant;
@@ -44,10 +45,8 @@
import org.springblade.modules.system.entity.Region;
import org.springblade.modules.system.mapper.DeptMapper;
import org.springblade.modules.system.node.DeptUserTreeNode;
import org.springblade.modules.system.node.TreeNode;
import org.springblade.modules.system.service.IDeptService;
import org.springblade.modules.system.service.IRegionService;
import org.springblade.modules.system.vo.DeptDetailVO;
import org.springblade.modules.system.vo.DeptVO;
import org.springblade.modules.system.wrapper.DeptWrapper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -89,10 +88,10 @@
         parentId = 0L;
      }
      // 判断数据权限控制,非超管角色只可看到本级及以下数据
      if (Func.toLong(parentId) == 0L && !AuthUtil.isAdministrator()) {
      if (Func.toLong(parentId) == 0L && !AuthUtils.isAdministratorOrAdmin(AuthUtil.getUserRole())) {
         Long deptId = Func.firstLong(AuthUtil.getDeptId());
         Dept dept = SysCache.getDept(deptId);
         if (dept.getParentId() != 0) {
         if (dept != null && dept.getParentId() != 0) {
            parentId = dept.getParentId();
         }
         List<DeptVO> deptVOS = baseMapper.lazyList(tenantId, parentId, param);
@@ -117,6 +116,17 @@
      return ForestNodeMerger.merge(tree);
   }
   /**
    * 机构id
    * @param deptId
    * @return
    */
   @Override
   public List<DeptVO> tree(Long deptId) {
      List<DeptVO> tree = baseMapper.tree("000000", deptId);
      return ForestNodeMerger.merge(tree);
   }
   @Override
   public List<DeptVO> lazyTree(String tenantId, Long parentId) {
      if (AuthUtil.isAdministrator()) {
@@ -133,7 +143,7 @@
      if (Func.toLong(parentId) == 0L && !AuthUtil.isAdmin()) {
         Long deptId = Func.firstLong(AuthUtil.getDeptId());
         Dept dept = SysCache.getDept(deptId);
         if (dept.getParentId() != 0) {
         if (dept != null && dept.getParentId() != 0) {
            parentId = dept.getParentId();
         }
         List<DeptVO> merge = ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId));
@@ -190,7 +200,7 @@
         // 查询当前机构信息
         DeptVO dept = baseMapper.getDeptById(id);
         // 如果父机构为物业公司
         if (dept.getParentName().equals("物业公司")) {
         if (!Strings.isBlank(dept.getParentName()) && dept.getParentName().equals("物业公司")) {
            // 删除
            propertyCompanyService.remove(Wrappers.<PropertyCompanyEntity>update().lambda().eq(PropertyCompanyEntity::getDeptId, id));
         }
@@ -254,7 +264,7 @@
            dept.setId(one.getId());
            flag = updateById(dept);
         } else {
            if (dept.getId() > 0) {
            if (dept.getId() != null && dept.getId() > 0) {
               flag = updateById(dept);
            } else {
               flag = save(dept);
@@ -279,8 +289,7 @@
      // 查询物业公司是否存在
      QueryWrapper<PropertyCompanyEntity> wrapper = new QueryWrapper<>();
      wrapper.eq("is_deleted", 0)
         .eq("dept_id", dept.getId())
         .eq("name", dept.getDeptName());
         .eq("dept_id", dept.getId());
      PropertyCompanyEntity propertyCompanyEntity = propertyCompanyService.getOne(wrapper);
      if (null != propertyCompanyEntity) {
         // 修改
@@ -323,7 +332,7 @@
   public Object dataHandle() {
      // 查询所有的社区
      QueryWrapper<Region> queryWrapper = new QueryWrapper<>();
      queryWrapper.eq("district_code","361102").eq("region_level",5);
      queryWrapper.eq("district_code", "361102").eq("region_level", 5);
      List<Region> list = regionService.list(queryWrapper);
      // 遍历
      for (Region region : list) {
@@ -342,7 +351,7 @@
            QueryWrapper<Dept> deptQueryWrapper = new QueryWrapper<>();
            deptQueryWrapper.eq("is_deleted", 0).eq("dept_name", region.getTownName());
            Dept parentDept = getOne(deptQueryWrapper);
            if (null!=parentDept){
            if (null != parentDept) {
               dept.setParentId(parentDept.getId());
               dept.setAncestors(parentDept.getAncestors() + "," + parentDept.getId());
            }
@@ -364,7 +373,7 @@
   public Object dataHandleCommunity() {
      // 查询所有的社区
      QueryWrapper<Region> queryWrapper = new QueryWrapper<>();
      queryWrapper.eq("district_code","361102").eq("region_level",5);
      queryWrapper.eq("district_code", "361102").eq("region_level", 5);
      List<Region> list = regionService.list(queryWrapper);
      // 遍历
      for (Region region : list) {
@@ -408,11 +417,34 @@
   @Override
   public List<DeptUserTreeNode> getDeptAndUserTree(DeptUserTreeNode treeNode) {
      // 查询数据
      Map<String, DeptUserTreeNode> deptMap = baseMapper.getDeptMap(treeNode);
//      Map<String, DeptUserTreeNode> deptMap = baseMapper.getDeptMap(treeNode);
      Map<String, DeptUserTreeNode> deptMap = baseMapper.getDeptMapAndChildren(treeNode);
      Map<String, DeptUserTreeNode> userMap = baseMapper.getUserMap(treeNode);
      deptMap.putAll(userMap);
      List<DeptUserTreeNode> deptAndUserNodeTree = NodeTreeUtil.getDeptAndUserNodeTree(deptMap);
      // 处理并返回
      return deptAndUserNodeTree;
   }
   @Override
   public Object getDeptAndUserTreeLazyTree(DeptUserTreeNode treeNode) {
      //传一个部门id,查询出该部门的下一级部门
      Map<String, DeptUserTreeNode> deptMap = baseMapper.getDeptMapAndChild(treeNode);
      String deptIds = "";
      int count = 0;
      for (String key : deptMap.keySet()) {
         count++;
         deptIds += key;
         if (count < deptMap.size()) {
            deptIds += ",";
         }
      }
      Map<String, DeptUserTreeNode> userMap = baseMapper.getUserMapByDeptIds(deptIds);
      deptMap.putAll(userMap);
      List<DeptUserTreeNode> deptAndUserNodeTree = NodeTreeUtil.getDeptAndUserNodeTree(deptMap);
      return deptAndUserNodeTree;
   }
@@ -424,13 +456,13 @@
   public Object dataHandleCommunityByPolice() {
      // 查询所有的派出所
      QueryWrapper<Dept> wrapper = new QueryWrapper<>();
      wrapper.eq("is_deleted",0).like("dept_name","派出所");
      wrapper.eq("is_deleted", 0).like("dept_name", "派出所");
      List<Dept> list = list(wrapper);
      // 遍历
      for (Dept dept : list) {
         // 通过派出所名称查询对应的警务网格信息
         QueryWrapper<PoliceAffairsGridEntity> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("is_deleted",0).eq("pcs_name",dept.getDeptName());
         queryWrapper.eq("is_deleted", 0).eq("pcs_name", dept.getDeptName());
         List<PoliceAffairsGridEntity> policeAffairsGridEntityList
            = SpringUtil.getBean(IPoliceAffairsGridService.class).list(queryWrapper);
         // 遍历
@@ -450,4 +482,16 @@
      }
      return null;
   }
   /**
    * 查询对应的派出所
    *
    * @param deptId
    * @return
    */
   @Override
   public Dept getDeptByDeptIds(String deptId) {
      return baseMapper.getDeptByDeptIds(deptId);
   }
}