package com.chinaztt.mes.plan.excel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.chinaztt.mes.plan.dto.UploadRefreshIfsOrderNoResultDTO; import com.chinaztt.mes.plan.service.ManufacturingOrderService; import java.util.ArrayList; import java.util.List; /** * @Author: Zero * @Date: 2022/12/30 10:05 * @Description: */ public class ManufacturingOrderUploadListener extends AnalysisEventListener { private static final int BATCH_COUNT = 1000; private List list = new ArrayList<>(); private ManufacturingOrderService manufacturingOrderService; private List resultDTOList; public ManufacturingOrderUploadListener(ManufacturingOrderService manufacturingOrderService, List resultDTOList) { this.manufacturingOrderService = manufacturingOrderService; this.resultDTOList = resultDTOList; } @Override public void invoke(ManufacturingOderUploadData manufacturingOderUploadData, AnalysisContext analysisContext) { list.add(manufacturingOderUploadData); if (list.size() >= BATCH_COUNT) { refreshUploadIfsOrderNo(); list.clear(); } } private void refreshUploadIfsOrderNo() { manufacturingOrderService.refreshUploadIfsOrderNo(list, resultDTOList); } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { refreshUploadIfsOrderNo(); } }