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<ProcessMethodSearchNewExcel> {
|
|
private static final int BATCH_COUNT = 500;
|
|
private static List<ProcessMethodSearchNewExcel> 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<ProcessMethodSearchNewExcel> list) {
|
log.info("{}条数据,开始存储数据库!", list.size());
|
service.save(list);
|
log.info("存储数据库成功!");
|
}
|
}
|