Backward compatibility with CodeLookUp
This commit is contained in:
committed by
Arnold Gálovics
parent
6d4e731ff9
commit
e3e4dbeb8a
+4
-1
@@ -75,6 +75,9 @@ public final class ResultsetColumnHeaderData implements Serializable {
|
|||||||
if (isString()) {
|
if (isString()) {
|
||||||
displayType = "STRING";
|
displayType = "STRING";
|
||||||
} else if (isAnyInteger()) {
|
} else if (isAnyInteger()) {
|
||||||
|
if (isInteger()) {
|
||||||
|
this.columnType = this.columnType.toUpperCase();
|
||||||
|
}
|
||||||
displayType = "INTEGER";
|
displayType = "INTEGER";
|
||||||
} else if (isDate()) {
|
} else if (isDate()) {
|
||||||
displayType = "DATE";
|
displayType = "DATE";
|
||||||
@@ -92,7 +95,7 @@ public final class ResultsetColumnHeaderData implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (isInt()) {
|
if (isInt() || isInteger()) {
|
||||||
displayType = "CODELOOKUP";
|
displayType = "CODELOOKUP";
|
||||||
} else if (isVarchar()) {
|
} else if (isVarchar()) {
|
||||||
displayType = "CODEVALUE";
|
displayType = "CODEVALUE";
|
||||||
|
|||||||
+4
-61
@@ -27,8 +27,6 @@ import javax.sql.DataSource;
|
|||||||
import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException;
|
import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException;
|
||||||
import org.apache.fineract.infrastructure.core.service.RoutingDataSource;
|
import org.apache.fineract.infrastructure.core.service.RoutingDataSource;
|
||||||
import org.apache.fineract.infrastructure.core.service.database.DatabaseIndependentQueryService;
|
import org.apache.fineract.infrastructure.core.service.database.DatabaseIndependentQueryService;
|
||||||
import org.apache.fineract.infrastructure.core.service.database.DatabaseSpecificSQLGenerator;
|
|
||||||
import org.apache.fineract.infrastructure.core.service.database.DatabaseTypeResolver;
|
|
||||||
import org.apache.fineract.infrastructure.dataqueries.data.GenericResultsetData;
|
import org.apache.fineract.infrastructure.dataqueries.data.GenericResultsetData;
|
||||||
import org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnHeaderData;
|
import org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnHeaderData;
|
||||||
import org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnValueData;
|
import org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnValueData;
|
||||||
@@ -48,18 +46,13 @@ public class GenericDataServiceImpl implements GenericDataService {
|
|||||||
|
|
||||||
private final JdbcTemplate jdbcTemplate;
|
private final JdbcTemplate jdbcTemplate;
|
||||||
private final DataSource dataSource;
|
private final DataSource dataSource;
|
||||||
private final DatabaseSpecificSQLGenerator sqlGenerator;
|
|
||||||
private final DatabaseTypeResolver databaseTypeResolver;
|
|
||||||
private final DatabaseIndependentQueryService databaseIndependentQueryService;
|
private final DatabaseIndependentQueryService databaseIndependentQueryService;
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(GenericDataServiceImpl.class);
|
private static final Logger LOG = LoggerFactory.getLogger(GenericDataServiceImpl.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public GenericDataServiceImpl(final RoutingDataSource dataSource, final JdbcTemplate jdbcTemplate,
|
public GenericDataServiceImpl(final RoutingDataSource dataSource, final JdbcTemplate jdbcTemplate,
|
||||||
DatabaseSpecificSQLGenerator sqlGenerator, DatabaseTypeResolver databaseTypeResolver,
|
|
||||||
DatabaseIndependentQueryService databaseIndependentQueryService) {
|
DatabaseIndependentQueryService databaseIndependentQueryService) {
|
||||||
this.dataSource = dataSource;
|
this.dataSource = dataSource;
|
||||||
this.sqlGenerator = sqlGenerator;
|
|
||||||
this.databaseTypeResolver = databaseTypeResolver;
|
|
||||||
this.databaseIndependentQueryService = databaseIndependentQueryService;
|
this.databaseIndependentQueryService = databaseIndependentQueryService;
|
||||||
this.jdbcTemplate = new JdbcTemplate(this.dataSource);
|
this.jdbcTemplate = new JdbcTemplate(this.dataSource);
|
||||||
}
|
}
|
||||||
@@ -206,9 +199,6 @@ public class GenericDataServiceImpl implements GenericDataService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ResultsetColumnHeaderData> fillResultsetColumnHeaders(final String datatable) {
|
public List<ResultsetColumnHeaderData> fillResultsetColumnHeaders(final String datatable) {
|
||||||
|
|
||||||
LOG.debug("::3 Was inside the fill ResultSetColumnHeader");
|
|
||||||
|
|
||||||
final SqlRowSet columnDefinitions = getDatatableMetaData(datatable);
|
final SqlRowSet columnDefinitions = getDatatableMetaData(datatable);
|
||||||
|
|
||||||
final List<ResultsetColumnHeaderData> columnHeaders = new ArrayList<>();
|
final List<ResultsetColumnHeaderData> columnHeaders = new ArrayList<>();
|
||||||
@@ -226,38 +216,16 @@ public class GenericDataServiceImpl implements GenericDataService {
|
|||||||
|
|
||||||
List<ResultsetColumnValueData> columnValues = new ArrayList<>();
|
List<ResultsetColumnValueData> columnValues = new ArrayList<>();
|
||||||
String codeName = null;
|
String codeName = null;
|
||||||
if ("varchar".equalsIgnoreCase(columnType)) {
|
final int codePosition = columnName.indexOf("_cd");
|
||||||
|
if ("varchar".equalsIgnoreCase(columnType) || "int".equalsIgnoreCase(columnType) || "integer".equalsIgnoreCase(columnType)) {
|
||||||
final int codePosition = columnName.indexOf("_cv");
|
|
||||||
if (codePosition > 0) {
|
|
||||||
codeName = columnName.substring(0, codePosition);
|
|
||||||
|
|
||||||
columnValues = retreiveColumnValues(codeName);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if ("int".equalsIgnoreCase(columnType)) {
|
|
||||||
|
|
||||||
final int codePosition = columnName.indexOf("_cd");
|
|
||||||
if (codePosition > 0) {
|
if (codePosition > 0) {
|
||||||
codeName = columnName.substring(0, codePosition);
|
codeName = columnName.substring(0, codePosition);
|
||||||
columnValues = retreiveColumnValues(codeName);
|
columnValues = retreiveColumnValues(codeName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (codeName == null) {
|
|
||||||
final SqlRowSet rsValues = getDatatableCodeData(datatable, columnName);
|
|
||||||
Integer codeId = null;
|
|
||||||
while (rsValues.next()) {
|
|
||||||
codeId = rsValues.getInt("id");
|
|
||||||
codeName = rsValues.getString("code_name");
|
|
||||||
}
|
|
||||||
columnValues = retreiveColumnValues(codeId);
|
|
||||||
|
|
||||||
}
|
columnHeaders.add(ResultsetColumnHeaderData.detailed(columnName, columnType, columnLength, columnNullable, columnIsPrimaryKey,
|
||||||
|
columnValues, codeName));
|
||||||
final ResultsetColumnHeaderData rsch = ResultsetColumnHeaderData.detailed(columnName, columnType, columnLength, columnNullable,
|
|
||||||
columnIsPrimaryKey, columnValues, codeName);
|
|
||||||
|
|
||||||
columnHeaders.add(rsch);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return columnHeaders;
|
return columnHeaders;
|
||||||
@@ -286,23 +254,6 @@ public class GenericDataServiceImpl implements GenericDataService {
|
|||||||
return columnValues;
|
return columnValues;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<ResultsetColumnValueData> retreiveColumnValues(final Integer codeId) {
|
|
||||||
|
|
||||||
final List<ResultsetColumnValueData> columnValues = new ArrayList<>();
|
|
||||||
if (codeId != null) {
|
|
||||||
final String sql = "select v.id, v.code_value from m_code_value v where v.code_id = ? order by v.order_position, v.id";
|
|
||||||
final SqlRowSet rsValues = this.jdbcTemplate.queryForRowSet(sql, new Object[] { codeId }); // NOSONAR
|
|
||||||
rsValues.beforeFirst();
|
|
||||||
while (rsValues.next()) {
|
|
||||||
final Integer id = rsValues.getInt("id");
|
|
||||||
final String codeValue = rsValues.getString("code_value");
|
|
||||||
columnValues.add(new ResultsetColumnValueData(id, codeValue));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return columnValues;
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("AvoidHidingCauseException")
|
@SuppressWarnings("AvoidHidingCauseException")
|
||||||
private SqlRowSet getDatatableMetaData(final String datatable) {
|
private SqlRowSet getDatatableMetaData(final String datatable) {
|
||||||
try {
|
try {
|
||||||
@@ -311,12 +262,4 @@ public class GenericDataServiceImpl implements GenericDataService {
|
|||||||
throw new DatatableNotFoundException(datatable);
|
throw new DatatableNotFoundException(datatable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private SqlRowSet getDatatableCodeData(final String datatable, final String columnName) {
|
|
||||||
final String dataTableColumnName = datatable.toLowerCase().replaceAll("\\s", "_") + "_" + columnName + "'";
|
|
||||||
final String sql = "select mc.id,mc.code_name from m_code mc join x_table_column_code_mappings xcc on xcc.code_id = mc.id where xcc.column_alias_name= ?";
|
|
||||||
final SqlRowSet rsValues = this.jdbcTemplate.queryForRowSet(sql, new Object[] { dataTableColumnName }); // NOSONAR
|
|
||||||
|
|
||||||
return rsValues;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user