summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model')
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportWrapper.java14
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/DrillDownParamDef.java20
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportDefinition.java17
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnEditJSON.java8
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnJSON.java15
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/DefinitionJSON.java20
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/FormEditJSON.java32
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/SearchFieldJSON.java8
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/FormField.java35
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportFormFields.java11
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportJSONRuntime.java412
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportRuntime.java433
12 files changed, 629 insertions, 396 deletions
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportWrapper.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportWrapper.java
index 65972806..07839aa9 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportWrapper.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportWrapper.java
@@ -1940,6 +1940,7 @@ public class ReportWrapper extends org.onap.portalsdk.analytics.RaptorObject imp
String chartGroup = chartGroupName.substring(0, chartGroupName.lastIndexOf("|"));
int flag = 0;
for (Iterator iter = reportCols.iterator(); iter.hasNext();) {
+ flag = 0;
DataColumnType dc = (DataColumnType) iter.next();
flag = getDependsOnFormFieldFlag(dc, formValues);
@@ -3684,6 +3685,7 @@ public class ReportWrapper extends org.onap.portalsdk.analytics.RaptorObject imp
String rSQL = Globals.getGenerateSubsetSql();
rSQL = rSQL.replace("[colNames.toString()]", colNames.toString());
rSQL = rSQL.replace("[reportSQL]", reportSQL);
+ rSQL = rSQL.replace("[rownum]", String.valueOf(endRow));
reportSQL = rSQL;
@@ -3713,8 +3715,7 @@ public class ReportWrapper extends org.onap.portalsdk.analytics.RaptorObject imp
partSql += " " + orderbyclause + " ";
}
- CachingUtils.putPageSql(request.getSession().getId()+getWholeSQL(), partSql);
- CachingUtils.putReportSql(request.getSession().getId()+getWholeSQL(), reportSQL);
+
if (!AppUtils.isNotEmpty(getDBType())) {
setDBType(Globals.getDBType());
}
@@ -3722,8 +3723,7 @@ public class ReportWrapper extends org.onap.portalsdk.analytics.RaptorObject imp
if (getDBType().equals(AppConstants.MYSQL)) {
partSql = partSql + " LIMIT " + String.valueOf(startRow) + " , " + String.valueOf(endRow);
} else if (getDBType().equals(AppConstants.ORACLE)) {
- partSql = "where rnum >= " + String.valueOf(startRow) + " and rnum <= "
- + ( Integer.parseInt(String.valueOf(endRow)));
+ partSql = " where rnum >= " + String.valueOf(startRow) + " ORDER BY rnum";
} else if (getDBType().equals(AppConstants.POSTGRESQL)) {
partSql = partSql + " LIMIT " + String.valueOf(endRow) + " , " + String.valueOf(startRow);
}
@@ -4472,6 +4472,12 @@ public class ReportWrapper extends org.onap.portalsdk.analytics.RaptorObject imp
return ncft;
}
+ public String getCrossTabDisplayValue(String crossTabValue) {
+ return nvl(crossTabValue).equals(AppConstants.CV_ROW) ? "Row headings" : (nvl(
+ crossTabValue).equals(AppConstants.CV_COLUMN) ? "Column headings" : (nvl(
+ crossTabValue).equals(AppConstants.CV_VALUE) ? "Report values" : "Invisible/Filter"));
+ } // getCrossTabDisplayValue
+
public DataColumnType cloneDataColumnType(ObjectFactory objFactory, DataColumnType dct)
throws JAXBException {
DataColumnType ndct = objFactory.createDataColumnType();
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/DrillDownParamDef.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/DrillDownParamDef.java
index 97a87abb..fc2184fc 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/DrillDownParamDef.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/DrillDownParamDef.java
@@ -106,4 +106,24 @@ public class DrillDownParamDef extends RaptorObject {
return valFieldId;
}
+ private void setFieldName(String fieldName) {
+ this.fieldName = fieldName;
+ }
+
+ private void setValType(String valType) {
+ this.valType = valType;
+ }
+
+ private void setValValue(String valValue) {
+ this.valValue = valValue;
+ }
+
+ private void setValColId(String valColId) {
+ this.valColId = valColId;
+ }
+
+ private void setValFieldId(String valFieldId) {
+ this.valFieldId = valFieldId;
+ }
+
} // DrillDownParamDef
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportDefinition.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportDefinition.java
index 343862b6..962cb032 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportDefinition.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportDefinition.java
@@ -39,6 +39,7 @@ package org.onap.portalsdk.analytics.model.definition;
import java.io.Serializable;
import java.sql.Connection;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Iterator;
@@ -47,6 +48,7 @@ import java.util.StringTokenizer;
import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.xml.bind.JAXBException;
@@ -258,6 +260,7 @@ public class ReportDefinition extends ReportWrapper implements Serializable {
boolean valColExist = false;
if (!getDataSourceList().getDataSource().isEmpty()) {
+ if (getAllColumns().stream().anyMatch(dto -> dto.getCrossTabValue() != null)) {
for (Iterator iter = getAllColumns().iterator(); iter.hasNext();) {
DataColumnType dct = (DataColumnType) iter.next();
@@ -268,13 +271,15 @@ public class ReportDefinition extends ReportWrapper implements Serializable {
if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_VALUE))
valColExist = true;
} // for
+ } else {
+ return true;
+ }
} // if
return rowColExist && colColExist && valColExist;
} // canPersistCrossTabReport
private boolean canPersistReport() {
- String reportType = getReportType();
return getReportType().equals(AppConstants.RT_CROSSTAB) ? canPersistCrossTabReport()
: (getReportType().equals(AppConstants.RT_LINEAR)? canPersistLinearReport()
:(getReportType().equals(AppConstants.RT_HIVE)? canPersistLinearReport()
@@ -943,8 +948,14 @@ public class ReportDefinition extends ReportWrapper implements Serializable {
fft.setValidationType(validationType);
fft.setMandatory(nvl(mandatory, "N"));
fft.setDefaultValue(nvl(defaultValue));
- fft.setOrderBySeq((getFormFieldList() == null) ? 1 : getFormFieldList().getFormField()
- .size() + 1);
+ List<Integer> orderSeq = new ArrayList<>();
+ if(getFormFieldList() != null)
+ orderSeq = getFormFieldList().getFormField().stream().map(FormFieldType::getOrderBySeq).collect(Collectors.toList());
+ Integer max=0;
+ if(orderSeq.size()>0) {
+ max = Collections.max(orderSeq);
+ }
+ fft.setOrderBySeq((getFormFieldList() == null) ? 1 : max+1);
fft.setFieldSQL(fieldSQL);
try {
fft.setRangeStartDate(DatatypeFactory.newInstance()
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnEditJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnEditJSON.java
index af7e6e8c..0908eb4a 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnEditJSON.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnEditJSON.java
@@ -73,8 +73,14 @@ public class ColumnEditJSON implements WizardJSON {
private String displayTotal;
private SemaphoreList semaphoreList;
private String semaphoreId;
+ private String crossTabValue;
-
+ public String getCrossTabValue() {
+ return crossTabValue;
+ }
+ public void setCrossTabValue(String crossTabValue) {
+ this.crossTabValue = crossTabValue;
+ }
public SemaphoreList getSemaphoreList() {
return semaphoreList;
}
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnJSON.java
index 95cc13c3..14f765f7 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnJSON.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnJSON.java
@@ -41,6 +41,9 @@ public class ColumnJSON implements ElementJSON {
private String id;
private String name;
+ private String crossTabValue;
+ private String repType;
+
public String getId() {
return id;
}
@@ -53,6 +56,18 @@ public class ColumnJSON implements ElementJSON {
public void setName(String name) {
this.name = name;
}
+ public String getCrossTabValue() {
+ return crossTabValue;
+ }
+ public void setCrossTabValue(String crossTabValue) {
+ this.crossTabValue = crossTabValue;
+ }
+ public String getRepType() {
+ return repType;
+ }
+ public void setRepType(String repType) {
+ this.repType = repType;
+ }
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/DefinitionJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/DefinitionJSON.java
index 888cf1e0..780136f3 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/DefinitionJSON.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/DefinitionJSON.java
@@ -81,6 +81,26 @@ public class DefinitionJSON implements WizardJSON {
private String dashboardLayoutJSON;
private DashboardReports dashboardReports;
private String chartType;
+ private String reportHeader;
+ private String reportFooter;
+
+
+
+ public String getReportHeader() {
+ return reportHeader;
+ }
+
+ public void setReportHeader(String reportHeader) {
+ this.reportHeader = reportHeader;
+ }
+
+ public String getReportFooter() {
+ return reportFooter;
+ }
+
+ public void setReportFooter(String reportFooter) {
+ this.reportFooter = reportFooter;
+ }
@Override
public String getTabName() {
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/FormEditJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/FormEditJSON.java
index b7ddc3b8..8c45612e 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/FormEditJSON.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/FormEditJSON.java
@@ -37,8 +37,11 @@
*/
package org.onap.portalsdk.analytics.model.definition.wizard;
+import java.util.Calendar;
import java.util.List;
+import javax.xml.datatype.XMLGregorianCalendar;
+
public class FormEditJSON implements WizardJSON {
private String tabId;
@@ -60,7 +63,35 @@ public class FormEditJSON implements WizardJSON {
private String errorMessage;
private String errorStackTrace;
private Integer orderSeq;
+ private String rangeStartDateSQL = null;
+ private String rangeEndDateSQL = null;
+ private String rangeStartDate = null;
+ private String rangeEndDate = null;
+ public String getRangeStartDate() {
+ return rangeStartDate;
+ }
+ public void setRangeStartDate(String rangeStartDate) {
+ this.rangeStartDate = rangeStartDate;
+ }
+ public String getRangeEndDate() {
+ return rangeEndDate;
+ }
+ public void setRangeEndDate(String rangeEndDate) {
+ this.rangeEndDate = rangeEndDate;
+ }
+ public String getRangeStartDateSQL() {
+ return rangeStartDateSQL;
+ }
+ public void setRangeStartDateSQL(String rangeStartDateSQL) {
+ this.rangeStartDateSQL = rangeStartDateSQL;
+ }
+ public String getRangeEndDateSQL() {
+ return rangeEndDateSQL;
+ }
+ public void setRangeEndDateSQL(String rangeEndDateSQL) {
+ this.rangeEndDateSQL = rangeEndDateSQL;
+ }
public String getMessage() {
return message;
}
@@ -161,7 +192,6 @@ public class FormEditJSON implements WizardJSON {
this.orderSeq = orderSeq;
}
-
public String getLastUpdatedFieldId() {
return lastUpdatedFieldId;
}
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/SearchFieldJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/SearchFieldJSON.java
index f80ba993..f2596627 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/SearchFieldJSON.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/SearchFieldJSON.java
@@ -42,6 +42,8 @@ public class SearchFieldJSON implements ElementJSON {
private String id;
private String name;
private Integer orderSeq;
+ private String validationType;
+
public String getId() {
return id;
}
@@ -60,6 +62,12 @@ public class SearchFieldJSON implements ElementJSON {
public void setOrderSeq(Integer orderSeq) {
this.orderSeq = orderSeq;
}
+ public String getValidationType() {
+ return validationType;
+ }
+ public void setValidationType(String validationType) {
+ this.validationType = validationType;
+ }
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/FormField.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/FormField.java
index 9a2233e3..9885f2de 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/FormField.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/FormField.java
@@ -80,6 +80,7 @@ import org.onap.portalsdk.analytics.model.base.IdNameSql;
import org.onap.portalsdk.analytics.model.base.IdNameValue;
import org.onap.portalsdk.analytics.system.AppUtils;
import org.onap.portalsdk.analytics.system.ConnectionUtils;
+import org.onap.portalsdk.analytics.system.ExecuteQuery;
import org.onap.portalsdk.analytics.system.Globals;
import org.onap.portalsdk.analytics.util.DataSet;
import org.onap.portalsdk.analytics.util.Utils;
@@ -134,6 +135,16 @@ public class FormField extends org.onap.portalsdk.analytics.RaptorObject impleme
private boolean triggerThisFormfield = false;
+ private Integer orderBySeq;
+
+ public Integer getOrderBySeq() {
+ return orderBySeq;
+ }
+
+ public void setOrderBySeq(Integer orderBySeq) {
+ this.orderBySeq = orderBySeq;
+ }
+
// Form field types
public static final String FFT_TEXT_W_POPUP = "TEXT_WITH_POPUP";
@@ -181,15 +192,15 @@ public class FormField extends org.onap.portalsdk.analytics.RaptorObject impleme
private FormField(String fieldName, String fieldDisplayName, String fieldType, String validationType,
boolean required, String defaultValue, String helpText, boolean visible, String dependsOn,
Calendar rangeStartDate, Calendar rangeEndDate, String rangeStartDateSQL, String rangeEndDateSQL,
- String multiSelectListSize) {
+ String multiSelectListSize, Integer orderBySeq) {
this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue, helpText, dependsOn,
- rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize);
+ rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize, orderBySeq);
setVisible(visible);
} // FormField
private FormField(String fieldName, String fieldDisplayName, String fieldType, String validationType,
boolean required, String defaultValue, String helpText, String dependsOn, Calendar rangeStartDate,
- Calendar rangeEndDate, String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize) {
+ Calendar rangeEndDate, String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize, Integer orderBySeq) {
super();
setFieldName(fieldName);
setFieldDisplayName(fieldDisplayName);
@@ -204,14 +215,15 @@ public class FormField extends org.onap.portalsdk.analytics.RaptorObject impleme
setRangeStartDateSQL(rangeStartDateSQL);
setRangeEndDateSQL(rangeEndDateSQL);
setMultiSelectListSize(multiSelectListSize);
+ setOrderBySeq(orderBySeq);
}
public FormField(String fieldName, String fieldDisplayName, String fieldType, String validationType,
boolean required, String defaultValue, String helpText, List predefinedValues, boolean visible,
String dependsOn, Calendar rangeStartDate, Calendar rangeEndDate, String rangeStartDateSQL,
- String rangeEndDateSQL, String multiSelectListSize) {
+ String rangeEndDateSQL, String multiSelectListSize, Integer orderBySeq) {
this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue, helpText, visible,
- dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize);
+ dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize,orderBySeq);
if (predefinedValues != null)
setPredefinedListLookup(predefinedValues);
} // FormField
@@ -219,9 +231,9 @@ public class FormField extends org.onap.portalsdk.analytics.RaptorObject impleme
public FormField(String fieldName, String fieldDisplayName, String fieldType, String validationType,
boolean required, String defaultValue, String helpText, String lookupSql, boolean visible, String dependsOn,
Calendar rangeStartDate, Calendar rangeEndDate, String rangeStartDateSQL, String rangeEndDateSQL,
- String multiSelectListSize) {
+ String multiSelectListSize, Integer orderBySeq) {
this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue, helpText, visible,
- dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize);
+ dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize,orderBySeq);
if (defaultValue != null && defaultValue.length() > 10
&& defaultValue.substring(0, 10).trim().toLowerCase().startsWith("select")) {
setFieldDefaultSQL(defaultValue);
@@ -233,19 +245,20 @@ public class FormField extends org.onap.portalsdk.analytics.RaptorObject impleme
public FormField(String fieldName, String fieldDisplayName, String fieldType, String validationType,
boolean required, String defaultValue, String helpText, String dbTableName, String dbIdField,
String dbNameField, String dbSortByField, boolean visible, String dependsOn, Calendar rangeStartDate,
- Calendar rangeEndDate, String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize) {
+ Calendar rangeEndDate, String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize, Integer orderBySeq) {
this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue, helpText, dbTableName,
dbIdField, dbNameField, dbSortByField, dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL,
- rangeEndDateSQL, multiSelectListSize);
+ rangeEndDateSQL, multiSelectListSize, orderBySeq);
setVisible(visible);
}
public FormField(String fieldName, String fieldDisplayName, String fieldType, String validationType,
boolean required, String defaultValue, String helpText, String dbTableName, String dbIdField,
String dbNameField, String dbSortByField, String dependsOn, Calendar rangeStartDate, Calendar rangeEndDate,
- String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize) {
+ String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize, Integer orderBySeq) {
this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue, helpText, dependsOn,
- rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize);
+ rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize, orderBySeq);
+ // if(dependsOn !=null){ this.dependsOn = dependsOn; }else { this.dependsOn = ""
if (defaultValue != null && defaultValue.length() > 10
&& defaultValue.substring(0, 10).trim().toLowerCase().startsWith("select")) {
setFieldDefaultSQL(defaultValue);
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportFormFields.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportFormFields.java
index e50d465e..c59cd597 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportFormFields.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportFormFields.java
@@ -79,6 +79,7 @@ public class ReportFormFields extends Vector {
String defaultValue = fft.getDefaultValue();
String fieldSQL = fft.getFieldSQL();
String fieldDefaultSQL = fft.getFieldDefaultSQL();
+ Integer orderBySeq = fft.getOrderBySeq();
String[] reqParameters = Globals.getRequestParams().split(",");
String[] sessionParameters = Globals.getSessionParams().split(",");
String[] scheduleSessionParameters = Globals.getSessionParamsForScheduling().split(",");
@@ -192,10 +193,10 @@ public class ReportFormFields extends Vector {
else if (nvl(defaultValue).equals(AppConstants.FILTER_MIN_VALUE))
defaultValue = (String) Collections.min(predefinedValues);
add(new FormField(fieldName, fieldDisplayName, fieldType, validationType,
- mandatory.equals("Y"), defaultValue, helpText, predefinedValues,visible.equals("Y"), dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize));
+ mandatory.equals("Y"), defaultValue, helpText, predefinedValues,visible.equals("Y"), dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize,orderBySeq));
} else if (nvl(fieldSQL).length() > 0) {
add(new FormField(fieldName, fieldDisplayName, fieldType, validationType,
- mandatory.equals("Y"), fieldDefaultSQL, helpText, fieldSQL,visible.equals("Y"), dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize));
+ mandatory.equals("Y"), fieldDefaultSQL, helpText, fieldSQL,visible.equals("Y"), dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize,orderBySeq));
} else {
String lTableName = null;
String lColumnName = null;
@@ -261,12 +262,12 @@ public class ReportFormFields extends Vector {
if (fieldDefaultSQL!=null && fieldDefaultSQL.length()>0 && (fieldDefaultSQL.trim().length()>10) && fieldDefaultSQL.substring(0,10).toLowerCase().startsWith("select")) {
add(new FormField(fieldName, fieldDisplayName, fieldType, validationType,
mandatory.equals("Y"), fieldDefaultSQL, helpText, lookupTable,
- lookupIdField, lookupNameField, lookupSortByField,visible.equals("Y"),dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize));
+ lookupIdField, lookupNameField, lookupSortByField,visible.equals("Y"),dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize,orderBySeq));
} else {
add(new FormField(fieldName, fieldDisplayName, fieldType, validationType,
mandatory.equals("Y"), defaultValue, helpText, lookupTable,
- lookupIdField, lookupNameField, lookupSortByField,visible.equals("Y"), dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize));
+ lookupIdField, lookupNameField, lookupSortByField,visible.equals("Y"), dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize,orderBySeq));
}
} // else
} // for
@@ -315,7 +316,7 @@ public class ReportFormFields extends Vector {
} // if
add(new FormField(fieldName, fieldDisplayName,
FormField.FFT_TEXT_W_POPUP, null, false, null, null,
- lookupTable, lookupIdField, lookupNameField, lookupSortByField,null, lookupRangeStartDate, lookupRangeEndDate, lookupRangeStartDateSQL, lookupRangeEndDateSQL, "0"));
+ lookupTable, lookupIdField, lookupNameField, lookupSortByField,null, lookupRangeStartDate, lookupRangeEndDate, lookupRangeStartDateSQL, lookupRangeEndDateSQL, "0",1));
} // if
} // for
} // if
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportJSONRuntime.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportJSONRuntime.java
index 384caf1e..5fbcecd7 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportJSONRuntime.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportJSONRuntime.java
@@ -38,388 +38,47 @@
package org.onap.portalsdk.analytics.model.runtime;
import java.util.ArrayList;
-import java.util.Calendar;
import java.util.Map;
import org.onap.portalsdk.analytics.model.base.IdNameValue;
import org.onap.portalsdk.analytics.view.ColumnHeader;
-/*class MetaColumn {
- private String tableId;
- private String dbColName;
- private String crossTabValue;
- private String colName;
- private String displayName;
- private Integer displayWidth;
- private String displayWidthInPxls;
- private String pdfDisplayWidthInPxls;
- private String displayAlignment;
- private String displayHeaderAlignment;
- private int orderSeq;
- private boolean visible;
- private boolean calculated;
- private String colType;
- private String hyperlinkURL;
- private String hyperlinkType;
- private String actionImg;
- private Integer groupByPos;
- private String subTotalCustomText;
- private Boolean hideRepeatedKey;
- private String colFormat;
- private boolean groupBreak;
- private Integer orderBySeq;
- private String orderByAscDesc;
- private String displayTotal;
- private String colOnChart;
- private Integer chartSeq;
- private String chartColor;
- private String chartLineType;
- private Boolean chartSeries;
- private Boolean isRangeAxisFilled;
- private Boolean createInNewChart;
- private String drillDownType;
- private Boolean drillinPoPUp;
- private String drillDownURL;
- private String drillDownParams;
- private String comment;
- private ColFilterList colFilterList;
- private String semaphoreId;
- private String dbColType;
- private String chartGroup;
- private String yAxis;
- private String dependsOnFormField;
- private String nowrap;
- private Integer indentation;
- private Boolean enhancedPagination;
- private Integer level;
- private Integer start;
- private Integer colspan;
- private String dataMiningCol;
- private String colId;
-
- public String getTableId() {
- return tableId;
- }
- public void setTableId(String tableId) {
- this.tableId = tableId;
- }
- public String getDbColName() {
- return dbColName;
- }
- public void setDbColName(String dbColName) {
- this.dbColName = dbColName;
- }
- public String getCrossTabValue() {
- return crossTabValue;
- }
- public void setCrossTabValue(String crossTabValue) {
- this.crossTabValue = crossTabValue;
- }
- public String getColName() {
- return colName;
- }
- public void setColName(String colName) {
- this.colName = colName;
- }
- public String getDisplayName() {
- return displayName;
- }
- public void setDisplayName(String displayName) {
- this.displayName = displayName;
- }
- public Integer getDisplayWidth() {
- return displayWidth;
- }
- public void setDisplayWidth(Integer displayWidth) {
- this.displayWidth = displayWidth;
- }
- public String getDisplayWidthInPxls() {
- return displayWidthInPxls;
- }
- public void setDisplayWidthInPxls(String displayWidthInPxls) {
- this.displayWidthInPxls = displayWidthInPxls;
- }
- public String getPdfDisplayWidthInPxls() {
- return pdfDisplayWidthInPxls;
- }
- public void setPdfDisplayWidthInPxls(String pdfDisplayWidthInPxls) {
- this.pdfDisplayWidthInPxls = pdfDisplayWidthInPxls;
- }
- public String getDisplayAlignment() {
- return displayAlignment;
- }
- public void setDisplayAlignment(String displayAlignment) {
- this.displayAlignment = displayAlignment;
- }
- public String getDisplayHeaderAlignment() {
- return displayHeaderAlignment;
- }
- public void setDisplayHeaderAlignment(String displayHeaderAlignment) {
- this.displayHeaderAlignment = displayHeaderAlignment;
- }
- public int getOrderSeq() {
- return orderSeq;
- }
- public void setOrderSeq(int orderSeq) {
- this.orderSeq = orderSeq;
- }
- public boolean isVisible() {
- return visible;
- }
- public void setVisible(boolean visible) {
- this.visible = visible;
- }
- public boolean isCalculated() {
- return calculated;
- }
- public void setCalculated(boolean calculated) {
- this.calculated = calculated;
- }
- public String getColType() {
- return colType;
- }
- public void setColType(String colType) {
- this.colType = colType;
- }
- public String getHyperlinkURL() {
- return hyperlinkURL;
- }
- public void setHyperlinkURL(String hyperlinkURL) {
- this.hyperlinkURL = hyperlinkURL;
- }
- public String getHyperlinkType() {
- return hyperlinkType;
- }
- public void setHyperlinkType(String hyperlinkType) {
- this.hyperlinkType = hyperlinkType;
- }
- public String getActionImg() {
- return actionImg;
- }
- public void setActionImg(String actionImg) {
- this.actionImg = actionImg;
- }
- public Integer getGroupByPos() {
- return groupByPos;
- }
- public void setGroupByPos(Integer groupByPos) {
- this.groupByPos = groupByPos;
- }
- public String getSubTotalCustomText() {
- return subTotalCustomText;
- }
- public void setSubTotalCustomText(String subTotalCustomText) {
- this.subTotalCustomText = subTotalCustomText;
- }
- public Boolean getHideRepeatedKey() {
- return hideRepeatedKey;
- }
- public void setHideRepeatedKey(Boolean hideRepeatedKey) {
- this.hideRepeatedKey = hideRepeatedKey;
- }
- public String getColFormat() {
- return colFormat;
- }
- public void setColFormat(String colFormat) {
- this.colFormat = colFormat;
- }
- public boolean isGroupBreak() {
- return groupBreak;
- }
- public void setGroupBreak(boolean groupBreak) {
- this.groupBreak = groupBreak;
- }
- public Integer getOrderBySeq() {
- return orderBySeq;
- }
- public void setOrderBySeq(Integer orderBySeq) {
- this.orderBySeq = orderBySeq;
- }
- public String getOrderByAscDesc() {
- return orderByAscDesc;
- }
- public void setOrderByAscDesc(String orderByAscDesc) {
- this.orderByAscDesc = orderByAscDesc;
- }
- public String getDisplayTotal() {
- return displayTotal;
- }
- public void setDisplayTotal(String displayTotal) {
- this.displayTotal = displayTotal;
- }
- public String getColOnChart() {
- return colOnChart;
- }
- public void setColOnChart(String colOnChart) {
- this.colOnChart = colOnChart;
- }
- public Integer getChartSeq() {
- return chartSeq;
- }
- public void setChartSeq(Integer chartSeq) {
- this.chartSeq = chartSeq;
- }
- public String getChartColor() {
- return chartColor;
- }
- public void setChartColor(String chartColor) {
- this.chartColor = chartColor;
- }
- public String getChartLineType() {
- return chartLineType;
- }
- public void setChartLineType(String chartLineType) {
- this.chartLineType = chartLineType;
- }
- public Boolean getChartSeries() {
- return chartSeries;
- }
- public void setChartSeries(Boolean chartSeries) {
- this.chartSeries = chartSeries;
- }
- public Boolean getIsRangeAxisFilled() {
- return isRangeAxisFilled;
- }
- public void setIsRangeAxisFilled(Boolean isRangeAxisFilled) {
- this.isRangeAxisFilled = isRangeAxisFilled;
- }
- public Boolean getCreateInNewChart() {
- return createInNewChart;
- }
- public void setCreateInNewChart(Boolean createInNewChart) {
- this.createInNewChart = createInNewChart;
- }
- public String getDrillDownType() {
- return drillDownType;
- }
- public void setDrillDownType(String drillDownType) {
- this.drillDownType = drillDownType;
- }
- public Boolean getDrillinPoPUp() {
- return drillinPoPUp;
- }
- public void setDrillinPoPUp(Boolean drillinPoPUp) {
- this.drillinPoPUp = drillinPoPUp;
- }
- public String getDrillDownURL() {
- return drillDownURL;
- }
- public void setDrillDownURL(String drillDownURL) {
- this.drillDownURL = drillDownURL;
- }
- public String getDrillDownParams() {
- return drillDownParams;
- }
- public void setDrillDownParams(String drillDownParams) {
- this.drillDownParams = drillDownParams;
- }
- public String getComment() {
- return comment;
- }
- public void setComment(String comment) {
- this.comment = comment;
- }
- public ColFilterList getColFilterList() {
- return colFilterList;
- }
- public void setColFilterList(ColFilterList colFilterList) {
- this.colFilterList = colFilterList;
- }
- public String getSemaphoreId() {
- return semaphoreId;
- }
- public void setSemaphoreId(String semaphoreId) {
- this.semaphoreId = semaphoreId;
- }
- public String getDbColType() {
- return dbColType;
- }
- public void setDbColType(String dbColType) {
- this.dbColType = dbColType;
- }
- public String getChartGroup() {
- return chartGroup;
- }
- public void setChartGroup(String chartGroup) {
- this.chartGroup = chartGroup;
- }
- public String getyAxis() {
- return yAxis;
- }
- public void setyAxis(String yAxis) {
- this.yAxis = yAxis;
- }
- public String getDependsOnFormField() {
- return dependsOnFormField;
- }
- public void setDependsOnFormField(String dependsOnFormField) {
- this.dependsOnFormField = dependsOnFormField;
- }
- public String getNowrap() {
- return nowrap;
- }
- public void setNowrap(String nowrap) {
- this.nowrap = nowrap;
- }
- public Integer getIndentation() {
- return indentation;
- }
- public void setIndentation(Integer indentation) {
- this.indentation = indentation;
- }
- public Boolean getEnhancedPagination() {
- return enhancedPagination;
- }
- public void setEnhancedPagination(Boolean enhancedPagination) {
- this.enhancedPagination = enhancedPagination;
- }
- public Integer getLevel() {
- return level;
- }
- public void setLevel(Integer level) {
- this.level = level;
- }
- public Integer getStart() {
- return start;
- }
- public void setStart(Integer start) {
- this.start = start;
- }
- public Integer getColspan() {
- return colspan;
- }
- public void setColspan(Integer colspan) {
- this.colspan = colspan;
- }
- public String getDataMiningCol() {
- return dataMiningCol;
- }
- public void setDataMiningCol(String dataMiningCol) {
- this.dataMiningCol = dataMiningCol;
- }
- public String getColId() {
- return colId;
- }
- public void setColId(String colId) {
- this.colId = colId;
- }
-
-}*/
-
class FormFieldJSON {
private String fieldId;
private String fieldDisplayName;
private String fieldType;
private String validationType;
private boolean required;
- private Calendar rangeStartDate;
- private Calendar rangeEndDate;
+ private String rangeStartDate;
+ private String rangeEndDate;
+ private String rangeStartDateSQL = null;
+ private String rangeEndDateSQL = null;
private String multiSelectListSize;
private String helpText;
private boolean visible;
private boolean triggerOtherFormFields;
private ArrayList<IdNameValue> formFieldValues;
+ private Integer setOrderBySeq;
+
+ public String getRangeStartDateSQL() {
+ return rangeStartDateSQL;
+ }
+ public void setRangeStartDateSQL(String rangeStartDateSQL) {
+ this.rangeStartDateSQL = rangeStartDateSQL;
+ }
+ public String getRangeEndDateSQL() {
+ return rangeEndDateSQL;
+ }
+ public void setRangeEndDateSQL(String rangeEndDateSQL) {
+ this.rangeEndDateSQL = rangeEndDateSQL;
+ }
+ public Integer getSetOrderBySeq() {
+ return setOrderBySeq;
+ }
+ public void setSetOrderBySeq(Integer setOrderBySeq) {
+ this.setOrderBySeq = setOrderBySeq;
+ }
public String getFieldId() {
return fieldId;
}
@@ -450,16 +109,17 @@ class FormFieldJSON {
public void setRequired(boolean required) {
this.required = required;
}
- public Calendar getRangeStartDate() {
+
+ public String getRangeStartDate() {
return rangeStartDate;
}
- public void setRangeStartDate(Calendar rangeStartDate) {
+ public void setRangeStartDate(String rangeStartDate) {
this.rangeStartDate = rangeStartDate;
}
- public Calendar getRangeEndDate() {
+ public String getRangeEndDate() {
return rangeEndDate;
}
- public void setRangeEndDate(Calendar rangeEndDate) {
+ public void setRangeEndDate(String rangeEndDate) {
this.rangeEndDate = rangeEndDate;
}
public String getMultiSelectListSize() {
@@ -525,6 +185,8 @@ public class ReportJSONRuntime {
private String message;
private boolean hideFormFieldsAfterRun;
private Long totalRunTime;
+ private String reportHeader;
+ private String reportFooter;
public Long getTotalRunTime() {
@@ -697,6 +359,18 @@ public class ReportJSONRuntime {
public void setReportTotalDataRows(ArrayList<Map<String, Object>> reportTotalDataRows) {
this.reportTotalDataRows = reportTotalDataRows;
}
+ public String getReportHeader() {
+ return reportHeader;
+ }
+ public void setReportHeader(String reportHeader) {
+ this.reportHeader = reportHeader;
+ }
+ public String getReportFooter() {
+ return reportFooter;
+ }
+ public void setReportFooter(String reportFooter) {
+ this.reportFooter = reportFooter;
+ }
}
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportRuntime.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportRuntime.java
index 1afd629c..9e228244 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportRuntime.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportRuntime.java
@@ -37,13 +37,16 @@
*/
package org.onap.portalsdk.analytics.model.runtime;
+import java.io.IOException;
import java.io.Serializable;
import java.sql.Connection;
+import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.Enumeration;
+import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -53,11 +56,16 @@ import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import javax.xml.datatype.XMLGregorianCalendar;
+
import org.apache.commons.lang.StringUtils;
-import org.apache.jcs.engine.CacheUtils;
+import org.json.JSONObject;
import org.onap.portalsdk.analytics.error.RaptorException;
+import org.onap.portalsdk.analytics.error.ReportSQLException;
import org.onap.portalsdk.analytics.model.DataCache;
import org.onap.portalsdk.analytics.model.ReportHandler;
import org.onap.portalsdk.analytics.model.ReportLoader;
@@ -66,6 +74,9 @@ import org.onap.portalsdk.analytics.model.base.IdNameSql;
import org.onap.portalsdk.analytics.model.base.IdNameValue;
import org.onap.portalsdk.analytics.model.base.ReportWrapper;
import org.onap.portalsdk.analytics.model.definition.Marker;
+import org.onap.portalsdk.analytics.model.definition.ReportDefinition;
+import org.onap.portalsdk.analytics.model.definition.wizard.QueryResultJSON;
+import org.onap.portalsdk.analytics.model.definition.wizard.RaptorResponse;
import org.onap.portalsdk.analytics.system.AppUtils;
import org.onap.portalsdk.analytics.system.ConnectionUtils;
import org.onap.portalsdk.analytics.system.DbUtils;
@@ -73,9 +84,12 @@ import org.onap.portalsdk.analytics.system.Globals;
import org.onap.portalsdk.analytics.util.AppConstants;
import org.onap.portalsdk.analytics.util.CachingUtils;
import org.onap.portalsdk.analytics.util.DataSet;
+import org.onap.portalsdk.analytics.util.RemDbInfo;
import org.onap.portalsdk.analytics.util.Utils;
+import org.onap.portalsdk.analytics.util.XSSFilter;
import org.onap.portalsdk.analytics.view.ColumnHeader;
import org.onap.portalsdk.analytics.view.ColumnHeaderRow;
+import org.onap.portalsdk.analytics.view.ColumnVisual;
import org.onap.portalsdk.analytics.view.CrossTabOrderManager;
import org.onap.portalsdk.analytics.view.CrossTabTotalValue;
import org.onap.portalsdk.analytics.view.DataRow;
@@ -87,10 +101,17 @@ import org.onap.portalsdk.analytics.xmlobj.DataColumnType;
import org.onap.portalsdk.analytics.xmlobj.FormFieldType;
import org.onap.portalsdk.analytics.xmlobj.ObjectFactory;
import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.onap.portalsdk.core.objectcache.jcs.JCSCacheManager;
import org.onap.portalsdk.core.util.SecurityCodecUtil;
import org.owasp.esapi.ESAPI;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
/**<HR/>
@@ -667,6 +688,8 @@ public class ReportRuntime extends ReportWrapper implements Cloneable, Serializa
setWholeSQL(reportSQL);
cachedSQL = reportSQL;
wholeSQL = reportSQL;
+ String pagedSQL = "";
+ pagedSQL = generatePagedSQL(pageNo, userId, request, false, null);
List reportCols = getAllColumns();
DataColumnType dataColumnRequest = getCrossTabValueColumn();
reportSQL = parseReportSQLForDrillDownParams(reportSQL, dataColumnRequest, request);
@@ -751,7 +774,7 @@ public class ReportRuntime extends ReportWrapper implements Cloneable, Serializa
DataColumnType dct = (DataColumnType) iter.next();
if (nvl(dct.getDrillDownURL()).length() > 0) {
- childReportFormFields = getChildReportFormFields(request,dct.getDrillDownURL());
+ childReportFormFields = getChildReportFormFields(request,AppUtils.getDrillActionURL()+""+dct.getDrillDownURL());
}
if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_ROW)) {
@@ -897,6 +920,8 @@ public class ReportRuntime extends ReportWrapper implements Cloneable, Serializa
v1 = drInFor1.getRowValues();
if(i<dataList.size()-1) {
v2 = ((DataRow)dataList.get(i+1)).getRowValues();
+ } else {
+ v2 = null;
}
for (int j = 0; j < v1.size(); j++) {
if(j==0) {
@@ -2466,6 +2491,164 @@ public List getMapMarkers(ReportData rd, org.onap.portalsdk.analytics.xmlobj.Rep
}
return allowEdit;
}
+
+ public String convertToDate(XMLGregorianCalendar xc) {
+ DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
+ GregorianCalendar gCalendar = xc.toGregorianCalendar();
+ //Converted to date object
+ Date date = gCalendar.getTime();
+ //Formatted to String value
+ String dateString = df.format(date);
+ return dateString;
+ }
+
+ public String convertCalendarToDate(Date xc) {
+ DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
+ String dateString = df.format(xc);
+ return dateString;
+ }
+
+
+
+ public RaptorResponse retrieveDataForGivenQuery( String reQsql, HttpServletRequest request, FormField ff)
+ throws RaptorException {
+ RaptorResponse raptorResponse = new RaptorResponse();
+ String sql = reQsql;
+ String jsonInString = "";
+
+ ServletContext servletContext = request.getSession().getServletContext();
+ if (!Globals.isSystemInitialized()) {
+ Globals.initializeSystem(servletContext);
+ }
+
+
+ if (!sql.trim().toUpperCase().startsWith("SELECT")) {
+ ErrorJSONRuntime errorJSONRuntime = new ErrorJSONRuntime();
+ errorJSONRuntime.setErrormessage("Invalid statement - the SQL must start with the keyword SELECT");
+ errorJSONRuntime.setStacktrace("SQL Error");
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+ try {
+ jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(errorJSONRuntime);
+ raptorResponse.data().put("elements", jsonInString);
+ return raptorResponse;
+
+ } catch (Exception ex) {
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "[Controller.processRequest]Invalid raptor action [retrieveDataForGivenQuery].", ex);
+ }
+ } else {
+ DataSet ds = null;
+
+ String userId = AppUtils.getUserID(request);
+
+ sql = Utils.replaceInString(sql, "[LOGGED_USERID]", userId);
+ sql = Utils.replaceInString(sql, "[USERID]", userId);
+ String[] reqParameters = Globals.getRequestParams().split(",");
+ String[] sessionParameters = Globals.getSessionParams().split(",");
+ javax.servlet.http.HttpSession session = request.getSession();
+ logger.debug(EELFLoggerDelegate.debugLogger, ("B4 testRunSQL " + sql));
+ if (request != null) {
+ for (int i = 0; i < reqParameters.length; i++) {
+ if (!reqParameters[i].startsWith("ff"))
+ sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase() + "]",
+ ESAPI.encoder().encodeForSQL( SecurityCodecUtil.getCodec(),request.getParameter(reqParameters[i].toUpperCase())));
+ else
+ sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase() + "]",
+ ESAPI.encoder().encodeForSQL( SecurityCodecUtil.getCodec(),request.getParameter(reqParameters[i])));
+ }
+ }
+ if (session != null) {
+ for (int i = 0; i < sessionParameters.length; i++) {
+ logger.debug(EELFLoggerDelegate.debugLogger, (" Session " + " sessionParameters[i] "
+ + sessionParameters[i] + " " + (String) session.getAttribute(sessionParameters[i])));
+ sql = Utils.replaceInString(sql, "[" + sessionParameters[i].toUpperCase() + "]",
+ (String) session.getAttribute(sessionParameters[i]));
+ }
+ }
+ logger.debug(EELFLoggerDelegate.debugLogger, ("After testRunSQL " + sql));
+ try {
+
+ ds = ConnectionUtils.getDataSet(sql, ff.getDbInfo(), true);
+
+ QueryResultJSON queryResultJSON = new QueryResultJSON();
+ queryResultJSON.setTotalRows(ds.getRowCount());
+
+ Map<String, String> dvJSON;
+ ArrayList<String> colList = new ArrayList<>();
+ ArrayList<Map<String, String>> reportDataRows = new ArrayList<>();
+ if (!ds.isEmpty()) {
+
+ for (int i = 0; i < ds.getColumnCount(); i++) {
+ colList.add(ds.getColumnName(i));
+ }
+ queryResultJSON.setReportDataColumns(colList);
+ if (queryResultJSON.getTotalRows() > 0) {
+ for (int r = 0; r < Math.min(ds.getRowCount(), 100); r++) {
+ dvJSON = new HashMap<>();
+ for (int c = 0; c < ds.getColumnCount(); c++) {
+ try {
+ dvJSON.put(ds.getColumnName(c), ds.getString(r, c));
+ } catch (Exception ex) {
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "[Controller.processRequest]Invalid raptor action [retrieveDataForGivenQuery].",
+ ex);
+ }
+ }
+ reportDataRows.add(dvJSON);
+
+ }
+ }
+
+ }
+ queryResultJSON.setReportDataRows(reportDataRows);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+ try {
+ jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(queryResultJSON);
+ raptorResponse.data().put("elements", jsonInString);
+ return raptorResponse;
+
+ } catch (Exception ex) {
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "[Controller.processRequest]Invalid raptor action [retrieveDataForGivenQuery]. RaptorException: ",
+ ex);
+ }
+ } catch (ReportSQLException ex) {
+ ErrorJSONRuntime errorJSONRuntime = new ErrorJSONRuntime();
+ if (sql.contains("[")) {
+ errorJSONRuntime.setErrormessage(
+ "Formfield information is present in the query, hence couldn't execute");
+ errorJSONRuntime
+ .setStacktrace("Formfield information is present in the query, hence couldn't execute");
+
+
+ } else {
+ errorJSONRuntime.setErrormessage(ex.getMessage());
+ }
+ ObjectMapper mapper = new ObjectMapper();
+
+ try {
+ jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(errorJSONRuntime);
+ raptorResponse.data().put("elements", jsonInString);
+ return raptorResponse;
+
+ } catch (Exception ex1) {
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "[Controller.processRequest]Invalid raptor action [retrieveDataForGivenQuery].", ex1);
+ }
+ }
+
+ }
+
+ raptorResponse.data().put("elements", jsonInString);
+ return raptorResponse;
+ }
+
public ReportJSONRuntime createReportJSONRuntime(HttpServletRequest request, ReportData rd) {
String userId = AppUtils.getUserID(request);
ObjectMapper mapper = new ObjectMapper();
@@ -2479,6 +2662,8 @@ public List getMapMarkers(ReportData rd, org.onap.portalsdk.analytics.xmlobj.Rep
reportJSONRuntime.setAllowEdit(isAllowEdit(request));
reportJSONRuntime.setColIdxTobeFreezed(getFrozenColumnId());
reportJSONRuntime.setNumFormCols(getNumFormColsAsInt());
+ reportJSONRuntime.setReportHeader(getReportHeader());
+ reportJSONRuntime.setReportFooter(getReportFooter());
reportJSONRuntime.setBackBtnURL("");
String chartType = getChartType();
boolean displayChart = (nvl(chartType).length()>0)&&getDisplayChart();
@@ -2505,6 +2690,50 @@ public List getMapMarkers(ReportData rd, org.onap.portalsdk.analytics.xmlobj.Rep
ffJSON.setHelpText(ff.getHelpText());
ffJSON.setValidationType(ff.getValidationType());
ffJSON.setVisible(ff.isVisible());
+ ffJSON.setSetOrderBySeq(ff.getOrderBySeq());
+ if (ff.getRangeStartDate() != null)
+ ffJSON.setRangeStartDate(convertCalendarToDate(ff.getRangeStartDate().getTime()));
+ if (ff.getRangeEndDate() != null)
+ ffJSON.setRangeEndDate(convertCalendarToDate(ff.getRangeEndDate().getTime()));
+ if (ff.getRangeStartDateSQL() != null) {
+ try {
+ RaptorResponse re = retrieveDataForGivenQuery(ff.getRangeStartDateSQL(), request, ff);
+ QueryResultJSON queryResultJSON = new QueryResultJSON();
+ String resultDate = "";
+ try {
+ JSONObject jsonObj = new JSONObject(re.getData());
+ queryResultJSON = mapper.readValue(jsonObj.getString("elements"), QueryResultJSON.class);
+ resultDate = queryResultJSON.getReportDataRows().get(0).get("ID");
+
+ } catch (Exception e) {
+ resultDate = "";
+ e.printStackTrace();
+ }
+ ffJSON.setRangeStartDateSQL(resultDate);
+ } catch (RaptorException e) {
+ e.printStackTrace();
+ }
+ }
+
+ if (ff.getRangeEndDateSQL() != null) {
+ try {
+ RaptorResponse re = retrieveDataForGivenQuery(ff.getRangeEndDateSQL(), request, ff);
+ QueryResultJSON queryResultJSON = new QueryResultJSON();
+ String resultDate = "";
+ try {
+ JSONObject jsonObj = new JSONObject(re.getData());
+ queryResultJSON = mapper.readValue(jsonObj.getString("elements"), QueryResultJSON.class);
+ resultDate = queryResultJSON.getReportDataRows().get(0).get("ID");
+
+ } catch (Exception e) {
+ resultDate = "";
+ e.printStackTrace();
+ }
+ ffJSON.setRangeEndDateSQL(resultDate);
+ } catch (RaptorException e) {
+ e.printStackTrace();
+ }
+ }
IdNameList lookup = null;
lookup = ff.getLookupList();
String selectedValue = "";
@@ -2654,6 +2883,206 @@ public List getMapMarkers(ReportData rd, org.onap.portalsdk.analytics.xmlobj.Rep
}
+ public ReportJSONRuntime createCrossTabReportJSONRuntime(HttpServletRequest request, ReportData rd) {
+ String userId = AppUtils.getUserID(request);
+ ObjectMapper mapper = new ObjectMapper();
+ ReportJSONRuntime reportJSONRuntime = new ReportJSONRuntime();
+ reportJSONRuntime.setReportTitle(getReportTitle());
+ reportJSONRuntime.setReportID(getReportID());
+ reportJSONRuntime.setReportDescr(getReportDescr());
+ reportJSONRuntime.setReportName(getReportName());
+ reportJSONRuntime.setReportSubTitle(getReportSubTitle());
+ reportJSONRuntime.setAllowSchedule(isAllowSchedule());
+ reportJSONRuntime.setAllowEdit(isAllowEdit(request));
+ reportJSONRuntime.setColIdxTobeFreezed(getFrozenColumnId());
+ reportJSONRuntime.setNumFormCols(getNumFormColsAsInt());
+ reportJSONRuntime.setBackBtnURL("");
+ reportJSONRuntime.setReportHeader(getReportHeader());
+ reportJSONRuntime.setReportFooter(getReportFooter());
+ String chartType = getChartType();
+ boolean displayChart = (nvl(chartType).length()>0)&&getDisplayChart();
+ boolean displayChartWizard = getDisplayChart();
+ reportJSONRuntime.setChartAvailable(displayChart);
+ reportJSONRuntime.setChartWizardAvailable(displayChartWizard);
+ reportJSONRuntime.setDisplayData(!isDisplayOptionHideData());
+ reportJSONRuntime.setDisplayForm(!isDisplayOptionHideForm());
+ reportJSONRuntime.setHideFormFieldsAfterRun(isHideFormFieldAfterRun());
+ reportJSONRuntime.setDisplayExcel(!isDisplayOptionHideExcelIcons());
+ reportJSONRuntime.setDisplayPDF(!isDisplayOptionHidePDFIcons());
+ reportJSONRuntime.setPageSize(getPageSize());
+
+ ArrayList<ColumnHeader> colList = new ArrayList<ColumnHeader>();
+ ArrayList<Map<String,Object>> reportDataRows = new ArrayList<Map<String,Object>>();
+ ArrayList<Map<String,Object>> reportTotalDataRows = new ArrayList<Map<String,Object>>();
+ if(rd != null) {
+ reportJSONRuntime.setTotalRows(getReportDataSize());
+
+ Map<String, Object> dvJSON = null;
+ int commonRowCount = 0;
+ if (rd.getReportDataList().size() > 0) {
+ List reportCols = getAllColumns();
+ List<DataColumnType> listofReportCols = new ArrayList<>();
+ for (Iterator iter = reportCols.iterator(); iter.hasNext();) {
+ DataColumnType dc = (DataColumnType) iter.next();
+ listofReportCols.add(dc);
+ }
+ DataRow drows = (DataRow) rd.getReportDataList().get(0);
+ for (int j = 0; j < drows.getRowValues().size(); j++) {
+ DataValue dVal = drows.getRowValues().get(j);
+ ColumnHeader colHeader = new ColumnHeader();
+ colHeader.setColId(dVal.getColId());
+ colHeader.setColumnTitle(dVal.getDisplayName());
+ DataColumnType matchingObject = listofReportCols.stream()
+ .filter(p -> p.getColId().equals(colHeader.getColId())).findAny().orElse(null);
+
+ if (matchingObject != null)
+ colHeader.setVisible(matchingObject.isVisible());
+ colList.add(colHeader);
+ commonRowCount++;
+ }
+ }
+ /*
+ * System.out.println("commonRowCount: "+commonRowCount); if(getReportDataSize()
+ * > 0) { int count = 0; for(int i =0 ; i < rd.getReportDataList().size() ; i++)
+ * { dvJSON = new HashMap<String,Object>(); DataRow drow = (DataRow)
+ * rd.getReportDataList().get(i); for(int j = 0 ; j<drow.getRowValues().size();
+ * j++) { DataValue dVal = (DataValue) drow.getRowValues().get(j);
+ * dVal.setColId(colList.get(j).getColId());
+ * dvJSON.put(colList.get(j).getColId(), dVal);
+ * System.out.println(dVal.toString()); } reportDataRows.add(dvJSON); } }
+ */
+
+ for (int i = 0; i < rd.getColumnVisuals().size(); i++) {
+ ColumnVisual col = (ColumnVisual) rd.getColumnVisuals().get(i);
+ ColumnHeader colHeader = new ColumnHeader();
+ colHeader.setColId(col.getColId());
+ colHeader.setColumnTitle(col.getColDisplay());
+ colList.add(colHeader);
+ }
+ if(getReportDataSize() > 0) {
+ int count = 0;
+ for(int i =0 ; i < rd.getReportDataList().size() ; i++) {
+ dvJSON = new HashMap<String,Object>();
+ DataRow drow = (DataRow) rd.getReportDataList().get(i);
+ for(int j = 0 ; j<drow.getDataValueList().size(); j++) {
+ DataValue dVal = (DataValue) drow.getDataValueList().get(j);
+ dVal.setColId(colList.get(j+commonRowCount).getColId());
+ dvJSON.put(colList.get(j+commonRowCount).getColId(), dVal);
+ System.out.println(dVal.toString());
+ }
+ for(int j = 0 ; j<drow.getRowValues().size(); j++) {
+ DataValue dVal = (DataValue) drow.getRowValues().get(j);
+ dVal.setColId(colList.get(j).getColId());
+ dvJSON.put(colList.get(j).getColId(), dVal);
+ System.out.println(dVal.toString());
+ }
+ reportDataRows.add(dvJSON);
+ }
+ }
+ }
+ reportJSONRuntime.setReportDataColumns(colList);
+ reportJSONRuntime.setReportDataRows(reportDataRows);
+ ArrayList<FormFieldJSON> formFieldJSONList = new ArrayList<FormFieldJSON>();
+ ArrayList<IdNameValue> formFieldValues = new ArrayList<IdNameValue>();
+
+ if(getReportFormFields()!=null) {
+ formFieldJSONList = new ArrayList<FormFieldJSON>(getReportFormFields().size());
+ for (Iterator iter = getReportFormFields().iterator(); iter.hasNext();) {
+ formFieldValues = new ArrayList<IdNameValue>();
+ FormField ff = (FormField) iter.next();
+ ff.setDbInfo(getDbInfo());
+ FormFieldJSON ffJSON = new FormFieldJSON();
+ ffJSON.setFieldId(ff.getFieldName());
+ ffJSON.setFieldType(ff.getFieldType());
+ ffJSON.setFieldDisplayName(ff.getFieldDisplayName());
+ ffJSON.setHelpText(ff.getHelpText());
+ ffJSON.setValidationType(ff.getValidationType());
+ ffJSON.setVisible(ff.isVisible());
+ IdNameList lookup = null;
+ lookup = ff.getLookupList();
+ String selectedValue = "";
+ String oldSQL = "";
+ IdNameList lookupList = null;
+ boolean readOnly = false;
+ if(lookup!=null && rd == null) {
+ if(!ff.hasPredefinedList) {
+ IdNameSql lu = (IdNameSql) lookup;
+ String SQL = lu.getSql();
+ oldSQL = lu.getSql();
+ setTriggerFormFieldCheck( getReportFormFields(), ff);
+ ffJSON.setTriggerOtherFormFields(ff.isTriggerOtherFormFields());
+ SQL = parseAndFillReq_Session_UserValues(request, SQL, userId);
+ SQL = parseAndFillWithCurrentValues(request, SQL, ff);
+ String defaultSQL = lu.getDefaultSQL();
+ defaultSQL = parseAndFillReq_Session_UserValues(request, defaultSQL, userId);
+ defaultSQL = parseAndFillWithCurrentValues(request, defaultSQL, ff);
+ lookup = new IdNameSql(-1,SQL,defaultSQL);
+
+ lookupList = lookup;
+ try {
+ lookup.loadUserData(0, "", ff.getDbInfo(), ff.getUserId());
+ } catch (Exception e ){ e.printStackTrace();
+ }
+ }
+ lookup.trimToSize();
+
+ String[] requestValue = request.getParameterValues(ff.getFieldName());
+
+ if(lookup != null && lookup.size() > 0) {
+ for (lookup.resetNext(); lookup.hasNext();) {
+ IdNameValue value = lookup.getNext();
+ readOnly = value.isReadOnly();
+ if(requestValue != null && Arrays.asList(requestValue).contains(value.getId())) {
+ value.setDefaultValue(true);
+ } else if (AppUtils.nvl(ff.getDefaultValue()).length()>0) {
+ if(ff.getDefaultValue().equals(value.getId())) {
+ value.setDefaultValue(true);
+ }
+ }
+ if(!(ff.getFieldType().equals(FormField.FFT_CHECK_BOX) || ff.getFieldType().equals(FormField.FFT_COMBO_BOX) || ff.getFieldType().equals(FormField.FFT_LIST_BOX)
+ || ff.getFieldType().equals(FormField.FFT_LIST_MULTI)) && value.isDefaultValue())
+ formFieldValues.add(value);
+ else if(ff.getFieldType().equals(FormField.FFT_CHECK_BOX) || ff.getFieldType().equals(FormField.FFT_COMBO_BOX) || ff.getFieldType().equals(FormField.FFT_LIST_BOX)
+ || ff.getFieldType().equals(FormField.FFT_LIST_MULTI)) {
+ formFieldValues.add(value);
+ }
+
+ }
+ } else {
+ if(requestValue!=null && requestValue.length>0) {
+ IdNameValue value = new IdNameValue(requestValue[0], requestValue[0], true, false);
+ formFieldValues.add(value);
+ }
+ }
+
+ } else {
+ setTriggerFormFieldCheck( getReportFormFields(), ff);
+ ffJSON.setTriggerOtherFormFields(ff.isTriggerOtherFormFields());
+ String[] requestValue = request.getParameterValues(ff.getFieldName());
+ if(requestValue!=null && requestValue.length>0) {
+ IdNameValue value = new IdNameValue(requestValue[0], requestValue[0], true, false);
+ formFieldValues.add(value);
+ } else if (AppUtils.nvl(ff.getDefaultValue()).length()>0) {
+ IdNameValue value = new IdNameValue(ff.getDefaultValue(), ff.getDefaultValue(), true, false);
+ formFieldValues.add(value);
+ }
+ }
+ if(!ff.hasPredefinedList) {
+ if(oldSQL != null && !oldSQL.equals("") && lookup!=null) {
+ ((IdNameSql)lookup).setSQL(oldSQL);
+ }
+ }
+ ffJSON.setFormFieldValues(formFieldValues);
+ formFieldJSONList.add(ffJSON);
+ } // for
+ }
+
+
+ reportJSONRuntime.setFormFieldList(formFieldJSONList);
+ return reportJSONRuntime;
+
+ }
+
public ReportJSONRuntime createFormFieldJSONRuntime(HttpServletRequest request) {
String userId = AppUtils.getUserID(request);
ObjectMapper mapper = new ObjectMapper();