优化批量提交
							parent
							
								
									7f1a65f3f7
								
							
						
					
					
						commit
						3e594ab70e
					
				|  | @ -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(); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue