提前部分结清租金实收表调整
This commit is contained in:
parent
cba1f1d92f
commit
6d147955b0
@ -561,8 +561,6 @@ public class EarlyContract {
|
||||
//计算调整后本金
|
||||
corpus = corpus.add(planCorpus);
|
||||
//计算调整后租息
|
||||
interest = interest.add(planInterest);
|
||||
|
||||
rent=corpus.add(interest);
|
||||
end_corpus = noIncomeCorpus.subtract(noIncomeCorpus.multiply(new BigDecimal(equipmentRatio).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
|
||||
end_interest = noIncomeInterest.subtract(noIncomeInterest.multiply(new BigDecimal(equipmentRatio).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
|
||||
@ -572,7 +570,6 @@ public class EarlyContract {
|
||||
//计算调整后本金
|
||||
corpus = corpus.add(planCorpus);
|
||||
//计算调整后租息
|
||||
interest = interest.add(planInterest);
|
||||
rent=corpus.add(interest);
|
||||
end_corpus = noIncomeCorpus.subtract(noIncomeCorpus.multiply(new BigDecimal(equipmentRatio).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
|
||||
end_interest = noIncomeInterest.subtract(noIncomeInterest.multiply(new BigDecimal(equipmentRatio).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_HALF_UP));
|
||||
@ -671,9 +668,7 @@ public class EarlyContract {
|
||||
/**
|
||||
* 租金实收表操作
|
||||
*/
|
||||
if(!"coerce_terminate".equals(adjustType)){
|
||||
sql = "SELECT ifnull(LRPT.RENT,0)-ifnull(LRI.RENT,0)-ifnull(LRIT.RENT,0) AS OVER_RENT, ifnull(LRPT.CORPUS,0)-ifnull(LRI.CORPUS,0)-ifnull(LRIT.CORPUS,0) AS OVER_CORPUS, ifnull(LRPT.INTEREST,0)-ifnull(LRI.INTEREST,0)-ifnull(LRIT.INTEREST,0) AS OVER_INTEREST, LRPT.PLAN_LIST AS PLAN_LIST, LRPT.PLAN_DATE AS PLAN_DATE, LRP.PLAN_ID, date_format(now(),'%Y/%m/%d') AS ACCOUNTING_DATE, date_format(now(),'%Y/%m/%d %h:%m:%s') AS INPUTTIME FROM ( SELECT MAX(ID) AS PLAN_ID, CONTRACT_ID, PLAN_LIST, MAX(PLAN_DATE) AS PLAN_DATE, SUM(RENT) AS RENT, SUM(CORPUS) AS CORPUS, SUM(INTEREST) AS INTEREST FROM LC_RENT_PLAN_TEMP WHERE FLOWUNID='"+flowunid+"' AND CONTRACT_ID='"+contractId+"' GROUP BY CONTRACT_ID, PLAN_LIST ) LRPT LEFT JOIN (SELECT CONTRACT_ID, PLAN_LIST, MAX(ID) AS PLAN_ID FROM LC_RENT_PLAN WHERE CONTRACT_ID='"+contractId+"' GROUP BY CONTRACT_ID, PLAN_LIST )LRP ON LRP.CONTRACT_ID=LRPT.CONTRACT_ID AND LRP.PLAN_LIST=LRPT.PLAN_LIST LEFT JOIN ( SELECT CONTRACT_ID, PLAN_LIST, SUM(RENT) AS RENT, SUM(CORPUS) AS CORPUS, SUM(INTEREST) AS INTEREST FROM LC_RENT_INCOME WHERE CONTRACT_ID='"+contractId+"' GROUP BY CONTRACT_ID, PLAN_LIST ) LRI ON LRI.CONTRACT_ID=LRPT.CONTRACT_ID AND LRI.PLAN_LIST=LRPT.PLAN_LIST LEFT JOIN ( SELECT CONTRACT_ID, PLAN_LIST, SUM(RENT) AS RENT, SUM(CORPUS) AS CORPUS, SUM(INTEREST) AS INTEREST FROM LC_RENT_INCOME_TEMP WHERE CONTRACT_ID='"+contractId+"' and FLOWUNID='"+flowunid+"' GROUP BY CONTRACT_ID, PLAN_LIST ) LRIT ON LRIT.CONTRACT_ID=LRPT.CONTRACT_ID AND LRIT.PLAN_LIST=LRPT.PLAN_LIST WHERE ifnull(LRPT.RENT,0)>(ifnull(LRI.RENT,0)+ifnull(LRIT.RENT,0)) AND LRPT.PLAN_LIST<=(SELECT MIN(PLAN_LIST) FROM LC_RENT_PLAN_TEMP WHERE FLOWUNID='"+flowunid+"' AND date_format(STR_TO_DATE(PLAN_DATE,'%Y/%m/%d'),'%Y/%m/%d')>=date_format(STR_TO_DATE('"+paydayAdjust+"','%Y/%m/%d'),'%Y/%m/%d')) ORDER BY LRPT.PLAN_LIST";
|
||||
}
|
||||
sql = "SELECT ifnull(LRPT.RENT,0)-ifnull(LRI.RENT,0)-ifnull(LRIT.RENT,0) AS OVER_RENT, ifnull(LRPT.CORPUS,0)-ifnull(LRI.CORPUS,0)-ifnull(LRIT.CORPUS,0) AS OVER_CORPUS, ifnull(LRPT.INTEREST,0)-ifnull(LRI.INTEREST,0)-ifnull(LRIT.INTEREST,0) AS OVER_INTEREST, LRPT.PLAN_LIST AS PLAN_LIST, LRPT.PLAN_DATE AS PLAN_DATE, LRP.PLAN_ID, date_format(now(),'%Y/%m/%d') AS ACCOUNTING_DATE, date_format(now(),'%Y/%m/%d %h:%m:%s') AS INPUTTIME FROM ( SELECT MAX(ID) AS PLAN_ID, CONTRACT_ID, PLAN_LIST, MAX(PLAN_DATE) AS PLAN_DATE, SUM(RENT) AS RENT, SUM(CORPUS) AS CORPUS, SUM(INTEREST) AS INTEREST FROM LC_RENT_PLAN_TEMP WHERE FLOWUNID='"+flowunid+"' AND CONTRACT_ID='"+contractId+"' GROUP BY CONTRACT_ID, PLAN_LIST ) LRPT LEFT JOIN (SELECT CONTRACT_ID, PLAN_LIST, MAX(ID) AS PLAN_ID FROM LC_RENT_PLAN WHERE CONTRACT_ID='"+contractId+"' GROUP BY CONTRACT_ID, PLAN_LIST )LRP ON LRP.CONTRACT_ID=LRPT.CONTRACT_ID AND LRP.PLAN_LIST=LRPT.PLAN_LIST LEFT JOIN ( SELECT CONTRACT_ID, PLAN_LIST, SUM(RENT) AS RENT, SUM(CORPUS) AS CORPUS, SUM(INTEREST) AS INTEREST FROM LC_RENT_INCOME WHERE CONTRACT_ID='"+contractId+"' GROUP BY CONTRACT_ID, PLAN_LIST ) LRI ON LRI.CONTRACT_ID=LRPT.CONTRACT_ID AND LRI.PLAN_LIST=LRPT.PLAN_LIST LEFT JOIN ( SELECT CONTRACT_ID, PLAN_LIST, SUM(RENT) AS RENT, SUM(CORPUS) AS CORPUS, SUM(INTEREST) AS INTEREST FROM LC_RENT_INCOME_TEMP WHERE CONTRACT_ID='"+contractId+"' and FLOWUNID='"+flowunid+"' GROUP BY CONTRACT_ID, PLAN_LIST ) LRIT ON LRIT.CONTRACT_ID=LRPT.CONTRACT_ID AND LRIT.PLAN_LIST=LRPT.PLAN_LIST WHERE ifnull(LRPT.RENT,0)>(ifnull(LRI.RENT,0)+ifnull(LRIT.RENT,0)) AND LRPT.PLAN_LIST<(SELECT MIN(PLAN_LIST) FROM LC_RENT_PLAN_TEMP WHERE FLOWUNID='"+flowunid+"' AND date_format(STR_TO_DATE(PLAN_DATE,'%Y/%m/%d'),'%Y/%m/%d')>=date_format(STR_TO_DATE('"+paydayAdjust+"','%Y/%m/%d'),'%Y/%m/%d')) ORDER BY LRPT.PLAN_LIST";
|
||||
List<Map<String, String>> dataList = DataUtil.query(sql, Sqlca);
|
||||
for(int i=0; i<dataList.size();i++) {
|
||||
// 获取抵扣前当期应收租金本金利息
|
||||
@ -687,6 +682,7 @@ public class EarlyContract {
|
||||
BigDecimal over_interest = new BigDecimal(0);
|
||||
BigDecimal over_penalty = new BigDecimal(0);
|
||||
if(i==dataList.size()-1) {
|
||||
BigDecimal planrent = new BigDecimal(Sqlca.getString("select RENT from lc_rent_plan_temp lrpt where FLOWUNID = '"+flowunid+"' and PLAN_LIST = (select min(PLAN_LIST) from lc_rent_plan_temp where FLOWUNID = '"+flowunid+"' and STR_TO_DATE(PLAN_DATE, '%Y/%m/%d') > STR_TO_DATE('"+paydayAdjust+"','%Y/%m/%d'))"));
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
|
||||
SimpleDateFormat sdfM = new SimpleDateFormat("yyyy/MM");
|
||||
Date date1 = sdf.parse(PLAN_DATE);
|
||||
@ -694,13 +690,11 @@ public class EarlyContract {
|
||||
//如果约定终止日的月份和最后一次循环所在月份是一个月,才加上利息。否则减免一部分利息
|
||||
if(sdfM.format(date1).equals(sdfM.format(date2))){
|
||||
//提交结清收取当月利息,强制结清不收利息
|
||||
if("terminate".equals(adjustType)){
|
||||
over_interest=new BigDecimal(dataList.get(i).get("OVER_INTEREST")).subtract(end_interest);
|
||||
}
|
||||
over_corpus=new BigDecimal(dataList.get(i).get("OVER_CORPUS")).subtract(end_corpus);
|
||||
over_interest=new BigDecimal(dataList.get(i).get("OVER_INTEREST")).subtract(end_interest);
|
||||
over_corpus=new BigDecimal(dataList.get(i).get("OVER_CORPUS")).subtract(end_corpus).add(planrent);
|
||||
over_rent=over_interest.add(over_corpus);
|
||||
}else{
|
||||
over_corpus=new BigDecimal(dataList.get(i).get("OVER_CORPUS")).subtract(end_corpus);
|
||||
over_corpus=new BigDecimal(dataList.get(i).get("OVER_CORPUS")).subtract(end_corpus).add(planrent);
|
||||
over_rent=over_corpus;
|
||||
}
|
||||
}else {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user