check allowed code values on insert/update
This commit is contained in:
+38
-19
@@ -268,9 +268,11 @@ public class ReadWriteNonCoreDataServiceImpl implements
|
|||||||
String saveSql = getSaveSql(readResultset, fullDatasetName, id,
|
String saveSql = getSaveSql(readResultset, fullDatasetName, id,
|
||||||
transType, queryParams);
|
transType, queryParams);
|
||||||
|
|
||||||
String sqlErrorMsg = "Additional Fields Type: " + type + " Set: "
|
if (saveSql != null) {
|
||||||
+ set + " Id: " + id;
|
String sqlErrorMsg = "Additional Fields Type: " + type + " Set: "
|
||||||
genericDataService.updateSQL(saveSql, sqlErrorMsg);
|
+ set + " Id: " + id;
|
||||||
|
genericDataService.updateSQL(saveSql, sqlErrorMsg);
|
||||||
|
}
|
||||||
|
|
||||||
long elapsed = System.currentTimeMillis() - startTime;
|
long elapsed = System.currentTimeMillis() - startTime;
|
||||||
logger.info("FINISHING updateExtraData: Elapsed Time: " + elapsed
|
logger.info("FINISHING updateExtraData: Elapsed Time: " + elapsed
|
||||||
@@ -286,7 +288,6 @@ public class ReadWriteNonCoreDataServiceImpl implements
|
|||||||
String underscore = "_";
|
String underscore = "_";
|
||||||
String space = " ";
|
String space = " ";
|
||||||
String pValue = null;
|
String pValue = null;
|
||||||
String currValue = null;
|
|
||||||
String keyUpdated = null;
|
String keyUpdated = null;
|
||||||
List<ResultsetColumnHeader> columnHeaders = readResultset
|
List<ResultsetColumnHeader> columnHeaders = readResultset
|
||||||
.getColumnHeaders();
|
.getColumnHeaders();
|
||||||
@@ -297,16 +298,12 @@ public class ReadWriteNonCoreDataServiceImpl implements
|
|||||||
for (String key : keys) {
|
for (String key : keys) {
|
||||||
if (!(key.equalsIgnoreCase("id"))) {
|
if (!(key.equalsIgnoreCase("id"))) {
|
||||||
keyUpdated = genericDataService.replace(key, underscore, space);
|
keyUpdated = genericDataService.replace(key, underscore, space);
|
||||||
currValue = getCurrentColumnValue(keyUpdated, columnHeaders,
|
|
||||||
columnValues);
|
|
||||||
pValue = queryParams.get(key);
|
pValue = queryParams.get(key);
|
||||||
|
|
||||||
if (notTheSame(currValue, pValue)) {
|
if (newValueValidAndChanged(keyUpdated, columnHeaders,
|
||||||
logger.info("Difference - Column: " + keyUpdated
|
columnValues, pValue))
|
||||||
+ "- Current Value: " + currValue
|
|
||||||
+ " New Value: " + pValue);
|
|
||||||
updatedColumns.put(keyUpdated, pValue);
|
updatedColumns.put(keyUpdated, pValue);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,10 +314,8 @@ public class ReadWriteNonCoreDataServiceImpl implements
|
|||||||
// completeness but its okay to take this risk with additional fields
|
// completeness but its okay to take this risk with additional fields
|
||||||
// data
|
// data
|
||||||
|
|
||||||
for (String key : updatedColumns.keySet()) {
|
if (updatedColumns.size() == 0)
|
||||||
logger.info("Update Column: " + key + " - Value: "
|
return null;
|
||||||
+ updatedColumns.get(key));
|
|
||||||
}
|
|
||||||
|
|
||||||
String pValueWrite = "";
|
String pValueWrite = "";
|
||||||
String saveSql = "";
|
String saveSql = "";
|
||||||
@@ -391,12 +386,36 @@ public class ReadWriteNonCoreDataServiceImpl implements
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getCurrentColumnValue(String key,
|
private boolean newValueValidAndChanged(String key,
|
||||||
List<ResultsetColumnHeader> columnHeaders, List<String> columnValues) {
|
List<ResultsetColumnHeader> columnHeaders,
|
||||||
|
List<String> columnValues, String newValue) {
|
||||||
|
|
||||||
|
String columnValue = null;
|
||||||
for (int i = 0; i < columnHeaders.size(); i++) {
|
for (int i = 0; i < columnHeaders.size(); i++) {
|
||||||
if (columnHeaders.get(i).getColumnName().equalsIgnoreCase(key))
|
if (columnHeaders.get(i).getColumnName().equalsIgnoreCase(key)) {
|
||||||
return columnValues.get(i);
|
columnValue = columnValues.get(i);
|
||||||
|
|
||||||
|
if ((!StringUtils.isEmpty(newValue))
|
||||||
|
&& columnHeaders.get(i).getColumnValues().size() > 0) {
|
||||||
|
if (!(columnHeaders.get(i).getColumnValues()
|
||||||
|
.contains(newValue))) {
|
||||||
|
throw new PlatformDataIntegrityException(
|
||||||
|
"error.msg.invalid.columnValue",
|
||||||
|
"Parameter Column Name: " + key + " - Value '"
|
||||||
|
+ newValue
|
||||||
|
+ "' not found in Allowed Value list");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (notTheSame(columnValue, newValue)) {
|
||||||
|
logger.info("Difference - Column: " + key
|
||||||
|
+ "- Current Value: " + columnValue
|
||||||
|
+ " New Value: " + newValue);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new PlatformDataIntegrityException(
|
throw new PlatformDataIntegrityException(
|
||||||
|
|||||||
Reference in New Issue
Block a user