From 929bae5b7bfd8acdf4a77d2143f5f96c29f38cbd Mon Sep 17 00:00:00 2001 From: Siddhant <86899184+Siddhanttimeline@users.noreply.github.com> Date: Sat, 24 Aug 2024 11:43:54 +0530 Subject: [PATCH] Changed Double to int for the DataAssetCount. Included % for the percentageChangeValue. Added colors to the % values with the digits. Corrected the incorrect placeholders. (#17578) --- .../insights/DataInsightsReportApp.java | 4 +- ...ataInsightDescriptionAndOwnerTemplate.java | 106 +++--------------- .../DataInsightTotalAssetTemplate.java | 58 ++-------- .../openmetadata/dataInsightReport.json | 2 +- 4 files changed, 29 insertions(+), 141 deletions(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/DataInsightsReportApp.java b/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/DataInsightsReportApp.java index cb97612da34..902a2b93722 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/DataInsightsReportApp.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/DataInsightsReportApp.java @@ -220,10 +220,10 @@ public class DataInsightsReportApp extends AbstractNativeApplication { if (previousCount == 0D) { // it should be undefined return new DataInsightTotalAssetTemplate( - currentCount, 0D, timeConfig.numberOfDaysChange(), dateMap); + String.valueOf(currentCount.intValue()), 0D, timeConfig.numberOfDaysChange(), dateMap); } else { return new DataInsightTotalAssetTemplate( - currentCount, + String.valueOf(currentCount.intValue()), ((currentCount - previousCount) / previousCount) * 100, timeConfig.numberOfDaysChange(), dateMap); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/events/scheduled/template/DataInsightDescriptionAndOwnerTemplate.java b/openmetadata-service/src/main/java/org/openmetadata/service/events/scheduled/template/DataInsightDescriptionAndOwnerTemplate.java index fb34e89ac60..583b0176f42 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/events/scheduled/template/DataInsightDescriptionAndOwnerTemplate.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/events/scheduled/template/DataInsightDescriptionAndOwnerTemplate.java @@ -14,7 +14,10 @@ package org.openmetadata.service.events.scheduled.template; import java.util.Map; +import lombok.Getter; +import lombok.Setter; +@Getter @SuppressWarnings("unused") public class DataInsightDescriptionAndOwnerTemplate { public enum MetricType { @@ -29,17 +32,17 @@ public class DataInsightDescriptionAndOwnerTemplate { NOT_MET } - private String totalAssets; + @Setter private String totalAssets; private final String percentCompleted; - private boolean kpiAvailable; + @Setter private boolean kpiAvailable; private String percentChange; - private String percentChangeMessage; - private String targetKpi; - private String numberOfDaysLeft; - private String completeMessage; - private int numberOfDaysChange; - private Map tierMap; - private Map dateMap; + @Setter private String percentChangeMessage; + @Setter private String targetKpi; + @Setter private String numberOfDaysLeft; + @Setter private String completeMessage; + @Setter private int numberOfDaysChange; + @Setter private Map tierMap; + @Setter private Map dateMap; public DataInsightDescriptionAndOwnerTemplate( MetricType metricType, @@ -67,9 +70,10 @@ public class DataInsightDescriptionAndOwnerTemplate { if (percentChange > 0) { color = "#008510"; } + this.completeMessage = String.format( - "The %s changed by %s%% in the last week. %s", + "The %s changed by %s%% in the last week. %s", getMetricTypeMessage(metricType), color, this.percentChange, @@ -100,90 +104,10 @@ public class DataInsightDescriptionAndOwnerTemplate { return ""; } - public String getPercentCompleted() { - return percentCompleted; - } - - public String getTargetKpi() { - return targetKpi; - } - - public void setTargetKpi(String targetKpi) { - this.targetKpi = targetKpi; - } - - public String getPercentChange() { - return percentChange; - } - public void setPercentChange(Double percentChange) { this.percentChange = String.format("%.2f", percentChange); } - public boolean isKpiAvailable() { - return kpiAvailable; - } - - public void setKpiAvailable(boolean kpiAvailable) { - this.kpiAvailable = kpiAvailable; - } - - public String getNumberOfDaysLeft() { - return numberOfDaysLeft; - } - - public void setNumberOfDaysLeft(String numberOfDaysLeft) { - this.numberOfDaysLeft = numberOfDaysLeft; - } - - public String getTotalAssets() { - return totalAssets; - } - - public void setTotalAssets(String totalAssets) { - this.totalAssets = totalAssets; - } - - public String getPercentChangeMessage() { - return percentChangeMessage; - } - - public void setPercentChangeMessage(String message) { - this.percentChangeMessage = message; - } - - public String getCompleteMessage() { - return completeMessage; - } - - public void setCompleteMessage(String completeMessage) { - this.completeMessage = completeMessage; - } - - public Map getTierMap() { - return tierMap; - } - - public void setTierMap(Map tierMap) { - this.tierMap = tierMap; - } - - public int getNumberOfDaysChange() { - return numberOfDaysChange; - } - - public void setNumberOfDaysChange(int numberOfDaysChange) { - this.numberOfDaysChange = numberOfDaysChange; - } - - public Map getDateMap() { - return dateMap; - } - - public void setDateMap(Map dateMap) { - this.dateMap = dateMap; - } - public static String getFormattedPercentChangeMessage(Double percent) { String symbol = ""; String color = "#BF0000"; @@ -195,6 +119,6 @@ public class DataInsightDescriptionAndOwnerTemplate { } return String.format( - "%s%.2f", color, symbol, percent); + "%s%.2f%%", color, symbol, percent); } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/events/scheduled/template/DataInsightTotalAssetTemplate.java b/openmetadata-service/src/main/java/org/openmetadata/service/events/scheduled/template/DataInsightTotalAssetTemplate.java index 5f7b85749a4..2e73f7cd030 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/events/scheduled/template/DataInsightTotalAssetTemplate.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/events/scheduled/template/DataInsightTotalAssetTemplate.java @@ -16,22 +16,25 @@ package org.openmetadata.service.events.scheduled.template; import static org.openmetadata.service.events.scheduled.template.DataInsightDescriptionAndOwnerTemplate.getFormattedPercentChangeMessage; import java.util.Map; +import lombok.Getter; +import lombok.Setter; +@Getter @SuppressWarnings("unused") public class DataInsightTotalAssetTemplate { private String totalDataAssets; private String percentChangeTotalAssets; - private String percentChangeMessage; - private String completeMessage; - private int numberOfDaysChange; - private Map dateMap; + @Setter private String percentChangeMessage; + @Setter private String completeMessage; + @Setter private int numberOfDaysChange; + @Setter private Map dateMap; public DataInsightTotalAssetTemplate( - Double totalDataAssets, + String totalDataAssets, Double percentChangeTotalAssets, int numberOfDaysChange, Map dateMap) { - this.totalDataAssets = String.format("%.2f", totalDataAssets); + this.totalDataAssets = totalDataAssets; this.percentChangeTotalAssets = String.format("%.2f", percentChangeTotalAssets); this.percentChangeMessage = getFormattedPercentChangeMessage(percentChangeTotalAssets); this.numberOfDaysChange = numberOfDaysChange; @@ -40,57 +43,18 @@ public class DataInsightTotalAssetTemplate { if (percentChangeTotalAssets > 0) { color = "#008510"; } + completeMessage = String.format( - "In the past week, the Total Data Assets changed by %s%%.", + "In the past week, the Total Data Assets changed by %s%%.", color, this.percentChangeTotalAssets); } - public String getTotalDataAssets() { - return totalDataAssets; - } - public void setTotalDataAssets(Double totalDataAssets) { this.totalDataAssets = String.format("%.2f", totalDataAssets); } - public String getPercentChangeTotalAssets() { - return percentChangeTotalAssets; - } - public void setPercentChangeTotalAssets(Double percentChangeTotalAssets) { this.percentChangeTotalAssets = String.format("%.2f", percentChangeTotalAssets); } - - public String getCompleteMessage() { - return completeMessage; - } - - public void setCompleteMessage(String completeMessage) { - this.completeMessage = completeMessage; - } - - public String getPercentChangeMessage() { - return percentChangeMessage; - } - - public void setPercentChangeMessage(String message) { - this.percentChangeMessage = message; - } - - public int getNumberOfDaysChange() { - return numberOfDaysChange; - } - - public void setNumberOfDaysChange(int numberOfDaysChange) { - this.numberOfDaysChange = numberOfDaysChange; - } - - public Map getDateMap() { - return dateMap; - } - - public void setDateMap(Map dateMap) { - this.dateMap = dateMap; - } } diff --git a/openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/dataInsightReport.json b/openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/dataInsightReport.json index 1821f5477a8..dd7fc10005b 100644 --- a/openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/dataInsightReport.json +++ b/openmetadata-service/src/main/resources/json/data/document/emailTemplates/openmetadata/dataInsightReport.json @@ -5,7 +5,7 @@ "entityType": "EmailTemplate", "fullyQualifiedName": "dataInsightReport", "data": { - "template": "\n\n \n \n \n Weekly Update\n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n \n
\"\"
\n
 
\n \n \n \n \n \n \n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n
${startDate} - ${endDate}
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 
Your Weekly Update
 
Our weekly reports are designed to give you a clear and complete view of how your data is changing over time.
\n \n \n \n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n
\n \n \n \n \n \n \n
View Report
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n

Total Data Assets
${totalAssetObj.totalDataAssets}
${totalAssetObj.percentChangeMessage} [${totalAssetObj.numberOfDaysChange} Days Change]

\n
\n

Data Assets with Description
${descriptionObj.totalAssets}
${descriptionObj.percentChangeMessage} [${descriptionObj.numberOfDaysChange} Days Change]

\n
\n

Total Data Assets with Owner
${ownershipObj.totalAssets}
${ownershipObj.percentChangeMessage} [${ownershipObj.numberOfDaysChange} Days Change]

\n
\n

Data Assets with Tiers
${tierObj.totalAssets}
${tierObj.percentChangeMessage} [${tierObj.numberOfDaysChange} Days Change]

\n
\n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
Total Data Assets
\n
 
${totalAssetObj.completeMessage}
 
${totalAssetObj.percentChangeMessage} [${totalAssetObj.numberOfDaysChange} Days Change]
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
${totalAssetObj.totalDataAssets}
Total Data Assets
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n <#list totalAssetObj.dateMap?keys as key>\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
 
 
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n
\n \n \n \n \n <#list totalAssetObj.dateMap?keys as key>\n \n \n \n \n \n
${key}
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <#if descriptionObj.kpiAvailable>\n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
Completed Description
\n
 
${descriptionObj.completeMessage}
 
Target KPI: ${descriptionObj.targetKpi}% | Current KPI: ${descriptionObj.percentCompleted}%
${descriptionObj.percentChangeMessage} [${descriptionObj.numberOfDaysChange} Days Change]
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
${descriptionObj.percentCompleted}
Completed Description
 
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n <#list descriptionObj.dateMap?keys as key>\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
 
 
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n
\n \n \n \n \n <#list descriptionObj.dateMap?keys as key>\n \n \n \n \n \n
${key}
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <#if ownershipObj.kpiAvailable>\n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
Assigned Ownership
\n
 
${ownershipObj.completeMessage}
 
Target KPI: ${ownershipObj.targetKpi}% | Current KPI: ${ownershipObj.percentCompleted}%
${ownershipObj.percentChangeMessage} [${ownershipObj.numberOfDaysChange} Days Change]
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
${ownershipObj.percentCompleted}
Assigned Ownership
 
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n <#list ownershipObj.dateMap?keys as key>\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
 
 
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n
\n \n \n \n \n <#list ownershipObj.dateMap?keys as key>\n \n \n \n \n \n
${key}
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
Assigned Tier
\n
 
${tierObj.completeMessage}
 
${tierObj.percentChangeMessage} [${tierObj.numberOfDaysChange} Days Change]
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
${tierObj.percentCompleted}
Assigned Tier
 
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n <#list tierObj.dateMap?keys as key>\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
 
 
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n
\n \n \n \n \n <#list ownershipObj.dateMap?keys as key>\n \n \n \n \n \n
${key}
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 
© 2024 Collate, All Rights Reserved
 
\n \n \n \n \n \n \n \n \n
\n
 
\n
\n
\n
\n
\n \n", + "template": "\n\n \n \n \n Weekly Update\n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n \n
\"\"
\n
 
\n \n \n \n \n \n \n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n
${startDate} - ${endDate}
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 
Your Weekly Update
 
Our weekly reports are designed to give you a clear and complete view of how your data is changing over time.
\n \n \n \n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n
\n \n \n \n \n \n \n
View Report
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n

Total Data Assets
${totalAssetObj.totalDataAssets}
${totalAssetObj.percentChangeMessage} [${totalAssetObj.numberOfDaysChange} Days Change]

\n
\n

Data Assets with Description
${descriptionObj.totalAssets}
${descriptionObj.percentChangeMessage} [${descriptionObj.numberOfDaysChange} Days Change]

\n
\n

Total Data Assets with Owner
${ownershipObj.totalAssets}
${ownershipObj.percentChangeMessage} [${ownershipObj.numberOfDaysChange} Days Change]

\n
\n

Data Assets with Tiers
${tierObj.totalAssets}
${tierObj.percentChangeMessage} [${tierObj.numberOfDaysChange} Days Change]

\n
\n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
Total Data Assets
\n
 
${totalAssetObj.completeMessage}
 
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
${totalAssetObj.percentChangeTotalAssets}
Total Data Assets
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n <#list totalAssetObj.dateMap?keys as key>\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
 
 
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n
\n \n \n \n \n <#list totalAssetObj.dateMap?keys as key>\n \n \n \n \n \n
${key}
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <#if descriptionObj.kpiAvailable>\n \n \n \n \n \n \n
\n \n \n \n \n \n \n
Completed Description
\n
 
${descriptionObj.completeMessage}
 
Target KPI: ${descriptionObj.targetKpi}% | Current KPI: ${descriptionObj.percentCompleted}%
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
${descriptionObj.percentCompleted}
Completed Description
 
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n <#list descriptionObj.dateMap?keys as key>\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
 
 
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n
\n \n \n \n \n <#list descriptionObj.dateMap?keys as key>\n \n \n \n \n \n
${key}
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <#if ownershipObj.kpiAvailable>\n \n \n \n \n \n \n
\n \n \n \n \n \n \n
Assigned Ownership
\n
 
${ownershipObj.completeMessage}
 
Target KPI: ${ownershipObj.targetKpi}% | Current KPI: ${ownershipObj.percentCompleted}%
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
${ownershipObj.percentCompleted}
Assigned Ownership
 
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n <#list ownershipObj.dateMap?keys as key>\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
 
 
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n
\n \n \n \n \n <#list ownershipObj.dateMap?keys as key>\n \n \n \n \n \n
${key}
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
Assigned Tier
\n
 
${tierObj.completeMessage}
 
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
${tierObj.percentCompleted}
Assigned Tier
 
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n <#list tierObj.dateMap?keys as key>\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n
 
 
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n
\n \n \n \n \n <#list ownershipObj.dateMap?keys as key>\n \n \n \n \n \n
${key}
\n
\n
 
\n
\n \n \n \n \n \n \n
 
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
 
© 2024 Collate, All Rights Reserved
 
\n \n \n \n \n \n \n \n \n
\n
 
\n
\n
\n
\n
\n \n", "placeHolders": [ { "name": "startDate",