From 6b9c1733decb4587667f0917d7d61b9c4a3c0097 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期二, 05 三月 2024 23:34:06 +0800
Subject: [PATCH] Excel上传实现

---
 dujy-modules/dujy-demo/src/main/java/org/dromara/demo/service/impl/RsSceneryOperationDataServiceImpl.java |   40 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 36 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..53fb218 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,34 @@
         }
         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(1L);
+            } else {
+                sceneryInfoNames.add(operationData.getSceneryInfoName());
+            }
+        }
+        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