This is an automated email from the ASF dual-hosted git repository.

arnold 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 81be86373 Quick code cleaning for client and loan: around the native 
queries
81be86373 is described below

commit 81be8637390a7e2826bf414a8b149c795520063f
Author: Adam Saghy <[email protected]>
AuthorDate: Thu Jul 14 23:13:24 2022 +0200

    Quick code cleaning for client and loan: around the native queries
---
 .../ClientAddressReadPlatformServiceImpl.java      |   2 +-
 .../ClientChargeReadPlatformServiceImpl.java       |   7 +-
 ...ClientFamilyMembersReadPlatformServiceImpl.java |   4 +-
 .../ClientIdentifierReadPlatformServiceImpl.java   |   4 +-
 .../service/ClientReadPlatformServiceImpl.java     |  16 +--
 .../ClientTransactionReadPlatformServiceImpl.java  |   2 +-
 .../service/GuarantorReadPlatformServiceImpl.java  |  14 +--
 ...LoanScheduleHistoryReadPlatformServiceImpl.java |   8 +-
 ...anRescheduleRequestReadPlatformServiceImpl.java |  14 +--
 .../service/BulkLoansReadPlatformServiceImpl.java  |   4 +-
 .../GLIMAccountInfoReadPlatformServiceImpl.java    |  12 +-
 .../LoanAccrualWritePlatformServiceImpl.java       |   6 +-
 .../service/LoanArrearsAgingServiceImpl.java       |  10 +-
 .../LoanChargePaidByReadPlatformServiceImpl.java   |   2 +-
 .../service/LoanChargeReadPlatformServiceImpl.java |  23 ++--
 .../service/LoanReadPlatformServiceImpl.java       | 121 +++++++++------------
 16 files changed, 109 insertions(+), 140 deletions(-)

diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientAddressReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientAddressReadPlatformServiceImpl.java
index 4623adbc3..0ce164a69 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientAddressReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientAddressReadPlatformServiceImpl.java
@@ -67,7 +67,7 @@ public class ClientAddressReadPlatformServiceImpl implements 
ClientAddressReadPl
         final ClientAddrMapper rm = new ClientAddrMapper();
         final String sql = "select " + rm.schema() + " where fld.entity=?";
 
-        return this.jdbcTemplate.query(sql, rm, new Object[] { entity }); // 
NOSONAR
+        return this.jdbcTemplate.query(sql, rm, entity); // NOSONAR
     }
 
 }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientChargeReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientChargeReadPlatformServiceImpl.java
index b79154e28..dc7756bba 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientChargeReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientChargeReadPlatformServiceImpl.java
@@ -23,6 +23,7 @@ import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.time.LocalDate;
 import java.util.Collection;
+import org.apache.commons.lang3.BooleanUtils;
 import org.apache.fineract.infrastructure.core.data.EnumOptionData;
 import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
 import org.apache.fineract.infrastructure.core.service.Page;
@@ -128,7 +129,7 @@ public class ClientChargeReadPlatformServiceImpl implements 
ClientChargeReadPlat
 
             final String sql = "select " + rm.schema() + " where 
cc.client_id=? and cc.id=? ";
 
-            return this.jdbcTemplate.queryForObject(sql, rm, new Object[] { 
clientId, clientChargeId }); // NOSONAR
+            return this.jdbcTemplate.queryForObject(sql, rm, clientId, 
clientChargeId); // NOSONAR
         } catch (final EmptyResultDataAccessException e) {
             throw new ClientChargeNotFoundException(clientChargeId, clientId, 
e);
         }
@@ -149,9 +150,9 @@ public class ClientChargeReadPlatformServiceImpl implements 
ClientChargeReadPlat
         }
 
         // filter for paid charges
-        if (pendingPayment != null && pendingPayment) {
+        if (BooleanUtils.isTrue(pendingPayment)) {
             sqlBuilder.append(" and ( cc.is_paid_derived = false and cc.waived 
= false) ");
-        } else if (pendingPayment != null && !pendingPayment) {
+        } else if (BooleanUtils.isFalse(pendingPayment)) {
             sqlBuilder.append(" and (cc.is_paid_derived = true or cc.waived = 
true) ");
         }
 
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientFamilyMembersReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientFamilyMembersReadPlatformServiceImpl.java
index 0ad311828..d046b8ba9 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientFamilyMembersReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientFamilyMembersReadPlatformServiceImpl.java
@@ -98,7 +98,7 @@ public class ClientFamilyMembersReadPlatformServiceImpl 
implements ClientFamilyM
         final ClientFamilyMembersMapper rm = new ClientFamilyMembersMapper();
         final String sql = "select " + rm.schema() + " where fmb.client_id=?";
 
-        return this.jdbcTemplate.query(sql, rm, new Object[] { clientId }); // 
NOSONAR
+        return this.jdbcTemplate.query(sql, rm, clientId); // NOSONAR
     }
 
     @Override
@@ -109,7 +109,7 @@ public class ClientFamilyMembersReadPlatformServiceImpl 
implements ClientFamilyM
         final ClientFamilyMembersMapper rm = new ClientFamilyMembersMapper();
         final String sql = "select " + rm.schema() + " where fmb.id=? ";
 
-        return this.jdbcTemplate.queryForObject(sql, rm, new Object[] { id }); 
// NOSONAR
+        return this.jdbcTemplate.queryForObject(sql, rm, id); // NOSONAR
     }
 
     @Override
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientIdentifierReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientIdentifierReadPlatformServiceImpl.java
index 300f16cce..88dace77f 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientIdentifierReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientIdentifierReadPlatformServiceImpl.java
@@ -54,7 +54,7 @@ public class ClientIdentifierReadPlatformServiceImpl 
implements ClientIdentifier
 
         sql += " order by ci.id";
 
-        return this.jdbcTemplate.query(sql, rm, new Object[] { clientId, 
hierarchySearchString }); // NOSONAR
+        return this.jdbcTemplate.query(sql, rm, clientId, 
hierarchySearchString); // NOSONAR
     }
 
     @Override
@@ -71,7 +71,7 @@ public class ClientIdentifierReadPlatformServiceImpl 
implements ClientIdentifier
             sql += " and ci.id = ?";
 
             final ClientIdentifierData clientIdentifierData = 
this.jdbcTemplate.queryForObject(sql, rm, // NOSONAR
-                    new Object[] { clientId, hierarchySearchString, 
clientIdentifierId });
+                    clientId, hierarchySearchString, clientIdentifierId);
 
             return clientIdentifierData;
         } catch (final EmptyResultDataAccessException e) {
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientReadPlatformServiceImpl.java
index 150d2520c..4c8525e5a 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientReadPlatformServiceImpl.java
@@ -297,7 +297,7 @@ public class ClientReadPlatformServiceImpl implements 
ClientReadPlatformService
             final String sql = "select " + this.clientMapper.schema()
                     + " where ( o.hierarchy like ? or 
transferToOffice.hierarchy like ?) and c.id = ?";
             final ClientData clientData = 
this.jdbcTemplate.queryForObject(sql, this.clientMapper, // NOSONAR
-                    new Object[] { hierarchySearchString, 
hierarchySearchString, clientId });
+                    hierarchySearchString, hierarchySearchString, clientId);
 
             // Get client collaterals
             final Collection<ClientCollateralManagement> 
clientCollateralManagements = this.clientCollateralManagementRepositoryWrapper
@@ -315,7 +315,7 @@ public class ClientReadPlatformServiceImpl implements 
ClientReadPlatformService
             final String clientGroupsSql = "select " + 
this.clientGroupsMapper.parentGroupsSchema();
 
             final Collection<GroupGeneralData> parentGroups = 
this.jdbcTemplate.query(clientGroupsSql, this.clientGroupsMapper, // NOSONAR
-                    new Object[] { clientId });
+                    clientId);
 
             return ClientData.setParentGroups(clientData, parentGroups, 
clientCollateralManagementDataSet);
 
@@ -341,7 +341,7 @@ public class ClientReadPlatformServiceImpl implements 
ClientReadPlatformService
 
         final String sql = "select " + this.lookupMapper.schema() + " where 
c.office_id = ? and c.status_enum != ?";
 
-        return this.jdbcTemplate.query(sql, this.lookupMapper, new Object[] { 
officeId, ClientStatus.CLOSED.getValue() }); // NOSONAR
+        return this.jdbcTemplate.query(sql, this.lookupMapper, officeId, 
ClientStatus.CLOSED.getValue()); // NOSONAR
     }
 
     @Override
@@ -353,7 +353,7 @@ public class ClientReadPlatformServiceImpl implements 
ClientReadPlatformService
 
         final String sql = "select " + this.membersOfGroupMapper.schema() + " 
where o.hierarchy like ? and pgc.group_id = ?";
 
-        return this.jdbcTemplate.query(sql, this.membersOfGroupMapper, new 
Object[] { hierarchySearchString, groupId }); // NOSONAR
+        return this.jdbcTemplate.query(sql, this.membersOfGroupMapper, 
hierarchySearchString, groupId); // NOSONAR
     }
 
     @Override
@@ -367,7 +367,7 @@ public class ClientReadPlatformServiceImpl implements 
ClientReadPlatformService
                 + " where o.hierarchy like ? and pgc.group_id = ? and 
c.status_enum = ? ";
 
         return this.jdbcTemplate.query(sql, this.membersOfGroupMapper, // 
NOSONAR
-                new Object[] { hierarchySearchString, groupId, 
ClientStatus.ACTIVE.getValue() });
+                hierarchySearchString, groupId, 
ClientStatus.ACTIVE.getValue());
     }
 
     private static final class ClientMembersOfGroupMapper implements 
RowMapper<ClientData> {
@@ -556,7 +556,7 @@ public class ClientReadPlatformServiceImpl implements 
ClientReadPlatformService
                 + " left join m_group g on pgc.group_id=g.id where o.hierarchy 
like ? and g.parent_id = ? and c.status_enum = ? group by c.id";
 
         return this.jdbcTemplate.query(sql, this.membersOfGroupMapper, // 
NOSONAR
-                new Object[] { hierarchySearchString, centerId, 
ClientStatus.ACTIVE.getValue() });
+                hierarchySearchString, centerId, 
ClientStatus.ACTIVE.getValue());
     }
 
     private static final class ClientMapper implements RowMapper<ClientData> {
@@ -788,7 +788,7 @@ public class ClientReadPlatformServiceImpl implements 
ClientReadPlatformService
 
             final String sql = "select " + 
mapper.clientLookupByIdentifierSchema();
 
-            return this.jdbcTemplate.queryForObject(sql, mapper, new Object[] 
{ identifierTypeId, identifierKey }); // NOSONAR
+            return this.jdbcTemplate.queryForObject(sql, mapper, 
identifierTypeId, identifierKey); // NOSONAR
         } catch (final EmptyResultDataAccessException e) {
             return null;
         }
@@ -867,6 +867,6 @@ public class ClientReadPlatformServiceImpl implements 
ClientReadPlatformService
     @Override
     public Collection<Long> retrieveUserClients(Long aUserID) {
         String sql = "SELECT  m.client_id FROM 
m_selfservice_user_client_mapping m INNER JOIN m_client c ON c.id = m.client_id 
WHERE m.appuser_id = ?";
-        return jdbcTemplate.queryForList(sql, Long.class, new Object[] { 
aUserID });
+        return jdbcTemplate.queryForList(sql, Long.class, aUserID);
     }
 }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientTransactionReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientTransactionReadPlatformServiceImpl.java
index d240e58c0..5f9194de9 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientTransactionReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientTransactionReadPlatformServiceImpl.java
@@ -177,7 +177,7 @@ public class ClientTransactionReadPlatformServiceImpl 
implements ClientTransacti
     public ClientTransactionData retrieveTransaction(Long clientId, Long 
transactionId) {
         try {
             final String sql = "select " + 
this.clientTransactionMapper.schema() + " where c.id = ? and tr.id= ?";
-            return this.jdbcTemplate.queryForObject(sql, 
this.clientTransactionMapper, new Object[] { clientId, transactionId }); // 
NOSONAR
+            return this.jdbcTemplate.queryForObject(sql, 
this.clientTransactionMapper, clientId, transactionId); // NOSONAR
         } catch (final EmptyResultDataAccessException e) {
             throw new ClientTransactionNotFoundException(clientId, 
transactionId, e);
         }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorReadPlatformServiceImpl.java
index 027a0e39d..c68ecf911 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorReadPlatformServiceImpl.java
@@ -214,7 +214,7 @@ public class GuarantorReadPlatformServiceImpl implements 
GuarantorReadPlatformSe
         public GuarantorFundingData mapRow(final ResultSet rs, final int 
rowNum) throws SQLException {
             GuarantorFundingData guarantorFundingData = null;
             final Long id = rs.getLong("gfdId");
-            if (id != null && id > 0) {
+            if (id > 0) {
                 final BigDecimal amount = 
JdbcSupport.getBigDecimalDefaultToZeroIfNull(rs, "amount");
                 final BigDecimal amountReleased = 
JdbcSupport.getBigDecimalDefaultToZeroIfNull(rs, "amountReleased");
                 final BigDecimal amountRemaining = 
JdbcSupport.getBigDecimalDefaultToZeroIfNull(rs, "amountRemaining");
@@ -231,7 +231,7 @@ public class GuarantorReadPlatformServiceImpl implements 
GuarantorReadPlatformSe
                         guarantorTransactions.add(guarantorTransactionData);
                         while (rs.next()) {
                             final Long tempFundId = rs.getLong("gfdId");
-                            if (tempFundId != null && tempFundId.equals(id)) {
+                            if (tempFundId.equals(id)) {
                                 guarantorTransactionData = 
this.guarantorTransactionMapper.mapRow(rs, rowNum);
                                 
guarantorTransactions.add(guarantorTransactionData);
                             } else {
@@ -276,11 +276,9 @@ public class GuarantorReadPlatformServiceImpl implements 
GuarantorReadPlatformSe
             EnumOptionData transactionType = 
SavingsEnumerations.onHoldTransactionType(transactionTypeEnum);
             final boolean reversed = rs.getBoolean("reversed");
             final boolean transactionReversed = 
rs.getBoolean("transactionReversed");
-            if (id != null) {
-                DepositAccountOnHoldTransactionData onHoldTransactionData = 
DepositAccountOnHoldTransactionData.instance(transactionId,
-                        amount, transactionType, date, transactionReversed);
-                guarantorTransactionData = 
GuarantorTransactionData.instance(id, onHoldTransactionData, null, reversed);
-            }
+            DepositAccountOnHoldTransactionData onHoldTransactionData = 
DepositAccountOnHoldTransactionData.instance(transactionId, amount,
+                    transactionType, date, transactionReversed);
+            guarantorTransactionData = GuarantorTransactionData.instance(id, 
onHoldTransactionData, null, reversed);
             return guarantorTransactionData;
         }
 
@@ -305,7 +303,7 @@ public class GuarantorReadPlatformServiceImpl implements 
GuarantorReadPlatformSe
         final ObligeeMapper rm = new ObligeeMapper();
         String sql = rm.schema();
         try {
-            return this.jdbcTemplate.query(sql, rm, new Object[] { clientId });
+            return this.jdbcTemplate.query(sql, rm, clientId);
         } catch (final EmptyResultDataAccessException e) {
             return null;
         }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/service/LoanScheduleHistoryReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/service/LoanScheduleHistoryReadPlatformServiceImpl.java
index 9b3f2e322..ebf487643 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/service/LoanScheduleHistoryReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/service/LoanScheduleHistoryReadPlatformServiceImpl.java
@@ -80,7 +80,7 @@ public class LoanScheduleHistoryReadPlatformServiceImpl 
implements LoanScheduleH
             final String sql = "select " + fullResultsetExtractor.schema()
                     + " where ls.loan_id = ? and ls.version = ? order by 
ls.loan_id, ls.installment";
 
-            return this.jdbcTemplate.query(sql, fullResultsetExtractor, new 
Object[] { loanId, versionNumber }); // NOSONAR
+            return this.jdbcTemplate.query(sql, fullResultsetExtractor, 
loanId, versionNumber); // NOSONAR
         } catch (final EmptyResultDataAccessException e) {
             throw new LoanNotFoundException(loanId, e);
         }
@@ -142,7 +142,7 @@ public class LoanScheduleHistoryReadPlatformServiceImpl 
implements LoanScheduleH
             totalFeeChargesCharged = 
totalFeeChargesCharged.plus(disbursementPeriod.feeChargesDue());
             totalRepaymentExpected = 
totalRepaymentExpected.plus(disbursementPeriod.feeChargesDue());
 
-            Integer loanTermInDays = Integer.valueOf(0);
+            Integer loanTermInDays = 0;
             while (rs.next()) {
                 final Integer period = JdbcSupport.getInteger(rs, "period");
                 LocalDate fromDate = JdbcSupport.getLocalDate(rs, "fromDate");
@@ -168,10 +168,10 @@ public class LoanScheduleHistoryReadPlatformServiceImpl 
implements LoanScheduleH
                     totalPrincipalDisbursed = 
totalPrincipalDisbursed.add(principal);
                 }
 
-                Integer daysInPeriod = Integer.valueOf(0);
+                Integer daysInPeriod = 0;
                 if (fromDate != null) {
                     daysInPeriod = 
Math.toIntExact(ChronoUnit.DAYS.between(fromDate, dueDate));
-                    loanTermInDays = Integer.valueOf(loanTermInDays.intValue() 
+ daysInPeriod.intValue());
+                    loanTermInDays = loanTermInDays + daysInPeriod;
                 }
 
                 final BigDecimal principalDue = 
JdbcSupport.getBigDecimalDefaultToZeroIfNull(rs, "principalDue");
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/service/LoanRescheduleRequestReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/service/LoanRescheduleRequestReadPlatformServiceImpl.java
index 46026c8f5..a32550a2b 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/service/LoanRescheduleRequestReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/rescheduleloan/service/LoanRescheduleRequestReadPlatformServiceImpl.java
@@ -182,10 +182,8 @@ public class LoanRescheduleRequestReadPlatformServiceImpl 
implements LoanResched
             final boolean isSpecificToInstallment = 
rs.getBoolean("isSpecificToInstallment");
             final int termType = rs.getInt("termType");
 
-            final LoanTermVariationsData loanTermVariationsData = new 
LoanTermVariationsData(id,
-                    LoanEnumerations.loanvariationType(termType), 
variationApplicableFrom, decimalValue, dateValue,
-                    isSpecificToInstallment);
-            return loanTermVariationsData;
+            return new LoanTermVariationsData(id, 
LoanEnumerations.loanvariationType(termType), variationApplicableFrom, 
decimalValue,
+                    dateValue, isSpecificToInstallment);
         }
 
     }
@@ -229,7 +227,7 @@ public class LoanRescheduleRequestReadPlatformServiceImpl 
implements LoanResched
         this.loanRepositoryWrapper.findOneWithNotFoundDetection(loanId);
         final String sql = "select " + 
this.loanRescheduleRequestRowMapper.schema() + " where lr.loan_id = ?";
 
-        return this.jdbcTemplate.query(sql, 
this.loanRescheduleRequestRowMapper, new Object[] { loanId }); // NOSONAR
+        return this.jdbcTemplate.query(sql, 
this.loanRescheduleRequestRowMapper, loanId); // NOSONAR
     }
 
     @Override
@@ -238,7 +236,7 @@ public class LoanRescheduleRequestReadPlatformServiceImpl 
implements LoanResched
         try {
             final String sql = "select " + 
this.loanRescheduleRequestRowMapper.schema() + " where lr.id = ?";
 
-            return this.jdbcTemplate.queryForObject(sql, 
this.loanRescheduleRequestRowMapper, new Object[] { requestId }); // NOSONAR
+            return this.jdbcTemplate.queryForObject(sql, 
this.loanRescheduleRequestRowMapper, requestId); // NOSONAR
         }
 
         catch (final EmptyResultDataAccessException e) {
@@ -250,7 +248,7 @@ public class LoanRescheduleRequestReadPlatformServiceImpl 
implements LoanResched
     public List<LoanRescheduleRequestData> readLoanRescheduleRequests(Long 
loanId, Integer statusEnum) {
         this.loanRepositoryWrapper.findOneWithNotFoundDetection(loanId);
         final String sql = "select " + 
this.loanRescheduleRequestRowMapper.schema() + " where lr.loan_id = ?" + " and 
lr.status_enum = ?";
-        return this.jdbcTemplate.query(sql, 
this.loanRescheduleRequestRowMapper, new Object[] { loanId, statusEnum }); // 
NOSONAR
+        return this.jdbcTemplate.query(sql, 
this.loanRescheduleRequestRowMapper, loanId, statusEnum); // NOSONAR
     }
 
     @Override
@@ -288,7 +286,7 @@ public class LoanRescheduleRequestReadPlatformServiceImpl 
implements LoanResched
             } else if 
(command.equalsIgnoreCase(RescheduleLoansApiConstants.rejectCommandParamName)) {
                 statusParam = 300;
             }
-            return this.jdbcTemplate.query(sql, 
loanRescheduleRequestRowMapperForBulkApproval, new Object[] { statusParam }); 
// NOSONAR
+            return this.jdbcTemplate.query(sql, 
loanRescheduleRequestRowMapperForBulkApproval, statusParam); // NOSONAR
         }
         return this.jdbcTemplate.query(sql, 
loanRescheduleRequestRowMapperForBulkApproval); // NOSONAR
     }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/BulkLoansReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/BulkLoansReadPlatformServiceImpl.java
index da35d4c04..20e8ac585 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/BulkLoansReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/BulkLoansReadPlatformServiceImpl.java
@@ -54,7 +54,7 @@ public class BulkLoansReadPlatformServiceImpl implements 
BulkLoansReadPlatformSe
         final String groupSql = "select distinct " + staffGroupMapper.schema() 
+ " and g.status_enum=?";
 
         final List<StaffAccountSummaryCollectionData.LoanAccountSummary> 
clientSummaryList = this.jdbcTemplate.query(clientSql, // NOSONAR
-                staffClientMapper, new Object[] { loanOfficerId, 
ClientStatus.ACTIVE.getValue() });
+                staffClientMapper, loanOfficerId, 
ClientStatus.ACTIVE.getValue());
 
         for (final StaffAccountSummaryCollectionData.LoanAccountSummary 
clientSummary : clientSummaryList) {
 
@@ -65,7 +65,7 @@ public class BulkLoansReadPlatformServiceImpl implements 
BulkLoansReadPlatformSe
         }
 
         final List<StaffAccountSummaryCollectionData.LoanAccountSummary> 
groupSummaryList = this.jdbcTemplate.query(groupSql, // NOSONAR
-                staffGroupMapper, new Object[] { loanOfficerId, 
GroupingTypeStatus.ACTIVE.getValue() });
+                staffGroupMapper, loanOfficerId, 
GroupingTypeStatus.ACTIVE.getValue());
 
         for (final StaffAccountSummaryCollectionData.LoanAccountSummary 
groupSummary : groupSummaryList) {
 
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/GLIMAccountInfoReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/GLIMAccountInfoReadPlatformServiceImpl.java
index a0ec16c8d..76a9936df 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/GLIMAccountInfoReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/GLIMAccountInfoReadPlatformServiceImpl.java
@@ -93,7 +93,7 @@ public class GLIMAccountInfoReadPlatformServiceImpl 
implements GLIMAccountInfoRe
         final GLIMFieldsMapper rm = new GLIMFieldsMapper();
         final String sql = "select " + rm.schema() + " and glim.id=?";
 
-        return this.jdbcTemplate.query(sql, rm, new Object[] { glimId }); // 
NOSONAR
+        return this.jdbcTemplate.query(sql, rm, glimId); // NOSONAR
     }
 
     @Override
@@ -103,7 +103,7 @@ public class GLIMAccountInfoReadPlatformServiceImpl 
implements GLIMAccountInfoRe
         final GLIMFieldsMapper rm = new GLIMFieldsMapper();
         final String sql = "select " + rm.schema() + " and ln.group_id=?";
 
-        return this.jdbcTemplate.query(sql, rm, new Object[] { 
Long.parseLong(groupId) }); // NOSONAR
+        return this.jdbcTemplate.query(sql, rm, Long.parseLong(groupId)); // 
NOSONAR
     }
 
     @Override
@@ -114,7 +114,7 @@ public class GLIMAccountInfoReadPlatformServiceImpl 
implements GLIMAccountInfoRe
 
         final String sql = "select " + rm.schema() + " where glim.group_id=?";
 
-        return this.jdbcTemplate.query(sql, rm, new Object[] { 
Long.parseLong(groupId) }); // NOSONAR
+        return this.jdbcTemplate.query(sql, rm, Long.parseLong(groupId)); // 
NOSONAR
     }
 
     @Override
@@ -124,7 +124,7 @@ public class GLIMAccountInfoReadPlatformServiceImpl 
implements GLIMAccountInfoRe
         final GLIMFieldsMapper rm = new GLIMFieldsMapper();
         final String sql = "select " + rm.schema() + " and 
glim.accountNumber=?";
 
-        return this.jdbcTemplate.query(sql, rm, new Object[] { 
parentAccountIds }); // NOSONAR
+        return this.jdbcTemplate.query(sql, rm, parentAccountIds); // NOSONAR
     }
 
     @Override
@@ -135,7 +135,7 @@ public class GLIMAccountInfoReadPlatformServiceImpl 
implements GLIMAccountInfoRe
 
         final String sql = "select " + rm.schema() + " where glim.group_id=? 
and glim.account_number=?";
 
-        return this.jdbcTemplate.query(sql, rm, new Object[] { groupId, 
accountNo }); // NOSONAR
+        return this.jdbcTemplate.query(sql, rm, groupId, accountNo); // NOSONAR
     }
 
     @Override
@@ -188,7 +188,7 @@ public class GLIMAccountInfoReadPlatformServiceImpl 
implements GLIMAccountInfoRe
 
         final String sql = "select " + rm.schema() + " where glim.id=?";
 
-        return this.jdbcTemplate.query(sql, rm, new Object[] { glimId }); // 
NOSONAR
+        return this.jdbcTemplate.query(sql, rm, glimId); // NOSONAR
 
     }
 
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualWritePlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualWritePlatformServiceImpl.java
index a5af8b816..35ade2781 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualWritePlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanAccrualWritePlatformServiceImpl.java
@@ -492,10 +492,8 @@ public class LoanAccrualWritePlatformServiceImpl 
implements LoanAccrualWritePlat
             if (loan == null) {
                 throw new LoanNotFoundException(loanId);
             }
-            final List<Long> existingTransactionIds = new ArrayList<>();
-            final List<Long> existingReversedTransactionIds = new 
ArrayList<>();
-            existingTransactionIds.addAll(loan.findExistingTransactionIds());
-            
existingReversedTransactionIds.addAll(loan.findExistingReversedTransactionIds());
+            final List<Long> existingTransactionIds = new 
ArrayList<>(loan.findExistingTransactionIds());
+            final List<Long> existingReversedTransactionIds = new 
ArrayList<>(loan.findExistingReversedTransactionIds());
             loan.processIncomeTransactions();
             this.loanRepositoryWrapper.saveAndFlush(loan);
             postJournalEntries(loan, existingTransactionIds, 
existingReversedTransactionIds);
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java
index d512fd5ed..2d92b400b 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java
@@ -156,7 +156,7 @@ public class LoanArrearsAgingServiceImpl implements 
LoanArrearsAgingService {
                 this.jdbcTemplate.update(updateStatement.get(0));
             } else {
                 String deletestatement = "DELETE FROM m_loan_arrears_aging 
WHERE  loan_id=?";
-                this.jdbcTemplate.update(deletestatement, new Object[] { 
loan.getId() }); // NOSONAR
+                this.jdbcTemplate.update(deletestatement, loan.getId()); // 
NOSONAR
             }
         }
     }
@@ -168,7 +168,7 @@ public class LoanArrearsAgingServiceImpl implements 
LoanArrearsAgingService {
         String updateStatement = constructUpdateStatement(loan, count == 0);
         if (updateStatement == null) {
             String deletestatement = "DELETE FROM m_loan_arrears_aging WHERE  
loan_id=?";
-            this.jdbcTemplate.update(deletestatement, new Object[] { 
loan.getId() }); // NOSONAR
+            this.jdbcTemplate.update(deletestatement, loan.getId()); // NOSONAR
         } else {
             this.jdbcTemplate.update(updateStatement);
         }
@@ -453,11 +453,7 @@ public class LoanArrearsAgingServiceImpl implements 
LoanArrearsAgingService {
             while (rs.next()) {
                 Long loanId = rs.getLong("loanId");
 
-                List<LoanSchedulePeriodData> periodDatas = 
scheduleDate.get(loanId);
-                if (periodDatas == null) {
-                    periodDatas = new ArrayList<>();
-                    scheduleDate.put(loanId, periodDatas);
-                }
+                List<LoanSchedulePeriodData> periodDatas = 
scheduleDate.computeIfAbsent(loanId, k -> new ArrayList<>());
 
                 periodDatas.add(fetchLoanSchedulePeriodData(rs));
             }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargePaidByReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargePaidByReadPlatformServiceImpl.java
index 24acff251..82591ec5a 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargePaidByReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargePaidByReadPlatformServiceImpl.java
@@ -48,7 +48,7 @@ public class LoanChargePaidByReadPlatformServiceImpl 
implements LoanChargePaidBy
         this.context.authenticatedUser();
         final LoanChargePaidByMapper rm = new LoanChargePaidByMapper();
         final String sql = "select " + rm.loanChargePaidBySchema() + " where 
lcpd.loan_transaction_id = ?";
-        return this.jdbcTemplate.query(sql, rm, new Object[] { transactionId 
}); // NOSONAR
+        return this.jdbcTemplate.query(sql, rm, transactionId); // NOSONAR
     }
 
     private static final class LoanChargePaidByMapper implements 
RowMapper<LoanChargePaidByData> {
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeReadPlatformServiceImpl.java
index f390e7cc6..62b95d458 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeReadPlatformServiceImpl.java
@@ -76,7 +76,6 @@ public class LoanChargeReadPlatformServiceImpl implements 
LoanChargeReadPlatform
 
         @Override
         public LoanChargeData mapRow(final ResultSet rs, 
@SuppressWarnings("unused") final int rowNum) throws SQLException {
-
             final Long id = rs.getLong("id");
             final Long chargeId = rs.getLong("chargeId");
             final String name = rs.getString("name");
@@ -130,8 +129,6 @@ public class LoanChargeReadPlatformServiceImpl implements 
LoanChargeReadPlatform
 
     @Override
     public ChargeData retrieveLoanChargeTemplate() {
-        this.context.authenticatedUser();
-
         final List<EnumOptionData> allowedChargeCalculationTypeOptions = 
this.chargeDropdownReadPlatformService.retrieveCalculationTypes();
         final List<EnumOptionData> allowedChargeTimeOptions = 
this.chargeDropdownReadPlatformService.retrieveCollectionTimeTypes();
         final List<EnumOptionData> loansChargeCalculationTypeOptions = 
this.chargeDropdownReadPlatformService
@@ -164,25 +161,21 @@ public class LoanChargeReadPlatformServiceImpl implements 
LoanChargeReadPlatform
 
     @Override
     public LoanChargeData retrieveLoanChargeDetails(final Long id, final Long 
loanId) {
-        this.context.authenticatedUser();
-
         final LoanChargeMapper rm = new LoanChargeMapper();
 
         final String sql = "select " + rm.schema() + " where lc.id=? and 
lc.loan_id=?";
 
-        return this.jdbcTemplate.queryForObject(sql, rm, new Object[] { id, 
loanId }); // NOSONAR
+        return this.jdbcTemplate.queryForObject(sql, rm, id, loanId); // 
NOSONAR
     }
 
     @Override
     public Collection<LoanChargeData> retrieveLoanCharges(final Long loanId) {
-        this.context.authenticatedUser();
-
         final LoanChargeMapper rm = new LoanChargeMapper();
 
         final String sql = "select " + rm.schema() + " where lc.loan_id=? AND 
lc.is_active = true"
                 + " order by 
coalesce(lc.due_for_collection_as_of_date,date(coalesce(dd.disbursedon_date,dd.expected_disburse_date))),lc.charge_time_enum
 ASC, lc.due_for_collection_as_of_date ASC, lc.is_penalty ASC";
 
-        return this.jdbcTemplate.query(sql, rm, new Object[] { loanId }); // 
NOSONAR
+        return this.jdbcTemplate.query(sql, rm, loanId); // NOSONAR
     }
 
     @Override
@@ -190,7 +183,7 @@ public class LoanChargeReadPlatformServiceImpl implements 
LoanChargeReadPlatform
         final LoanChargeMapperWithLoanId rm = new LoanChargeMapperWithLoanId();
         final String sql = "select " + rm.schema()
                 + "where loan.loan_status_id= ? and 
lc.charge_payment_mode_enum=? and lc.waived = false and 
lc.is_paid_derived=false and lc.is_active = true";
-        return this.jdbcTemplate.query(sql, rm, new Object[] { loanStatus, 
paymentMode }); // NOSONAR
+        return this.jdbcTemplate.query(sql, rm, loanStatus, paymentMode); // 
NOSONAR
     }
 
     private static final class LoanChargeMapperWithLoanId implements 
RowMapper<LoanChargeData> {
@@ -223,7 +216,7 @@ public class LoanChargeReadPlatformServiceImpl implements 
LoanChargeReadPlatform
             sql = sql + "and lic.waived = false and lic.is_paid_derived=false";
         }
         sql = sql + " order by lsi.installment";
-        return this.jdbcTemplate.query(sql, rm, new Object[] { loanChargeId 
}); // NOSONAR
+        return this.jdbcTemplate.query(sql, rm, loanChargeId); // NOSONAR
     }
 
     private static final class LoanInstallmentChargeMapper implements 
RowMapper<LoanInstallmentChargeData> {
@@ -271,7 +264,7 @@ public class LoanChargeReadPlatformServiceImpl implements 
LoanChargeReadPlatform
                 + " order by lc.charge_time_enum ASC, 
lc.due_for_collection_as_of_date ASC, lc.is_penalty ASC";
 
         Collection<LoanChargeData> charges = this.jdbcTemplate.query(sql, rm, 
// NOSONAR
-                new Object[] { LoanTransactionType.ACCRUAL.getValue(), loanId, 
loanId });
+                LoanTransactionType.ACCRUAL.getValue(), loanId, loanId);
         charges = updateLoanChargesWithUnrecognizedIncome(loanId, charges);
 
         Collection<LoanChargeData> removeCharges = new ArrayList<>();
@@ -348,7 +341,7 @@ public class LoanChargeReadPlatformServiceImpl implements 
LoanChargeReadPlatform
         final String sql = "select " + rm.schema() + " where lc.loan_id=? AND 
lc.is_active = true group by  lc.id "
                 + " order by lc.charge_time_enum ASC, 
lc.due_for_collection_as_of_date ASC, lc.is_penalty ASC";
 
-        return this.jdbcTemplate.query(sql, rm, new Object[] { 
LoanTransactionType.WAIVE_CHARGES.getValue(), loanId, loanId }); // NOSONAR
+        return this.jdbcTemplate.query(sql, rm, 
LoanTransactionType.WAIVE_CHARGES.getValue(), loanId, loanId); // NOSONAR
     }
 
     private static final class LoanChargeUnRecognizedIncomeMapper implements 
RowMapper<LoanChargeData> {
@@ -396,7 +389,7 @@ public class LoanChargeReadPlatformServiceImpl implements 
LoanChargeReadPlatform
         String sql = "select " + rm.schema()
                 + " where lic.loan_charge_id= ?  group by lsi.installment, 
lsi.duedate, lic.amount_outstanding_derived, lic.amount, lic.is_paid_derived, 
lic.amount_waived_derived, lic.waived";
         Collection<LoanInstallmentChargeData> chargeDatas = 
this.jdbcTemplate.query(sql, rm, // NOSONAR
-                new Object[] { LoanTransactionType.ACCRUAL.getValue(), 
loanChargeId });
+                LoanTransactionType.ACCRUAL.getValue(), loanChargeId);
         final Map<Integer, LoanInstallmentChargeData> installmentChargeDatas = 
new HashMap<>();
         for (LoanInstallmentChargeData installmentChargeData : chargeDatas) {
             
installmentChargeDatas.put(installmentChargeData.getInstallmentNumber(), 
installmentChargeData);
@@ -457,7 +450,7 @@ public class LoanChargeReadPlatformServiceImpl implements 
LoanChargeReadPlatform
             final Map<Integer, LoanInstallmentChargeData> 
installmentChargeDatas) {
         final LoanInstallmentChargeUnRecognizedIncomeMapper rm = new 
LoanInstallmentChargeUnRecognizedIncomeMapper(installmentChargeDatas);
         String sql = "select " + rm.schema() + " where cpb.loan_charge_id = ? 
group by cpb.installment_number  ";
-        return this.jdbcTemplate.query(sql, rm, new Object[] { 
LoanTransactionType.WAIVE_CHARGES.getValue(), loanChargeId }); // NOSONAR
+        return this.jdbcTemplate.query(sql, rm, 
LoanTransactionType.WAIVE_CHARGES.getValue(), loanChargeId); // NOSONAR
     }
 
     private static final class LoanInstallmentChargeUnRecognizedIncomeMapper 
implements RowMapper<LoanInstallmentChargeData> {
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 90ba8a5a8..e87b7f10f 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
@@ -215,8 +215,7 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
             sqlBuilder.append(" left join m_office transferToOffice on 
transferToOffice.id = c.transfer_to_office_id ");
             sqlBuilder.append(" where l.id=? and ( o.hierarchy like ? or 
transferToOffice.hierarchy like ?)");
 
-            return this.jdbcTemplate.queryForObject(sqlBuilder.toString(), rm,
-                    new Object[] { loanId, hierarchySearchString, 
hierarchySearchString });
+            return this.jdbcTemplate.queryForObject(sqlBuilder.toString(), rm, 
loanId, hierarchySearchString, hierarchySearchString);
         } catch (final EmptyResultDataAccessException e) {
             throw new LoanNotFoundException(loanId, e);
         }
@@ -231,7 +230,7 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
 
         final String sql = "select " + rm.loanSchema() + " where 
l.account_no=?";
 
-        return this.jdbcTemplate.queryForObject(sql, rm, new Object[] { 
loanAccountNumber }); // NOSONAR
+        return this.jdbcTemplate.queryForObject(sql, rm, loanAccountNumber); 
// NOSONAR
 
     }
 
@@ -244,7 +243,7 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
                 + " left join glim_parent_child_mapping as glim on 
glim.glim_child_account_id=l.account_no "
                 + "where glim.glim_parent_account_id=?";
 
-        return this.jdbcTemplate.query(sql, rm, new Object[] { 
parentloanAccountNumber }); // NOSONAR
+        return this.jdbcTemplate.query(sql, rm, parentloanAccountNumber); // 
NOSONAR
 
     }
 
@@ -260,7 +259,7 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
                     repaymentScheduleRelatedLoanData, disbursementData, 
isInterestRecalculationEnabled, totalPaidFeeCharges);
             final String sql = "select " + fullResultsetExtractor.schema() + " 
where ls.loan_id = ? order by ls.loan_id, ls.installment";
 
-            return this.jdbcTemplate.query(sql, fullResultsetExtractor, new 
Object[] { loanId }); // NOSONAR
+            return this.jdbcTemplate.query(sql, fullResultsetExtractor, 
loanId); // NOSONAR
         } catch (final EmptyResultDataAccessException e) {
             throw new LoanNotFoundException(loanId, e);
         }
@@ -282,7 +281,7 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
              ***/
             final String sql = "select " + rm.loanPaymentsSchema()
                     + " where tr.loan_id = ? and tr.transaction_type_enum not 
in (0, 3) and  (tr.is_reversed=false or tr.manually_adjusted_or_reversed = 
true) order by tr.transaction_date ASC,id ";
-            return this.jdbcTemplate.query(sql, rm, new Object[] { loanId }); 
// NOSONAR
+            return this.jdbcTemplate.query(sql, rm, loanId); // NOSONAR
         } catch (final EmptyResultDataAccessException e) {
             return null;
         }
@@ -435,7 +434,7 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
         RepaymentTransactionTemplateMapper mapper = new 
RepaymentTransactionTemplateMapper(sqlGenerator);
         String sql = "select " + mapper.schema();
         LoanTransactionData loanTransactionData = 
this.jdbcTemplate.queryForObject(sql, mapper, // NOSONAR
-                new Object[] { LoanTransactionType.REPAYMENT.getValue(), 
LoanTransactionType.REPAYMENT.getValue(), loanId, loanId });
+                LoanTransactionType.REPAYMENT.getValue(), 
LoanTransactionType.REPAYMENT.getValue(), loanId, loanId);
         final Collection<PaymentTypeData> paymentOptions = 
this.paymentTypeReadPlatformService.retrieveAllPaymentTypes();
         return LoanTransactionData.templateOnTop(loanTransactionData, 
paymentOptions);
     }
@@ -574,7 +573,7 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
         try {
             final LoanTransactionsMapper rm = new 
LoanTransactionsMapper(sqlGenerator);
             final String sql = "select " + rm.loanPaymentsSchema() + " where 
l.id = ? and tr.id = ? ";
-            return this.jdbcTemplate.queryForObject(sql, rm, new Object[] { 
loanId, transactionId }); // NOSONAR
+            return this.jdbcTemplate.queryForObject(sql, rm, loanId, 
transactionId); // NOSONAR
         } catch (final EmptyResultDataAccessException e) {
             throw new LoanTransactionNotFoundException(transactionId, e);
         }
@@ -1050,10 +1049,9 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
             final BigDecimal interestOutstanding = 
interestActualDue.subtract(interestPaid);
 
             final Integer installmentNumber = 
JdbcSupport.getIntegerDefaultToNullIfZero(rs, "period");
-            final OverdueLoanScheduleData overdueLoanScheduleData = new 
OverdueLoanScheduleData(loanId, chargeId, dueDate, amount,
-                    dateFormat, locale, principalOutstanding, 
interestOutstanding, installmentNumber);
 
-            return overdueLoanScheduleData;
+            return new OverdueLoanScheduleData(loanId, chargeId, dueDate, 
amount, dateFormat, locale, principalOutstanding,
+                    interestOutstanding, installmentNumber);
         }
     }
 
@@ -1106,7 +1104,7 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
                     this.currency.currencyInMultiplesOf());
             BigDecimal totalPrincipalDisbursed = BigDecimal.ZERO;
             BigDecimal disbursementChargeAmount = 
this.totalFeeChargesDueAtDisbursement;
-            if (disbursementData == null || disbursementData.isEmpty()) {
+            if (disbursementData.isEmpty()) {
                 periods.add(disbursementPeriod);
                 totalPrincipalDisbursed = Money.of(monCurrency, 
this.disbursement.amount()).getAmount();
             } else {
@@ -1140,7 +1138,7 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
             totalRepayment = 
totalRepayment.plus(disbursementPeriod.feeChargesPaid()).minus(waivedChargeAmount);
             totalOutstanding = 
totalOutstanding.plus(disbursementPeriod.feeChargesDue()).minus(disbursementPeriod.feeChargesPaid());
 
-            Integer loanTermInDays = Integer.valueOf(0);
+            Integer loanTermInDays = 0;
             while (rs.next()) {
 
                 final Long loanId = rs.getLong("loanId");
@@ -1149,50 +1147,43 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
                 final LocalDate dueDate = JdbcSupport.getLocalDate(rs, 
"dueDate");
                 final LocalDate obligationsMetOnDate = 
JdbcSupport.getLocalDate(rs, "obligationsMetOnDate");
                 final boolean complete = rs.getBoolean("complete");
-                if (disbursementData != null) {
-                    BigDecimal principal = BigDecimal.ZERO;
-                    for (final DisbursementData data : disbursementData) {
-                        if 
(fromDate.equals(this.disbursement.disbursementDate()) && 
data.disbursementDate().equals(fromDate)) {
+                BigDecimal principal = BigDecimal.ZERO;
+                for (final DisbursementData data : disbursementData) {
+                    if (fromDate.equals(this.disbursement.disbursementDate()) 
&& data.disbursementDate().equals(fromDate)) {
+                        principal = principal.add(data.amount());
+                        LoanSchedulePeriodData periodData = null;
+                        if (data.getChargeAmount() == null) {
+                            periodData = 
LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), 
data.amount(),
+                                    disbursementChargeAmount, 
data.isDisbursed());
+                        } else {
+                            periodData = 
LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), 
data.amount(),
+                                    
disbursementChargeAmount.add(data.getChargeAmount()).subtract(waivedChargeAmount),
 data.isDisbursed());
+                        }
+                        periods.add(periodData);
+                        this.outstandingLoanPrincipalBalance = 
this.outstandingLoanPrincipalBalance.add(data.amount());
+                    } else if (data.isDueForDisbursement(fromDate, dueDate)) {
+                        if (!excludePastUndisbursed || data.isDisbursed()
+                                || 
!data.disbursementDate().isBefore(DateUtils.getBusinessLocalDate())) {
                             principal = principal.add(data.amount());
-                            LoanSchedulePeriodData periodData = null;
+                            LoanSchedulePeriodData periodData;
                             if (data.getChargeAmount() == null) {
                                 periodData = 
LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), 
data.amount(),
-                                        disbursementChargeAmount, 
data.isDisbursed());
+                                        BigDecimal.ZERO, data.isDisbursed());
                             } else {
                                 periodData = 
LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), 
data.amount(),
-                                        
disbursementChargeAmount.add(data.getChargeAmount()).subtract(waivedChargeAmount),
-                                        data.isDisbursed());
-                            }
-                            if (periodData != null) {
-                                periods.add(periodData);
+                                        data.getChargeAmount(), 
data.isDisbursed());
                             }
+                            periods.add(periodData);
                             this.outstandingLoanPrincipalBalance = 
this.outstandingLoanPrincipalBalance.add(data.amount());
-                        } else if (data.isDueForDisbursement(fromDate, 
dueDate)) {
-                            if (!excludePastUndisbursed || 
(excludePastUndisbursed
-                                    && (data.isDisbursed() || 
!data.disbursementDate().isBefore(DateUtils.getBusinessLocalDate())))) {
-                                principal = principal.add(data.amount());
-                                LoanSchedulePeriodData periodData = null;
-                                if (data.getChargeAmount() == null) {
-                                    periodData = 
LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), 
data.amount(),
-                                            BigDecimal.ZERO, 
data.isDisbursed());
-                                } else {
-                                    periodData = 
LoanSchedulePeriodData.disbursementOnlyPeriod(data.disbursementDate(), 
data.amount(),
-                                            data.getChargeAmount(), 
data.isDisbursed());
-                                }
-                                if (periodData != null) {
-                                    periods.add(periodData);
-                                }
-                                this.outstandingLoanPrincipalBalance = 
this.outstandingLoanPrincipalBalance.add(data.amount());
-                            }
                         }
                     }
-                    totalPrincipalDisbursed = 
totalPrincipalDisbursed.add(principal);
                 }
+                totalPrincipalDisbursed = 
totalPrincipalDisbursed.add(principal);
 
-                Integer daysInPeriod = Integer.valueOf(0);
+                Integer daysInPeriod = 0;
                 if (fromDate != null) {
                     daysInPeriod = 
Math.toIntExact(ChronoUnit.DAYS.between(fromDate, dueDate));
-                    loanTermInDays = Integer.valueOf(loanTermInDays.intValue() 
+ daysInPeriod.intValue());
+                    loanTermInDays = loanTermInDays + daysInPeriod;
                 }
 
                 final BigDecimal principalDue = 
JdbcSupport.getBigDecimalDefaultToZeroIfNull(rs, "principalDue");
@@ -1575,7 +1566,7 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
         final LoanDisbursementDetailMapper rm = new 
LoanDisbursementDetailMapper(sqlGenerator);
         final String sql = "select " + rm.schema()
                 + " where dd.loan_id=? group by dd.id, 
lc.amount_waived_derived order by dd.expected_disburse_date";
-        return this.jdbcTemplate.query(sql, rm, new Object[] { loanId }); // 
NOSONAR
+        return this.jdbcTemplate.query(sql, rm, loanId); // NOSONAR
     }
 
     private static final class LoanDisbursementDetailMapper implements 
RowMapper<DisbursementData> {
@@ -1606,9 +1597,8 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
             if (chargeAmount != null && waivedAmount != null) {
                 chargeAmount = chargeAmount.subtract(waivedAmount);
             }
-            final DisbursementData disbursementData = new DisbursementData(id, 
expectedDisbursementdate, actualDisbursementdate, principal,
-                    netDisbursalAmount, loanChargeId, chargeAmount, 
waivedAmount);
-            return disbursementData;
+            return new DisbursementData(id, expectedDisbursementdate, 
actualDisbursementdate, principal, netDisbursalAmount, loanChargeId,
+                    chargeAmount, waivedAmount);
         }
 
     }
@@ -1617,14 +1607,14 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
     public DisbursementData retrieveLoanDisbursementDetail(Long loanId, Long 
disbursementId) {
         final LoanDisbursementDetailMapper rm = new 
LoanDisbursementDetailMapper(sqlGenerator);
         final String sql = "select " + rm.schema() + " where dd.loan_id=? and 
dd.id=? group by dd.id, lc.amount_waived_derived";
-        return this.jdbcTemplate.queryForObject(sql, rm, new Object[] { 
loanId, disbursementId }); // NOSONAR
+        return this.jdbcTemplate.queryForObject(sql, rm, loanId, 
disbursementId); // NOSONAR
     }
 
     @Override
     public Collection<LoanTermVariationsData> retrieveLoanTermVariations(Long 
loanId, Integer termType) {
         final LoanTermVariationsMapper rm = new LoanTermVariationsMapper();
         final String sql = "select " + rm.schema() + " where tv.loan_id=? and 
tv.term_type=?";
-        return this.jdbcTemplate.query(sql, rm, new Object[] { loanId, 
termType }); // NOSONAR
+        return this.jdbcTemplate.query(sql, rm, loanId, termType); // NOSONAR
     }
 
     private static final class LoanTermVariationsMapper implements 
RowMapper<LoanTermVariationsData> {
@@ -1642,10 +1632,8 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
             final LocalDate dateValue = JdbcSupport.getLocalDate(rs, 
"dateValue");
             final boolean isSpecificToInstallment = 
rs.getBoolean("isSpecificToInstallment");
 
-            final LoanTermVariationsData loanTermVariationsData = new 
LoanTermVariationsData(id,
-                    
LoanEnumerations.loanvariationType(LoanTermVariationType.EMI_AMOUNT), 
variationApplicableFrom, decimalValue, dateValue,
-                    isSpecificToInstallment);
-            return loanTermVariationsData;
+            return new LoanTermVariationsData(id, 
LoanEnumerations.loanvariationType(LoanTermVariationType.EMI_AMOUNT),
+                    variationApplicableFrom, decimalValue, dateValue, 
isSpecificToInstallment);
         }
 
     }
@@ -1866,7 +1854,7 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
         sqlBuilder.append(" WHERE ml.loan_status_id = ? ");
         sqlBuilder.append(" and ml.is_npa = false ");
         sqlBuilder.append(" and ((");
-        sqlBuilder.append("ml.interest_recalculation_enabled = 1 ");
+        sqlBuilder.append("ml.interest_recalculation_enabled = true ");
         sqlBuilder.append(" and (ml.interest_recalcualated_on is null or 
ml.interest_recalcualated_on <> ?)");
         sqlBuilder.append(" and ((");
         sqlBuilder.append(" mr.completed_derived is false ");
@@ -1884,8 +1872,8 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
             LocalDate currentdate = DateUtils.getBusinessLocalDate();
             // will look only for yesterday modified rates
             LocalDate yesterday = 
DateUtils.getBusinessLocalDate().minusDays(1);
-            return this.jdbcTemplate.queryForList(sqlBuilder.toString(), 
Long.class,
-                    new Object[] { yesterday, LoanStatus.ACTIVE.getValue(), 
currentdate, currentdate, currentdate, yesterday });
+            return this.jdbcTemplate.queryForList(sqlBuilder.toString(), 
Long.class, yesterday, LoanStatus.ACTIVE.getValue(), currentdate,
+                    currentdate, currentdate, yesterday);
         } catch (final EmptyResultDataAccessException e) {
             return null;
         }
@@ -1931,9 +1919,9 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
         sqlBuilder.append(" group by ml.id ");
         sqlBuilder.append(" limit ? ");
         try {
-            return 
Collections.synchronizedList(this.jdbcTemplate.queryForList(sqlBuilder.toString(),
 Long.class,
-                    new Object[] { yesterday, LoanStatus.ACTIVE.getValue(), 
currentdate, currentdate, currentdate, yesterday,
-                            maxLoanIdInList, officeHierarchy, pageSize }));
+            return Collections.synchronizedList(
+                    this.jdbcTemplate.queryForList(sqlBuilder.toString(), 
Long.class, yesterday, LoanStatus.ACTIVE.getValue(), currentdate,
+                            currentdate, currentdate, yesterday, 
maxLoanIdInList, officeHierarchy, pageSize));
         } catch (final EmptyResultDataAccessException e) {
             return null;
         }
@@ -1947,7 +1935,7 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
 
             final String sql = "select " + rm.schema()
                     + " where tr.loan_id = ? and tr.transaction_type_enum = ? 
and tr.is_reversed=false order by tr.transaction_date ASC,id ";
-            return this.jdbcTemplate.query(sql, rm, new Object[] { loanId, 
LoanTransactionType.WAIVE_INTEREST.getValue() }); // NOSONAR
+            return this.jdbcTemplate.query(sql, rm, loanId, 
LoanTransactionType.WAIVE_INTEREST.getValue()); // NOSONAR
         } catch (final EmptyResultDataAccessException e) {
             return null;
         }
@@ -2006,7 +1994,7 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
 
             final String sql = "select " + rm.getSchema()
                     + " where lrs.loan_id = ? and lrs.interest_waived_derived 
is not null order by lrs.installment ASC ";
-            return this.jdbcTemplate.query(sql, rm, new Object[] { loanId }); 
// NOSONAR
+            return this.jdbcTemplate.query(sql, rm, loanId); // NOSONAR
         } catch (final EmptyResultDataAccessException e) {
             return null;
         }
@@ -2081,12 +2069,9 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
 
     @Override
     public LocalDate retrieveMinimumDateOfRepaymentTransaction(Long loanId) {
-        // TODO Auto-generated method stub
-        LocalDate date = this.jdbcTemplate.queryForObject(
+        return this.jdbcTemplate.queryForObject(
                 "select min(transaction_date) from m_loan_transaction where 
loan_id=? and transaction_type_enum=2", LocalDate.class,
                 loanId);
-
-        return date;
     }
 
     @Override
@@ -2253,7 +2238,7 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
     private static final class RepaymentTransactionTemplateMapper implements 
RowMapper<LoanTransactionData> {
 
         private final DatabaseSpecificSQLGenerator sqlGenerator;
-        private CurrencyMapper currencyMapper = new CurrencyMapper();
+        private final CurrencyMapper currencyMapper = new CurrencyMapper();
 
         RepaymentTransactionTemplateMapper(DatabaseSpecificSQLGenerator 
sqlGenerator) {
             this.sqlGenerator = sqlGenerator;
@@ -2348,7 +2333,7 @@ public class LoanReadPlatformServiceImpl implements 
LoanReadPlatformService {
     public CollectionData retrieveLoanCollectionData(Long loanId) {
         final CollectionDataMapper mapper = new 
CollectionDataMapper(sqlGenerator);
         String sql = "select " + mapper.schema();
-        CollectionData collectionData = this.jdbcTemplate.queryForObject(sql, 
mapper, new Object[] { loanId }); // NOSONAR
+        CollectionData collectionData = this.jdbcTemplate.queryForObject(sql, 
mapper, loanId); // NOSONAR
         return collectionData;
     }
 

Reply via email to