public void executeComparision()

in src/main/java/com/datacompare/service/CompareService.java [89:175]


	public void executeComparision(AppProperties appProperties) {
		
	  	try {
			
	  		setConnections(appProperties); 
  			
  			if(getSourceConn() != null && getTargetConn() != null) { 
  				
  				long rowNo = 1;
  				Date date = new Date();
  				DateUtil dateUtil = new DateUtil();
  				String executionStartedAt = dateUtil.getExecutionDate(date);
  				String appendDateToFileNames = dateUtil.getAppendDateToFileName(date);
  				CompareController.reportOutputFolder = appProperties.getOutputFolderPath(); 
  				
  				StringBuilder data = new StringBuilder();
  				
  	            data.append("<html><head><title>Data Compare Results</title><style>table{border: 1px solid #ddd; border-radius: 13px; border-collapse: collapse;} th, td {border-bottom: 1px solid #ddd;border-collapse: collapse; font-family: Arial; font-size: 10pt;} th, td {padding: 10px;}	th {text-align: left;} table {border-spacing: 5px; width: 100%; background-color: #f1f1c1;	border-color: gray;} table tr:nth-child(even) {background-color: #eee;} table tr:nth-child(odd) {background-color: #fff;} table th {color: white; background-color: black;}	</style></head><body>")
				.append("<table><thead><tr><th>S.NO</th><th>TABLE</th><th>DETAILS</th><th>EXECUTION</th></tr></thead><tbody>");
  	            
				List<String> columnList = getColumnList(appProperties.getColumns());
				
				if (appProperties.getTableName() != null && !appProperties.getTableName().isEmpty()
						&& !appProperties.isIgnoreTables()) {
  					
  					String[] tableNameParts = appProperties.getTableName().split(",");
  					
  					for (String tableName : tableNameParts) { 

						CompareResult dto = compare(appProperties, getSourceConn(), getTargetConn(),
								appProperties.getSchemaName(), tableName, columnList);

			  			String executedTableName = appProperties.getSchemaName() + "." + tableName;
			  			
			  			summary(executedTableName, data, executionStartedAt, rowNo++, columnList, dto, appProperties);
  					}
		  			
  				} else {
  					
  					String[] schemaParts = appProperties.getSchemaName().split(",");
  					
  					for (String schemaName : schemaParts) { 
  						
						List<CompareResult> dtos = compareSchema(appProperties, getSourceConn(), getTargetConn(), schemaName, columnList);
	  					
	  					for (CompareResult dto : dtos) {
							
				  			String executedTableName = schemaName + "." + dto.getTableName();
				  			
	  						summary(executedTableName, data, executionStartedAt, rowNo++, columnList, dto, appProperties);
	  					}
					}
  				}
  				
				data.append("</tbody>")
				.append("</table>") 
  				.append("</body>")
  				.append("</html>");
				
        		String jobName = appProperties.getJobName();
        		jobName = (jobName != null && !jobName.isEmpty()) ? jobName : "data_comparison_result";
        		
  	        	String fileName = jobName + "_" + appendDateToFileNames + ".html";
  	        	
  	        	FileUtil fileWrite = new FileUtil();
  				
  	        	fileWrite.writeDataToFile(data, fileName, CompareController.reportOutputFolder); 
  	        	
  	        	CompareController.reportFileName = fileName;
	  			
  			} else {
  				
  				logger.info("Either Source or Target DB connection is not established."); 
  			}
	  			
	  	} catch (Exception ex) { 
	  		
	  		logger.error(ex.getMessage(), ex);
	  		
	  	} finally {
			
	  		JdbcUtil jdbcUtil = new JdbcUtil();
	  		
	  		jdbcUtil.closeConnection(getSourceConn());
	  		jdbcUtil.closeConnection(getTargetConn());
		}
	}