96 lines
3.0 KiB
Java
96 lines
3.0 KiB
Java
package com.tenwa.reckon.help;
|
|
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
import com.tenwa.reckon.bean.AdjustBean;
|
|
import com.tenwa.reckon.bean.ConditionBean;
|
|
import com.tenwa.reckon.bean.FundRentPlanBean;
|
|
import com.tenwa.reckon.util.NumTools;
|
|
import com.tenwa.reckon.util.NumberUtils;
|
|
|
|
|
|
public class AdjustHelper {
|
|
/**
|
|
*
|
|
* (更加Adjustbean把conditionbean重置)
|
|
* @param cdb conditionbean 交易结构bean
|
|
* @param adb Adjustbean 租金变更bean
|
|
* @param frpb FundRentPlanBean 租金计划bean
|
|
* @return conditionbean 重置之后的交易结构bean
|
|
* @throws Exception
|
|
*/
|
|
public static ConditionBean getConditionBeanByAdjustBean(ConditionBean cdb,AdjustBean adb,FundRentPlanBean frpb) throws Exception{
|
|
//重构宽限期
|
|
int grace = cdb.getGrace();
|
|
if(grace-adb.getStartList()>=0){
|
|
grace=grace-adb.getStartList()+1;
|
|
}else{
|
|
grace=0;
|
|
}
|
|
cdb.setGrace(grace);
|
|
//重置付租方式
|
|
cdb.setPeriodType(getPeroidType(adb.getStartList(),cdb.getGrace(),cdb.getPeriodType()));
|
|
//重构还款次数
|
|
int income_number_year=Integer.parseInt(cdb.getIncomeNumberYear());
|
|
int incomeNumber = getIncomeNumByAdjust(adb.getAdjustList(), adb.getStartList(), cdb.getGrace());
|
|
cdb.setIncomeNumber(incomeNumber);
|
|
//重构租赁期限
|
|
int incoms_num = grace + cdb.getIncomeNumber();
|
|
cdb.setLeaseTerm(12 * incoms_num / income_number_year);
|
|
//重置起租日
|
|
String start_date="";
|
|
if(adb.getPaydayAdjust()==null||adb.getPaydayAdjust().equals("")){
|
|
//如果变更调整中的日期为空,那么就以开始调整期数当期为起租日
|
|
start_date=frpb.getInterestDateList().get(adb.getStartList()-1).toString();
|
|
//start_date=adb.getPaydayAdjust();
|
|
}else{
|
|
if(adb.getStartList()==1){
|
|
start_date=cdb.getStartDate();
|
|
}else{
|
|
start_date=frpb.getInterestDateList().get(adb.getStartList()-2).toString();
|
|
}
|
|
}
|
|
cdb.setStartDate(start_date);
|
|
if(adb.getStartList()>1){
|
|
cdb.setFirstInterestDate(null);
|
|
}
|
|
//cdb.setFirstPlanDate(adb.getPaydayAdjust());
|
|
//cdb.setSecondPlanDate(null);
|
|
if( adb.getYearRate()!= null && Double.parseDouble( NumberUtils.nullToZero( String.valueOf( adb.getYearRate() ) ) ) > 0 ){
|
|
cdb.setYearRate(String.valueOf(adb.getYearRate()));
|
|
}
|
|
|
|
String clean_lease_money="";
|
|
clean_lease_money=new BigDecimal(NumTools.getSumCorpusOverage(frpb.getCorpusBusinessList(), adb.getStartList())).add(new BigDecimal(cdb.getEquipEndValue())).toString();;
|
|
|
|
cdb.setCleanLeaseMoney(clean_lease_money);
|
|
return cdb;
|
|
}
|
|
|
|
public static String getPeroidType(int startList, int grace, String oldType) {
|
|
// 起租类型 注意: 期初 数字 1 字符串 period_type_1 #分割线# 期末 数字0 字符串 period_type_0
|
|
String peroidType = oldType;
|
|
if (grace >= startList) {
|
|
peroidType = oldType;
|
|
} else if (grace + 1 == startList) {
|
|
peroidType = oldType;
|
|
} else {
|
|
peroidType = "0";
|
|
}
|
|
return peroidType;
|
|
}
|
|
|
|
public static int getIncomeNumByAdjust(int incomeNumber, int startList, int grace) {
|
|
int totalNumber = 0;
|
|
if (grace >= startList) {
|
|
totalNumber = incomeNumber;
|
|
} else if (grace < startList) {
|
|
totalNumber = incomeNumber - startList + 1;
|
|
}
|
|
return totalNumber;
|
|
}
|
|
}
|