From bb77e44761f61ec08e257fecc5143859eb14bd30 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期三, 06 三月 2024 15:46:28 +0800
Subject: [PATCH] Excel导入实现

---
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsDangerTotalService.java                  |    8 ++++
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsDangerTotalController.java             |   60 ++++++++++++++++++++++-------
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsSceneryOperationDataController.java    |    1 
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsDangerTotalVo.java                      |   10 +---
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsDangerTotalServiceImpl.java          |   31 +++++++++++----
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java |    8 +---
 6 files changed, 80 insertions(+), 38 deletions(-)

diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsDangerTotalController.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsDangerTotalController.java
index 2c18a07..6910c5c 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsDangerTotalController.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsDangerTotalController.java
@@ -1,26 +1,33 @@
 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.RsDangerTotalVo;
-import org.dromara.demo.domain.bo.RsDangerTotalBo;
-import org.dromara.demo.service.IRsDangerTotalService;
+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.RsDangerTotal;
+import org.dromara.demo.domain.bo.RsDangerTotalBo;
+import org.dromara.demo.domain.vo.RsDangerTotalVo;
+import org.dromara.demo.service.IRsDangerTotalService;
+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;
 
 /**
  * 瀹夊叏闅愭偅缁熻
@@ -57,6 +64,29 @@
     }
 
     /**
+     * 瀵煎叆鏁版嵁
+     *
+     * @param file          瀵煎叆鏂囦欢
+     */
+    @Log(title = "瀵煎叆鏁版嵁", businessType = BusinessType.IMPORT)
+    @SaCheckPermission("demo:dangerTotal:import")
+    @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    public R<Void> importData(@RequestPart("file") MultipartFile file) throws Exception {
+        ExcelResult<RsDangerTotalVo> result = ExcelUtil.importExcel(file.getInputStream(), RsDangerTotalVo.class, true);
+        List<RsDangerTotal> list = MapstructUtils.convert(result.getList(), RsDangerTotal.class);
+        return R.ok(rsDangerTotalService.importExcel(list));
+    }
+
+    /**
+     * 鑾峰彇瀵煎叆妯℃澘
+     */
+    @SaCheckPermission("demo:dangerTotal:importTemplate")
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil.exportExcel(new ArrayList<>(), "鏅尯杩愯鏁版嵁", RsDangerTotalVo.class, response);
+    }
+
+    /**
      * 鑾峰彇瀹夊叏闅愭偅缁熻璇︾粏淇℃伅
      *
      * @param id 涓婚敭
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 a439c07..0569b08 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
@@ -65,7 +65,6 @@
         ExcelUtil.exportExcel(list, "鏅尯杩愯鏁版嵁", RsSceneryOperationDataVo.class, response);
     }
 
-
     /**
      * 瀵煎叆鏁版嵁
      *
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsDangerTotalVo.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsDangerTotalVo.java
index 5a81b80..53d486c 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsDangerTotalVo.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/domain/vo/RsDangerTotalVo.java
@@ -31,7 +31,6 @@
     /**
      * 缂栧彿
      */
-    @ExcelProperty(value = "缂栧彿")
     private String id;
 
     /**
@@ -43,19 +42,18 @@
     /**
      * 骞村害/鏈堝害 1骞村害 2鏈堝害
      */
-    @ExcelProperty(value = "骞村害/鏈堝害 1骞村害 2鏈堝害")
     private Long period;
 
     /**
      * 鍛ㄦ湡
      */
-    @ExcelProperty(value = "鍛ㄦ湡")
+    @ExcelProperty(value = "缁熻鍛ㄦ湡")
     private String periodDate;
 
     /**
      * 鍙戠幇瀹夊叏闅愭偅
      */
-    @ExcelProperty(value = "鍙戠幇瀹夊叏闅愭偅")
+    @ExcelProperty(value = "鍙戠幇闅愭偅")
     private Long findSecurityRisks;
 
     /**
@@ -67,19 +65,17 @@
     /**
      * 澶勭疆瀹夊叏闅愭偅
      */
-    @ExcelProperty(value = "澶勭疆瀹夊叏闅愭偅")
+    @ExcelProperty(value = "澶勭疆闅愭偅")
     private Long dealWithSecurityRisks;
 
     /**
      * 鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�
      */
-    @ExcelProperty(value = "鍚敤鐘舵�� 1鍚敤 2鏈惎鐢�")
     private Long status;
 
     /**
      * 鍒涘缓鏃堕棿
      */
-    @ExcelProperty(value = "鍒涘缓鏃堕棿")
     private Date createTime;
 
 }
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsDangerTotalService.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsDangerTotalService.java
index 4de6d38..ee5123c 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsDangerTotalService.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/IRsDangerTotalService.java
@@ -2,6 +2,7 @@
 
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.demo.domain.RsDangerTotal;
 import org.dromara.demo.domain.bo.RsDangerTotalBo;
 import org.dromara.demo.domain.vo.RsDangerTotalVo;
 
@@ -45,4 +46,11 @@
      * 鏍¢獙骞舵壒閲忓垹闄ゅ畨鍏ㄩ殣鎮g粺璁′俊鎭�
      */
     Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+
+    /**
+     * Excel鏁版嵁瀵煎叆
+     * @param list 鏁版嵁鍒�
+     * @return 瀵煎叆鎻愮ず
+     */
+    String importExcel(List<RsDangerTotal> list);
 }
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsDangerTotalServiceImpl.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsDangerTotalServiceImpl.java
index 67cf3b7..258eaf2 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsDangerTotalServiceImpl.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsDangerTotalServiceImpl.java
@@ -1,25 +1,28 @@
 package org.dromara.demo.service.impl;
 
-import org.dromara.common.core.utils.MapstructUtils;
-import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
-import org.dromara.demo.domain.RsDangerInfo;
-import org.springframework.stereotype.Service;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.demo.domain.RsDangerTotal;
 import org.dromara.demo.domain.bo.RsDangerTotalBo;
 import org.dromara.demo.domain.vo.RsDangerTotalVo;
-import org.dromara.demo.domain.RsDangerTotal;
 import org.dromara.demo.mapper.RsDangerTotalMapper;
 import org.dromara.demo.service.IRsDangerTotalService;
+import org.springframework.stereotype.Service;
 
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.util.Collection;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
-import java.util.Collection;
 
 /**
  * 瀹夊叏闅愭偅缁熻Service涓氬姟灞傚鐞�
@@ -117,4 +120,14 @@
         }
         return baseMapper.deleteBatchIds(ids) > 0;
     }
+
+    @Override
+    public String importExcel(List<RsDangerTotal> list) {
+        for (RsDangerTotal dangerTotal : list) {
+            dangerTotal.setPeriod(dangerTotal.getPeriodDate().length() > 4 ? 1L : 2L);
+            dangerTotal.setCreateTime(new Date());
+            dangerTotal.setStatus(2L);
+        }
+        return baseMapper.insertBatch(list) ? "鎭枩鎮紝鏁版嵁宸插叏閮ㄥ鍏ユ垚鍔燂紒鍏�"  + list.size() + "鏉★紒" : "寰堟姳姝夛紝瀵煎叆澶辫触锛佽妫�鏌ユ暟鎹牸寮忥紒";
+    }
 }
diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java
index 53fb218..f473ee3 100644
--- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java
+++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java
@@ -134,12 +134,12 @@
         for (RsSceneryOperationData operationData : list) {
             String sceneryName = operationData.getSceneryInfoName();
             RsSceneryInfo sceneryInfo = sceneryInfoMap.get(sceneryName);
-            // 鏅尯宸插瓨鍦紝姝e父瀵煎叆
+            // 鏅尯宸插瓨鍦紝姝e父瀵煎叆锛岄粯璁ょ鐢�
             if (sceneryInfo != null) {
                 operationData.setSceneryInfoId(sceneryInfo.getId());
                 operationData.setPeriod(operationData.getPeriodDate().length() > 4 ? 1L : 2L);
                 operationData.setCreateTime(new Date());
-                operationData.setStatus(1L);
+                operationData.setStatus(2L);
             } else {
                 sceneryInfoNames.add(operationData.getSceneryInfoName());
             }
@@ -147,10 +147,6 @@
         if (!sceneryInfoNames.isEmpty()) {
             return "寰堟姳姝夛紝瀵煎叆澶辫触锛�" + String.join("銆�", "<" + sceneryInfoNames + ">") + "鏅尯涓嶅瓨鍦紝璇峰墠寰�銆愭櫙鍖洪厤缃�戞坊鍔犲悗閲嶈瘯锛�";
         }
-        // // 鍏朵綑鏁版嵁绂佺敤
-        // LambdaUpdateWrapper<RsSceneryOperationData> updateWrapper = new LambdaUpdateWrapper<>();
-        // updateWrapper.ne(RsSceneryOperationData::getId, operationData.getId()).eq(RsSceneryOperationData::getSceneryInfoId, operationData.getSceneryInfoId()).set(RsSceneryOperationData::getStatus, 2);
-        // baseMapper.update(updateWrapper);
         baseMapper.insertBatch(list);
         return "鎭枩鎮紝鏁版嵁宸插叏閮ㄥ鍏ユ垚鍔燂紒鍏�"  + list.size() + "鏉★紒";
     }

--
Gitblit v1.8.0