in src/main/java/com/datacompare/service/CompareService.java [289:372]
private void prepareSummaryReport(StringBuilder data, AppProperties appProperties, List<String> columnList,
CompareResult dto, long rowNo, long sourceTableCount, long targetTableCount, long matchedRows,
long missingRows, long unmatchedRows, long invalidRows, String executedTableName, String result, String reason,
String timeTaken, String executionStartedAt) {
data.append("<tr>")
.append("<td style='vertical-align: top;'><b>").append(Long.toString(rowNo)).append("</b></td>")
.append("<td style='vertical-align: top;'>")
.append("<table>")
.append("<tr><td><b>Name</b></td><td>").append(executedTableName).append("</td></tr>");
if(appProperties.isIgnoreColumns() && !columnList.isEmpty()) {
data.append("<tr><td><b>Columns Excluded from Comparison</b></td><td>")
.append(columnList.toString()).append("</td></tr>");
} else if(!columnList.isEmpty()) {
data.append("<tr><td><b>Columns Included for Comparison</b></td><td>")
.append(columnList.toString()).append("</td></tr>");
} else {
data.append("<tr><td><b>Columns</b></td><td>All</td></tr>");
}
data.append("<tr><td><b>Max Decimals Compared</b></td><td>").append(appProperties.getMaxDecimals()).append("</td></tr>");
data.append("<tr><td><b>Max Text Size Compared</b></td><td>").append(appProperties.getMaxTextSize()).append("</td></tr>");
if (appProperties.isCompareOnlyDate()) {
data.append("<tr><td><b>Compared Only Date</b></td><td>Yes</td></tr>");
}
data.append("</table>")
.append("</td>")
.append("<td style='vertical-align: top;'>")
.append("<table>")
.append("<tr><td><b>Source Table Count</b></td><td>").append(sourceTableCount).append("</td></tr>")
.append("<tr><td><b>Target Table Count</b></td><td>").append(targetTableCount).append("</td></tr>");
if("Detail".equals(appProperties.getReportType())) {
data.append("<tr><td><b>Matched Rows</b></td><td>").append(matchedRows).append("</td></tr>");
if(unmatchedRows > 0) {
data.append("<tr><td><b>Unmatched Rows</b></td><td>").append(unmatchedRows).append("</td></tr>");
}
if(missingRows > 0) {
data.append("<tr><td><b>Missing Rows</b></td><td>").append(missingRows).append("</td></tr>");
}
if(invalidRows > 0) {
data.append("<tr><td><b>Additional Rows in Target</b></td><td>").append(invalidRows).append("</td></tr>");
}
}
data.append("</table>")
.append("</td>")
.append("<td style='vertical-align: top;'>")
.append("<table>")
.append("<tr><td><b>Started at</b></td><td>").append(executionStartedAt).append("</td></tr>")
.append("<tr><td><b>Time Taken</b></td><td>").append(timeTaken).append("</td></tr>")
.append("<tr><td><b>Status</b></td><td>").append(result).append("</td></tr>")
.append("<tr><td><b>Message</b></td><td>").append(reason).append("</td></tr>")
;
if (dto.getFilename() != null && dto.getFilename().trim().endsWith(".html")) {
data.append("<tr><td><b>Report</b></td><td>").append("<a href='/result/view/").append(dto.getFilename())
.append("'>View Details</a></td></tr>");
}
data.append("</table>")
.append("</td>")
.append("</tr>");
if (appProperties.getFilter() != null && !appProperties.getFilter().isEmpty()) {
data.append("<tr><td colspan='7'><b>").append(appProperties.getFilterType())
.append(" Filter Used</b> ").append(appProperties.getFilter()).append("</td></tr>");
}
}