diff --git a/src_tenwa/com/tenwa/lease/app/quartzmession/SplitInts2.java b/src_tenwa/com/tenwa/lease/app/quartzmession/SplitInts2.java new file mode 100644 index 000000000..b2ded2f2c --- /dev/null +++ b/src_tenwa/com/tenwa/lease/app/quartzmession/SplitInts2.java @@ -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 map=new HashMap(); + 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> dataList=DataOperatorUtil.getDataBySql(Sqlca, sql, map); + BizObjectManager bom=JBOFactory.getBizObjectManager(CONTRACT_RENT_MONTH.CLASS_NAME, Sqlca); + + for(Map 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 bolist=bom.createQuery("contract_id=:contract_id order by rent_list").setParameter("contract_id", contract_id).getResultList(true); + for(int i=0;inowdate.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±í£¬ + + } + +} + +