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