batch job changes

This commit is contained in:
John Woodlock
2013-06-24 10:08:07 +01:00
parent 7f2b5ee810
commit 876bca05d2
2 changed files with 33 additions and 19 deletions
@@ -180,19 +180,19 @@ public class ScheduledJobRunnerServiceImpl implements ScheduledJobRunnerService
StringBuilder updateSqlBuilder = new StringBuilder(900);
updateSqlBuilder.append("INSERT INTO m_loan_paid_in_advance(loan_id, principal_in_advance_derived, interest_in_advance_derived, fee_charges_in_advance_derived, penalty_charges_in_advance_derived, total_in_advance_derived)");
updateSqlBuilder.append("select ml.id as loanId,");
updateSqlBuilder.append("SUM(ifnull(mr.principal_completed_derived, 0)) as principal_in_advance_derived,");
updateSqlBuilder.append("SUM(ifnull(mr.interest_completed_derived, 0)) as interest_in_advance_derived,");
updateSqlBuilder.append("SUM(ifnull(mr.fee_charges_completed_derived, 0)) as fee_charges_in_advance_derived,");
updateSqlBuilder.append("SUM(ifnull(mr.penalty_charges_completed_derived, 0)) as penalty_charges_in_advance_derived,");
updateSqlBuilder.append("(SUM(ifnull(mr.principal_completed_derived, 0)) + SUM(ifnull(mr.interest_completed_derived, 0)) + SUM(ifnull(mr.fee_charges_completed_derived, 0)) + SUM(ifnull(mr.penalty_charges_completed_derived, 0))) as total_in_advance_derived");
updateSqlBuilder.append("FROM m_loan ml ");
updateSqlBuilder.append("INNER JOIN m_loan_repayment_schedule mr on mr.loan_id = ml.id ");
updateSqlBuilder.append("WHERE ml.loan_status_id = 300 ");
updateSqlBuilder.append("and mr.duedate >= CURDATE() ");
updateSqlBuilder.append("GROUP BY ml.id");
updateSqlBuilder.append("HAVING (SUM(ifnull(mr.principal_completed_derived, 0)) + SUM(ifnull(mr.interest_completed_derived, 0)) +");
updateSqlBuilder.append("SUM(ifnull(mr.fee_charges_completed_derived, 0)) + SUM(ifnull(mr.penalty_charges_completed_derived, 0))) > 0.0");
updateSqlBuilder.append(" select ml.id as loanId,");
updateSqlBuilder.append(" SUM(ifnull(mr.principal_completed_derived, 0)) as principal_in_advance_derived,");
updateSqlBuilder.append(" SUM(ifnull(mr.interest_completed_derived, 0)) as interest_in_advance_derived,");
updateSqlBuilder.append(" SUM(ifnull(mr.fee_charges_completed_derived, 0)) as fee_charges_in_advance_derived,");
updateSqlBuilder.append(" SUM(ifnull(mr.penalty_charges_completed_derived, 0)) as penalty_charges_in_advance_derived,");
updateSqlBuilder.append(" (SUM(ifnull(mr.principal_completed_derived, 0)) + SUM(ifnull(mr.interest_completed_derived, 0)) + SUM(ifnull(mr.fee_charges_completed_derived, 0)) + SUM(ifnull(mr.penalty_charges_completed_derived, 0))) as total_in_advance_derived");
updateSqlBuilder.append(" FROM m_loan ml ");
updateSqlBuilder.append(" INNER JOIN m_loan_repayment_schedule mr on mr.loan_id = ml.id ");
updateSqlBuilder.append(" WHERE ml.loan_status_id = 300 ");
updateSqlBuilder.append(" and mr.duedate >= CURDATE() ");
updateSqlBuilder.append(" GROUP BY ml.id");
updateSqlBuilder.append(" HAVING (SUM(ifnull(mr.principal_completed_derived, 0)) + SUM(ifnull(mr.interest_completed_derived, 0)) +");
updateSqlBuilder.append(" SUM(ifnull(mr.fee_charges_completed_derived, 0)) + SUM(ifnull(mr.penalty_charges_completed_derived, 0))) > 0.0");
int result = jdbcTemplate.update(updateSqlBuilder.toString());
@@ -6,11 +6,6 @@
You can obtain one at http://mozilla.org/MPL/2.0/.
-->
<!--
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this file,
You can obtain one at http://mozilla.org/MPL/2.0/.
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
@@ -23,6 +18,10 @@
class="org.mifosplatform.scheduledjobs.UpdateLoanArrearsAgeingScheduledJob">
<constructor-arg ref="scheduledJobRunnerService" />
</bean>
<bean id="updateLoanPaidInAdvanceScheduledJob"
class="org.mifosplatform.scheduledjobs.UpdateLoanPaidInAdvanceScheduledJob">
<constructor-arg ref="scheduledJobRunnerService" />
</bean>
<bean id="applyAnnualFeeForSavingsScheduledJob"
class="org.mifosplatform.scheduledjobs.ApplyAnnualFeeForSavingsScheduledJob">
<constructor-arg ref="scheduledJobRunnerService" />
@@ -43,6 +42,14 @@
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="updateLoanPaidInAdvanceJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="group" value="mifosJobs" />
<property name="targetObject" ref="updateLoanPaidInAdvanceScheduledJob" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<bean id="applyAnnualFeeForSavingsJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
@@ -61,7 +68,13 @@
<bean id="updateLoanArrearsAgeingJobDetailCronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="updateLoanArrearsAgeingJobDetail" />
<property name="cronExpression" value="0 10 22 1/1 * ? *" />
<property name="cronExpression" value="0 1 0 1/1 * ? *" />
</bean>
<bean id="updateLoanPaidInAdvanceJobDetailCronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="updateLoanPaidInAdvanceJobDetail" />
<property name="cronExpression" value="0 5 0 1/1 * ? *" />
</bean>
<bean id="applyAnnualFeeForSavingsJobDetailCronTrigger"
@@ -76,6 +89,7 @@
<list>
<ref bean="updateLoanSummariesJobCronTrigger" />
<ref bean="updateLoanArrearsAgeingJobDetailCronTrigger" />
<ref bean="updateLoanPaidInAdvanceJobDetailCronTrigger" />
<ref bean="applyAnnualFeeForSavingsJobDetailCronTrigger" />
</list>
</property>