From 3e594ab70e832836f3073ecf39860c6ffd81e4c2 Mon Sep 17 00:00:00 2001 From: shanao Date: Tue, 3 Sep 2024 17:51:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=89=B9=E9=87=8F=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/AccidentRecordsServiceImpl.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/zcloud/service/accident/impl/AccidentRecordsServiceImpl.java b/src/main/java/com/zcloud/service/accident/impl/AccidentRecordsServiceImpl.java index d405ec89..40639f60 100644 --- a/src/main/java/com/zcloud/service/accident/impl/AccidentRecordsServiceImpl.java +++ b/src/main/java/com/zcloud/service/accident/impl/AccidentRecordsServiceImpl.java @@ -1,5 +1,6 @@ package com.zcloud.service.accident.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.*; @@ -123,10 +124,24 @@ public class AccidentRecordsServiceImpl implements AccidentRecordsService { // 标记别名 HEADER_ALIAS_CACHE.forEach((k, v) -> reader.addHeaderAlias(v, k)); List recordsExcels = reader.readAll(AccidentRecordsExcel.class); + if (CollUtil.isEmpty(recordsExcels)) { + throw new RuntimeException("没有数据"); + } sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); AccidentRecordsMapper mapper = sqlSession.getMapper(AccidentRecordsMapper.class); - recordsExcels.forEach(accidentRecord -> mapper.save(new AccidentRecords(accidentRecord, dictionariesService))); + for (int i = 0; i < recordsExcels.size(); i++) { + mapper.save(new AccidentRecords(recordsExcels.get(i), dictionariesService)); + if ((i + 1) % 300 == 0 || i == recordsExcels.size() - 1) { + sqlSession.flushStatements(); + } + } sqlSession.commit(); + } catch (RuntimeException e) { + if (sqlSession != null) { + sqlSession.rollback(); + } + log.error("导入excel失败", e); + throw e; } catch (Exception e) { if (sqlSession != null) { sqlSession.rollback();