Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ public KpiDataCountParser getParser(String kpiFilter) {
case "radiobutton_line", "radiobutton_grouped_column_plus_line" -> lineRadioFilterGraphParser;
case "multitypefilters_line", "multitypefilters_grouped_column_plus_line" ->
lineMultiFilterParser;
case "_cumulativemultilinechart" -> cumulativeMultilineChartParser;
case "_cumulativemultilinechart", "multiselectdropdown_cumulativemultilinechart" ->
cumulativeMultilineChartParser;
case "radiobutton_cumulativemultilinechart" -> cumulativeMultilineChartRadioButtonParser;
default -> lineGraphParser;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,15 @@ public Map<String, List<Double>> getKpiDataPoints(List<?> kpiDataList) {
((List<DataCountGroup>) kpiDataList)
.stream()
.filter(
dataCountGroup ->
dataCountGroup.getFilter() != null
&& dataCountGroup.getFilter().equalsIgnoreCase("Overall"))
dataCountGroup -> {
if (dataCountGroup.getFilter() != null
&& (dataCountGroup.getFilter().equalsIgnoreCase("Overall")
|| dataCountGroup.getFilter().equalsIgnoreCase("Average Coverage")))
return true;
else
return dataCountGroup.getFilter2() != null
&& dataCountGroup.getFilter2().equalsIgnoreCase("Overall");
})
.map(DataCountGroup::getValue)
.findFirst();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,13 +95,13 @@ public KpiBenchmarkValues getKpiWiseBenchmarkValues(KpiDataDTO kpiDataDTO) {
* @param kpiDataDTO KPI data to fetch
* @return list of KPI elements from all projects
*/
private List<KpiElement> fetchKpiElements(KpiDataDTO kpiDataDTO) {
private synchronized List<KpiElement> fetchKpiElements(KpiDataDTO kpiDataDTO) {
return projectBasicConfigRepository
.findByKanbanAndProjectOnHold(kpiDataDTO.kanban(), false)
.stream()
.map(
config -> {
if (kpiDataDTO.kanban())
if (kpiDataDTO.kanban() || "Developer".equalsIgnoreCase(kpiDataDTO.kpiCategory()))
return constructKanbanKpiRequest(kpiDataDTO, config.getProjectNodeId());
else
return constructKpiRequest(kpiDataDTO, config.getProjectNodeId(), config.getId());
Expand All @@ -111,11 +111,15 @@ private List<KpiElement> fetchKpiElements(KpiDataDTO kpiDataDTO) {
.flatMap(
request -> {
try {
List<KpiElement> result;
if (kpiDataDTO.kanban())
return knowHOWClient.getKpiIntegrationValuesKanbanSync(request).stream();
else return knowHOWClient.getKpiIntegrationValuesSync(request).stream();
result = knowHOWClient.getKpiIntegrationValuesKanbanSync(request);
else result = knowHOWClient.getKpiIntegrationValuesSync(request);
return result != null ? result.stream() : java.util.stream.Stream.empty();
} catch (Exception ex) {
return null;
log.warn(
"Failed to fetch KPI data for KPI {}: {}", kpiDataDTO.kpiId(), ex.getMessage());
return java.util.stream.Stream.empty();
}
})
.toList();
Expand Down Expand Up @@ -146,16 +150,21 @@ private KpiBenchmarkValues createKpiBenchmarkValues(
Collectors.flatMapping(
entry -> entry.getValue().stream(), Collectors.toList())));

List<BenchmarkPercentiles> filterWiseBenchmark =
List<BenchmarkPercentiles> benchmarkByFilter =
allDataPoints.entrySet().stream()
.map(
entry ->
createBenchmarkPercentiles(entry.getValue(), entry.getKey(), isPositiveTrend))
.toList();

log.info(
"{} Generated Benchmark for KPI ID: {} with count {}",
JobConstants.LOG_PREFIX_KPI_BENCHMARK_CALCULATION,
kpiId,
benchmarkByFilter.size());
return KpiBenchmarkValues.builder()
.kpiId(kpiId)
.filterWiseBenchmarkValues(filterWiseBenchmark)
.filterWiseBenchmarkValues(benchmarkByFilter)
.calculationDate(Instant.now())
.build();
} catch (ClassCastException e) {
Expand Down