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<ManufacturingOderUploadData> {
|
|
private static final int BATCH_COUNT = 1000;
|
private List<ManufacturingOderUploadData> list = new ArrayList<>();
|
|
private ManufacturingOrderService manufacturingOrderService;
|
|
private List<UploadRefreshIfsOrderNoResultDTO> resultDTOList;
|
|
public ManufacturingOrderUploadListener(ManufacturingOrderService manufacturingOrderService,
|
List<UploadRefreshIfsOrderNoResultDTO> 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();
|
}
|
}
|