package com.ruoyi.process.dto; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.ruoyi.process.service.impl.ProcessMethodSearchNewServiceImpl; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.List; @Slf4j public class ProcessMethodSearchNewImport extends AnalysisEventListener { private static final int BATCH_COUNT = 500; private static List list = new ArrayList<>(); private ProcessMethodSearchNewServiceImpl service; public ProcessMethodSearchNewImport(ProcessMethodSearchNewServiceImpl service) { this.service = service; } @Override public void invoke(ProcessMethodSearchNewExcel processMethodSearchNewExcel, AnalysisContext analysisContext) { log.info("解析到一条数据:{}", processMethodSearchNewExcel); if(list.size() > BATCH_COUNT) { save(list); list.clear(); } else { list.add(processMethodSearchNewExcel); } } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { log.info("所有数据解析完成!:{}条数据", list.size()); save(list); } public void save(List list) { log.info("{}条数据,开始存储数据库!", list.size()); service.save(list); log.info("存储数据库成功!"); } }