开发细节
收集重复的门店,给出异常提示
背景:需要建立一个门店组,门店明细不允许重复,重复时收集重复的门店
点击查看代码
public Map getByStoreList(String bufferId,List storeList) {
Map allMap = new HashMap<>();
if (storeList == null || storeList.isEmpty()) {
return allMap;
}
/**
* 举个例子:重复的明细行不用收集太多,收集达到200的上限就可以了.
* storeIds.size() = 1000
*
* 200 只统计200以内的重复的明细行
*/
List storeIds = new ArrayList<>(storeList);
int fromIndex = 0;
while (fromIndex < storeIds.size()) {
int toIndex = Math.min(fromIndex + 200, storeIds.size());
List ids = storeIds.subList(fromIndex, toIndex);
List lines = lineDao.getByStoreList(bufferId, ids);
Map storeMap = new HashMap<>();
for (BFreshGoodsAdjStoreLine line : lines) {
storeMap.put(line.getStoreId(), line);
}
allMap.putAll(storeMap);
fromIndex = toIndex;
}
return allMap;
}