package com.chinaztt.mes.plan.excel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.chinaztt.mes.plan.service.OperationTaskProduceService; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; /** * @author ZTT */ public class OperationTaskProduceUploadListener extends AnalysisEventListener { private static final int BATCH_COUNT = 1000; LinkedList list = new LinkedList<>(); private OperationTaskProduceService operationTaskProduceService; public OperationTaskProduceUploadListener(OperationTaskProduceService operationTaskProduceService) { this.operationTaskProduceService = operationTaskProduceService; } @Override public void invoke(OperationTaskProduceData data, AnalysisContext analysisContext) { if (StringUtils.isBlank(data.getOtcLineNo())){ throw new RuntimeException("缺少OTC行号"); } list.add(data); if (list.size() >= BATCH_COUNT) { save(); list.clear(); } } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { save(); } private void save() { operationTaskProduceService.importExcel(list); } }