in src/main/java/com/datacompare/service/CompareService.java [937:1015]
public void writeDataToFile(FetchMetadata fetchSourceMetadata, Map<String, String> mismatchSourceData,
FetchMetadata fetchTargetMetadata, Map<String, String> mismatchTargetData, CompareResult dto,
String schemaName, boolean displayCompleteData) {
StringBuilder info = new StringBuilder();
info.append("\nSource Table size = ");
info.append(mismatchSourceData.size());
info.append("\nTarget Table size = ");
info.append(mismatchTargetData.size());
info.append("\n");
logger.info(info.toString());
if (mismatchSourceData.size() != 0) {
info = new StringBuilder();
info.append(schemaName.toLowerCase());
info.append("_");
info.append(dto.getTableName().toLowerCase());
info.append("_table_comparison_result_");
info.append(new DateUtil().getAppendDateToFileName(new Date()));
info.append(".html");
String fileName = info.toString();
try {
long totalFailedRowCount = 0;
StringBuilder bw = new StringBuilder();
writeHeader(fetchSourceMetadata, fetchTargetMetadata, displayCompleteData, bw);
writeMismatchData(mismatchSourceData, mismatchTargetData, displayCompleteData, dto, bw);
writeMismatchSourceData(mismatchSourceData, displayCompleteData, dto, bw);
writeMismatchTargetData(mismatchTargetData, displayCompleteData, dto, bw);
totalFailedRowCount = dto.getValueMismatchCount() + dto.getTargetFailedRowCount()
+ dto.getSourceFailedRowCount();
String reasonOfFailure = "";
if( dto.getTargetFailedRowCount() > 0 ) {
reasonOfFailure = "Additional rows found in Target";
}
if( dto.getSourceFailedRowCount() > 0 ) {
reasonOfFailure = reasonOfFailure + (!reasonOfFailure.isEmpty() ? " / " : "") + "Rows did not migrated from source";
}
if( dto.getValueMismatchCount() > 0 ) {
reasonOfFailure = reasonOfFailure + (!reasonOfFailure.isEmpty() ? " / " : "") + "Tuple value mismatched";
}
if( dto.getTargetFailedRowCount() == 0 && dto.getSourceFailedRowCount() == 0 && dto.getValueMismatchCount() == 0 ) {
reasonOfFailure = "Data Matched";
}
dto.setFailedRowNumber(totalFailedRowCount);
dto.setReason(reasonOfFailure);
dto.setFilename(fileName);
bw.append("</tbody></table></body></html>");
FileUtil fileWrite = new FileUtil();
fileWrite.writeDataToFile(bw, fileName, CompareController.reportOutputFolder);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
}
}