guoshilong
2024-04-18 068e93cfe7e05cdd0161ae40e16e1c4eae4a2058
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java
@@ -16,10 +16,15 @@
 */
package cn.gistack.system.service.impl;
import cn.gistack.common.node.DeptUserTreeNode;
import cn.gistack.common.node.TreeNode;
import cn.gistack.common.utils.NodeTreeUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.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;
@@ -81,6 +86,14 @@
   @Override
   public List<DeptVO> tree(String tenantId) {
      return ForestNodeMerger.merge(baseMapper.tree(tenantId));
   }
   @Override
   public List<DeptVO> treeByParentId(String parentId) {
      if (AuthUtil.isAdministrator() || AuthUtil.isAdmin()) {
         return ForestNodeMerger.merge(baseMapper.tree(StringPool.EMPTY));
      }
      return ForestNodeMerger.merge(baseMapper.treeByParentId(parentId));
   }
   @Override
@@ -170,4 +183,55 @@
      return DeptWrapper.build().listNodeVO(deptList);
   }
   /**
    * 查询组织机构树数据(下级包含人员信息)
    * @param treeNode
    * @return
    */
   @Override
   public List<TreeNode> getDeptAndUserTree(DeptUserTreeNode treeNode) {
      // 查询数据
      Map<String, DeptUserTreeNode> deptMap = baseMapper.getDeptMap(treeNode);
      Map<String, DeptUserTreeNode> userMap = baseMapper.getUserMap(treeNode);
      deptMap.putAll(userMap);
      // 处理并返回
      return NodeTreeUtil.getDeptAndUserNodeTree(deptMap);
   }
   @Override
   public int updateAllDept() {
      Dept params = new Dept();
      params.setAdGrad("9");
      List<Dept> list = list(Condition.getQueryWrapper(params));
      list.forEach(dept -> {
         this.submit(dept);
      });
      return list.size();
   }
   @Override
   public boolean updateDeptByTb(String adCode, String resGuid) {
      //根据水库编码找到机构
      QueryWrapper<Dept> query1 = new QueryWrapper<>();
      query1.eq("RES_GUID",resGuid);
      Dept resDept = getOne(query1);
      //找到移到哪个行政区划下的机构
      QueryWrapper<Dept> query2 = new QueryWrapper<>();
      query2.eq("AD_CODE",adCode);
      Dept adCodeDept = getOne(query2);
      if (resDept != null && adCodeDept != null){
         resDept.setParentId(adCodeDept.getId());
         return this.submit(resDept);
      }
      return false;
   }
   @Override
   public String getResDept(String deptIds) {
      return baseMapper.getResDept(deptIds);
   }
}