From 1abd541be8d02dabaa77d3c6d2fecde5ef0e4b5b Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Thu, 29 Jan 2026 17:02:50 +0800
Subject: [PATCH] 区划改造

---
 drone-service/drone-system/src/main/java/org/sxkj/system/controller/RegionController.java |   76 +++++++++++++++++++++++++++++++-------
 1 files changed, 62 insertions(+), 14 deletions(-)

diff --git a/drone-service/drone-system/src/main/java/org/sxkj/system/controller/RegionController.java b/drone-service/drone-system/src/main/java/org/sxkj/system/controller/RegionController.java
index 388f6ad..a449be8 100644
--- a/drone-service/drone-system/src/main/java/org/sxkj/system/controller/RegionController.java
+++ b/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;
@@ -29,11 +30,17 @@
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
+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.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;
@@ -43,9 +50,14 @@
 
 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;
+import java.util.Objects;
 
 /**
  * 行政区划表 控制器
@@ -84,6 +96,17 @@
 	}
 
 	/**
+	 * 行政区划表 自定义分页
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = " ")
+	public R<IPage<RegionVO>> page(RegionPageParam regionPageParam, Query query) {
+		IPage<RegionVO> pages = regionService.selectRegionPage(Condition.getPage(query), regionPageParam);
+		return R.data(pages);
+	}
+
+	/**
 	 * 懒加载列表
 	 */
 	@GetMapping("/lazy-list")
@@ -116,13 +139,14 @@
 	/**
 	 * 新增 行政区划表
 	 */
-	@PostMapping("/save")
-	@ApiOperationSupport(order = 5)
-	@ApiOperation(value = "新增", notes = "传入region")
-	@ApiLog("行政区划数据新增")
-	public R save(@Valid @RequestBody Region region) {
-		return R.status(regionService.save(region));
-	}
+	// @PostMapping("/save")
+	// @ApiOperationSupport(order = 5)
+	// @ApiOperation(value = "新增", notes = "传入region")
+	// @ApiLog("行政区划数据新增")
+	// public R save(@Valid @RequestBody RegionAddParam region) {
+	// 	Region regionEntity = Objects.requireNonNull(BeanUtil.copy(region, Region.class));
+	// 	return R.status(regionService.save(regionEntity));
+	// }
 
 	/**
 	 * 修改 行政区划表
@@ -132,6 +156,7 @@
 	@ApiOperation(value = "修改", notes = "传入region")
 	@ApiLog("行政区划数据修改")
 	public R update(@Valid @RequestBody Region region) {
+		region.setUpdateTime(DateUtil.now());
 		return R.status(regionService.updateById(region));
 	}
 
@@ -142,8 +167,11 @@
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "新增或修改", notes = "传入region")
 	@ApiLog("行政区划数据新增或修改")
-	public R submit(@Valid @RequestBody Region region) {
-		return R.status(regionService.submit(region));
+	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));
 	}
 
 
@@ -177,7 +205,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("操作成功");
 	}
 
@@ -196,12 +224,32 @@
 	/**
 	 * 导出模板
 	 */
+	// @GetMapping("export-template")
+	// @ApiOperationSupport(order = 12)
+	// @ApiOperation(value = "导出模板")
+	// public void exportUser(HttpServletResponse response) {
+	// 	List<RegionImportExcel> list = new ArrayList<>();
+	// 	ExcelUtil.export(response, "行政区划模板", "行政区划表", list, RegionImportExcel.class);
+	// }
+
 	@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);
 	}
 
 	/**

--
Gitblit v1.9.3