计提分摊利息和贴息
This commit is contained in:
parent
294d8954c8
commit
dbc3bf31c8
121
src_tenwa/com/tenwa/lease/app/quartzmession/SplitInts2.java
Normal file
121
src_tenwa/com/tenwa/lease/app/quartzmession/SplitInts2.java
Normal file
@ -0,0 +1,121 @@
|
||||
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.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import jbo.com.tenwa.lease.comm.CONTRACT_RENT_MONTH;
|
||||
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
|
||||
import com.amarsoft.app.awe.config.InitDBType;
|
||||
import com.amarsoft.are.ARE;
|
||||
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.log.Log;
|
||||
import com.amarsoft.are.util.StringFunction;
|
||||
import com.amarsoft.awe.util.ASResultSet;
|
||||
import com.amarsoft.awe.util.SqlObject;
|
||||
import com.amarsoft.awe.util.Transaction;
|
||||
import com.amarsoft.dict.als.cache.CacheLoaderFactory;
|
||||
import com.base.util.QuartzUtil;
|
||||
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
|
||||
import com.tenwa.leasing.service.voucher.CreateVoucherService;
|
||||
import com.tenwa.leasing.serviceImpl.voucher.CreateVoucherServiceImpl;
|
||||
import com.tenwa.reckon.constant.Scale;
|
||||
import com.tenwa.reckon.util.Conn;
|
||||
import com.tenwa.reckon.util.DateTools;
|
||||
import com.tenwa.reckon.util.DateUtils;
|
||||
|
||||
public class SplitInts2 implements Job{
|
||||
private static Log logger=ARE.getLog();
|
||||
@Override
|
||||
public void execute(JobExecutionContext arg0) throws JobExecutionException {
|
||||
|
||||
Transaction Sqlca =null;
|
||||
String startime = StringFunction.getTodayNow();
|
||||
try{
|
||||
Sqlca = Transaction.createTransaction("als");
|
||||
Sqlca.executeSQL(new SqlObject("{call proc_contract_rent_month()}"));
|
||||
Sqlca.commit();
|
||||
discountApportion();
|
||||
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.SplitInts", "success", "³É¹¦");
|
||||
} catch (Exception e) {
|
||||
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.SplitInts", "success", "ʧ°Ü");
|
||||
logger.error(e.getMessage());
|
||||
e.printStackTrace();
|
||||
}finally{
|
||||
if(Sqlca!=null){
|
||||
try {
|
||||
Sqlca.disConnect();
|
||||
} catch (JBOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Sqlca = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
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();
|
||||
|
||||
//²éѯlb_discount±í£¬
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user