apzl_leasing/calc/com/tenwa/reckon/help/AdjustHelper.java
2018-06-03 22:26:41 +08:00

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;
}
}