吉安感知网项目-后端
linwei
2026-04-07 c5badf4a2eafbaa4eff00f0941807626dda1d8ff
drone-service/drone-system/src/main/java/org/sxkj/system/controller/DeptController.java
@@ -16,6 +16,7 @@
 */
package org.sxkj.system.controller;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -52,16 +53,15 @@
import org.sxkj.system.entity.Region;
import org.sxkj.system.entity.User;
import org.sxkj.system.enums.DictEnum;
import org.sxkj.system.excel.DeptExcel;
import org.sxkj.system.excel.DeptImporter;
import org.sxkj.system.excel.RegionExcel;
import org.sxkj.system.excel.RegionImporter;
import org.sxkj.system.excel.*;
import org.sxkj.system.mapper.DeptMapper;
import org.sxkj.system.mapper.UserMapper;
import org.sxkj.system.param.DeptAddParam;
import org.sxkj.system.param.DeptExportParam;
import org.sxkj.system.param.DeptPageParam;
import org.sxkj.system.service.IDeptService;
import org.sxkj.system.util.excel.DeptSheetWriteHandler;
import org.sxkj.system.util.excel.RegionSheetWriteHandler;
import org.sxkj.system.vo.DeptVO;
import org.sxkj.system.wrapper.DeptWrapper;
import org.springframework.web.bind.annotation.*;
@@ -69,10 +69,10 @@
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.stream.Collectors;
import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
@@ -102,8 +102,8 @@
   @ApiOperationSupport(order = 1)
   @ApiOperation(value = "详情", notes = "传入dept")
   public R<DeptVO> detail(Dept dept) {
      Dept detail = deptService.getOne(Condition.getQueryWrapper(dept));
      return R.data(DeptWrapper.build().entityVO(detail));
      DeptVO detail = deptService.getDetailWithAreaName(dept);
      return R.data(detail);
   }
   /**
@@ -162,8 +162,8 @@
   @GetMapping("/tree")
   @ApiOperationSupport(order = 4)
   @ApiOperation(value = "树形结构", notes = "树形结构")
   public R<List<DeptVO>> tree(String tenantId, BladeUser bladeUser) {
      List<DeptVO> tree = deptService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
   public R<List<DeptVO>> tree(String tenantId, @RequestParam(value = "sysType", required = false) String sysType, BladeUser bladeUser) {
      List<DeptVO> tree = deptService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), sysType);
      return R.data(tree);
   }
@@ -206,10 +206,13 @@
      String times = OrderNumUtils.initOrderNum2(WordOrderConstant.ORG_CODE);
      String deptCode = WordOrderConstant.ORG_PREFIX + times;
      deptEntity.setDeptCode(deptCode);
      deptEntity.setCreateTime(new Date());
      deptEntity.setUpdateTime(new Date());
      if (deptService.submit(deptEntity)) {
         CacheUtil.clear(SYS_CACHE);
         CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
         List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getDeptId, dept.getId()));
         // 根据部门ID查询用户列表
         List<User> userList = userMapper.selectUsersByDeptId(String.valueOf(dept.getId()));
         if (!userList.isEmpty()) {
            List<Long> userIds = userList.stream().map(User::getId).collect(Collectors.toList());
            userMapper.updateUserAreaCode(dept.getAreaCode(), userIds);
@@ -349,7 +352,7 @@
   @ApiOperation(value = "导入机构", notes = "传入excel")
   public R importRegion(MultipartFile file, Integer isCovered) {
      DeptImporter deptImporter = new DeptImporter(deptService, isCovered == 1);
      ExcelUtil.save(file, deptImporter, DeptExcel.class);
      ExcelUtil.save(file, deptImporter, DeptImportExcel.class);
      return R.success("操作成功");
   }
@@ -370,9 +373,30 @@
   @GetMapping("export-template")
   @ApiOperationSupport(order = 16)
   @ApiOperation(value = "导出模板")
   public void exportUser(HttpServletResponse response) {
      List<DeptExcel> list = new ArrayList<>();
      ExcelUtil.export(response, "机构模板", "机构表", list, DeptExcel.class);
   public void exportUser(HttpServletResponse response) throws IOException {
      // 设置响应头
      response.setContentType("application/vnd.ms-excel");
      response.setCharacterEncoding(StandardCharsets.UTF_8.name());
      String fileName = URLEncoder.encode("机构模板", StandardCharsets.UTF_8.name());
      response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
      // 准备示例数据列表
      List<DeptImportExcel> list = new ArrayList<>();
      // 创建示例数据对象
      DeptImportExcel example = new DeptImportExcel();
      // 设置示例数据
      example.setDeptName("示例机构");
      example.setAreaCode("360800000000");
      example.setRemark("这是一个示例机构");
      example.setStatus("1"); // 假设1表示启用状态
      // 将示例数据添加到列表
      list.add(example);
      // 使用EasyExcel导出,并注册RegionSheetWriteHandler
      EasyExcel.write(response.getOutputStream(), DeptImportExcel.class)
            .registerWriteHandler(new DeptSheetWriteHandler())
            .sheet("机构表")
            .doWrite(list);
   }
}