java list 分组求和 java8

    //list 分组求和 java8
            Map newLog =
                    stockLogs.stream().collect(
                            Collectors.groupingBy(
                                    StockLog::getBarcode,
                                    Collectors.summarizingLong(StockLog::getStockUseNum
                                    )
                            )
                    );


 Iterator> it = newLog.entrySet().iterator();
            while (it.hasNext()){
                String key = it.next().getKey();
                List stockLogList = stockLogService.findByMaterielSkuBarcodeAndFactoryId(key, fid);//找到所有的log  为了给stock 重新计算
                long  number= 0l;
                for (int i = 0; i < stockLogList.size(); i++) {
                    number+=stockLogList.get(i).getStockUseNum();
                }
                Stock byMaterielSkuId = stockService.findByBarcodeAndFactoryId(key,fid);
                byMaterielSkuId.setStockUseNum(number);
                byMaterielSkuId.setLastTime(new Date());
                stockService.save(byMaterielSkuId);
            }

你可能感兴趣的:(java)