linwei
2024-02-03 b7df6735bcb2d447cae7fcfba2d12accf3dd2fcc
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
@@ -23,19 +23,28 @@
import org.springblade.common.cache.SysCache;
import org.springblade.common.node.TreeStringNode;
import org.springblade.common.utils.SpringUtils;
import org.springblade.common.utils.NodeTreeUtil;
import org.springblade.core.log.exception.ServiceException;
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.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.core.tool.utils.StringPool;
import org.springblade.modules.community.entity.CommunityEntity;
import org.springblade.modules.community.service.ICommunityService;
import org.springblade.modules.grid.entity.GridEntity;
import org.springblade.modules.grid.service.IGridService;
import org.springblade.modules.police.entity.PoliceAffairsGridEntity;
import org.springblade.modules.police.service.IPoliceAffairsGridService;
import org.springblade.modules.property.entity.PropertyCompanyEntity;
import org.springblade.modules.property.service.IPropertyCompanyService;
import org.springblade.modules.system.entity.Dept;
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;
@@ -99,17 +108,12 @@
   @Override
   public List<DeptVO> tree(String tenantId) {
      Long id = 0L;
      Long id = null;
      // 判断数据权限控制,非超管角色只可看到本级及以下数据
      if (!AuthUtil.isAdmin()) {
         id = Func.firstLong(AuthUtil.getDeptId());
      }
      List<DeptVO> tree = baseMapper.tree(tenantId, id);
      if (AuthUtil.isAdmin()) {
         for (DeptVO deptVO : tree) {
            deptVO.setDisabled(false);
         }
      }
      return ForestNodeMerger.merge(tree);
   }
@@ -126,7 +130,7 @@
//            parentId = dept.getParentId();
//         }
//      }
      if (Func.toLong(parentId) == 0L && !AuthUtil.isAdministrator()) {
      if (Func.toLong(parentId) == 0L && !AuthUtil.isAdmin()) {
         Long deptId = Func.firstLong(AuthUtil.getDeptId());
         Dept dept = SysCache.getDept(deptId);
         if (dept.getParentId() != 0) {
@@ -317,24 +321,65 @@
   @Override
   @Transactional(rollbackFor = Exception.class)
   public Object dataHandle() {
      // 查询未绑定的网格
      List<TreeStringNode> list = regionService.getTree(null);
      // 查询所有的社区
      QueryWrapper<Region> queryWrapper = new QueryWrapper<>();
      queryWrapper.eq("district_code","361102").eq("region_level",5);
      List<Region> list = regionService.list(queryWrapper);
      // 遍历
      for (TreeStringNode treeStringNode : list) {
      for (Region region : list) {
         // 查询是否已创建
         QueryWrapper<Dept> wrapper = new QueryWrapper<>();
         wrapper.eq("is_deleted", 0).eq("dept_name", treeStringNode.getName());
         wrapper.eq("is_deleted", 0).eq("dept_name", region.getName());
         Dept one = getOne(wrapper);
         if (null == one) {
            // 新增
            Dept dept = new Dept();
            dept.setParentId(1733066387113734145L);
            dept.setFullName(treeStringNode.getName());
            dept.setDeptName(treeStringNode.getName());
            dept.setFullName(region.getName());
            dept.setDeptName(region.getName());
            dept.setDeptCategory(1);
            dept.setTenantId("000000");
            // 查询上级id
            QueryWrapper<Dept> deptQueryWrapper = new QueryWrapper<>();
            deptQueryWrapper.eq("is_deleted", 0).eq("dept_name", region.getTownName());
            Dept parentDept = getOne(deptQueryWrapper);
            if (null!=parentDept){
               dept.setParentId(parentDept.getId());
               dept.setAncestors(parentDept.getAncestors() + "," + parentDept.getId());
            }
            dept.setRegionCode(region.getCode());
            // 新增
            save(dept);
            saveOrUpdate(dept);
            // 插入社区表数据
         }
      }
      return null;
   }
   /**
    * 数据处理(社区绑定)--处理机构
    */
   @Override
   @Transactional(rollbackFor = Exception.class)
   public Object dataHandleCommunity() {
      // 查询所有的社区
      QueryWrapper<Region> queryWrapper = new QueryWrapper<>();
      queryWrapper.eq("district_code","361102").eq("region_level",5);
      List<Region> list = regionService.list(queryWrapper);
      // 遍历
      for (Region region : list) {
         // 查询是否已创建
         QueryWrapper<CommunityEntity> wrapper = new QueryWrapper<>();
         wrapper.eq("is_deleted", 0).eq("name", region.getName());
         CommunityEntity one = SpringUtil.getBean(ICommunityService.class).getOne(wrapper);
         if (null == one) {
            // 新增
            CommunityEntity communityEntity = new CommunityEntity();
            communityEntity.setStreetCode(region.getTownCode());
            communityEntity.setName(region.getName());
            communityEntity.setCode(region.getCode());
            // 新增
            SpringUtil.getBean(ICommunityService.class).save(communityEntity);
         }
      }
      return null;
@@ -359,4 +404,50 @@
      }
      return null;
   }
   @Override
   public List<DeptUserTreeNode> getDeptAndUserTree(DeptUserTreeNode treeNode) {
      // 查询数据
      Map<String, DeptUserTreeNode> deptMap = baseMapper.getDeptMap(treeNode);
      Map<String, DeptUserTreeNode> userMap = baseMapper.getUserMap(treeNode);
      deptMap.putAll(userMap);
      List<DeptUserTreeNode> deptAndUserNodeTree = NodeTreeUtil.getDeptAndUserNodeTree(deptMap);
      // 处理并返回
      return deptAndUserNodeTree;
   }
   /**
    * 数据处理(社区绑定)-- 处理社区(派出所下)
    */
   @Override
   @Transactional(rollbackFor = Exception.class)
   public Object dataHandleCommunityByPolice() {
      // 查询所有的派出所
      QueryWrapper<Dept> wrapper = new QueryWrapper<>();
      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());
         List<PoliceAffairsGridEntity> policeAffairsGridEntityList
            = SpringUtil.getBean(IPoliceAffairsGridService.class).list(queryWrapper);
         // 遍历
         for (PoliceAffairsGridEntity policeAffairsGridEntity : policeAffairsGridEntityList) {
            Dept deptInfo = new Dept();
            deptInfo.setTenantId("000000");
            deptInfo.setDeptName(policeAffairsGridEntity.getCommunityName());
            deptInfo.setFullName(policeAffairsGridEntity.getCommunityName());
            deptInfo.setDeptCategory(1);
            deptInfo.setDeptNature(1);
            deptInfo.setParentId(dept.getId());
            deptInfo.setAncestors(dept.getAncestors() + "," + dept.getId());
            deptInfo.setRegionCode(policeAffairsGridEntity.getJwGridCode());
            // 保存
            save(deptInfo);
         }
      }
      return null;
   }
}