package cn.com.qmth.export; import java.util.ArrayList; import java.util.List; import org.apache.commons.collections4.CollectionUtils; /** * 多次批量获取数据 * @author xiatian * @param 结果类 * @param

参数类 */ public abstract class BatchGetDataUtil { /** * @param resultList 全部结果集合 * @param paramList 全部参数集合 * @param batchSize 每批参数数量 */ public final List getDataForBatch(List

paramList,int batchSize) { if(CollectionUtils.isEmpty(paramList)) { return null; } List resultList=new ArrayList<>(); if(paramList.size()<=batchSize) { List temlist = getData(paramList); if(temlist!=null&&temlist.size()>0) { resultList.addAll(temlist); } }else { int size = paramList.size(); int len=batchSize; int count = (size + len - 1) / len; for (int i = 0; i < count; i++) { List

subList = paramList.subList(i * len, ((i + 1) * len > size ? size : len * (i + 1))); List temlist = getData(subList); if(temlist!=null&&temlist.size()>0) { resultList.addAll(temlist); } } } return resultList; } /** * 每批获取数据方法 * @param * @param

* @param paramList 获取每批数据时参数 * @return */ protected abstract List getData(List

paramList); }