From 73ea78235e216c3d34d9ce10723af046737635d5 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期二, 05 三月 2024 18:10:31 +0800
Subject: [PATCH] Excel导入部分

---
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsSceneryOperationDataController.java |   85 +++++++++++++++++++++++++++++-------------
 1 files changed, 59 insertions(+), 26 deletions(-)

diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsSceneryOperationDataController.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsSceneryOperationDataController.java
index e60e8f5..a439c07 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsSceneryOperationDataController.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsSceneryOperationDataController.java
@@ -1,45 +1,54 @@
 package org.dromara.demo.controller;
 
-import java.util.List;
-
-import lombok.RequiredArgsConstructor;
-import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.common.mybatis.core.page.PageQuery;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import lombok.RequiredArgsConstructor;
 import org.dromara.common.core.domain.R;
+import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
-import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.core.ExcelResult;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.demo.domain.vo.RsSceneryOperationDataVo;
-import org.dromara.demo.domain.bo.RsSceneryOperationDataBo;
-import org.dromara.demo.service.IRsSceneryOperationDataService;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.demo.domain.RsSceneryOperationData;
+import org.dromara.demo.domain.bo.RsSceneryOperationDataBo;
+import org.dromara.demo.domain.vo.RsSceneryOperationDataVo;
+import org.dromara.demo.service.IRsSceneryOperationDataService;
+import org.springframework.http.MediaType;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 鏅尯杩愯鏁版嵁
  *
- * @author Lion Li
- * @date 2024-02-27
+ * @author gonghl
+ * @date 2024-03-05
  */
 @Validated
 @RequiredArgsConstructor
 @RestController
-@RequestMapping("/sc/sceneryOperationData")
+@RequestMapping("/demo/sceneryOperationData")
 public class RsSceneryOperationDataController extends BaseController {
 
     private final IRsSceneryOperationDataService rsSceneryOperationDataService;
+    private final StringBuilder successMsg = new StringBuilder();
+    private final StringBuilder failureMsg = new StringBuilder();
 
     /**
      * 鏌ヨ鏅尯杩愯鏁版嵁鍒楄〃
      */
-    @SaCheckPermission("rs:sceneryOperationData:list")
+    @SaCheckPermission("demo:sceneryOperationData:list")
     @GetMapping("/list")
     public TableDataInfo<RsSceneryOperationDataVo> list(RsSceneryOperationDataBo bo, PageQuery pageQuery) {
         return rsSceneryOperationDataService.queryPageList(bo, pageQuery);
@@ -48,7 +57,7 @@
     /**
      * 瀵煎嚭鏅尯杩愯鏁版嵁鍒楄〃
      */
-    @SaCheckPermission("rs:sceneryOperationData:export")
+    @SaCheckPermission("demo:sceneryOperationData:export")
     @Log(title = "鏅尯杩愯鏁版嵁", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(RsSceneryOperationDataBo bo, HttpServletResponse response) {
@@ -56,22 +65,46 @@
         ExcelUtil.exportExcel(list, "鏅尯杩愯鏁版嵁", RsSceneryOperationDataVo.class, response);
     }
 
+
+    /**
+     * 瀵煎叆鏁版嵁
+     *
+     * @param file          瀵煎叆鏂囦欢
+     */
+    @Log(title = "瀵煎叆鏁版嵁", businessType = BusinessType.IMPORT)
+    @SaCheckPermission("demo:sceneryOperationData:import")
+    @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    public R<Void> importData(@RequestPart("file") MultipartFile file) throws Exception {
+        ExcelResult<RsSceneryOperationDataVo> result = ExcelUtil.importExcel(file.getInputStream(), RsSceneryOperationDataVo.class, true);
+        List<RsSceneryOperationData> list = MapstructUtils.convert(result.getList(), RsSceneryOperationData.class);
+        return R.ok(rsSceneryOperationDataService.importExcel(list));
+    }
+
+    /**
+     * 鑾峰彇瀵煎叆妯℃澘
+     */
+    @SaCheckPermission("demo:sceneryOperationData:importTemplate")
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil.exportExcel(new ArrayList<>(), "鏅尯杩愯鏁版嵁", RsSceneryOperationDataVo.class, response);
+    }
+
     /**
      * 鑾峰彇鏅尯杩愯鏁版嵁璇︾粏淇℃伅
      *
      * @param id 涓婚敭
      */
-    @SaCheckPermission("rs:sceneryOperationData:query")
+    @SaCheckPermission("demo:sceneryOperationData:query")
     @GetMapping("/{id}")
     public R<RsSceneryOperationDataVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
-                                     @PathVariable Long id) {
+                                     @PathVariable String id) {
         return R.ok(rsSceneryOperationDataService.queryById(id));
     }
 
     /**
      * 鏂板鏅尯杩愯鏁版嵁
      */
-    @SaCheckPermission("system:sceneryOperationData:add")
+    @SaCheckPermission("demo:sceneryOperationData:add")
     @Log(title = "鏅尯杩愯鏁版嵁", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @PostMapping()
@@ -82,7 +115,7 @@
     /**
      * 淇敼鏅尯杩愯鏁版嵁
      */
-    @SaCheckPermission("system:sceneryOperationData:edit")
+    @SaCheckPermission("demo:sceneryOperationData:edit")
     @Log(title = "鏅尯杩愯鏁版嵁", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @PutMapping()
@@ -95,11 +128,11 @@
      *
      * @param ids 涓婚敭涓�
      */
-    @SaCheckPermission("system:sceneryOperationData:remove")
+    @SaCheckPermission("demo:sceneryOperationData:remove")
     @Log(title = "鏅尯杩愯鏁版嵁", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
-                          @PathVariable Long[] ids) {
+                          @PathVariable String[] ids) {
         return toAjax(rsSceneryOperationDataService.deleteWithValidByIds(List.of(ids), true));
     }
 }

--
Gitblit v1.8.0