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