| | |
| | | .collect(Collectors.groupingBy(ProductionTaskStatisticsDto::getProcessName)); |
| | | List<String> strings = new ArrayList<>(); |
| | | List<Long> processQuantityDetails = new ArrayList<>(); |
| | | List<String> processColors = new ArrayList<>(); |
| | | map.entrySet().stream().forEach(entry -> { |
| | | String key = entry.getKey(); |
| | | long completeSum = entry.getValue().stream().map(ProductionTaskStatisticsDto::getCompleteQuantity) |
| | | .mapToLong(BigDecimal::longValue).sum(); |
| | | strings.add(key); |
| | | processQuantityDetails.add(completeSum); |
| | | processColors.add(entry.getValue().stream() |
| | | .map(ProductionTaskStatisticsDto::getProcessColor) |
| | | .filter(Objects::nonNull) |
| | | .findFirst() |
| | | .orElse(null)); |
| | | }); |
| | | productionTurnoverDto.setProcessDetails(strings); |
| | | productionTurnoverDto.setProcessQuantityDetails(processQuantityDetails); |
| | | productionTurnoverDto.setProcessColors(processColors); |
| | | return productionTurnoverDto; |
| | | } |
| | | |
| | |
| | | return new ArrayList<>(); |
| | | } |
| | | |
| | | Map<String, String> processColorMap = new HashMap<>(); |
| | | list.forEach(item -> { |
| | | if (item.getProcessName() != null && item.getProcessColor() != null) { |
| | | processColorMap.putIfAbsent(item.getProcessName(), item.getProcessColor()); |
| | | } |
| | | }); |
| | | |
| | | List<MapDto> result = new ArrayList<>(); |
| | | processOutputMap.forEach((name, value) -> { |
| | | MapDto dto = new MapDto(); |
| | | dto.setName(name); |
| | | dto.setValue(value.stripTrailingZeros().toPlainString()); |
| | | dto.setColor(processColorMap.get(name)); |
| | | |
| | | BigDecimal rate = value |
| | | .divide(total, 4, RoundingMode.HALF_UP) |