use of com.cognizant.devops.platformdal.assessmentreport.InsightsReportsKPIConfig in project Insights by CognizantOneDevOps.
the class AssesmentReportServiceImpl method editReportConfig.
/**
* Method to edit Report Template Configuration
*
* @param templateReportJson
* @param reportEntity
* @param reportId
* @throws InsightsCustomException
*/
public int editReportConfig(JsonObject templateReportJson) throws InsightsCustomException {
InsightsAssessmentReportTemplate reportEntity = new InsightsAssessmentReportTemplate();
List<Integer> kpiIds = new ArrayList<>();
Set<InsightsReportsKPIConfig> reportsKPIConfigSet = new LinkedHashSet<>();
int reportId = templateReportJson.get(AssessmentReportAndWorkflowConstants.REPORTID).getAsInt();
String reportName = templateReportJson.get(AssessmentReportAndWorkflowConstants.REPORTNAME).getAsString();
boolean isActive = templateReportJson.get(AssessmentReportAndWorkflowConstants.ISACTIVE).getAsBoolean();
String description = templateReportJson.get("description").getAsString();
String visualizationutil = templateReportJson.get("visualizationutil").getAsString();
String templateType = (templateReportJson.has("templateType")) ? templateReportJson.get("templateType").getAsString() : "Others";
reportEntity.setReportId(reportId);
reportEntity.setActive(isActive);
reportEntity.setDescription(description);
reportEntity.setTemplateName(reportName);
reportEntity.setFile(reportName);
reportEntity.setVisualizationutil(visualizationutil);
reportEntity.setTemplateType(templateType);
if (visualizationutil.equalsIgnoreCase(AssessmentReportAndWorkflowConstants.GRAFANAPDF)) {
JsonObject dashboardTemplateJson = createDashboardJson(templateReportJson);
byte[] dashboardTemplatebytes = dashboardTemplateJson.toString().getBytes();
uploadReportTemplateFile(reportId, reportEntity, "JSON", "dashboardTemplate.json", dashboardTemplatebytes);
}
if (!templateReportJson.has("kpiConfigs")) {
throw new InsightsCustomException(" no KPI config provided for report : " + reportId);
}
JsonArray kpiConfigArray = templateReportJson.get("kpiConfigs").getAsJsonArray();
for (JsonElement eachKpiConfig : kpiConfigArray) {
JsonObject kpiObject = eachKpiConfig.getAsJsonObject();
int kpiId = kpiObject.get(AssessmentReportAndWorkflowConstants.KPIID).getAsInt();
if (kpiIds.contains(kpiId)) {
log.debug(" Kpi id already exists with the reportId {} ", reportId);
} else {
InsightsKPIConfig kpiConfig = reportConfigDAL.getKPIConfig(kpiId);
if (kpiConfig == null) {
throw new NoResultException("kpi Id does not exist in dB");
}
kpiIds.add(kpiId);
String vConfig = (kpiObject.get("visualizationConfigs").getAsJsonArray()).toString();
InsightsReportsKPIConfig reportsKPIConfig = new InsightsReportsKPIConfig();
reportsKPIConfig.setKpiConfig(kpiConfig);
reportsKPIConfig.setvConfig(vConfig);
reportsKPIConfig.setReportTemplateEntity(reportEntity);
reportsKPIConfigSet.add(reportsKPIConfig);
}
}
reportEntity.setReportsKPIConfig(reportsKPIConfigSet);
reportConfigDAL.updateReportTemplate(reportEntity);
return reportId;
}
use of com.cognizant.devops.platformdal.assessmentreport.InsightsReportsKPIConfig in project Insights by CognizantOneDevOps.
the class InsightsInferenceReportServiceImpl method getKPIDetails.
/**
* Method to get KPI Details
*
* @param assessmentReport
* @param group
* @return List<InsightsKPIResultDetails>
* @throws InsightsCustomException
*/
private List<InsightsKPIResultDetails> getKPIDetails(InsightsAssessmentConfiguration assessmentReport, String group) throws InsightsCustomException {
List<Integer> kpiIds = new ArrayList<>();
Set<InsightsReportsKPIConfig> reportsKPIConfigSet = assessmentReport.getReportTemplateEntity().getReportsKPIConfig();
reportsKPIConfigSet.forEach(reportKpi -> kpiIds.add(reportKpi.getKpiConfig().getKpiId()));
String graphQuery = getQueryForKPIResults(kpiIds, group, assessmentReport.getId());
log.debug(" graphQuery for KPI in InsightsInferenceReport {} ", graphQuery);
JsonObject kpiResultsJson = getKpiQueryResults(graphQuery);
return creatingKpiResultDetailList(kpiResultsJson);
}
Aggregations