吉安感知网项目-后端
linwei
2026-04-22 de09889cb97fcd7e9ae3236d3cb0d9f2f752e439
drone-service/drone-system/src/main/java/org/sxkj/system/service/impl/DeptServiceImpl.java
@@ -16,11 +16,13 @@
 */
package org.sxkj.system.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.util.Strings;
import org.springblade.core.log.exception.ServiceException;
@@ -48,10 +50,7 @@
import org.sxkj.system.vo.DeptVO;
import org.sxkj.system.wrapper.DeptWrapper;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -59,6 +58,7 @@
 *
 * @author Chill
 */
@Slf4j
@Service
public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements IDeptService {
@@ -96,8 +96,8 @@
   @Override
   public List<DeptVO> tree(String tenantId) {
      return ForestNodeMerger.merge(baseMapper.tree(tenantId));
   public List<DeptVO> tree(String tenantId, String sysType) {
      return ForestNodeMerger.merge(baseMapper.tree(tenantId, sysType));
   }
   @Override
@@ -154,8 +154,16 @@
      return removeByIds(Func.toLongList(ids));
   }
   /**
    * 提交部门信息
    *
    * @param dept 部门信息
    * @return 是否操作成功
    */
   @Override
   public boolean submit(Dept dept) {
      log.info("提交数据:{}", JSON.toJSONString(dept));
      // 处理父节点信息
      if (Func.isEmpty(dept.getParentId())) {
         dept.setTenantId(AuthUtil.getTenantId());
         dept.setParentId(BladeConstant.TOP_PARENT_ID);
@@ -170,8 +178,16 @@
         String ancestors = parent.getAncestors() + StringPool.COMMA + dept.getParentId();
         dept.setAncestors(ancestors);
      }
      // 处理ID重复问题:如果ID存在但记录不存在,设置ID为null让MyBatis-Plus重新生成
      if (dept.getId() != null) {
         Dept existingDept = getById(dept.getId());
         if (existingDept == null) {
            dept.setId(null);
         }
      }
      dept.setIsDeleted(BladeConstant.DB_NOT_DELETED);
      return saveOrUpdate(dept);
   }
@@ -324,7 +340,28 @@
   public void importDept(List<DeptImportExcel> data, Boolean isCovered) {
      List<Dept> list = new ArrayList<>();
      data.forEach(deptExcel -> {
         // 校验必填字段
         if (deptExcel.getDeptName() == null || deptExcel.getDeptName().trim().isEmpty()) {
            throw new RuntimeException("机构名称不能为空");
         }
         if (deptExcel.getAreaCode() == null || deptExcel.getAreaCode().trim().isEmpty()) {
            throw new RuntimeException("所属区划编码不能为空");
         }
         if (deptExcel.getRemark() == null || deptExcel.getRemark().trim().isEmpty()) {
            throw new RuntimeException("机构描述不能为空");
         }
         if (deptExcel.getStatus() == null || deptExcel.getStatus().trim().isEmpty()) {
            throw new RuntimeException("机构状态不能为空");
         }
         // 转换数据
         Dept dept = BeanUtil.copy(deptExcel, Dept.class);
         dept.setStatus(1);
         dept.setIsDeleted(0);
         dept.setCreateTime(new Date());
         dept.setUpdateTime(new Date());
         dept.setDeptNature(2);
         dept.setDeptCategory(2);
         dept.setSysType(String.valueOf(6));
         list.add(dept);
      });
      if (isCovered) {