and floor(DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)/30)=DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)/30
and b.funding_corp_id in (1080,100040,1030,100030)
and b.transaction_status in (2,5)
and b.contract_term not in (2,3)
and a.loan_application_history_id=#{loanApplicationHistoryId,jdbcType=VARCHAR}) a
left join xyqb_user.user_detail b on a.user_id=b.user_id
left join xyqb.loan_account_ext c on a.loan_application_history_id=c.loan_id
left join xyqb.apply_quota_record d on c.order_no=d.order_no
left join (select a.loan_application_history_id
,sum(if((a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at >= #{endTime,jdbcType=VARCHAR})) and a.deadline <= #{endTime,jdbcType=VARCHAR},if(b.loan_paid_at >= '2018-01-01',g.principal+g.interest+g.service_fee,h.principle+h.interest+h.service_fee_per_term),0)) yqze
,sum(if(a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at >= #{endTime,jdbcType=VARCHAR}),if(b.loan_paid_at >= '2018-01-01',g.principal,h.principle),0)) dkye
,min(if((a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at >= #{endTime,jdbcType=VARCHAR})) and a.deadline <= #{endTime,jdbcType=VARCHAR},a.deadline,null)) min_deadline
from xyqb.repayment_plan a
left join xyqb.loan_application_manifest_history b
on a.loan_application_history_id=b.loan_application_history_id
left join xyqb.repayment_record g on a.id=g.repayment_plan_id
left join xyqb.plan_amount_detail h on a.id=h.plan_id
where b.funding_corp_id in (1080,100040,1030,100030) and a.loan_application_history_id=#{loanApplicationHistoryId,jdbcType=VARCHAR}
group by a.loan_application_history_id) f on a.loan_application_history_id=f.loan_application_history_id
left join xyqb.repayment_record g on a.id=g.repayment_plan_id
select a.loan_application_history_id,max(ifnull(a.repayment_received_at,now())) as repaymentReceivedAt,max(a.deadline) as deadline
from vxyqb.repayment_plan a
left join vxyqb.loan_application_manifest_history b
on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at >= #{startTime,jdbcType=VARCHAR} and b.loan_paid_at < #{endTime,jdbcType=VARCHAR}
where (a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>=a.deadline))
and b.funding_corp_id in (1080,100040,1030,100030)