加入传统计提
This commit is contained in:
parent
24d68d6453
commit
f8720dad59
@ -23,6 +23,7 @@ import com.amarsoft.are.jbo.BizObject;
|
||||
import com.amarsoft.are.jbo.BizObjectManager;
|
||||
import com.amarsoft.are.jbo.JBOException;
|
||||
import com.amarsoft.are.jbo.JBOFactory;
|
||||
import com.amarsoft.are.jbo.JBOTransaction;
|
||||
import com.amarsoft.are.log.Log;
|
||||
import com.amarsoft.are.util.StringFunction;
|
||||
import com.amarsoft.awe.util.ASResultSet;
|
||||
@ -48,26 +49,43 @@ public class SplitInts2 implements Job{
|
||||
|
||||
Object userId = arg0.getTrigger().getJobDataMap().get("CurUserId");
|
||||
String curUserId = userId == null? "system" : userId.toString();
|
||||
|
||||
JBOTransaction tx =null;
|
||||
try{
|
||||
//Æû³µÒµÎñ
|
||||
Sqlca = Transaction.createTransaction("als");
|
||||
Sqlca.executeSQL(new SqlObject("{call proc_financial_interest()}"));
|
||||
Sqlca.commit();
|
||||
|
||||
//´«Í³ÒµÎñ
|
||||
SplitInts3 s3=new SplitInts3();
|
||||
s3.contractRentMonth(tx);
|
||||
s3.contractRentQuarter(tx);
|
||||
tx.commit();
|
||||
discountApportion();
|
||||
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.SplitInts", "success", "³É¹¦", curUserId);
|
||||
} catch (Exception e) {
|
||||
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.SplitInts", "error", "ʧ°Ü", curUserId);
|
||||
logger.error(e.getMessage());
|
||||
e.printStackTrace();
|
||||
try {
|
||||
Sqlca.rollback();
|
||||
tx.rollback();
|
||||
} catch (JBOException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}finally{
|
||||
try {
|
||||
if(Sqlca!=null){
|
||||
try {
|
||||
Sqlca.disConnect();
|
||||
} catch (JBOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Sqlca.disConnect();
|
||||
Sqlca = null;
|
||||
}
|
||||
if(tx!=null){
|
||||
tx=null;
|
||||
}
|
||||
} catch (JBOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
public void discountApportion() throws Exception{
|
||||
|
||||
174
src_tenwa/com/tenwa/lease/app/quartzmession/SplitInts3.java
Normal file
174
src_tenwa/com/tenwa/lease/app/quartzmession/SplitInts3.java
Normal file
@ -0,0 +1,174 @@
|
||||
package com.tenwa.lease.app.quartzmession;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
|
||||
import jbo.com.tenwa.lease.comm.CONTRACT_RENT_MONTH;
|
||||
import jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO;
|
||||
|
||||
import com.amarsoft.are.jbo.BizObject;
|
||||
import com.amarsoft.are.jbo.BizObjectManager;
|
||||
import com.amarsoft.are.jbo.JBOException;
|
||||
import com.amarsoft.are.jbo.JBOFactory;
|
||||
import com.amarsoft.are.jbo.JBOTransaction;
|
||||
import com.amarsoft.are.util.StringFunction;
|
||||
import com.amarsoft.awe.util.Transaction;
|
||||
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
|
||||
import com.tenwa.lease.util.MonthInterestEntity;
|
||||
/***
|
||||
* 传统业务和汽车类传统业务的计提利息计算
|
||||
* 分成月付和季付两种
|
||||
* @author amarsoft
|
||||
*
|
||||
*/
|
||||
public class SplitInts3 implements Job{
|
||||
@Override
|
||||
public void execute(JobExecutionContext arg0) throws JobExecutionException {
|
||||
JBOTransaction tx =null;
|
||||
try{
|
||||
contractRentMonth(tx);
|
||||
contractRentQuarter(tx);
|
||||
tx.commit();
|
||||
discountApportion();
|
||||
}catch(Exception e){
|
||||
try {
|
||||
tx.rollback();
|
||||
if(tx!=null)tx=null;
|
||||
} catch (JBOException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void contractRentMonth(JBOTransaction tx) throws Exception {
|
||||
|
||||
Transaction Sqlca =null;
|
||||
List<String> idList=new ArrayList<String>();
|
||||
|
||||
tx =JBOFactory.createJBOTransaction();
|
||||
Sqlca = Transaction.createTransaction(tx);
|
||||
//传统月付
|
||||
String sql="SELECT lci.id AS ID ,lcc.PAYMENT_NUMBER,getTax(lci.leas_form,'租息',lcc.start_date) as TAX, lcc.START_DATE,lr.interest INTEREST, ROUND(lcc.HANDLING_CHARGE_MONEY/getTax(lci.LEAS_FORM,'手续费',lcc.start_date),2) AS HANDLING_CHARGE_MONEY FROM lb_contract_info lci LEFT JOIN lc_calc_condition lcc ON lcc.contract_id=lci.id LEFT JOIN (SELECT lrp.contract_id,ROUND(SUM(lrp.interest/getTax(lci.LEAS_FORM,'租息',lcc.start_date)),2) interest FROM lc_rent_plan lrp LEFT JOIN lb_contract_info lci ON lci.id=lrp.CONTRACT_ID LEFT JOIN lc_calc_condition lcc ON lcc.contract_id=lci.id GROUP BY lrp.contract_id) lr ON lr.contract_id=lci.id WHERE NOT EXISTS (SELECT 1 FROM contract_rent_month WHERE contract_id = lcc.contract_id) AND nvl(lr.interest,0) > 0 AND lci.contract_status BETWEEN 31 AND 100 AND lci.id NOT IN (SELECT contract_id FROM lc_fund_rent_adjust) AND lci.BUSINESSTYPE<>'1' AND lcc.INCOME_NUMBER_YEAR='income_1'";
|
||||
Map<String,String> map=new HashMap<String, String>();
|
||||
//传统月付
|
||||
List<Map<String,String>> dataList=DataOperatorUtil.getDataBySql(Sqlca, sql, map);
|
||||
tx.commit();
|
||||
for(Map<String,String> ma:dataList){
|
||||
MonthInterestEntity mit =new MonthInterestEntity();
|
||||
String contract_id=ma.get("ID");
|
||||
mit.setHandling_charge_money(ma.get("HANDLING_CHARGE_MONEY"));
|
||||
mit.setSum_interest(ma.get("INTEREST"));
|
||||
mit.setStart_date(ma.get("START_DATE"));
|
||||
mit.setTax_rate(ma.get("TAX"));
|
||||
mit.setContract_id(contract_id);
|
||||
mit.setPayment_number(ma.get("PAYMENT_NUMBER"));
|
||||
excuteSave(contract_id,mit);
|
||||
}
|
||||
}
|
||||
|
||||
public void contractRentQuarter(JBOTransaction tx )throws Exception{
|
||||
Transaction Sqlca =null;
|
||||
List<String> idList=new ArrayList<String>();
|
||||
|
||||
tx =JBOFactory.createJBOTransaction();
|
||||
Sqlca = Transaction.createTransaction(tx);
|
||||
//传统季付
|
||||
String sql="SELECT lci.id AS ID ,lcc.PAYMENT_NUMBER,getTax(lci.leas_form,'租息',lcc.start_date) as TAX, lcc.START_DATE,lr.interest INTEREST, ROUND(lcc.HANDLING_CHARGE_MONEY/getTax(lci.LEAS_FORM,'手续费',lcc.start_date),2) AS HANDLING_CHARGE_MONEY FROM lb_contract_info lci LEFT JOIN lc_calc_condition lcc ON lcc.contract_id=lci.id LEFT JOIN (SELECT lrp.contract_id,ROUND(SUM(lrp.interest/getTax(lci.LEAS_FORM,'租息',lcc.start_date)),2) interest FROM lc_rent_plan lrp LEFT JOIN lb_contract_info lci ON lci.id=lrp.CONTRACT_ID LEFT JOIN lc_calc_condition lcc ON lcc.contract_id=lci.id GROUP BY lrp.contract_id) lr ON lr.contract_id=lci.id WHERE NOT EXISTS (SELECT 1 FROM contract_rent_month WHERE contract_id = lcc.contract_id) AND nvl(lr.interest,0) > 0 AND lci.contract_status BETWEEN 31 AND 100 AND lci.id NOT IN (SELECT contract_id FROM lc_fund_rent_adjust) AND lci.BUSINESSTYPE<>'1' AND lcc.INCOME_NUMBER_YEAR='income_3'";
|
||||
|
||||
Map<String,String> map=new HashMap<String, String>();
|
||||
//传统季付
|
||||
List<Map<String,String>> dataList=DataOperatorUtil.getDataBySql(Sqlca, sql, map);
|
||||
tx.commit();
|
||||
for(Map<String,String> ma:dataList){
|
||||
MonthInterestEntity mit =new MonthInterestEntity();
|
||||
String contract_id=ma.get("ID");
|
||||
mit.setHandling_charge_money(ma.get("HANDLING_CHARGE_MONEY"));
|
||||
mit.setSum_interest(ma.get("INTEREST"));
|
||||
mit.setStart_date(ma.get("START_DATE"));
|
||||
mit.setTax_rate(ma.get("TAX"));
|
||||
mit.setContract_id(contract_id);
|
||||
mit.setPayment_number(ma.get("PAYMENT_NUMBER"));
|
||||
excuteSave(contract_id,mit);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void excuteSave(String contract_id,MonthInterestEntity mit) throws Exception {
|
||||
JBOTransaction tx =null;
|
||||
Transaction Sqlca =null;
|
||||
tx =JBOFactory.createJBOTransaction();
|
||||
Sqlca = Transaction.createTransaction(tx);
|
||||
String sql="SELECT lrp.plan_list L_PLAN_LIST,lrp.plan_date L_PLAN_DATE,ROUND(lrp.interest/getTax(lci.LEAS_FORM,'租息',lcc.START_DATE),2) L_INTEREST,lrp1.plan_list N_PLAN_LIST,lrp1.plan_date N_PLAN_DATE,ROUND(lrp1.interest/getTax(lci.LEAS_FORM,'租息',lcc.START_DATE),2) N_INTERST,lcc.START_DATE FROM lc_rent_plan lrp LEFT JOIN lc_rent_plan lrp1 ON lrp1.contract_id=lrp.contract_id AND lrp1.plan_list=lrp.plan_list+1 LEFT JOIN lc_calc_condition lcc ON lcc.contract_id=lrp.contract_id LEFT JOIN lb_contract_info lci ON lci.ID=lcc.contract_id WHERE lrp.contract_id=:ID ORDER BY lrp.plan_list";
|
||||
Map<String,String> map=new HashMap<String, String>();
|
||||
map.put("ID", contract_id);
|
||||
List<Map<String,String>> dataList=DataOperatorUtil.getDataBySql(Sqlca, sql, map);
|
||||
mit.setRent_plan_list(dataList);
|
||||
List<BizObject> bolist=mit.getBizObjList();
|
||||
saveBM(tx,bolist);
|
||||
tx.commit();
|
||||
}
|
||||
|
||||
public void saveBM(JBOTransaction tx,List<BizObject> boList) throws Exception{
|
||||
BizObjectManager bm=JBOFactory.getBizObjectManager(CONTRACT_RENT_MONTH.CLASS_NAME,tx);
|
||||
for(BizObject bo:boList){if(bo!=null){bm.saveObject(bo);}}
|
||||
}
|
||||
|
||||
public void discountApportion() throws Exception{
|
||||
Transaction Sqlca =null;
|
||||
DateFormat df = new SimpleDateFormat("yyyy/MM");
|
||||
String startime = StringFunction.getTodayNow();
|
||||
Date nowdate=df.parse(startime);
|
||||
String contract_id="";
|
||||
String DISCOUNT_money="";
|
||||
String suminterest="";
|
||||
BigDecimal discount=new BigDecimal("0.00");
|
||||
Sqlca = Transaction.createTransaction("als");
|
||||
Map<String,String> map=new HashMap<String, String>();
|
||||
String sql="SELECT lec.contract_id,ROUND(ld.DISCOUNT_money/CASE WHEN lci.leas_form='01' THEN 1.16 ELSE 1.06 END ,2) AS DISCOUNT_money,crm.interest FROM LB_DISCOUNT ld LEFT JOIN LB_EQUIPMENT_CAR lec ON lec.FRAME_NUMBER=ld.FRAME_NUMBER AND lec.contract_id IS NOT NULL AND lec.contract_id<>'' LEFT JOIN lb_contract_info lci ON lci.id=lec.contract_id INNER JOIN (SELECT contract_id,SUM(interest) interest FROM contract_rent_month GROUP BY contract_id) crm ON crm.contract_id=lec.contract_id WHERE DATE_FORMAT(ld.inputtime,'%Y/%m/%d')=DATE_FORMAT(SYSDATE(),'%Y/%m/%d')";
|
||||
List<Map<String,String>> dataList=DataOperatorUtil.getDataBySql(Sqlca, sql, map);
|
||||
BizObjectManager bom=JBOFactory.getBizObjectManager(CONTRACT_RENT_MONTH.CLASS_NAME, Sqlca);
|
||||
|
||||
for(Map<String,String> ma:dataList){
|
||||
contract_id=ma.get("contract_id");
|
||||
DISCOUNT_money=ma.get("DISCOUNT_money");
|
||||
suminterest=ma.get("interest");
|
||||
BizObject bo=null;
|
||||
String accurte_date="";
|
||||
Date accdate=null;
|
||||
BigDecimal Discount_apart=new BigDecimal("0.00");
|
||||
BigDecimal Discount_apart_nom=new BigDecimal("0.00");
|
||||
List<BizObject> bolist=bom.createQuery("contract_id=:contract_id order by rent_list").setParameter("contract_id", contract_id).getResultList(true);
|
||||
for(int i=0;i<bolist.size();i++){
|
||||
bo=bolist.get(i);
|
||||
accurte_date=bo.getAttribute("accrued_date").getString();
|
||||
accdate=df.parse(accurte_date);
|
||||
if(accdate.getTime()<nowdate.getTime()){
|
||||
Discount_apart=Discount_apart.add(new BigDecimal(bo.getAttribute("interest").getString()).divide(new BigDecimal(suminterest),6,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(DISCOUNT_money)));
|
||||
bo.setAttributeValue("discount", "0.00");
|
||||
}
|
||||
if(accdate.getTime()==nowdate.getTime()){
|
||||
Discount_apart=Discount_apart.add(new BigDecimal(bo.getAttribute("interest").getString()).divide(new BigDecimal(suminterest),6,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(DISCOUNT_money)));
|
||||
bo.setAttributeValue("discount", Discount_apart);
|
||||
}
|
||||
if(accdate.getTime()>nowdate.getTime()){
|
||||
Discount_apart_nom=new BigDecimal(bo.getAttribute("interest").getString()).divide(new BigDecimal(suminterest),6,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(DISCOUNT_money));
|
||||
bo.setAttributeValue("discount", Discount_apart_nom);
|
||||
}
|
||||
bom.saveObject(bo);
|
||||
}
|
||||
}
|
||||
Sqlca.commit();
|
||||
}
|
||||
|
||||
}
|
||||
375
src_tenwa/com/tenwa/lease/util/MonthInterestEntity.java
Normal file
375
src_tenwa/com/tenwa/lease/util/MonthInterestEntity.java
Normal file
@ -0,0 +1,375 @@
|
||||
package com.tenwa.lease.util;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import jbo.com.tenwa.lease.comm.CONTRACT_RENT_MONTH;
|
||||
|
||||
import com.amarsoft.are.jbo.BizObject;
|
||||
import com.amarsoft.are.jbo.BizObjectManager;
|
||||
import com.amarsoft.are.jbo.JBOFactory;
|
||||
|
||||
public class MonthInterestEntity {
|
||||
private String handling_charge_money;
|
||||
private String sum_interest;
|
||||
private String tax_rate;
|
||||
private String contract_id;
|
||||
private String payment_number;
|
||||
private List<Map<String,String>> rent_plan_list;
|
||||
private String start_date;
|
||||
private String n_interest="0.00";//上半部分利息
|
||||
private String p_interest="0.00";//下半部分利息
|
||||
private String over_sum_interest="0.00";//已计算出来的利息
|
||||
private String over_sum_handl="0.00";//已计算出来的手续费
|
||||
private String date= new SimpleDateFormat("yyyy/MM/dd").format(new Date());
|
||||
|
||||
|
||||
public List<BizObject> getBizObjList() throws Exception {
|
||||
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
|
||||
Calendar ca = Calendar.getInstance();
|
||||
List<BizObject> bizoList=new ArrayList<BizObject>();
|
||||
if(this.getRent_plan_list().size()>0){
|
||||
BizObjectManager bm=JBOFactory.getBizObjectManager(CONTRACT_RENT_MONTH.CLASS_NAME);
|
||||
for(int i=0;i<this.getRent_plan_list().size();i++){
|
||||
if(i==0){
|
||||
BizObject bo=bm.newObject();
|
||||
bo.setAttributeValue("contract_id", contract_id);
|
||||
bo.setAttributeValue("payment_number", payment_number);
|
||||
bo.setAttributeValue("create_date", date);
|
||||
|
||||
ca.setTime(format.parse(start_date));
|
||||
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
String last = format.format(ca.getTime());
|
||||
|
||||
ca.add(Calendar.MONTH, 0);
|
||||
ca.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
|
||||
String first = format.format(ca.getTime());
|
||||
|
||||
bo.setAttributeValue("end_date", last);
|
||||
bo.setAttributeValue("start_date", first);
|
||||
|
||||
String accurt_date=start_date.substring(0,7);
|
||||
bo.setAttributeValue("accrued_date", accurt_date);
|
||||
|
||||
|
||||
caculateN_interest(start_date,rent_plan_list.get(i).get("L_INTEREST"));
|
||||
//caculateI_interest("0.00");
|
||||
bo.setAttributeValue("interest", new BigDecimal(n_interest).toString());
|
||||
bo.setAttributeValue("fee", caculateHandling_Money(n_interest,p_interest));
|
||||
|
||||
bo.setAttributeValue("rent_list", "0");
|
||||
bizoList.add(bo);
|
||||
}
|
||||
|
||||
BizObject bo=bm.newObject();
|
||||
bo.setAttributeValue("contract_id", contract_id);
|
||||
bo.setAttributeValue("payment_number", payment_number);
|
||||
bo.setAttributeValue("create_date", date);
|
||||
|
||||
ca.setTime(format.parse(rent_plan_list.get(i).get("L_PLAN_DATE")));
|
||||
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
String last = format.format(ca.getTime());
|
||||
|
||||
ca.add(Calendar.MONTH, 0);
|
||||
ca.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
|
||||
String first = format.format(ca.getTime());
|
||||
|
||||
bo.setAttributeValue("end_date", last);
|
||||
bo.setAttributeValue("start_date", first);
|
||||
|
||||
String accurt_date=rent_plan_list.get(i).get("L_PLAN_DATE").substring(0,7);
|
||||
bo.setAttributeValue("accrued_date", accurt_date);
|
||||
bo.setAttributeValue("rent_list", (i+1)+"");
|
||||
|
||||
if(i==rent_plan_list.size()-1){
|
||||
//最后一个月
|
||||
caculateI_interest(rent_plan_list.get(i).get("L_INTEREST"));
|
||||
caculateN_interest(rent_plan_list.get(i).get("L_PLAN_DATE"),"0.00");
|
||||
bo.setAttributeValue("interest", new BigDecimal(sum_interest).subtract(new BigDecimal(over_sum_interest)).toString());
|
||||
bo.setAttributeValue("fee", new BigDecimal(handling_charge_money).subtract(new BigDecimal(over_sum_handl)).toString());
|
||||
}else{
|
||||
//不是起租月
|
||||
caculateI_interest(rent_plan_list.get(i).get("L_INTEREST"));
|
||||
caculateN_interest(rent_plan_list.get(i).get("L_PLAN_DATE"),rent_plan_list.get(i).get("N_INTERST"));
|
||||
bo.setAttributeValue("interest", new BigDecimal(n_interest).add(new BigDecimal(p_interest)).toString());
|
||||
bo.setAttributeValue("fee", caculateHandling_Money(n_interest,p_interest));
|
||||
}
|
||||
bizoList.add(bo);
|
||||
}
|
||||
}
|
||||
return bizoList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public List<BizObject> getBizObjListIn_three() throws Exception{
|
||||
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
|
||||
Calendar ca = Calendar.getInstance();
|
||||
List<BizObject> bizoList=new ArrayList<BizObject>();
|
||||
if(this.getRent_plan_list().size()>0){
|
||||
BizObjectManager bm=JBOFactory.getBizObjectManager(CONTRACT_RENT_MONTH.CLASS_NAME);
|
||||
for(int i=0;i<this.getRent_plan_list().size();i++){
|
||||
BizObject bo1=bm.newObject();
|
||||
BizObject bo2=bm.newObject();
|
||||
BizObject bo3=bm.newObject();
|
||||
String al_handl="0.00";
|
||||
|
||||
bo1.setAttributeValue("contract_id", contract_id);
|
||||
bo1.setAttributeValue("payment_number", payment_number);
|
||||
bo1.setAttributeValue("create_date", date);
|
||||
|
||||
bo2.setAttributeValue("contract_id", contract_id);
|
||||
bo2.setAttributeValue("payment_number", payment_number);
|
||||
bo2.setAttributeValue("create_date", date);
|
||||
|
||||
bo3.setAttributeValue("contract_id", contract_id);
|
||||
bo3.setAttributeValue("payment_number", payment_number);
|
||||
bo3.setAttributeValue("create_date", date);
|
||||
|
||||
|
||||
//三个月平均分
|
||||
ca.setTime(format.parse(rent_plan_list.get(i).get("L_PLAN_DATE")));
|
||||
ca.add(Calendar.MONTH, -2);
|
||||
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
String last = format.format(ca.getTime());
|
||||
ca.add(Calendar.MONTH, 0);
|
||||
ca.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
|
||||
String first = format.format(ca.getTime());
|
||||
|
||||
bo1.setAttributeValue("end_date", last);
|
||||
bo1.setAttributeValue("start_date", first);
|
||||
String accurt_date=start_date.substring(0,7);
|
||||
bo1.setAttributeValue("accrued_date", accurt_date);
|
||||
bo1.setAttributeValue("rent_list", i*3+1);
|
||||
bo1.setAttributeValue("interest", new BigDecimal(rent_plan_list.get(i).
|
||||
get("L_INTEREST")).divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP).toString());
|
||||
bo1.setAttributeValue("fee", caculateHandling_Money(new BigDecimal(rent_plan_list.get(i).
|
||||
get("L_INTEREST")).divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP).toString(),"0.00"));
|
||||
|
||||
ca.setTime(format.parse(rent_plan_list.get(i).get("L_PLAN_DATE")));
|
||||
ca.add(Calendar.MONTH, -2);
|
||||
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
last = format.format(ca.getTime());
|
||||
ca.add(Calendar.MONTH, 0);
|
||||
ca.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
|
||||
first = format.format(ca.getTime());
|
||||
bo2.setAttributeValue("end_date", last);
|
||||
bo2.setAttributeValue("start_date", first);
|
||||
accurt_date=start_date.substring(0,7);
|
||||
bo2.setAttributeValue("accrued_date", accurt_date);
|
||||
bo2.setAttributeValue("rent_list", i*3+2);
|
||||
bo2.setAttributeValue("interest", new BigDecimal(rent_plan_list.get(i).
|
||||
get("L_INTEREST")).divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP).toString());
|
||||
bo2.setAttributeValue("fee", caculateHandling_Money(new BigDecimal(rent_plan_list.get(i).
|
||||
get("L_INTEREST")).divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP).toString(),"0.00"));
|
||||
|
||||
|
||||
|
||||
ca.setTime(format.parse(rent_plan_list.get(i).get("L_PLAN_DATE")));
|
||||
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
last = format.format(ca.getTime());
|
||||
ca.add(Calendar.MONTH, 0);
|
||||
ca.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
|
||||
first = format.format(ca.getTime());
|
||||
|
||||
|
||||
bo3.setAttributeValue("end_date", last);
|
||||
bo3.setAttributeValue("start_date", first);
|
||||
|
||||
accurt_date=start_date.substring(0,7);
|
||||
bo3.setAttributeValue("accrued_date", accurt_date);
|
||||
bo3.setAttributeValue("rent_list", i*3+3);
|
||||
|
||||
bo3.setAttributeValue("interest", new BigDecimal(rent_plan_list.get(i).
|
||||
get("L_INTEREST")).subtract(new BigDecimal(rent_plan_list.get(i).
|
||||
get("L_INTEREST")).divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("2"))).toString());
|
||||
if(i==rent_plan_list.size()-1){
|
||||
bo3.setAttributeValue("fee", new BigDecimal(handling_charge_money).subtract(new BigDecimal(over_sum_handl)).toString());
|
||||
}else{
|
||||
bo3.setAttributeValue("fee", caculateHandling_Money(new BigDecimal(rent_plan_list.get(i).
|
||||
get("L_INTEREST")).subtract(new BigDecimal(rent_plan_list.get(i).
|
||||
get("L_INTEREST")).divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("2"))).toString(),"0.00"));
|
||||
}
|
||||
bizoList.add(bo1);
|
||||
bizoList.add(bo2);
|
||||
bizoList.add(bo3);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return bizoList;
|
||||
}
|
||||
|
||||
public void caculateN_interest(String date,String interest) throws Exception{
|
||||
BigDecimal inte=new BigDecimal(interest);
|
||||
BigDecimal da30=new BigDecimal("30");
|
||||
String day=date.substring(8);
|
||||
n_interest=inte.divide(da30, 2, BigDecimal.ROUND_HALF_UP).multiply(da30.subtract(new BigDecimal(day))).setScale(2,BigDecimal.ROUND_HALF_UP).toString();
|
||||
over_sum_interest=new BigDecimal(over_sum_interest).add(new BigDecimal(n_interest)).toString();
|
||||
}
|
||||
|
||||
public void caculateI_interest(String interest)throws Exception{
|
||||
BigDecimal inte=new BigDecimal(interest);
|
||||
p_interest=inte.subtract(new BigDecimal(n_interest)).toString();
|
||||
over_sum_interest=new BigDecimal(over_sum_interest).add(new BigDecimal(p_interest)).toString();
|
||||
}
|
||||
|
||||
public String caculateHandling_Money(String N_interest,String I_interest) throws Exception {
|
||||
BigDecimal nInte=new BigDecimal(N_interest);
|
||||
BigDecimal iInte=new BigDecimal(I_interest);
|
||||
String handl_money=nInte.add(iInte).divide(new BigDecimal(sum_interest), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(handling_charge_money)).setScale(2,BigDecimal.ROUND_HALF_UP).toString();
|
||||
over_sum_handl=new BigDecimal(over_sum_handl).add(new BigDecimal(handl_money)).toString();
|
||||
return handl_money;
|
||||
}
|
||||
|
||||
|
||||
public String getContract_id() {
|
||||
return contract_id;
|
||||
}
|
||||
|
||||
|
||||
public void setContract_id(String contract_id) {
|
||||
this.contract_id = contract_id;
|
||||
}
|
||||
|
||||
|
||||
public String getPayment_number() {
|
||||
return payment_number;
|
||||
}
|
||||
|
||||
|
||||
public void setPayment_number(String payment_number) {
|
||||
this.payment_number = payment_number;
|
||||
}
|
||||
|
||||
|
||||
public String getN_interest() {
|
||||
return n_interest;
|
||||
}
|
||||
|
||||
|
||||
public void setN_interest(String n_interest) {
|
||||
this.n_interest = n_interest;
|
||||
}
|
||||
|
||||
|
||||
public String getP_interest() {
|
||||
return p_interest;
|
||||
}
|
||||
|
||||
|
||||
public void setP_interest(String p_interest) {
|
||||
this.p_interest = p_interest;
|
||||
}
|
||||
|
||||
|
||||
public String getOver_sum_interest() {
|
||||
return over_sum_interest;
|
||||
}
|
||||
|
||||
|
||||
public void setOver_sum_interest(String over_sum_interest) {
|
||||
this.over_sum_interest = over_sum_interest;
|
||||
}
|
||||
|
||||
|
||||
public String getOver_sum_handl() {
|
||||
return over_sum_handl;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String getHandling_charge_money() {
|
||||
return handling_charge_money;
|
||||
}
|
||||
|
||||
|
||||
public void setHandling_charge_money(String handling_charge_money) {
|
||||
this.handling_charge_money = handling_charge_money;
|
||||
}
|
||||
|
||||
|
||||
public String getSum_interest() {
|
||||
return sum_interest;
|
||||
}
|
||||
|
||||
|
||||
public void setSum_interest(String sum_interest) {
|
||||
this.sum_interest = sum_interest;
|
||||
}
|
||||
|
||||
|
||||
public String getTax_rate() {
|
||||
return tax_rate;
|
||||
}
|
||||
|
||||
|
||||
public void setTax_rate(String tax_rate) {
|
||||
this.tax_rate = tax_rate;
|
||||
}
|
||||
|
||||
|
||||
public List<Map<String, String>> getRent_plan_list() {
|
||||
return rent_plan_list;
|
||||
}
|
||||
|
||||
|
||||
public void setRent_plan_list(List<Map<String, String>> rent_plan_list) {
|
||||
this.rent_plan_list = rent_plan_list;
|
||||
}
|
||||
|
||||
|
||||
public String getStart_date() {
|
||||
return start_date;
|
||||
}
|
||||
|
||||
|
||||
public void setStart_date(String start_date) {
|
||||
this.start_date = start_date;
|
||||
}
|
||||
|
||||
public void setOver_sum_handl(String over_sum_handl) {
|
||||
this.over_sum_handl = over_sum_handl;
|
||||
}
|
||||
|
||||
|
||||
/*public void caculateExInterestOnHire(){
|
||||
BigDecimal bpi=new BigDecimal(previousInterest);
|
||||
BigDecimal bni=new BigDecimal(nextInterest);
|
||||
BigDecimal bopi=new BigDecimal(previousOvInterest);
|
||||
int a=Integer.parseInt(nextDate.substring(8));
|
||||
if("trad_month".equals(exTpye)){
|
||||
n_interest=bpi.subtract(bopi).add(bni.divide(new BigDecimal(30)).multiply(new BigDecimal(30).subtract(new BigDecimal(a)))).toString();
|
||||
}
|
||||
|
||||
this.setExtractInterest(n_interest);
|
||||
}
|
||||
|
||||
public void caculateN_Interest(String next,String plandate){
|
||||
BigDecimal bni=new BigDecimal(next);
|
||||
int a=Integer.parseInt(plandate);
|
||||
if("trad_month".equals(exTpye)){
|
||||
n_interest=bni.divide(new BigDecimal(30)).multiply(new BigDecimal(30).subtract(new BigDecimal(a))).setScale(2).toString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void caculatP_Interest(String last,String plandate){
|
||||
BigDecimal bni=new BigDecimal(last);
|
||||
int a=Integer.parseInt(plandate);
|
||||
if("trad_month".equals(exTpye)){
|
||||
p_interest=bni.subtract(bni.divide(new BigDecimal(30)).multiply(new BigDecimal(30).subtract(new BigDecimal(a)))).setScale(2).toString();
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(Integer.parseInt("2018/03/12".substring(0,7 )));
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user