优化批量提交

hyx_2024-10-12_xgfPerson
shanao 2024-09-03 17:51:31 +08:00
parent 7f1a65f3f7
commit 3e594ab70e
1 changed files with 16 additions and 1 deletions

View File

@ -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<AccidentRecordsExcel> 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();