From 7591a35f5db4469ec842ddf183ce8526eccf5c5d Mon Sep 17 00:00:00 2001 From: zhangbeibei Date: Tue, 26 Jan 2021 12:08:23 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=82=E7=81=B5=E6=B4=BB=E5=88=86=E6=B6=A6?= =?UTF-8?q?=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/WEB-INF/etc/jbo/jbo_calc.xml | 5 +++ .../executor/CreateTransactionExecutor.java | 44 ++++++++++++++++--- .../jbo/app/tenwa/calc/LC_CALC_CONDITION.java | 4 ++ .../app/tenwa/calc/LC_CALC_CONDITION_HIS.java | 4 ++ .../tenwa/calc/LC_CALC_CONDITION_TEMP.java | 4 ++ .../app/tenwa/calc/LC_CONTRACT_CONDITION.java | 4 ++ .../jbo/app/tenwa/calc/LC_PROJ_CONDITION.java | 4 ++ .../FundIncomeEndRentPlanModify.java | 6 ++- 8 files changed, 67 insertions(+), 8 deletions(-) diff --git a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml index f8c0475b7..11fd29ae8 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml @@ -776,6 +776,7 @@ + @@ -1076,6 +1077,7 @@ + @@ -1416,6 +1418,7 @@ + @@ -2773,6 +2776,7 @@ + @@ -3355,6 +3359,7 @@ + diff --git a/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java b/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java index 7a08930d2..9bffffcd5 100644 --- a/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java +++ b/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java @@ -344,16 +344,23 @@ public class CreateTransactionExecutor implements Transaction { * @throws JBOException * @throws Exception */ - public void insertRentPlan_SP (String splittingRatio,com.amarsoft.awe.util.Transaction Sqlca) throws Exception{ + public void insertRentPlan_SP (String splittingRatio,com.amarsoft.awe.util.Transaction Sqlca,String splitType) throws Exception{ BizObjectManager BmLRP=JBOFactory.getBizObjectManager(LC_RENT_PLAN.CLASS_NAME, Sqlca); + BizObjectManager BmLCC=JBOFactory.getBizObjectManager(LC_CALC_CONDITION.CLASS_NAME, Sqlca); java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy/MM/dd"); - String day ="0"; - Long start = format.parse(startDate).getTime(); List BoLRP = BmLRP.createQuery("payment_number=:payment_number order by plan_list").setParameter("payment_number", this.plannumber).getResultList(false); + BizObject boLCC = BmLCC.createQuery("select IRR,CAUTION_MONEY,HANDLING_CHARGE_MONEY from O where payment_number=:payment_number").setParameter("payment_number", this.plannumber).getSingleResult(false); + String irr = boLCC.getAttribute("IRR").toString(); + String cautionMoney = boLCC.getAttribute("CAUTION_MONEY").toString(); + String handlingChargeMoney = boLCC.getAttribute("HANDLING_CHARGE_MONEY").toString(); + BigDecimal irr_b = new BigDecimal(irr).divide(new BigDecimal("100")); + BigDecimal cautionMoney_b = new BigDecimal(cautionMoney); + BigDecimal handlingChargeMoney_b = new BigDecimal(handlingChargeMoney); Connection conn = Sqlca.getConnection(Sqlca); PreparedStatement ps = null; BigDecimal corpus_sp = new BigDecimal("0.00"); + BigDecimal interest_sp = new BigDecimal("0.00"); try{ ps = conn.prepareStatement("update lc_rent_plan set CORPUS_SP = ?,INTEREST_SP = ? where payment_number = '" + this.plannumber + "' and plan_list = ?"); for(int i = 0; i < BoLRP.size(); i ++){ @@ -361,9 +368,28 @@ public class CreateTransactionExecutor implements Transaction { BigDecimal allRemainCorpus =new BigDecimal(BoLRP.get(i).getAttribute("ALL_REMAIN_CORPUS").toString()); BigDecimal interest =new BigDecimal(BoLRP.get(i).getAttribute("INTEREST").toString()); BigDecimal ratio = new BigDecimal(splittingRatio).divide(new BigDecimal("100")); - - corpus_sp = corpus.add(allRemainCorpus).multiply(ratio).multiply(new BigDecimal("30")).divide(new BigDecimal("360"),2,BigDecimal.ROUND_HALF_UP); - BigDecimal interest_sp = interest.subtract(corpus_sp); + //Ƿ + if("Y".equals(splitType)){ + BigDecimal baseMoney; + if(i==0){ + baseMoney = corpus.add(allRemainCorpus).subtract(cautionMoney_b).subtract(handlingChargeMoney_b); + }else{ + baseMoney = corpus.add(allRemainCorpus).subtract(cautionMoney_b); + } + + if(baseMoney.compareTo(new BigDecimal("0"))==1){ + // = (ʣ౾+ڱ-֤*ԿIRR-IRR/12 + interest_sp = baseMoney.multiply(irr_b.subtract(ratio)).divide(new BigDecimal("12"),2,BigDecimal.ROUND_HALF_UP); + corpus_sp = interest.subtract(interest_sp); + }else{ + interest_sp = new BigDecimal("0.00"); + corpus_sp = interest.subtract(interest_sp); + } + }else{ + corpus_sp = corpus.add(allRemainCorpus).multiply(ratio).multiply(new BigDecimal("30")).divide(new BigDecimal("360"),2,BigDecimal.ROUND_HALF_UP); + interest_sp = interest.subtract(corpus_sp); + } + ps.setString(1, corpus_sp.toString()); ps.setString(2, interest_sp.toString()); ps.setString(3, (i + 1) + ""); @@ -379,7 +405,11 @@ public class CreateTransactionExecutor implements Transaction { } - + + public void insertRentPlan_SP_Flexible(String ratio,Transaction Sqlca){ + + } + public void setCashFlow(String paymentNumber, String productId, com.amarsoft.awe.util.Transaction Sqlca) throws Exception { String sql = ""; sql += "INSERT INTO LC_CASH_FLOW (id,project_id,project_plan_number,contract_id,contract_plan_number,payment_number"; diff --git a/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION.java b/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION.java index a910933f4..c1e9fcc12 100644 --- a/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION.java +++ b/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION.java @@ -605,4 +605,8 @@ public interface LC_CALC_CONDITION{ * սROA DOUBLE(22)
*/ public static final String STRATEGY_ROA = "STRATEGY_ROA"; + /** + * Ƿ
+ */ + public static final String SPLIT_TYPE = "SPLIT_TYPE"; } \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_HIS.java b/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_HIS.java index 6acadcee5..ac84e3501 100644 --- a/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_HIS.java +++ b/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_HIS.java @@ -605,4 +605,8 @@ public interface LC_CALC_CONDITION_HIS{ * սROA DOUBLE(22)
*/ public static final String STRATEGY_ROA = "STRATEGY_ROA"; + /** + * Ƿ
+ */ + public static final String SPLIT_TYPE = "SPLIT_TYPE"; } \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_TEMP.java b/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_TEMP.java index e134955e0..08e43d07f 100644 --- a/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_TEMP.java +++ b/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION_TEMP.java @@ -605,4 +605,8 @@ public interface LC_CALC_CONDITION_TEMP{ * սROA DOUBLE(22)
*/ public static final String STRATEGY_ROA = "STRATEGY_ROA"; + /** + * Ƿ
+ */ + public static final String SPLIT_TYPE = "SPLIT_TYPE"; } \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/LC_CONTRACT_CONDITION.java b/src_jbo/jbo/app/tenwa/calc/LC_CONTRACT_CONDITION.java index e562aa6d9..74dd4b010 100644 --- a/src_jbo/jbo/app/tenwa/calc/LC_CONTRACT_CONDITION.java +++ b/src_jbo/jbo/app/tenwa/calc/LC_CONTRACT_CONDITION.java @@ -609,4 +609,8 @@ public interface LC_CONTRACT_CONDITION{ * սROA DOUBLE(22)
*/ public static final String STRATEGY_ROA = "STRATEGY_ROA"; + /** + * Ƿ
+ */ + public static final String SPLIT_TYPE = "SPLIT_TYPE"; } \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/LC_PROJ_CONDITION.java b/src_jbo/jbo/app/tenwa/calc/LC_PROJ_CONDITION.java index 56f95c3cf..5ef383a24 100644 --- a/src_jbo/jbo/app/tenwa/calc/LC_PROJ_CONDITION.java +++ b/src_jbo/jbo/app/tenwa/calc/LC_PROJ_CONDITION.java @@ -609,4 +609,8 @@ public interface LC_PROJ_CONDITION{ * սROA DOUBLE(22)
*/ public static final String STRATEGY_ROA = "STRATEGY_ROA"; + /** + * Ƿ
+ */ + public static final String SPLIT_TYPE = "SPLIT_TYPE"; } \ No newline at end of file diff --git a/src_tenwa/com/tenwa/flow/fund/actualpayment/FundIncomeEndRentPlanModify.java b/src_tenwa/com/tenwa/flow/fund/actualpayment/FundIncomeEndRentPlanModify.java index f20bc0053..055e7e78c 100644 --- a/src_tenwa/com/tenwa/flow/fund/actualpayment/FundIncomeEndRentPlanModify.java +++ b/src_tenwa/com/tenwa/flow/fund/actualpayment/FundIncomeEndRentPlanModify.java @@ -54,6 +54,10 @@ public class FundIncomeEndRentPlanModify extends BaseBussiness{ String payment_number=bo.getAttribute("payment_number").toString(); String contractId=bo.getAttribute("contract_id").toString(); String productId = Sqlca.getString("select product_id from lb_contract_info where id='"+contractId+"'"); + //Ƿ + String splitType = Sqlca.getString( "select attribute5 from business_type where typeno = '" + productId + "'" ); + //ʱôӲƷȡģͻȷǷҪ + //String splitType = Sqlca.getString("select split_type from lc_calc_condition where contract_id='"+contractId+"'"); String calType = "onHire_process"; String projectPlanNumber = bo.getAttribute("project_plan_number").toString(); CreateTransactionExecutor cre = new CreateTransactionExecutor(); @@ -71,7 +75,7 @@ public class FundIncomeEndRentPlanModify extends BaseBussiness{ if("".equals(splittingRatio)||splittingRatio==null){ }else{ - cre.insertRentPlan_SP(splittingRatio, Sqlca); + cre.insertRentPlan_SP(splittingRatio, Sqlca,splitType); } /* Date fact_date=df.parse(bo.getAttribute("fact_date").toString()); Date base_date=fact_date;