吉安感知网项目-后端
xiebin
2026-02-06 e0cb0b2e90d087a0917aa75fa7e560afe3446cdf
drone-service/drone-system/src/main/java/org/sxkj/system/controller/RegionController.java
@@ -16,6 +16,7 @@
 */
package org.sxkj.system.controller;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -32,11 +33,15 @@
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.DateUtil;
import org.sxkj.system.entity.Region;
import org.sxkj.system.excel.DeptImportExcel;
import org.sxkj.system.excel.RegionExcel;
import org.sxkj.system.excel.RegionImportExcel;
import org.sxkj.system.excel.RegionImporter;
import org.sxkj.system.param.RegionAddParam;
import org.sxkj.system.param.RegionExportParam;
import org.sxkj.system.param.RegionPageParam;
import org.sxkj.system.service.IRegionService;
import org.sxkj.system.util.excel.RegionSheetWriteHandler;
import org.sxkj.system.vo.RegionVO;
import org.sxkj.system.vo.TreeVo;
import org.sxkj.system.wrapper.RegionWrapper;
@@ -46,6 +51,10 @@
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -148,6 +157,7 @@
   @ApiOperation(value = "修改", notes = "传入region")
   @ApiLog("行政区划数据修改")
   public R update(@Valid @RequestBody Region region) {
      region.setUpdateTime(DateUtil.now());
      return R.status(regionService.updateById(region));
   }
@@ -160,6 +170,8 @@
   @ApiLog("行政区划数据新增或修改")
   public R submit(@Valid @RequestBody RegionAddParam region) {
      Region regionEntity = Objects.requireNonNull(BeanUtil.copy(region, Region.class));
      regionEntity.setUpdateTime(DateUtil.now());
      regionEntity.setCreateTime(DateUtil.now());
      return R.status(regionService.submit(regionEntity));
   }
@@ -194,7 +206,7 @@
   @ApiOperation(value = "导入行政区划", notes = "传入excel")
   public R importRegion(MultipartFile file, Integer isCovered) {
      RegionImporter regionImporter = new RegionImporter(regionService, isCovered == 1);
      ExcelUtil.save(file, regionImporter, RegionExcel.class);
      ExcelUtil.save(file, regionImporter, RegionImportExcel.class);
      return R.success("操作成功");
   }
@@ -204,9 +216,8 @@
   @GetMapping("export-region")
   @ApiOperationSupport(order = 11)
   @ApiOperation(value = "导出行政区划", notes = "传入user")
   public void exportRegion(@ApiIgnore @RequestParam Map<String, Object> region, HttpServletResponse response) {
      QueryWrapper<Region> queryWrapper = Condition.getQueryWrapper(region, Region.class);
      List<RegionExcel> list = regionService.exportRegion(queryWrapper);
   public void exportRegion(RegionExportParam region, HttpServletResponse response) {
       List<RegionExcel> list = regionService.exportRegion(region);
      ExcelUtil.export(response, "行政区划数据" + DateUtil.time(), "行政区划数据表", list, RegionExcel.class);
   }
@@ -214,11 +225,23 @@
    * 导出模板
    */
   @GetMapping("export-template")
   @ApiOperationSupport(order = 12)
   @ApiOperationSupport(order = 16)
   @ApiOperation(value = "导出模板")
   public void exportUser(HttpServletResponse response) {
      List<RegionExcel> list = new ArrayList<>();
      ExcelUtil.export(response, "行政区划模板", "行政区划表", list, RegionExcel.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<RegionImportExcel> list = new ArrayList<>();
      // 使用EasyExcel导出,并注册RegionSheetWriteHandler
      EasyExcel.write(response.getOutputStream(), RegionImportExcel.class)
            .registerWriteHandler(new RegionSheetWriteHandler())
            .sheet("行政区划表")
            .doWrite(list);
   }
   /**