This is an automated email from the ASF dual-hosted git repository.
adamsaghy pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new a9b5f12af7 FINERACT-2421: Modernize SQL query construction using Java
21 Text Blocks and standardize naming (Phase 10)
a9b5f12af7 is described below
commit a9b5f12af7ddd9464e3e6307e085aff1137623ed
Author: Aman Mittal <[email protected]>
AuthorDate: Fri Mar 6 22:58:47 2026 +0530
FINERACT-2421: Modernize SQL query construction using Java 21 Text Blocks
and standardize naming (Phase 10)
---
...ProvisioningEntriesReadPlatformServiceImpl.java | 57 ++++-----
...AccountNumberFormatReadPlatformServiceImpl.java | 16 +--
.../service/BulkImportWorkbookServiceImpl.java | 13 +-
.../EmailCampaignReadPlatformServiceImpl.java | 108 ++++++++---------
.../EmailConfigurationReadPlatformServiceImpl.java | 18 ++-
.../service/EmailReadPlatformServiceImpl.java | 36 +++---
.../campaigns/sms/mapper/SmsCampaignMapper.java | 55 +++++----
.../FineractEntityAccessReadServiceImpl.java | 132 ++++++++++-----------
.../sms/service/SmsReadPlatformServiceImpl.java | 34 +++---
...rovisioningCriteriaReadPlatformServiceImpl.java | 16 +--
.../account/mapper/AccountTransfersMapper.java | 80 ++++++-------
.../AccountTransfersReadPlatformServiceImpl.java | 21 ++--
.../service/LoanReadPlatformServiceImpl.java | 19 +--
.../SavingsAccountReadPlatformServiceImpl.java | 5 +-
.../SelfAccountTransferReadServiceImpl.java | 27 +++--
.../ShareAccountReadPlatformServiceImpl.java | 114 ++++++++----------
.../service/ScorecardReadPlatformServiceImpl.java | 32 ++---
.../FloatingRatesReadPlatformServiceImpl.java | 104 +++++++++-------
18 files changed, 430 insertions(+), 457 deletions(-)
diff --git
a/fineract-accounting/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java
b/fineract-accounting/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java
index bd2bf8ad61..d34c559719 100644
---
a/fineract-accounting/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java
+++
b/fineract-accounting/src/main/java/org/apache/fineract/accounting/provisioning/service/ProvisioningEntriesReadPlatformServiceImpl.java
@@ -114,11 +114,11 @@ public class ProvisioningEntriesReadPlatformServiceImpl
implements ProvisioningE
private static final class ProvisioningEntryDataMapper implements
RowMapper<ProvisioningEntryData> {
- private final StringBuilder sqlQuery = new StringBuilder()
- .append(" entry.id, entry.journal_entry_created,
entry.createdby_id, entry.created_date, created.username as createduser,")
- .append("entry.lastmodifiedby_id, modified.username as
modifieduser, entry.lastmodified_date ")
- .append("from m_provisioning_history entry ").append("left
JOIN m_appuser created ON created.id = entry.createdby_id ")
- .append("left JOIN m_appuser modified ON modified.id =
entry.lastmodifiedby_id ");
+ private static final String PROVISIONING_ENTRY_SCHEMA = """
+ entry.id, entry.journal_entry_created, entry.createdby_id,
entry.created_date, created.username as createduser,
+ entry.lastmodifiedby_id, modified.username as modifieduser,
entry.lastmodified_date
+ from m_provisioning_history entry left JOIN m_appuser created
ON created.id = entry.createdby_id
+ left JOIN m_appuser modified ON modified.id =
entry.lastmodifiedby_id\s""";
@Override
@SuppressWarnings("unused")
@@ -138,22 +138,22 @@ public class ProvisioningEntriesReadPlatformServiceImpl
implements ProvisioningE
}
public String getSchema() {
- return sqlQuery.toString();
+ return PROVISIONING_ENTRY_SCHEMA;
}
}
private static final class LoanProductProvisioningEntryRowMapper
implements RowMapper<LoanProductProvisioningEntryData> {
- private final StringBuilder sqlQuery = new StringBuilder().append(
- " entry.id, entry.history_id as historyId, office_id,
entry.criteria_id as criteriaid, office.name as officename, product.name as
productname, entry.product_id, ")
- .append("category_id, category.category_name, liability.id as
liabilityid, liability.gl_code as liabilitycode, liability.name as
liabilityname, ")
- .append("expense.id as expenseid, expense.gl_code as
expensecode, expense.name as expensename, entry.currency_code,
entry.overdue_in_days, entry.reseve_amount from
m_loanproduct_provisioning_entry entry ")
- .append("left join m_office office ON office.id =
entry.office_id ")
- .append("left join m_product_loan product ON product.id =
entry.product_id ")
- .append("left join m_provision_category category ON
category.id = entry.category_id ")
- .append("left join acc_gl_account liability ON liability.id =
entry.liability_account ")
- .append("left join acc_gl_account expense ON expense.id =
entry.expense_account ");
+ private static final String LOAN_PRODUCT_PROVISIONING_ENTRY_SCHEMA =
"""
+ entry.id, entry.history_id as historyId, office_id,
entry.criteria_id as criteriaid, office.name as officename, product.name as
productname, entry.product_id,
+ category_id, category.category_name, liability.id as
liabilityid, liability.gl_code as liabilitycode, liability.name as
liabilityname,
+ expense.id as expenseid, expense.gl_code as expensecode,
expense.name as expensename, entry.currency_code, entry.overdue_in_days,
entry.reseve_amount from m_loanproduct_provisioning_entry entry
+ left join m_office office ON office.id = entry.office_id
+ left join m_product_loan product ON product.id =
entry.product_id
+ left join m_provision_category category ON category.id =
entry.category_id
+ left join acc_gl_account liability ON liability.id =
entry.liability_account
+ left join acc_gl_account expense ON expense.id =
entry.expense_account\s""";
@Override
@SuppressWarnings("unused")
@@ -185,19 +185,19 @@ public class ProvisioningEntriesReadPlatformServiceImpl
implements ProvisioningE
}
public String getSchema() {
- return sqlQuery.toString();
+ return LOAN_PRODUCT_PROVISIONING_ENTRY_SCHEMA;
}
}
private static final class ProvisioningEntryDataMapperWithSumReserved
implements RowMapper<ProvisioningEntryData> {
- private final StringBuilder sqlQuery = new StringBuilder()
- .append(" entry.id, journal_entry_created, createdby_id,
created_date, created.username as createduser,")
- .append("lastmodifiedby_id, modified.username as modifieduser,
lastmodified_date, SUM(reserved.reseve_amount) as totalreserved ")
- .append("from m_provisioning_history entry ")
- .append("JOIN m_loanproduct_provisioning_entry reserved on
entry.id = reserved.history_id ")
- .append("left JOIN m_appuser created ON created.id =
entry.createdby_id ")
- .append("left JOIN m_appuser modified ON modified.id =
entry.lastmodifiedby_id ");
+ private static final String PROVISIONING_ENTRY_SUM_RESERVED_SCHEMA =
"""
+ entry.id, journal_entry_created, createdby_id, created_date,
created.username as createduser,
+ lastmodifiedby_id, modified.username as modifieduser,
lastmodified_date, SUM(reserved.reseve_amount) as totalreserved
+ from m_provisioning_history entry
+ JOIN m_loanproduct_provisioning_entry reserved on entry.id =
reserved.history_id
+ left JOIN m_appuser created ON created.id = entry.createdby_id
+ left JOIN m_appuser modified ON modified.id =
entry.lastmodifiedby_id\s""";
@Override
@SuppressWarnings("unused")
@@ -217,7 +217,7 @@ public class ProvisioningEntriesReadPlatformServiceImpl
implements ProvisioningE
}
public String getSchema() {
- return sqlQuery.toString();
+ return PROVISIONING_ENTRY_SUM_RESERVED_SCHEMA;
}
}
@@ -286,9 +286,10 @@ public class ProvisioningEntriesReadPlatformServiceImpl
implements ProvisioningE
private static final class ProvisioningEntryIdDateRowMapper implements
RowMapper<ProvisioningEntryData> {
- StringBuilder buff = new StringBuilder().append("select history1.id,
history1.created_date from m_provisioning_history history1 ")
- .append("where history1.created_date = (select
max(history2.created_date) from m_provisioning_history history2 ")
- .append("where history2.journal_entry_created='1')");
+ private static final String PROVISIONING_ENTRY_ID_DATE_SCHEMA = """
+ select history1.id, history1.created_date from
m_provisioning_history history1
+ where history1.created_date = (select
max(history2.created_date) from m_provisioning_history history2
+ where history2.journal_entry_created='1')\s""";
@Override
public ProvisioningEntryData mapRow(ResultSet rs, int rowNum) throws
SQLException {
@@ -306,7 +307,7 @@ public class ProvisioningEntriesReadPlatformServiceImpl
implements ProvisioningE
}
public String schema() {
- return buff.toString();
+ return PROVISIONING_ENTRY_ID_DATE_SCHEMA;
}
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatReadPlatformServiceImpl.java
index 308ee6cee7..03bdae55d9 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/accountnumberformat/service/AccountNumberFormatReadPlatformServiceImpl.java
@@ -54,20 +54,14 @@ public class AccountNumberFormatReadPlatformServiceImpl
implements AccountNumber
private static final class AccountNumberFormatMapper implements
RowMapper<AccountNumberFormatData> {
- private final String schema;
+ private static final String ACCOUNT_NUMBER_FORMAT_SCHEMA = """
+ anf.id as id, anf.account_type_enum as accountTypeEnum,
anf.prefix_type_enum as prefixTypeEnum, anf.prefix_character as prefixCharacter
+ from c_account_number_format anf\s""";
- AccountNumberFormatMapper() {
- final StringBuilder builder = new StringBuilder(400);
-
- builder.append(
- " anf.id as id, anf.account_type_enum as accountTypeEnum,
anf.prefix_type_enum as prefixTypeEnum, anf.prefix_character as
prefixCharacter");
- builder.append(" from c_account_number_format anf ");
-
- this.schema = builder.toString();
- }
+ AccountNumberFormatMapper() {}
public String schema() {
- return this.schema;
+ return ACCOUNT_NUMBER_FORMAT_SCHEMA;
}
@Override
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookServiceImpl.java
index 78cf8d35cd..221115c176 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/service/BulkImportWorkbookServiceImpl.java
@@ -227,13 +227,14 @@ public class BulkImportWorkbookServiceImpl implements
BulkImportWorkbookService
private static final class ImportMapper implements RowMapper<ImportData> {
+ private static final String IMPORT_SCHEMA = """
+ i.id as id, i.document_id as documentId, d.name as name,
i.import_time as importTime, i.end_time as endTime,
+ i.completed as completed, i.total_records as totalRecords,
i.success_count as successCount,
+ i.failure_count as failureCount, i.createdby_id as createdBy
+ from m_import_document i inner join m_document d on
i.document_id=d.id where i.entity_type= ?\s""";
+
public String schema() {
- final StringBuilder sql = new StringBuilder();
- sql.append("i.id as id, i.document_id as documentId, d.name as
name, i.import_time as importTime, i.end_time as endTime, ")
- .append("i.completed as completed, i.total_records as
totalRecords, i.success_count as successCount, ")
- .append("i.failure_count as failureCount, i.createdby_id
as createdBy ")
- .append("from m_import_document i inner join m_document d
on i.document_id=d.id ").append("where i.entity_type= ? ");
- return sql.toString();
+ return IMPORT_SCHEMA;
}
@Override
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java
index ce0aee75c6..8067ea08ac 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java
@@ -63,45 +63,41 @@ public class EmailCampaignReadPlatformServiceImpl
implements EmailCampaignReadPl
private static final class EmailCampaignMapper implements
RowMapper<EmailCampaignData> {
- final String schema;
-
- private EmailCampaignMapper() {
- final StringBuilder sql = new StringBuilder(400);
- sql.append("ec.id as id, ");
- sql.append("ec.campaign_name as campaignName, ");
- sql.append("ec.campaign_type as campaignType, ");
- sql.append("ec.business_rule_id as businessRuleId, ");
- sql.append("ec.email_subject as emailSubject, ");
- sql.append("ec.email_message as emailMessage, ");
- sql.append("ec.email_attachment_file_format as
emailAttachmentFileFormat, ");
- sql.append("sr.id as stretchyReportId, ");
- sql.append("sr.report_name as reportName, sr.report_type as
reportType, sr.report_subtype as reportSubType, ");
- sql.append("sr.report_category as reportCategory, sr.report_sql as
reportSql, sr.description as reportDescription, ");
- sql.append("sr.core_report as coreReport, sr.use_report as
useReport, ");
- sql.append("ec.stretchy_report_param_map as
stretchyReportParamMap, ");
- sql.append("ec.param_value as paramValue, ");
- sql.append("ec.status_enum as statusEnum, ");
- sql.append("ec.recurrence as recurrence, ");
- sql.append("ec.recurrence_start_date as recurrenceStartDate, ");
- sql.append("ec.next_trigger_date as nextTriggerDate, ");
- sql.append("ec.last_trigger_date as lastTriggerDate, ");
- sql.append("ec.submittedon_date as submittedOnDate, ");
- sql.append("sbu.username as submittedByUsername, ");
- sql.append("ec.closedon_date as closedOnDate, ");
- sql.append("clu.username as closedByUsername, ");
- sql.append("acu.username as activatedByUsername, ");
- sql.append("ec.approvedon_date as activatedOnDate ");
- sql.append("from scheduled_email_campaign ec ");
- sql.append("left join m_appuser sbu on sbu.id =
ec.submittedon_userid ");
- sql.append("left join m_appuser acu on acu.id =
ec.approvedon_userid ");
- sql.append("left join m_appuser clu on clu.id = ec.closedon_userid
");
- sql.append("left join stretchy_report sr on ec.stretchy_report_id
= sr.id");
-
- this.schema = sql.toString();
- }
+ private static final String EMAIL_CAMPAIGN_SCHEMA = """
+ ec.id as id,
+ ec.campaign_name as campaignName,
+ ec.campaign_type as campaignType,
+ ec.business_rule_id as businessRuleId,
+ ec.email_subject as emailSubject,
+ ec.email_message as emailMessage,
+ ec.email_attachment_file_format as emailAttachmentFileFormat,
+ sr.id as stretchyReportId,
+ sr.report_name as reportName, sr.report_type as reportType,
sr.report_subtype as reportSubType,
+ sr.report_category as reportCategory, sr.report_sql as
reportSql, sr.description as reportDescription,
+ sr.core_report as coreReport, sr.use_report as useReport,
+ ec.stretchy_report_param_map as stretchyReportParamMap,
+ ec.param_value as paramValue,
+ ec.status_enum as statusEnum,
+ ec.recurrence as recurrence,
+ ec.recurrence_start_date as recurrenceStartDate,
+ ec.next_trigger_date as nextTriggerDate,
+ ec.last_trigger_date as lastTriggerDate,
+ ec.submittedon_date as submittedOnDate,
+ sbu.username as submittedByUsername,
+ ec.closedon_date as closedOnDate,
+ clu.username as closedByUsername,
+ acu.username as activatedByUsername,
+ ec.approvedon_date as activatedOnDate
+ from scheduled_email_campaign ec
+ left join m_appuser sbu on sbu.id = ec.submittedon_userid
+ left join m_appuser acu on acu.id = ec.approvedon_userid
+ left join m_appuser clu on clu.id = ec.closedon_userid
+ left join stretchy_report sr on ec.stretchy_report_id =
sr.id\s""";
+
+ private EmailCampaignMapper() {}
public String schema() {
- return this.schema;
+ return EMAIL_CAMPAIGN_SCHEMA;
}
@Override
@@ -144,28 +140,24 @@ public class EmailCampaignReadPlatformServiceImpl
implements EmailCampaignReadPl
private static final class BusinessRuleMapper implements
ResultSetExtractor<List<EmailBusinessRulesData>> {
- final String schema;
-
- private BusinessRuleMapper() {
- final StringBuilder sql = new StringBuilder(300);
- sql.append("sr.id as id, ");
- sql.append("sr.report_name as reportName, ");
- sql.append("sr.report_type as reportType, ");
- sql.append("sr.report_subtype as reportSubType, ");
- sql.append("sr.description as description, ");
- sql.append("sp.parameter_variable as params, ");
- sql.append("sp.parameter_FormatType as paramType, ");
- sql.append("sp.parameter_label as paramLabel, ");
- sql.append("sp.parameter_name as paramName ");
- sql.append("from stretchy_report sr ");
- sql.append("left join stretchy_report_parameter as srp on
srp.report_id = sr.id ");
- sql.append("left join stretchy_parameter as sp on sp.id =
srp.parameter_id ");
-
- this.schema = sql.toString();
- }
+ private static final String BUSINESS_RULE_SCHEMA = """
+ sr.id as id,
+ sr.report_name as reportName,
+ sr.report_type as reportType,
+ sr.report_subtype as reportSubType,
+ sr.description as description,
+ sp.parameter_variable as params,
+ sp.parameter_FormatType as paramType,
+ sp.parameter_label as paramLabel,
+ sp.parameter_name as paramName
+ from stretchy_report sr
+ left join stretchy_report_parameter as srp on srp.report_id =
sr.id
+ left join stretchy_parameter as sp on sp.id =
srp.parameter_id\s""";
+
+ private BusinessRuleMapper() {}
public String schema() {
- return this.schema;
+ return BUSINESS_RULE_SCHEMA;
}
@Override
@@ -238,7 +230,7 @@ public class EmailCampaignReadPlatformServiceImpl
implements EmailCampaignReadPl
public EmailCampaignData retrieveOne(Long resourceId) {
final boolean isVisible = true;
try {
- final String sql = "select " + this.emailCampaignMapper.schema + "
where ec.id = ? and ec.is_visible = ?";
+ final String sql = "select " + this.emailCampaignMapper.schema() +
" where ec.id = ? and ec.is_visible = ?";
return this.jdbcTemplate.queryForObject(sql,
this.emailCampaignMapper, new Object[] { resourceId, isVisible }); // NOSONAR
} catch (final EmptyResultDataAccessException e) {
throw new EmailCampaignNotFound(resourceId, e);
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java
index 2c274607db..4b30d7eaa9 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java
@@ -46,20 +46,16 @@ public class EmailConfigurationReadPlatformServiceImpl
implements EmailConfigura
private static final class EmailConfigurationRowMapper implements
RowMapper<EmailConfigurationData> {
- final String schema;
+ private static final String EMAIL_CONFIGURATION_SCHEMA = """
+ cnf.id as id,
+ cnf.name as name,
+ cnf.value as value
+ from scheduled_email_configuration cnf\s""";
- EmailConfigurationRowMapper() {
- final StringBuilder sql = new StringBuilder(300);
- sql.append("cnf.id as id, ");
- sql.append("cnf.name as name, ");
- sql.append("cnf.value as value ");
- sql.append("from scheduled_email_configuration cnf");
-
- this.schema = sql.toString();
- }
+ EmailConfigurationRowMapper() {}
public String schema() {
- return this.schema;
+ return EMAIL_CONFIGURATION_SCHEMA;
}
@Override
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java
index 955ca561f6..e52bc00b45 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java
@@ -52,28 +52,24 @@ public class EmailReadPlatformServiceImpl implements
EmailReadPlatformService {
private static final class EmailMapper implements RowMapper<EmailData> {
- final String schema;
-
- EmailMapper() {
- final StringBuilder sql = new StringBuilder(300);
- sql.append(" emo.id as id, ");
- sql.append("emo.group_id as groupId, ");
- sql.append("emo.client_id as clientId, ");
- sql.append("emo.staff_id as staffId, ");
- sql.append("emo.campaign_name as campaignName, ");
- sql.append("emo.status_enum as statusId, ");
- sql.append("emo.email_address as emailAddress, ");
- sql.append("emo.submittedon_date as sentDate, ");
- sql.append("emo.email_subject as emailSubject, ");
- sql.append("emo.message as message, ");
- sql.append("emo.error_message as errorMessage ");
- sql.append("from " + tableName() + " emo");
-
- this.schema = sql.toString();
- }
+ private static final String EMAIL_SCHEMA = """
+ emo.id as id,
+ emo.group_id as groupId,
+ emo.client_id as clientId,
+ emo.staff_id as staffId,
+ emo.campaign_name as campaignName,
+ emo.status_enum as statusId,
+ emo.email_address as emailAddress,
+ emo.submittedon_date as sentDate,
+ emo.email_subject as emailSubject,
+ emo.message as message,
+ emo.error_message as errorMessage
+ from scheduled_email_messages_outbound emo\s""";
+
+ EmailMapper() {}
public String schema() {
- return this.schema;
+ return EMAIL_SCHEMA;
}
public String tableName() {
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/mapper/SmsCampaignMapper.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/mapper/SmsCampaignMapper.java
index 588c96de10..e6bff53053 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/mapper/SmsCampaignMapper.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/mapper/SmsCampaignMapper.java
@@ -48,34 +48,33 @@ public class SmsCampaignMapper implements
RowMapper<SmsCampaignData> {
}
private String buildCampaignColumn() {
- final StringBuilder sql = new StringBuilder(400);
- sql.append("sc.id as id, ");
- sql.append("sc.campaign_name as campaignName, ");
- sql.append("sc.campaign_type as campaignType, ");
- sql.append("sc.campaign_trigger_type as triggerType, ");
- sql.append("sc.report_id as runReportId, ");
- sql.append("sc.message as message, ");
- sql.append("sc.param_value as paramValue, ");
- sql.append("sc.status_enum as status, ");
- sql.append("sc.recurrence as recurrence, ");
- sql.append("sc.recurrence_start_date as recurrenceStartDate, ");
- sql.append("sc.next_trigger_date as nextTriggerDate, ");
- sql.append("sc.last_trigger_date as lastTriggerDate, ");
- sql.append("sc.submittedon_date as submittedOnDate, ");
- sql.append("sbu.username as submittedByUsername, ");
- sql.append("sc.closedon_date as closedOnDate, ");
- sql.append("clu.username as closedByUsername, ");
- sql.append("acu.username as activatedByUsername, ");
- sql.append("sc.approvedon_date as activatedOnDate, ");
- sql.append("sr.report_name as reportName, ");
- sql.append("provider_id as providerId, ");
- sql.append("sc.is_notification as isNotification ");
- sql.append("from sms_campaign sc ");
- sql.append("left join m_appuser sbu on sbu.id = sc.submittedon_userid
");
- sql.append("left join m_appuser acu on acu.id = sc.approvedon_userid
");
- sql.append("left join m_appuser clu on clu.id = sc.closedon_userid ");
- sql.append("left join stretchy_report sr on sr.id = sc.report_id ");
- return sql.toString();
+ return """
+ sc.id as id,
+ sc.campaign_name as campaignName,
+ sc.campaign_type as campaignType,
+ sc.campaign_trigger_type as triggerType,
+ sc.report_id as runReportId,
+ sc.message as message,
+ sc.param_value as paramValue,
+ sc.status_enum as status,
+ sc.recurrence as recurrence,
+ sc.recurrence_start_date as recurrenceStartDate,
+ sc.next_trigger_date as nextTriggerDate,
+ sc.last_trigger_date as lastTriggerDate,
+ sc.submittedon_date as submittedOnDate,
+ sbu.username as submittedByUsername,
+ sc.closedon_date as closedOnDate,
+ clu.username as closedByUsername,
+ acu.username as activatedByUsername,
+ sc.approvedon_date as activatedOnDate,
+ sr.report_name as reportName,
+ provider_id as providerId,
+ sc.is_notification as isNotification
+ from sms_campaign sc
+ left join m_appuser sbu on sbu.id = sc.submittedon_userid
+ left join m_appuser acu on acu.id = sc.approvedon_userid
+ left join m_appuser clu on clu.id = sc.closedon_userid
+ left join stretchy_report sr on sr.id = sc.report_id\s""";
}
@Override
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/service/FineractEntityAccessReadServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/service/FineractEntityAccessReadServiceImpl.java
index 22c1c0b3c5..767a768e2f 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/service/FineractEntityAccessReadServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/entityaccess/service/FineractEntityAccessReadServiceImpl.java
@@ -135,13 +135,14 @@ public class FineractEntityAccessReadServiceImpl
implements FineractEntityAccess
@SuppressFBWarnings("SLF4J_SIGN_ONLY_FORMAT")
private String getSQLForRetriveEntityAccessFor() {
- StringBuilder str = new StringBuilder("select eem.rel_id as
relId,eem.from_id as fromId, ");
- str.append("eem.to_id as toId, eem.start_date as startDate,
eem.end_date as endDate ");
- str.append("from m_entity_to_entity_mapping eem ");
- str.append("where eem.rel_id = ? ");
- str.append("and eem.from_id = ? ");
- LOG.debug("{}", str);
- return str.toString();
+ final String sql = """
+ select eem.rel_id as relId,eem.from_id as fromId,
+ eem.to_id as toId, eem.start_date as startDate, eem.end_date
as endDate
+ from m_entity_to_entity_mapping eem
+ where eem.rel_id = ?
+ and eem.from_id = ?\s""";
+ LOG.debug("{}", sql);
+ return sql;
}
@Override
@@ -186,10 +187,10 @@ public class FineractEntityAccessReadServiceImpl
implements FineractEntityAccess
private static final class EntityRelationMapper implements
RowMapper<FineractEntityRelationData> {
- private final StringBuilder sqlBuilder = new StringBuilder("select id
as id,code_name as mapping_Types from m_entity_relation ");
+ private static final String ENTITY_RELATION_SCHEMA = "select id as
id,code_name as mapping_Types from m_entity_relation ";
public String schema() {
- return this.sqlBuilder.toString();
+ return ENTITY_RELATION_SCHEMA;
}
@Override
@@ -221,19 +222,16 @@ public class FineractEntityAccessReadServiceImpl
implements FineractEntityAccess
private static final class GetOneEntityMapper implements
RowMapper<FineractEntityToEntityMappingData> {
- private final String schema;
+ private static final String GET_ONE_ENTITY_SCHEMA = """
+ select eem.rel_id as relId,
+ eem.from_id as fromId,eem.to_Id as toId,eem.start_date as
startDate,eem.end_date as endDate
+ from m_entity_to_entity_mapping eem
+ where eem.id= ?\s""";
- GetOneEntityMapper() {
-
- StringBuilder str = new StringBuilder("select eem.rel_id as relId,
");
- str.append("eem.from_id as fromId,eem.to_Id as toId,eem.start_date
as startDate,eem.end_date as endDate ");
- str.append("from m_entity_to_entity_mapping eem ");
- str.append("where eem.id= ? ");
- this.schema = str.toString();
- }
+ GetOneEntityMapper() {}
public String schema() {
- return this.schema;
+ return GET_ONE_ENTITY_SCHEMA;
}
@Override
@@ -254,58 +252,54 @@ public class FineractEntityAccessReadServiceImpl
implements FineractEntityAccess
private static final class EntityToEntityMapper implements
RowMapper<FineractEntityToEntityMappingData> {
- private final String schema;
-
- EntityToEntityMapper() {
-
- StringBuilder str = new StringBuilder("select eem.id as mapId, ");
- str.append("eem.rel_id as relId, ");
- str.append("eem.from_id as from_id, ");
- str.append("eem.to_id as to_id, ");
- str.append("eem.start_date as startDate, ");
- str.append("eem.end_date as endDate, ");
- str.append("case er.code_name ");
- str.append("when 'office_access_to_loan_products' then ");
- str.append("o.name ");
- str.append("when 'office_access_to_savings_products' then ");
- str.append("o.name ");
- str.append("when 'office_access_to_fees/charges' then ");
- str.append("o.name ");
- str.append("when 'role_access_to_loan_products' then ");
- str.append("r.name ");
- str.append("when 'role_access_to_savings_products' then ");
- str.append("r.name ");
- str.append("end as from_name, ");
- str.append("case er.code_name ");
- str.append("when 'office_access_to_loan_products' then ");
- str.append("lp.name ");
- str.append("when 'office_access_to_savings_products' then ");
- str.append("sp.name ");
- str.append("when 'office_access_to_fees/charges' then ");
- str.append("charge.name ");
- str.append("when 'role_access_to_loan_products' then ");
- str.append("lp.name ");
- str.append("when 'role_access_to_savings_products' then ");
- str.append("sp.name ");
- str.append("end as to_name, ");
- str.append("er.code_name ");
- str.append("from m_entity_to_entity_mapping eem ");
- str.append("join m_entity_relation er on eem.rel_id = er.id ");
- str.append("left join m_office o on er.from_entity_type = 1 and
eem.from_id = o.id ");
- str.append("left join m_role r on er.from_entity_type = 5 and
eem.from_id = r.id ");
- str.append("left join m_product_loan lp on er.to_entity_type = 2
and eem.to_id = lp.id ");
- str.append("left join m_savings_product sp on er.to_entity_type =
3 and eem.to_id = sp.id ");
- str.append("left join m_charge charge on er.to_entity_type = 4 and
eem.to_id = charge.id ");
- str.append("where ");
- str.append("er.id = ? and ");
- str.append("( ? = 0 or from_id = ? ) and ");
- str.append("( ? = 0 or to_id = ? ) ");
-
- this.schema = str.toString();
- }
+ private static final String ENTITY_TO_ENTITY_SCHEMA = """
+ select eem.id as mapId,
+ eem.rel_id as relId,
+ eem.from_id as from_id,
+ eem.to_id as to_id,
+ eem.start_date as startDate,
+ eem.end_date as endDate,
+ case er.code_name
+ when 'office_access_to_loan_products' then
+ o.name
+ when 'office_access_to_savings_products' then
+ o.name
+ when 'office_access_to_fees/charges' then
+ o.name
+ when 'role_access_to_loan_products' then
+ r.name
+ when 'role_access_to_savings_products' then
+ r.name
+ end as from_name,
+ case er.code_name
+ when 'office_access_to_loan_products' then
+ lp.name
+ when 'office_access_to_savings_products' then
+ sp.name
+ when 'office_access_to_fees/charges' then
+ charge.name
+ when 'role_access_to_loan_products' then
+ lp.name
+ when 'role_access_to_savings_products' then
+ sp.name
+ end as to_name,
+ er.code_name
+ from m_entity_to_entity_mapping eem
+ join m_entity_relation er on eem.rel_id = er.id
+ left join m_office o on er.from_entity_type = 1 and
eem.from_id = o.id
+ left join m_role r on er.from_entity_type = 5 and eem.from_id
= r.id
+ left join m_product_loan lp on er.to_entity_type = 2 and
eem.to_id = lp.id
+ left join m_savings_product sp on er.to_entity_type = 3 and
eem.to_id = sp.id
+ left join m_charge charge on er.to_entity_type = 4 and
eem.to_id = charge.id
+ where
+ er.id = ? and
+ ( ? = 0 or from_id = ? ) and
+ ( ? = 0 or to_id = ? )\s""";
+
+ EntityToEntityMapper() {}
public String schema() {
- return this.schema;
+ return ENTITY_TO_ENTITY_SCHEMA;
}
@Override
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/service/SmsReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/service/SmsReadPlatformServiceImpl.java
index eb1c4a8169..57ad8ba6c9 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/service/SmsReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/sms/service/SmsReadPlatformServiceImpl.java
@@ -62,27 +62,23 @@ public class SmsReadPlatformServiceImpl implements
SmsReadPlatformService {
private static final class SmsMapper implements RowMapper<SmsData> {
- final String schema;
-
- SmsMapper() {
- final StringBuilder sql = new StringBuilder(300);
- sql.append("smo.id as id, ");
- sql.append("smo.group_id as groupId, ");
- sql.append("smo.client_id as clientId, ");
- sql.append("smo.staff_id as staffId, ");
- sql.append("smo.status_enum as statusId, ");
- sql.append("smo.mobile_no as mobileNo, ");
- sql.append("smo.message as message, ");
- sql.append("smc.provider_id as providerId, ");
- sql.append("smc.campaign_name as campaignName ");
- sql.append("from sms_messages_outbound smo ");
- sql.append("join sms_campaign smc on smc.id = smo.campaign_id ");
-
- this.schema = sql.toString();
- }
+ private static final String SMS_SCHEMA = """
+ smo.id as id,
+ smo.group_id as groupId,
+ smo.client_id as clientId,
+ smo.staff_id as staffId,
+ smo.status_enum as statusId,
+ smo.mobile_no as mobileNo,
+ smo.message as message,
+ smc.provider_id as providerId,
+ smc.campaign_name as campaignName
+ from sms_messages_outbound smo
+ join sms_campaign smc on smc.id = smo.campaign_id\s""";
+
+ SmsMapper() {}
public String schema() {
- return this.schema;
+ return SMS_SCHEMA;
}
public String tableName() {
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/service/ProvisioningCriteriaReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/service/ProvisioningCriteriaReadPlatformServiceImpl.java
index dc837b13db..a75d5576d2 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/service/ProvisioningCriteriaReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/organisation/provisioning/service/ProvisioningCriteriaReadPlatformServiceImpl.java
@@ -121,13 +121,13 @@ public class ProvisioningCriteriaReadPlatformServiceImpl
implements Provisioning
private static final class ProvisioningCriteriaDefinitionRowMapper
implements RowMapper<ProvisioningCriteriaDefinitionData> {
- private final StringBuilder sqlQuery = new StringBuilder()
- .append("pc.id, pc.criteria_id, pc.category_id,
mpc.category_name, pc.min_age, pc.max_age, ")
- .append("pc.provision_percentage, pc.liability_account,
pc.expense_account, lia.gl_code as liabilitycode, expe.gl_code as expensecode,
")
- .append("lia.name as liabilityname, expe.name as expensename
").append("from m_provisioning_criteria_definition as pc ")
- .append("LEFT JOIN acc_gl_account lia ON lia.id =
pc.liability_account ")
- .append("LEFT JOIN acc_gl_account expe ON expe.id =
pc.expense_account ")
- .append("LEFT JOIN m_provision_category mpc ON mpc.id =
pc.category_id");
+ private static final String PROVISIONING_CRITERIA_DEFINITION_SCHEMA =
"""
+ pc.id, pc.criteria_id, pc.category_id, mpc.category_name,
pc.min_age, pc.max_age,
+ pc.provision_percentage, pc.liability_account,
pc.expense_account, lia.gl_code as liabilitycode, expe.gl_code as expensecode,
+ lia.name as liabilityname, expe.name as expensename from
m_provisioning_criteria_definition as pc
+ LEFT JOIN acc_gl_account lia ON lia.id = pc.liability_account
+ LEFT JOIN acc_gl_account expe ON expe.id = pc.expense_account
+ LEFT JOIN m_provision_category mpc ON mpc.id =
pc.category_id\s""";
@Override
public ProvisioningCriteriaDefinitionData mapRow(final ResultSet rs,
@SuppressWarnings("unused") final int rowNum)
@@ -153,7 +153,7 @@ public class ProvisioningCriteriaReadPlatformServiceImpl
implements Provisioning
}
public String schema() {
- return sqlQuery.toString();
+ return PROVISIONING_CRITERIA_DEFINITION_SCHEMA;
}
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/mapper/AccountTransfersMapper.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/mapper/AccountTransfersMapper.java
index 4263b4e4d4..2f241819d4 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/mapper/AccountTransfersMapper.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/mapper/AccountTransfersMapper.java
@@ -37,50 +37,46 @@ import org.springframework.stereotype.Component;
@Component
public final class AccountTransfersMapper implements
RowMapper<AccountTransferData> {
- private final String schemaSql;
-
- public AccountTransfersMapper() {
- final StringBuilder sqlBuilder = new StringBuilder(400);
- sqlBuilder.append("att.id as id, att.is_reversed as isReversed,");
- sqlBuilder.append("att.transaction_date as transferDate, att.amount as
transferAmount,");
- sqlBuilder.append("att.description as transferDescription,");
- sqlBuilder.append("att.currency_code as currencyCode,
att.currency_digits as currencyDigits,");
- sqlBuilder.append("att.currency_multiplesof as inMultiplesOf, ");
- sqlBuilder.append("curr.name as currencyName,
curr.internationalized_name_code as currencyNameCode, ");
- sqlBuilder.append("curr.display_symbol as currencyDisplaySymbol, ");
- sqlBuilder.append("fromoff.id as fromOfficeId, fromoff.name as
fromOfficeName,");
- sqlBuilder.append("tooff.id as toOfficeId, tooff.name as
toOfficeName,");
- sqlBuilder.append("fromclient.id as fromClientId,
fromclient.display_name as fromClientName,");
- sqlBuilder.append("toclient.id as toClientId, toclient.display_name as
toClientName,");
- sqlBuilder.append("fromsavacc.id as fromSavingsAccountId,
fromsavacc.account_no as fromSavingsAccountNo,");
- sqlBuilder.append("fromloanacc.id as fromLoanAccountId,
fromloanacc.account_no as fromLoanAccountNo,");
- sqlBuilder.append("tosavacc.id as toSavingsAccountId,
tosavacc.account_no as toSavingsAccountNo,");
- sqlBuilder.append("toloanacc.id as toLoanAccountId,
toloanacc.account_no as toLoanAccountNo,");
- sqlBuilder.append("fromsavtran.id as
fromSavingsAccountTransactionId,");
- sqlBuilder.append("fromsavtran.transaction_type_enum as
fromSavingsAccountTransactionType,");
- sqlBuilder.append("tosavtran.id as toSavingsAccountTransactionId,");
- sqlBuilder.append("tosavtran.transaction_type_enum as
toSavingsAccountTransactionType");
- sqlBuilder.append(" FROM m_account_transfer_transaction att ");
- sqlBuilder.append("left join m_account_transfer_details atd on atd.id
= att.account_transfer_details_id ");
- sqlBuilder.append("join m_currency curr on curr.code =
att.currency_code ");
- sqlBuilder.append("join m_office fromoff on fromoff.id =
atd.from_office_id ");
- sqlBuilder.append("join m_office tooff on tooff.id = atd.to_office_id
");
- sqlBuilder.append("join m_client fromclient on fromclient.id =
atd.from_client_id ");
- sqlBuilder.append("join m_client toclient on toclient.id =
atd.to_client_id ");
- sqlBuilder.append("left join m_savings_account fromsavacc on
fromsavacc.id = atd.from_savings_account_id ");
- sqlBuilder.append("left join m_loan fromloanacc on fromloanacc.id =
atd.from_loan_account_id ");
- sqlBuilder.append("left join m_savings_account tosavacc on tosavacc.id
= atd.to_savings_account_id ");
- sqlBuilder.append("left join m_loan toloanacc on toloanacc.id =
atd.to_loan_account_id ");
- sqlBuilder.append("left join m_savings_account_transaction fromsavtran
on fromsavtran.id = att.from_savings_transaction_id ");
- sqlBuilder.append("left join m_savings_account_transaction tosavtran
on tosavtran.id = att.to_savings_transaction_id ");
- sqlBuilder.append("left join m_loan_transaction fromloantran on
fromloantran.id = att.from_savings_transaction_id ");
- sqlBuilder.append("left join m_loan_transaction toloantran on
toloantran.id = att.to_savings_transaction_id ");
-
- this.schemaSql = sqlBuilder.toString();
- }
+ private static final String ACCOUNT_TRANSFER_SCHEMA = """
+ att.id as id, att.is_reversed as isReversed,
+ att.transaction_date as transferDate, att.amount as transferAmount,
+ att.description as transferDescription,
+ att.currency_code as currencyCode, att.currency_digits as
currencyDigits,
+ att.currency_multiplesof as inMultiplesOf,
+ curr.name as currencyName, curr.internationalized_name_code as
currencyNameCode,
+ curr.display_symbol as currencyDisplaySymbol,
+ fromoff.id as fromOfficeId, fromoff.name as fromOfficeName,
+ tooff.id as toOfficeId, tooff.name as toOfficeName,
+ fromclient.id as fromClientId, fromclient.display_name as
fromClientName,
+ toclient.id as toClientId, toclient.display_name as toClientName,
+ fromsavacc.id as fromSavingsAccountId, fromsavacc.account_no as
fromSavingsAccountNo,
+ fromloanacc.id as fromLoanAccountId, fromloanacc.account_no as
fromLoanAccountNo,
+ tosavacc.id as toSavingsAccountId, tosavacc.account_no as
toSavingsAccountNo,
+ toloanacc.id as toLoanAccountId, toloanacc.account_no as
toLoanAccountNo,
+ fromsavtran.id as fromSavingsAccountTransactionId,
+ fromsavtran.transaction_type_enum as
fromSavingsAccountTransactionType,
+ tosavtran.id as toSavingsAccountTransactionId,
+ tosavtran.transaction_type_enum as toSavingsAccountTransactionType
+ FROM m_account_transfer_transaction att
+ left join m_account_transfer_details atd on atd.id =
att.account_transfer_details_id
+ join m_currency curr on curr.code = att.currency_code
+ join m_office fromoff on fromoff.id = atd.from_office_id
+ join m_office tooff on tooff.id = atd.to_office_id
+ join m_client fromclient on fromclient.id = atd.from_client_id
+ join m_client toclient on toclient.id = atd.to_client_id
+ left join m_savings_account fromsavacc on fromsavacc.id =
atd.from_savings_account_id
+ left join m_loan fromloanacc on fromloanacc.id =
atd.from_loan_account_id
+ left join m_savings_account tosavacc on tosavacc.id =
atd.to_savings_account_id
+ left join m_loan toloanacc on toloanacc.id = atd.to_loan_account_id
+ left join m_savings_account_transaction fromsavtran on
fromsavtran.id = att.from_savings_transaction_id
+ left join m_savings_account_transaction tosavtran on tosavtran.id
= att.to_savings_transaction_id
+ left join m_loan_transaction fromloantran on fromloantran.id =
att.from_savings_transaction_id
+ left join m_loan_transaction toloantran on toloantran.id =
att.to_savings_transaction_id\s""";
+
+ public AccountTransfersMapper() {}
public String schema() {
- return this.schemaSql;
+ return ACCOUNT_TRANSFER_SCHEMA;
}
@Override
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java
index b7cbd2e38b..91e04a2bba 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java
@@ -412,15 +412,16 @@ public class AccountTransfersReadPlatformServiceImpl
implements AccountTransfers
@Override
public BigDecimal getTotalTransactionAmount(Long accountId, Integer
accountType, LocalDate transactionDate) {
- StringBuilder sqlBuilder = new StringBuilder(" select
sum(trans.amount) as totalTransactionAmount ");
- sqlBuilder.append(" from m_account_transfer_details as det ");
- sqlBuilder.append(" inner join m_account_transfer_transaction as trans
");
- sqlBuilder.append(" on det.id = trans.account_transfer_details_id ");
- sqlBuilder.append(" where trans.is_reversed = false ");
- sqlBuilder.append(" and trans.transaction_date = ? ");
- sqlBuilder.append(" and IF(1=?, det.from_loan_account_id = ?,
det.from_savings_account_id = ?) ");
-
- return this.jdbcTemplate.queryForObject(sqlBuilder.toString(),
BigDecimal.class, DATE_TIME_FORMATTER.format(transactionDate),
- accountType, accountId, accountId);
+ final String sql = """
+ select sum(trans.amount) as totalTransactionAmount
+ from m_account_transfer_details as det
+ inner join m_account_transfer_transaction as trans
+ on det.id = trans.account_transfer_details_id
+ where trans.is_reversed = false
+ and trans.transaction_date = ?
+ and IF(1=?, det.from_loan_account_id = ?,
det.from_savings_account_id = ?)\s""";
+
+ return this.jdbcTemplate.queryForObject(sql, BigDecimal.class,
DATE_TIME_FORMATTER.format(transactionDate), accountType, accountId,
+ accountId);
}
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
index 89985f9eb0..893d80aef7 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
@@ -2049,16 +2049,17 @@ public class LoanReadPlatformServiceImpl implements
LoanReadPlatformService, Loa
@Override
public Collection<Long>
retrieveLoanIdsWithPendingIncomePostingTransactions() {
LocalDate currentdate = DateUtils.getBusinessLocalDate();
- StringBuilder sqlBuilder = new StringBuilder().append(" select
distinct loan.id from m_loan as loan ").append(
- " inner join m_loan_recalculation_details as recdet on
(recdet.loan_id = loan.id and recdet.is_compounding_to_be_posted_as_transaction
is not null and recdet.is_compounding_to_be_posted_as_transaction = true) ")
- .append(" inner join m_loan_repayment_schedule as repsch on
repsch.loan_id = loan.id ")
- .append(" inner join
m_loan_interest_recalculation_additional_details as adddet on
adddet.loan_repayment_schedule_id = repsch.id ")
- .append(" left join m_loan_transaction as trans on
(trans.is_reversed <> true and trans.transaction_type_enum = 19 and
trans.loan_id = loan.id and trans.transaction_date = adddet.effective_date) ")
- .append(" where loan.loan_status_id = 300 ").append(" and
loan.is_npa = false and loan.is_charged_off = false ")
- .append(" and adddet.effective_date is not null ").append("
and trans.transaction_date is null ")
- .append(" and adddet.effective_date < ? ");
+ final String sql = """
+ select distinct loan.id from m_loan as loan
+ inner join m_loan_recalculation_details as recdet on
(recdet.loan_id = loan.id and recdet.is_compounding_to_be_posted_as_transaction
is not null and recdet.is_compounding_to_be_posted_as_transaction = true)
+ inner join m_loan_repayment_schedule as repsch on
repsch.loan_id = loan.id
+ inner join m_loan_interest_recalculation_additional_details as
adddet on adddet.loan_repayment_schedule_id = repsch.id
+ left join m_loan_transaction as trans on (trans.is_reversed <>
true and trans.transaction_type_enum = 19 and trans.loan_id = loan.id and
trans.transaction_date = adddet.effective_date)
+ where loan.loan_status_id = 300 and loan.is_npa = false and
loan.is_charged_off = false
+ and adddet.effective_date is not null and
trans.transaction_date is null
+ and adddet.effective_date < ?\s""";
try {
- return this.jdbcTemplate.queryForList(sqlBuilder.toString(),
Long.class, new Object[] { currentdate });
+ return this.jdbcTemplate.queryForList(sql, Long.class, new
Object[] { currentdate });
} catch (final EmptyResultDataAccessException e) {
return null;
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java
index fb1031e953..1a10287ed2 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java
@@ -1391,8 +1391,9 @@ public class SavingsAccountReadPlatformServiceImpl
implements SavingsAccountRead
@Override
public List<Long> getAccountsIdsByStatusPaged(Integer status, int
pageSize, Long maxSavingsIdInList) {
- String sql = new StringBuilder().append(" SELECT sa.id FROM
m_savings_account sa ")
- .append(" where sa.id > ? and sa.status_enum = ? ").append("
order by sa.id limit ?").toString();
+ final String sql = """
+ SELECT sa.id FROM m_savings_account sa
+ where sa.id > ? and sa.status_enum = ? order by sa.id limit
?\s""";
try {
return this.jdbcTemplate.queryForList(sql, Long.class, new
Object[] { maxSavingsIdInList, status, pageSize });
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/service/SelfAccountTransferReadServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/service/SelfAccountTransferReadServiceImpl.java
index ea0fc832cd..ca88bf6a13 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/service/SelfAccountTransferReadServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/service/SelfAccountTransferReadServiceImpl.java
@@ -35,19 +35,20 @@ public class SelfAccountTransferReadServiceImpl implements
SelfAccountTransferRe
@Override
public Collection<SelfAccountTemplateData>
retrieveSelfAccountTemplateData(AppUser user) {
SelfAccountTemplateMapper mapper = new SelfAccountTemplateMapper();
- StringBuilder sql = new StringBuilder().append("select s.id as
accountId, ").append("s.account_no as accountNo, ")
- .append("2 as accountType, ").append("c.id as clientId,
").append("c.display_name as clientName, ")
- .append("o.id as officeId, ").append("o.name as officeName
").append("from m_appuser as u ")
- .append("inner join m_selfservice_user_client_mapping as map
on u.id = map.appuser_id ")
- .append("inner join m_client as c on map.client_id = c.id
").append("inner join m_office as o on c.office_id = o.id ")
- .append("inner join m_savings_account as s on s.client_id =
c.id ").append("where u.id = ? ")
- .append("and s.status_enum = 300 ").append("union
").append("select l.id as accountId, ")
- .append("l.account_no as accountNo, ").append("1 as
accountType, ").append("c.id as clientId, ")
- .append("c.display_name as clientName, ").append("o.id as
officeId, ").append("o.name as officeName ")
- .append("from m_appuser as u ").append("inner join
m_selfservice_user_client_mapping as map on u.id = map.appuser_id ")
- .append("inner join m_client as c on map.client_id = c.id
").append("inner join m_office as o on c.office_id = o.id ")
- .append("inner join m_loan as l on l.client_id = c.id
").append("where u.id = ? ").append("and l.loan_status_id = 300 ");
- return this.jdbcTemplate.query(sql.toString(), mapper, new Object[] {
user.getId(), user.getId() });
+ final String sql = """
+ select s.id as accountId, s.account_no as accountNo,
+ 2 as accountType, c.id as clientId, c.display_name as
clientName,
+ o.id as officeId, o.name as officeName from m_appuser as u
+ inner join m_selfservice_user_client_mapping as map on u.id =
map.appuser_id
+ inner join m_client as c on map.client_id = c.id inner join
m_office as o on c.office_id = o.id
+ inner join m_savings_account as s on s.client_id = c.id where
u.id = ?
+ and s.status_enum = 300 union select l.id as accountId,
+ l.account_no as accountNo, 1 as accountType, c.id as clientId,
+ c.display_name as clientName, o.id as officeId, o.name as
officeName
+ from m_appuser as u inner join
m_selfservice_user_client_mapping as map on u.id = map.appuser_id
+ inner join m_client as c on map.client_id = c.id inner join
m_office as o on c.office_id = o.id
+ inner join m_loan as l on l.client_id = c.id where u.id = ?
and l.loan_status_id = 300\s""";
+ return this.jdbcTemplate.query(sql, mapper, new Object[] {
user.getId(), user.getId() });
}
private static final class SelfAccountTemplateMapper implements
RowMapper<SelfAccountTemplateData> {
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java
index 7124ff7894..2f7d851814 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java
@@ -235,42 +235,41 @@ public class ShareAccountReadPlatformServiceImpl
implements ShareAccountReadPlat
private final Collection<ShareAccountChargeData> charges;
private final Collection<ShareAccountTransactionData> purchasedShares;
- private final String schema;
+ private static final String SHARE_ACCOUNT_SCHEMA = """
+ sa.id as id, sa.external_id as externalId, sa.status_enum as
statusEnum,
+ sa.savings_account_id, msa.account_no as savingsAccNo,
+ c.id as clientId, c.display_name as clientName,
+ sa.account_no as accountNo, sa.total_approved_shares as
approvedShares, sa.total_pending_shares as pendingShares,
+ sa.savings_account_id as savingsAccountNo,
sa.minimum_active_period_frequency as minimumactivePeriod,
+ sa.minimum_active_period_frequency_enum as
minimumactivePeriodEnum,
+ sa.lockin_period_frequency as lockinPeriod,
sa.lockin_period_frequency_enum as lockinPeriodEnum,
+ sa.allow_dividends_inactive_clients as
allowdividendsforinactiveclients,
+ sa.submitted_date as submittedDate, sbu.username as
submittedByUsername,
+ sbu.firstname as submittedByFirstname, sbu.lastname as
submittedByLastname,
+ sa.rejected_date as rejectedDate, rbu.username as
rejectedByUsername,
+ rbu.firstname as rejectedByFirstname, rbu.lastname as
rejectedByLastname,
+ sa.approved_date as approvedDate, abu.username as
approvedByUsername,
+ abu.firstname as approvedByFirstname, abu.lastname as
approvedByLastname,
+ sa.activated_date as activatedDate, avbu.username as
activatedByUsername,
+ avbu.firstname as activatedByFirstname, avbu.lastname as
activatedByLastname,
+ sa.closed_date as closedDate, cbu.username as closedByUsername,
+ cbu.firstname as closedByFirstname, cbu.lastname as
closedByLastname,
+ sa.currency_code as currencyCode, sa.currency_digits as
currencyDigits, sa.currency_multiplesof as inMultiplesOf,
+ curr.name as currencyName, curr.internationalized_name_code as
currencyNameCode,
+ curr.display_symbol as currencyDisplaySymbol, sa.product_id as
productId, p.name as productName, p.short_name as shortProductName
+ from m_share_account sa join m_share_product as p on p.id =
sa.product_id
+ join m_currency curr on curr.code = sa.currency_code left join
m_client c ON c.id = sa.client_id
+ left join m_appuser sbu on sbu.id = sa.submitted_userid
+ left join m_appuser rbu on rbu.id = sa.rejected_userid
+ left join m_appuser abu on abu.id = sa.approved_userid
+ left join m_appuser avbu on rbu.id = sa.activated_userid
+ left join m_appuser cbu on cbu.id = sa.closed_userid
+ left join m_savings_account msa on sa.savings_account_id =
msa.id\s""";
ShareAccountMapper(final Collection<ShareAccountChargeData> charges,
final Collection<ShareAccountTransactionData> purchasedShares)
{
this.charges = charges;
this.purchasedShares = purchasedShares;
- StringBuilder buff = new StringBuilder().append("sa.id as id,
sa.external_id as externalId, sa.status_enum as statusEnum, ")
- .append("sa.savings_account_id, msa.account_no as
savingsAccNo, ")
- .append("c.id as clientId, c.display_name as clientName, ")
- .append("sa.account_no as accountNo,
sa.total_approved_shares as approvedShares, sa.total_pending_shares as
pendingShares, ")
- .append("sa.savings_account_id as savingsAccountNo,
sa.minimum_active_period_frequency as minimumactivePeriod, ")
- .append("sa.minimum_active_period_frequency_enum as
minimumactivePeriodEnum, ")
- .append("sa.lockin_period_frequency as lockinPeriod,
sa.lockin_period_frequency_enum as lockinPeriodEnum, ")
- .append("sa.allow_dividends_inactive_clients as
allowdividendsforinactiveclients, ")
- .append("sa.submitted_date as submittedDate, sbu.username
as submittedByUsername, ")
- .append("sbu.firstname as submittedByFirstname,
sbu.lastname as submittedByLastname, ")
- .append("sa.rejected_date as rejectedDate, rbu.username as
rejectedByUsername, ")
- .append("rbu.firstname as rejectedByFirstname,
rbu.lastname as rejectedByLastname, ")
- .append("sa.approved_date as approvedDate, abu.username as
approvedByUsername, ")
- .append("abu.firstname as approvedByFirstname,
abu.lastname as approvedByLastname, ")
- .append("sa.activated_date as activatedDate, avbu.username
as activatedByUsername, ")
- .append("avbu.firstname as activatedByFirstname,
avbu.lastname as activatedByLastname, ")
- .append("sa.closed_date as closedDate, cbu.username as
closedByUsername, ")
- .append("cbu.firstname as closedByFirstname, cbu.lastname
as closedByLastname, ")
- .append("sa.currency_code as currencyCode,
sa.currency_digits as currencyDigits, sa.currency_multiplesof as inMultiplesOf,
")
- .append("curr.name as currencyName,
curr.internationalized_name_code as currencyNameCode, ")
- .append("curr.display_symbol as currencyDisplaySymbol,
sa.product_id as productId, p.name as productName, p.short_name as
shortProductName ")
- .append("from m_share_account sa ").append("join
m_share_product as p on p.id = sa.product_id ")
- .append("join m_currency curr on curr.code =
sa.currency_code ").append("left join m_client c ON c.id = sa.client_id ")
- .append("left join m_appuser sbu on sbu.id =
sa.submitted_userid ")
- .append("left join m_appuser rbu on rbu.id =
sa.rejected_userid ")
- .append("left join m_appuser abu on abu.id =
sa.approved_userid ")
- .append("left join m_appuser avbu on rbu.id =
sa.activated_userid ")
- .append("left join m_appuser cbu on cbu.id =
sa.closed_userid ")
- .append("left join m_savings_account msa on
sa.savings_account_id = msa.id ");
- this.schema = buff.toString();
}
@Override
@@ -356,7 +355,7 @@ public class ShareAccountReadPlatformServiceImpl implements
ShareAccountReadPlat
}
public String schema() {
- return this.schema;
+ return SHARE_ACCOUNT_SCHEMA;
}
}
@@ -366,17 +365,15 @@ public class ShareAccountReadPlatformServiceImpl
implements ShareAccountReadPlat
final PurchasedSharesDataRowMapper purchasedSharesDataRowMapper = new
PurchasedSharesDataRowMapper();
ShareAccountMapperForDividents() {
- StringBuilder sb = new StringBuilder();
-
- sb.append("sa.id as id, sa.status_enum as statusEnum, ");
- sb.append("c.id as clientId, c.display_name as clientName, ");
- sb.append("sa.account_no as accountNo, ");
- sb.append("sa.currency_code as currencyCode, sa.currency_digits as
currencyDigits, sa.currency_multiplesof as inMultiplesOf, ");
- sb.append(purchasedSharesDataRowMapper.schema());
- sb.append(" from m_share_account sa ");
- sb.append(" join m_client c ON c.id = sa.client_id ");
- sb.append(" join m_share_account_transactions saps ON
saps.account_id = sa.id ");
- schema = sb.toString();
+ schema = """
+ sa.id as id, sa.status_enum as statusEnum,
+ c.id as clientId, c.display_name as clientName,
+ sa.account_no as accountNo,
+ sa.currency_code as currencyCode, sa.currency_digits as
currencyDigits, sa.currency_multiplesof as inMultiplesOf,\s"""
+ + purchasedSharesDataRowMapper.schema() + """
+ from m_share_account sa
+ join m_client c ON c.id = sa.client_id
+ join m_share_account_transactions saps ON
saps.account_id = sa.id\s""";
}
@Override
@@ -427,16 +424,12 @@ public class ShareAccountReadPlatformServiceImpl
implements ShareAccountReadPlat
private static final class PurchasedSharesDataRowMapper implements
RowMapper<ShareAccountTransactionData> {
- private final String schema;
-
- PurchasedSharesDataRowMapper() {
- StringBuilder buff = new StringBuilder().append(
- "saps.id as purchasedId, saps.account_id as accountId,
saps.transaction_date as transactionDate, saps.total_shares as purchasedShares,
saps.unit_price as unitPrice, ")
- .append("saps.status_enum as purchaseStatus,
saps.type_enum as purchaseType, saps.amount as amount, saps.charge_amount as
chargeamount, ")
- .append("saps.amount_paid as amountPaid ");
+ private static final String PURCHASED_SHARES_SCHEMA = """
+ saps.id as purchasedId, saps.account_id as accountId,
saps.transaction_date as transactionDate, saps.total_shares as purchasedShares,
saps.unit_price as unitPrice,
+ saps.status_enum as purchaseStatus, saps.type_enum as
purchaseType, saps.amount as amount, saps.charge_amount as chargeamount,
+ saps.amount_paid as amountPaid\s""";
- schema = buff.toString();
- }
+ PurchasedSharesDataRowMapper() {}
@Override
public ShareAccountTransactionData mapRow(ResultSet rs,
@SuppressWarnings("unused") int rowNum) throws SQLException {
@@ -457,21 +450,18 @@ public class ShareAccountReadPlatformServiceImpl
implements ShareAccountReadPlat
}
public String schema() {
- return this.schema;
+ return PURCHASED_SHARES_SCHEMA;
}
}
private static final class ShareAccountDividendRowMapper implements
RowMapper<ShareAccountDividendData> {
- private final String schema;
+ private static final String SHARE_ACCOUNT_DIVIDEND_SCHEMA = """
+ spdp.created_date, sadd.id, sadd.amount,
sadd.savings_transaction_id, sadd.status
+ from m_share_account_dividend_details sadd
+ JOIN m_share_product_dividend_pay_out spdp ON spdp.id =
sadd.dividend_pay_out_id\s""";
- ShareAccountDividendRowMapper() {
- StringBuilder buff = new StringBuilder()
- .append("spdp.created_date, sadd.id, sadd.amount,
sadd.savings_transaction_id, sadd.status ")
- .append(" from m_share_account_dividend_details sadd ")
- .append("JOIN m_share_product_dividend_pay_out spdp ON
spdp.id = sadd.dividend_pay_out_id ");
- schema = buff.toString();
- }
+ ShareAccountDividendRowMapper() {}
@SuppressWarnings("unused")
@Override
@@ -487,7 +477,7 @@ public class ShareAccountReadPlatformServiceImpl implements
ShareAccountReadPlat
}
public String schema() {
- return this.schema;
+ return SHARE_ACCOUNT_DIVIDEND_SCHEMA;
}
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/spm/service/ScorecardReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/spm/service/ScorecardReadPlatformServiceImpl.java
index d458ff12c0..094bcac720 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/spm/service/ScorecardReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/spm/service/ScorecardReadPlatformServiceImpl.java
@@ -39,16 +39,16 @@ public class ScorecardReadPlatformServiceImpl implements
ScorecardReadPlatformSe
private static final class ScorecardMapper implements
RowMapper<ScorecardData> {
+ private static final String SCORECARD_SCHEMA = """
+ sc.id as id, sc.survey_id as surveyId, s.a_name as surveyName,
+ sc.client_id as clientId,
+ sc.user_id as userId, user.username as username
+ from m_survey_scorecards sc
+ left join m_surveys s ON s.id = sc.survey_id
+ left join m_appuser user ON user.id = sc.user_id\s""";
+
public String schema() {
- StringBuilder sb = new StringBuilder(50);
- sb.append(" sc.id as id, sc.survey_id as surveyId, s.a_name as
surveyName, ");
- sb.append(" sc.client_id as clientId,");
- sb.append(" sc.user_id as userId, user.username as username ");
- sb.append(" from m_survey_scorecards sc ");
- sb.append(" left join m_surveys s ON s.id = sc.survey_id ");
- sb.append(" left join m_appuser user ON user.id = sc.user_id ");
-
- return sb.toString();
+ return SCORECARD_SCHEMA;
}
@Override
@@ -67,14 +67,14 @@ public class ScorecardReadPlatformServiceImpl implements
ScorecardReadPlatformSe
private static final class ScorecardValueMapper implements
RowMapper<ScorecardValue> {
- public String schema() {
- StringBuilder sb = new StringBuilder(50);
- sb.append(" sc.question_id as questionId, sc.response_id as
responseId, ");
- sb.append(" sc.created_on as createdOn, sc.a_value as value ");
- sb.append(" from m_survey_scorecards sc ");
- sb.append(" where sc.survey_id = ? and sc.client_id = ? ");
+ private static final String SCORECARD_VALUE_SCHEMA = """
+ sc.question_id as questionId, sc.response_id as responseId,
+ sc.created_on as createdOn, sc.a_value as value
+ from m_survey_scorecards sc
+ where sc.survey_id = ? and sc.client_id = ?\s""";
- return sb.toString();
+ public String schema() {
+ return SCORECARD_VALUE_SCHEMA;
}
@Override
diff --git
a/fineract-rates/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java
b/fineract-rates/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java
index 1c097cb188..ee1a66b044 100644
---
a/fineract-rates/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java
+++
b/fineract-rates/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java
@@ -97,13 +97,14 @@ public class FloatingRatesReadPlatformServiceImpl
implements FloatingRatesReadPl
private final boolean addRatePeriods;
- private final StringBuilder sqlQuery = new
StringBuilder().append("rate.id as id, ").append("rate.name as name, ")
- .append("rate.is_base_lending_rate as isBaseLendingRate,
").append("rate.is_active as isActive, ")
- .append("crappu.username as createdBy,
").append("rate.created_date as createdOn, ")
- .append("rate.created_on_utc as createdOnUTC,
").append("moappu.username as modifiedBy, ")
- .append("rate.lastmodified_date as modifiedOn,
").append("rate.last_modified_on_utc as modifiedOnUTC ")
- .append("FROM m_floating_rates as rate ").append("LEFT JOIN
m_appuser as crappu on rate.created_by = crappu.id ")
- .append("LEFT JOIN m_appuser as moappu on
rate.last_modified_by = moappu.id ");
+ private static final String FLOATING_RATE_SCHEMA = """
+ rate.id as id, rate.name as name,
+ rate.is_base_lending_rate as isBaseLendingRate, rate.is_active
as isActive,
+ crappu.username as createdBy, rate.created_date as createdOn,
+ rate.created_on_utc as createdOnUTC, moappu.username as
modifiedBy,
+ rate.lastmodified_date as modifiedOn,
rate.last_modified_on_utc as modifiedOnUTC
+ FROM m_floating_rates as rate LEFT JOIN m_appuser as crappu on
rate.created_by = crappu.id
+ LEFT JOIN m_appuser as moappu on rate.last_modified_by =
moappu.id\s""";
FloatingRateRowMapper(final boolean addRatePeriods) {
this.addRatePeriods = addRatePeriods;
@@ -135,21 +136,22 @@ public class FloatingRatesReadPlatformServiceImpl
implements FloatingRatesReadPl
}
public String schema() {
- return sqlQuery.toString();
+ return FLOATING_RATE_SCHEMA;
}
}
private static final class FloatingRatePeriodRowMapper implements
RowMapper<FloatingRatePeriodData> {
- private final StringBuilder sqlQuery = new
StringBuilder().append("period.id as id, ").append("period.from_date as
fromDate, ")
- .append("period.interest_rate as interestRate, ")
- .append("period.is_differential_to_base_lending_rate as
isDifferentialToBaseLendingRate, ")
- .append("period.is_active as isActive,
").append("crappu.username as createdBy, ")
- .append("period.created_date as createdOn,
").append("period.created_on_utc as createdOnUTC, ")
- .append("moappu.username as modifiedBy,
").append("period.lastmodified_date as modifiedOn, ")
- .append("period.last_modified_on_utc as modifiedOnUTC
").append("FROM m_floating_rates_periods as period ")
- .append("LEFT JOIN m_appuser as crappu on period.created_by =
crappu.id ")
- .append("LEFT JOIN m_appuser as moappu on
period.last_modified_by = moappu.id ");
+ private static final String FLOATING_RATE_PERIOD_SCHEMA = """
+ period.id as id, period.from_date as fromDate,
+ period.interest_rate as interestRate,
+ period.is_differential_to_base_lending_rate as
isDifferentialToBaseLendingRate,
+ period.is_active as isActive, crappu.username as createdBy,
+ period.created_date as createdOn, period.created_on_utc as
createdOnUTC,
+ moappu.username as modifiedBy, period.lastmodified_date as
modifiedOn,
+ period.last_modified_on_utc as modifiedOnUTC FROM
m_floating_rates_periods as period
+ LEFT JOIN m_appuser as crappu on period.created_by = crappu.id
+ LEFT JOIN m_appuser as moappu on period.last_modified_by =
moappu.id\s""";
@Override
public FloatingRatePeriodData mapRow(final ResultSet rs,
@SuppressWarnings("unused") final int rowNum) throws SQLException {
@@ -171,14 +173,15 @@ public class FloatingRatesReadPlatformServiceImpl
implements FloatingRatesReadPl
}
public String schema() {
- return sqlQuery.toString();
+ return FLOATING_RATE_PERIOD_SCHEMA;
}
}
private static final class FloatingRateLookupMapper implements
RowMapper<FloatingRateData> {
- private final StringBuilder sqlQuery = new
StringBuilder().append("rate.id as id, ").append("rate.name as name, ")
- .append("rate.is_base_lending_rate as isBaseLendingRate
").append("FROM m_floating_rates as rate ");
+ private static final String FLOATING_RATE_LOOKUP_SCHEMA = """
+ rate.id as id, rate.name as name,
+ rate.is_base_lending_rate as isBaseLendingRate FROM
m_floating_rates as rate\s""";
@Override
public FloatingRateData mapRow(final ResultSet rs,
@SuppressWarnings("unused") final int rowNum) throws SQLException {
@@ -189,35 +192,46 @@ public class FloatingRatesReadPlatformServiceImpl
implements FloatingRatesReadPl
}
public String schema() {
- return sqlQuery.toString();
+ return FLOATING_RATE_LOOKUP_SCHEMA;
}
}
private static final class FloatingInterestRatePeriodRowMapper implements
RowMapper<InterestRatePeriodData> {
- private final StringBuilder sqlQuery = new
StringBuilder().append("select ")
- .append(" linkedrateperiods.from_date as
linkedrateperiods_from_date, ")
- .append(" linkedrateperiods.interest_rate as
linkedrateperiods_interest_rate, ")
- .append("
linkedrateperiods.is_differential_to_base_lending_rate as
linkedrateperiods_is_differential_to_base_lending_rate, ")
- .append(" baserate.from_date as baserate_from_date,
").append(" baserate.interest_rate as baserate_interest_rate ")
- .append(" from m_product_loan as lp ")
- .append(" join m_product_loan_floating_rates as plfr on lp.id
= plfr.loan_product_id ")
- .append(" join m_floating_rates as linkedrate on
linkedrate.id = plfr.floating_rates_id ")
- .append("left join m_floating_rates_periods as
linkedrateperiods on (linkedrate.id = linkedrateperiods.floating_rates_id and
linkedrateperiods.is_active = true) ")
- .append("left join ( ").append(" select blr.name,
").append(" blr.is_base_lending_rate, ")
- .append(" blr.is_active, ").append("
blrperiods.from_date, ").append(" blrperiods.interest_rate ")
- .append(" from m_floating_rates as blr ")
- .append(" left join m_floating_rates_periods as blrperiods
on (blr.id = blrperiods.floating_rates_id and blrperiods.is_active = true) ")
- .append(" where blr.is_base_lending_rate = true and
blr.is_active = true ")
- .append(") as baserate on
(linkedrateperiods.is_differential_to_base_lending_rate = true and
linkedrate.is_base_lending_rate = false) ")
- .append("where (baserate.from_date is null ").append(" or
baserate.from_date = (select MAX(b.from_date) ")
- .append(" from (select blr.name, ").append("
blr.is_base_lending_rate, ")
- .append(" blr.is_active, ").append("
blrperiods.from_date, ")
- .append(" blrperiods.interest_rate ").append("
from m_floating_rates as blr ")
- .append(" left join m_floating_rates_periods as
blrperiods on (blr.id = blrperiods.floating_rates_id and blrperiods.is_active =
true) ")
- .append(" where blr.is_base_lending_rate = true and
blr.is_active = true ").append(" ) as b ")
- .append(" where b.from_date <=
linkedrateperiods.from_date)) ").append("and lp.id = ? ")
- .append("order by linkedratePeriods_from_date desc ");
+ private static final String FLOATING_INTEREST_RATE_PERIOD_SCHEMA = """
+ select
+ linkedrateperiods.from_date as linkedrateperiods_from_date,
+ linkedrateperiods.interest_rate as
linkedrateperiods_interest_rate,
+ linkedrateperiods.is_differential_to_base_lending_rate as
linkedrateperiods_is_differential_to_base_lending_rate,
+ baserate.from_date as baserate_from_date,
baserate.interest_rate as baserate_interest_rate
+ from m_product_loan as lp
+ join m_product_loan_floating_rates as plfr on lp.id =
plfr.loan_product_id
+ join m_floating_rates as linkedrate on linkedrate.id =
plfr.floating_rates_id
+ left join m_floating_rates_periods as linkedrateperiods on
(linkedrate.id = linkedrateperiods.floating_rates_id and
linkedrateperiods.is_active = true)
+ left join (
+ select blr.name,
+ blr.is_base_lending_rate,
+ blr.is_active,
+ blrperiods.from_date,
+ blrperiods.interest_rate
+ from m_floating_rates as blr
+ left join m_floating_rates_periods as blrperiods on
(blr.id = blrperiods.floating_rates_id and blrperiods.is_active = true)
+ where blr.is_base_lending_rate = true and blr.is_active =
true
+ ) as baserate on
(linkedrateperiods.is_differential_to_base_lending_rate = true and
linkedrate.is_base_lending_rate = false)
+ where (baserate.from_date is null
+ or baserate.from_date = (select MAX(b.from_date)
+ from (select blr.name,
+ blr.is_base_lending_rate,
+ blr.is_active,
+ blrperiods.from_date,
+ blrperiods.interest_rate
+ from m_floating_rates as blr
+ left join m_floating_rates_periods as blrperiods
on (blr.id = blrperiods.floating_rates_id and blrperiods.is_active = true)
+ where blr.is_base_lending_rate = true and
blr.is_active = true
+ ) as b
+ where b.from_date <= linkedrateperiods.from_date))
+ and lp.id = ?
+ order by linkedratePeriods_from_date desc\s""";
@Override
public InterestRatePeriodData mapRow(final ResultSet rs,
@SuppressWarnings("unused") final int rowNum) throws SQLException {
@@ -232,7 +246,7 @@ public class FloatingRatesReadPlatformServiceImpl
implements FloatingRatesReadPl
}
public String schema() {
- return sqlQuery.toString();
+ return FLOATING_INTEREST_RATE_PERIOD_SCHEMA;
}
}