Last active
August 14, 2017 02:21
-
-
Save BrunoDSouza/20bf4e1731091c8ee8f80711b9466a78 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public Map<String, Map<String, Double>> getFaturamentoFornecedor(){ | |
Date date = utils.getDate(calendar.get(Calendar.YEAR), Calendar.JANUARY, 1); | |
return m.findByTipoMovimentacaoAndDtMovimentacaoGreaterThanEqual(TipoMovimentacao.SAIDA, date) | |
.stream() | |
//Agrupa a lista por Mês, aplicando um novo groupBy | |
// return Map<String, Map<String, Double>> | |
.collect(Collectors.groupingBy(utils.getNameMonth, | |
//Agrupa pelo nome do fornecedor, somando os valores das movimentacoes por forncedor | |
// return Map<String, Double> | |
Collectors.groupingBy(utils.getNameFornecedor, | |
Collectors.summingDouble(Movimentacao::getValorMovimentacao)))) | |
//Aplica nova operação stream sobre o Map<> retornado, o objeto a partir daque é um obj stream() | |
.entrySet().stream() | |
//Ordena a lista pelos numeros do meses | |
.sorted(Map.Entry.comparingByKey(Comparator.comparing(utils.getNumberMonth))) | |
// Convert o mesmo obj stream para o Map<String, Map<String, Double>> retornado anteriormente | |
.collect(Collectors.toMap(Entry::getKey, Entry::getValue, | |
//oldvalue representa obj stream(), o segundo parametro | |
// representa o novo valor da lista | |
(oldvalue, newvalue) -> oldvalue, LinkedHashMap::new)); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment