WIP update script for additional data table
This commit is contained in:
@@ -45,6 +45,7 @@ DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`;
|
|||||||
DROP TABLE IF EXISTS `m_code_value`;
|
DROP TABLE IF EXISTS `m_code_value`;
|
||||||
DROP TABLE IF EXISTS `m_code`;
|
DROP TABLE IF EXISTS `m_code`;
|
||||||
DROP TABLE IF EXISTS `r_enum_value`;
|
DROP TABLE IF EXISTS `r_enum_value`;
|
||||||
|
DROP TABLE IF EXISTS `x_registered_table`;
|
||||||
|
|
||||||
-- additional data and report tables
|
-- additional data and report tables
|
||||||
DROP TABLE IF EXISTS `stretchydata_dataset_fields`;
|
DROP TABLE IF EXISTS `stretchydata_dataset_fields`;
|
||||||
@@ -111,6 +112,15 @@ CREATE TABLE `r_enum_value` (
|
|||||||
UNIQUE KEY `enum_value` (`enum_name`, `enum_value`)
|
UNIQUE KEY `enum_value` (`enum_name`, `enum_value`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
/* used to link MySql tables to Mifos X application tables for additional data needs */
|
||||||
|
CREATE TABLE `x_registered_table` (
|
||||||
|
`registered_table_name` varchar(50) NOT NULL,
|
||||||
|
`registered_table_label` varchar(80) NOT NULL,
|
||||||
|
`application_table_name` varchar(50) NOT NULL,
|
||||||
|
PRIMARY KEY (`registered_table_name`),
|
||||||
|
UNIQUE KEY `registered_table_label` (`registered_table_label`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
-- DDL for organisation wide related concepts
|
-- DDL for organisation wide related concepts
|
||||||
CREATE TABLE `m_fund` (
|
CREATE TABLE `m_fund` (
|
||||||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||||
@@ -295,6 +305,7 @@ CREATE TABLE `m_client` (
|
|||||||
`external_id` varchar(100) DEFAULT NULL,
|
`external_id` varchar(100) DEFAULT NULL,
|
||||||
`firstname` varchar(50) DEFAULT NULL,
|
`firstname` varchar(50) DEFAULT NULL,
|
||||||
`lastname` varchar(50) DEFAULT NULL,
|
`lastname` varchar(50) DEFAULT NULL,
|
||||||
|
`display_name` varchar(50) DEFAULT NULL,
|
||||||
`joining_date` date DEFAULT NULL,
|
`joining_date` date DEFAULT NULL,
|
||||||
`createdby_id` bigint(20) DEFAULT NULL,
|
`createdby_id` bigint(20) DEFAULT NULL,
|
||||||
`created_date` datetime DEFAULT NULL,
|
`created_date` datetime DEFAULT NULL,
|
||||||
@@ -302,6 +313,7 @@ CREATE TABLE `m_client` (
|
|||||||
`lastmodifiedby_id` bigint(20) DEFAULT NULL,
|
`lastmodifiedby_id` bigint(20) DEFAULT NULL,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE KEY `external_id` (`external_id`),
|
UNIQUE KEY `external_id` (`external_id`),
|
||||||
|
KEY `display_name` (`display_name`),
|
||||||
KEY `FKCE00CAB3E0DD567A` (`office_id`),
|
KEY `FKCE00CAB3E0DD567A` (`office_id`),
|
||||||
KEY `FKAUD0000000000001` (`createdby_id`),
|
KEY `FKAUD0000000000001` (`createdby_id`),
|
||||||
KEY `FKAUD0000000000002` (`lastmodifiedby_id`),
|
KEY `FKAUD0000000000002` (`lastmodifiedby_id`),
|
||||||
|
|||||||
@@ -91,3 +91,8 @@ VALUES
|
|||||||
(9,1,NULL,'Moustapha','Yattabar','2009-02-18',1,'2012-04-14 10:24:20','2012-04-14 10:24:20',1),
|
(9,1,NULL,'Moustapha','Yattabar','2009-02-18',1,'2012-04-14 10:24:20','2012-04-14 10:24:20',1),
|
||||||
(10,1,NULL,NULL,'Mali fruit sales ltd.','2009-02-18',1,'2012-04-14 10:25:37','2012-04-14 10:25:37',1),
|
(10,1,NULL,NULL,'Mali fruit sales ltd.','2009-02-18',1,'2012-04-14 10:25:37','2012-04-14 10:25:37',1),
|
||||||
(11,1,NULL,NULL,'Djenne co-op group','2009-02-25',1,'2012-04-14 10:31:03','2012-04-14 10:31:03',1);
|
(11,1,NULL,NULL,'Djenne co-op group','2009-02-25',1,'2012-04-14 10:31:03','2012-04-14 10:31:03',1);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
update m_client set display_name = concat_ws(' ',firstname,lastname);
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
/* used to link MySql tables to Mifos X application tables for additional data needs */
|
||||||
|
|
||||||
|
DROP TABLE `x_registered_table`;
|
||||||
|
|
||||||
|
CREATE TABLE `x_registered_table` (
|
||||||
|
`registered_table_name` varchar(50) NOT NULL,
|
||||||
|
`registered_table_label` varchar(80) NOT NULL,
|
||||||
|
`application_table_name` varchar(50) NOT NULL,
|
||||||
|
PRIMARY KEY (`registered_table_name`),
|
||||||
|
UNIQUE KEY `registered_table_label` (`registered_table_label`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
+32
-20
@@ -1,5 +1,6 @@
|
|||||||
package org.mifosng.platform.noncore;
|
package org.mifosng.platform.noncore;
|
||||||
|
|
||||||
|
import java.sql.ResultSetMetaData;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -560,7 +561,6 @@ public class ReadWriteNonCoreDataServiceImpl implements
|
|||||||
columnDefinitions);
|
columnDefinitions);
|
||||||
|
|
||||||
String fkField = applicationTableName.substring(2) + "_id";
|
String fkField = applicationTableName.substring(2) + "_id";
|
||||||
|
|
||||||
String sql = "select ";
|
String sql = "select ";
|
||||||
if (sqlFields != null)
|
if (sqlFields != null)
|
||||||
sql = sql + sqlFields;
|
sql = sql + sqlFields;
|
||||||
@@ -568,41 +568,53 @@ public class ReadWriteNonCoreDataServiceImpl implements
|
|||||||
sql = sql + " * ";
|
sql = sql + " * ";
|
||||||
|
|
||||||
sql = sql + " from " + datatable + " where " + fkField + " = " + id;
|
sql = sql + " from " + datatable + " where " + fkField + " = " + id;
|
||||||
|
|
||||||
if (sqlOrder != null)
|
if (sqlOrder != null)
|
||||||
sql = sql + " order by " + sqlOrder;
|
sql = sql + " order by " + sqlOrder;
|
||||||
logger.info(sql);
|
logger.info(sql);
|
||||||
|
|
||||||
|
List<ResultsetDataRow> result = fillDatatableResultSetDataRows(sql);
|
||||||
//GenericResultsetData result = genericDataService
|
|
||||||
// .fillGenericResultSet(sql);
|
|
||||||
|
|
||||||
long elapsed = System.currentTimeMillis() - startTime;
|
long elapsed = System.currentTimeMillis() - startTime;
|
||||||
logger.info("FINISHING DATATABLE: " + datatable + " Elapsed Time: "
|
logger.info("FINISHING DATATABLE: " + datatable + " Elapsed Time: "
|
||||||
+ elapsed);
|
+ elapsed);
|
||||||
|
|
||||||
return new GenericResultsetData(columnHeaders, new ArrayList<ResultsetDataRow>());
|
return new GenericResultsetData(columnHeaders, result);
|
||||||
|
|
||||||
/*
|
}
|
||||||
List<ResultsetColumnHeader> columnHeaders = getResultsetColumnHeaders(
|
|
||||||
columnDefinitions, sqlErrorMsg);
|
|
||||||
|
|
||||||
String selectFieldList = getSelectFieldListFromColumnHeaders(columnHeaders);
|
|
||||||
|
|
||||||
String sql = "select " + selectFieldList + " from `" + type
|
private List<ResultsetDataRow> fillDatatableResultSetDataRows(final String sql) {
|
||||||
+ "` t left join `" + getFullDatasetName(type, set)
|
|
||||||
+ "` s on s.id = t.id where t.id = " + id;
|
|
||||||
logger.info("addition fields sql: " + sql);
|
|
||||||
|
|
||||||
List<ResultsetDataRow> resultsetDataRows = getResultsetDataRows(
|
String sqlErrorMsg = "Sql: " + sql;
|
||||||
columnHeaders, sql, sqlErrorMsg);
|
CachedRowSet rs = genericDataService.getCachedResultSet(sql, sqlErrorMsg);
|
||||||
|
|
||||||
long elapsed = System.currentTimeMillis() - startTime;
|
List<ResultsetDataRow> resultsetDataRows = new ArrayList<ResultsetDataRow>();
|
||||||
logger.info("FINISHING SET: " + set + " Elapsed Time: " + elapsed);
|
|
||||||
|
|
||||||
return new GenericResultsetData(columnHeaders, resultsetDataRows);
|
try {
|
||||||
*/
|
|
||||||
|
|
||||||
|
ResultSetMetaData rsmd = rs.getMetaData();
|
||||||
|
int columnCount = rsmd.getColumnCount();
|
||||||
|
|
||||||
|
ResultsetDataRow resultsetDataRow;
|
||||||
|
String columnName = null;
|
||||||
|
String columnValue = null;
|
||||||
|
while (rs.next()) {
|
||||||
|
resultsetDataRow = new ResultsetDataRow();
|
||||||
|
List<String> columnValues = new ArrayList<String>();
|
||||||
|
for (int i = 0; i < columnCount; i++) {
|
||||||
|
columnName = rsmd.getColumnName(i + 1);
|
||||||
|
columnValue = rs.getString(columnName);
|
||||||
|
columnValues.add(columnValue);
|
||||||
|
}
|
||||||
|
resultsetDataRow.setRow(columnValues);
|
||||||
|
resultsetDataRows.add(resultsetDataRow);
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultsetDataRows;
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new PlatformDataIntegrityException("error.msg.sql.error",
|
||||||
|
e.getMessage(), sqlErrorMsg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getApplicationTableName(String datatable) {
|
private String getApplicationTableName(String datatable) {
|
||||||
|
|||||||
Reference in New Issue
Block a user