MIFOSX-1093- modified scheduler jobs for performence issues
This commit is contained in:
+2
-2
@@ -22,6 +22,6 @@ public interface LoanChargeReadPlatformService {
|
||||
Collection<LoanChargeData> retrieveLoanChargesForFeePayment(Integer paymentMode, Integer loanStatus);
|
||||
|
||||
Collection<LoanInstallmentChargeData> retrieveInstallmentLoanCharges(Long loanChargeId, boolean onlyPaymentPendingCharges);
|
||||
|
||||
Collection<Integer> retrieveOverdueInstallmentChargeFrequencyNumber(Long installmentId, Long chargeId);
|
||||
|
||||
Collection<Integer> retrieveOverdueInstallmentChargeFrequencyNumber(Long loanId, Long chargeId, Integer periodNumber);
|
||||
}
|
||||
|
||||
+7
-5
@@ -226,12 +226,14 @@ public class LoanChargeReadPlatformServiceImpl implements LoanChargeReadPlatform
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Integer> retrieveOverdueInstallmentChargeFrequencyNumber(final Long installmentId,final Long chargeId) {
|
||||
String sql = "select oic.frequency_number from m_loan_overdue_installment_charge oic inner join m_loan_charge lc on lc.id=oic.loan_charge_id where oic.loan_schedule_id = ? and lc.is_active = 1";
|
||||
Object[] params = {installmentId};
|
||||
if(chargeId != null){
|
||||
public Collection<Integer> retrieveOverdueInstallmentChargeFrequencyNumber(final Long loanId, final Long chargeId,
|
||||
final Integer periodNumber) {
|
||||
String sql = "select oic.frequency_number from m_loan_overdue_installment_charge oic inner join m_loan_charge lc on lc.id=oic.loan_charge_id inner join m_loan_repayment_schedule rs on rs.id = oic.loan_schedule_id inner join m_loan loan on loan.id=rs.loan_id "
|
||||
+ "where lc.is_active = 1 and loan.id = ? and rs.installment=?";
|
||||
Object[] params = { loanId, periodNumber };
|
||||
if (chargeId != null) {
|
||||
sql += " and lc.charge_id = ? ";
|
||||
params = new Object[]{installmentId,chargeId};
|
||||
params = new Object[] { loanId, periodNumber, chargeId };
|
||||
}
|
||||
return this.jdbcTemplate.queryForList(sql, Integer.class, params);
|
||||
}
|
||||
|
||||
+11
-6
@@ -1781,18 +1781,15 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("null")
|
||||
@Transactional
|
||||
public void applyChargeToOverdueLoanInstallment(final Long loanId, final Long loanChargeId, final Integer periodNumber,
|
||||
final JsonCommand command) {
|
||||
|
||||
final Loan loan = this.loanAssembler.assembleFrom(loanId);
|
||||
checkClientOrGroupActive(loan);
|
||||
|
||||
final Charge chargeDefinition = this.chargeRepository.findOneWithNotFoundDetection(loanChargeId);
|
||||
final LoanRepaymentScheduleInstallment installment = loan.fetchRepaymentScheduleInstallment(periodNumber);
|
||||
|
||||
Collection<Integer> frequencyNumbers = loanChargeReadPlatformService.retrieveOverdueInstallmentChargeFrequencyNumber(
|
||||
installment.getId(), chargeDefinition.getId());
|
||||
Collection<Integer> frequencyNumbers = loanChargeReadPlatformService.retrieveOverdueInstallmentChargeFrequencyNumber(loanId,
|
||||
chargeDefinition.getId(), periodNumber);
|
||||
|
||||
Integer feeFrequency = chargeDefinition.feeFrequency();
|
||||
final ScheduledDateGenerator scheduledDateGenerator = new DefaultScheduledDateGenerator();
|
||||
@@ -1822,6 +1819,14 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
|
||||
scheduleDates.remove(frequency);
|
||||
}
|
||||
|
||||
Loan loan = null;
|
||||
LoanRepaymentScheduleInstallment installment = null;
|
||||
if (!scheduleDates.isEmpty()) {
|
||||
loan = this.loanAssembler.assembleFrom(loanId);
|
||||
checkClientOrGroupActive(loan);
|
||||
installment = loan.fetchRepaymentScheduleInstallment(periodNumber);
|
||||
}
|
||||
|
||||
for (Map.Entry<Integer, LocalDate> entry : scheduleDates.entrySet()) {
|
||||
|
||||
final LoanCharge loanCharge = LoanCharge.createNewFromJson(loan, chargeDefinition, command, entry.getValue());
|
||||
|
||||
Reference in New Issue
Block a user