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/impl/RsSceneryOperationDataServiceImpl.java |   36 ++++++++++++++++++++++++++++++++----
 1 files changed, 32 insertions(+), 4 deletions(-)

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 3371dde..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
@@ -9,17 +9,18 @@
 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.RsSceneryInfo;
 import org.dromara.demo.domain.RsSceneryOperationData;
 import org.dromara.demo.domain.bo.RsSceneryOperationDataBo;
 import org.dromara.demo.domain.vo.RsSceneryOperationDataVo;
+import org.dromara.demo.mapper.RsSceneryInfoMapper;
 import org.dromara.demo.mapper.RsSceneryOperationDataMapper;
 import org.dromara.demo.service.IRsSceneryOperationDataService;
 import org.springframework.stereotype.Service;
 
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * 鏅尯杩愯鏁版嵁Service涓氬姟灞傚鐞�
@@ -32,6 +33,7 @@
 public class RsSceneryOperationDataServiceImpl implements IRsSceneryOperationDataService {
 
     private final RsSceneryOperationDataMapper baseMapper;
+    private final RsSceneryInfoMapper sceneryInfoMapper;
 
     /**
      * 鏌ヨ鏅尯杩愯鏁版嵁
@@ -122,4 +124,30 @@
         }
         return baseMapper.deleteBatchIds(ids) > 0;
     }
+
+    @Override
+    public String importExcel(List<RsSceneryOperationData> list) {
+        Set<String> sceneryInfoNames = new HashSet<>();
+        // 鏌ヨ鏁版嵁搴撴槸鍚﹀瓨鍦ㄥ鍏ョ殑鏅尯
+        Map<String, RsSceneryInfo> sceneryInfoMap = sceneryInfoMapper.selectList().stream()
+            .collect(Collectors.toMap(RsSceneryInfo::getSceneryName, Function.identity()));
+        for (RsSceneryOperationData operationData : list) {
+            String sceneryName = operationData.getSceneryInfoName();
+            RsSceneryInfo sceneryInfo = sceneryInfoMap.get(sceneryName);
+            // 鏅尯宸插瓨鍦紝姝e父瀵煎叆锛岄粯璁ょ鐢�
+            if (sceneryInfo != null) {
+                operationData.setSceneryInfoId(sceneryInfo.getId());
+                operationData.setPeriod(operationData.getPeriodDate().length() > 4 ? 1L : 2L);
+                operationData.setCreateTime(new Date());
+                operationData.setStatus(2L);
+            } else {
+                sceneryInfoNames.add(operationData.getSceneryInfoName());
+            }
+        }
+        if (!sceneryInfoNames.isEmpty()) {
+            return "寰堟姳姝夛紝瀵煎叆澶辫触锛�" + String.join("銆�", "<" + sceneryInfoNames + ">") + "鏅尯涓嶅瓨鍦紝璇峰墠寰�銆愭櫙鍖洪厤缃�戞坊鍔犲悗閲嶈瘯锛�";
+        }
+        baseMapper.insertBatch(list);
+        return "鎭枩鎮紝鏁版嵁宸插叏閮ㄥ鍏ユ垚鍔燂紒鍏�"  + list.size() + "鏉★紒";
+    }
 }

--
Gitblit v1.8.0