From 83c9f13b8a60c42e491a95dfa8afa720c4cc4544 Mon Sep 17 00:00:00 2001 From: luojian Date: Thu, 2 Aug 2018 17:05:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B5=B7=E7=A7=9F=E5=90=8E?= =?UTF-8?q?=E5=B1=95=E6=9C=9F=E6=B5=8B=E7=AE=97=E5=92=8C=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E6=8F=90=E5=89=8D=E7=BB=93=E6=B8=85=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LoanSimulation_change/LCRentChangeInfo.jsp | 11 +++++++---- .../LoanSimulation_change/LoanBasicInfo.jsp | 9 +++++++-- .../LoanSimulation_change/RentPlanList.jsp | 12 ++++++------ .../LBContractPersonBaseInfo.jsp | 12 +++++++++--- .../LCContractTerminateInfo.jsp | 9 +++++++-- calc/com/tenwa/reckon/bean/ConditionBean.java | 15 +++++++++++++++ .../executor/CreateTransactionExecutor.java | 1 + .../reckon/executor/FundRentPlanExecutor.java | 3 +-- calc/com/tenwa/reckon/executor/RentCalHelper.java | 6 +++--- .../reckon/executor/rentChange/RentChangeExe.java | 11 +++++++---- calc/com/tenwa/reckon/help/RentalServiceImpl.java | 6 +++++- 11 files changed, 68 insertions(+), 27 deletions(-) diff --git a/WebContent/Accounting/LoanSimulation_change/LCRentChangeInfo.jsp b/WebContent/Accounting/LoanSimulation_change/LCRentChangeInfo.jsp index d4cfe4c05..891fc54b4 100644 --- a/WebContent/Accounting/LoanSimulation_change/LCRentChangeInfo.jsp +++ b/WebContent/Accounting/LoanSimulation_change/LCRentChangeInfo.jsp @@ -17,13 +17,14 @@ String taskno = CurPage.getParameter("TaskNo"); String settleMethod=""; String rentOrRate=""; + BizObject condition=null; if(plannumber==null){ - BizObject condition=JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP","flowunid=:flowunid").setParameter("flowunid", flowunid).getSingleResult(false); + condition=JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP","flowunid=:flowunid").setParameter("flowunid", flowunid).getSingleResult(false); plannumber=condition.getAttribute("payment_number").getString(); settleMethod=condition.getAttribute("SETTLE_METHOD").getString(); rentOrRate=condition.getAttribute("RENT_OR_RATE").getString(); }else{ - BizObject condition=JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP","flowunid=:flowunid and payment_number=:plannumber").setParameter("flowunid", flowunid).setParameter("plannumber", plannumber).getSingleResult(false); + condition=JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP","flowunid=:flowunid and payment_number=:plannumber").setParameter("flowunid", flowunid).setParameter("plannumber", plannumber).getSingleResult(false); settleMethod=condition.getAttribute("SETTLE_METHOD").getString(); rentOrRate=condition.getAttribute("RENT_OR_RATE").getString(); } @@ -120,12 +121,14 @@ $(function(){ function saveRecord(sPostEvents) { //检查是否进行过变更 - var result = AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","checkIsRentChange","flowunid=<%=flowunid%>,plannumber=<%=plannumber%>"); + as_save("myiframe0","run()"); + +<%-- var result = AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","checkIsRentChange","flowunid=<%=flowunid%>,plannumber=<%=plannumber%>"); if(result == 'true'){ as_save("myiframe0","run()"); }else{ alert('请先撤销变更,再进行变更操作!!!'); - } + } --%> } function cancelChange(){ diff --git a/WebContent/Accounting/LoanSimulation_change/LoanBasicInfo.jsp b/WebContent/Accounting/LoanSimulation_change/LoanBasicInfo.jsp index f6aa04d43..70bbf8320 100644 --- a/WebContent/Accounting/LoanSimulation_change/LoanBasicInfo.jsp +++ b/WebContent/Accounting/LoanSimulation_change/LoanBasicInfo.jsp @@ -14,6 +14,7 @@ String plannumber=CurPage.getParameter("plannumber"); String ishistory=CurPage.getParameter("IsHistory"); String nodeNo=CurPage.getParameter("NodeNo"); + String FlowNo=CurPage.getParameter("FlowNo");//流程名称 String taskno = CurPage.getParameter("TaskNo"); if(null!=ishistory&&ishistory.equals("true")){ doTemp.setDataQueryClass("com.tenwa.lease.flow.flowarchive.calcarchive.CalcCondtionInfoArachiveShow");//如果是历史则新显示历史数据 @@ -63,14 +64,18 @@ dwTemp.replaceColumn("knowing_config", "", CurPage.getObjectWindowOutput()); String sButtons[][] = { - {"true","","Button","保存","保存所有修改","as_save(0)","","","",""}, + {"ContractOnhireCarChangeFlow".equals(FlowNo)?"false":"true","","Button","保存","保存所有修改","as_save(0)","","","",""}, }; %><%@ include file="/Frame/resources/include/ui/include_info.jspf"%> <%@ include file="/Frame/resources/include/include_end.jspf"%> \ No newline at end of file diff --git a/calc/com/tenwa/reckon/bean/ConditionBean.java b/calc/com/tenwa/reckon/bean/ConditionBean.java index 01dbe2f42..e134cda8b 100644 --- a/calc/com/tenwa/reckon/bean/ConditionBean.java +++ b/calc/com/tenwa/reckon/bean/ConditionBean.java @@ -31,6 +31,8 @@ public class ConditionBean implements Cloneable{ private String custId;//客户编号 private String plannumber;//方案编号 + private int oldIncomeNumber;//原还款总期次 + private Boolean deferStr=false;//是否展期 //*********************************************************************************【授信条件开始:】 private String equipAmt;//设备款 @@ -1716,4 +1718,17 @@ public class ConditionBean implements Cloneable{ public void setFinalPaymentMethod(String finalPaymentMethod) { this.finalPaymentMethod = finalPaymentMethod; } + public int getOldIncomeNumber() { + return oldIncomeNumber; + } + public void setOldIncomeNumber(int oldIncomeNumber) { + this.oldIncomeNumber = oldIncomeNumber; + } + public Boolean getDeferStr() { + return deferStr; + } + public void setDeferStr(Boolean deferStr) { + this.deferStr = deferStr; + } + } diff --git a/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java b/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java index f7e328ad6..7709ac373 100644 --- a/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java +++ b/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java @@ -532,6 +532,7 @@ public class CreateTransactionExecutor implements Transaction { AdjustBean ab = ObjectConvertUtils.converBizObjectToBean(AdjustBean.class, bo); RentChangeExe exe = new RentChangeExe(tx); ConditionBean csOld=bean.getCb().clone(); + csOld.setOldIncomeNumber(csOld.getIncomeNumber()); FundRentPlanBean rentPlan = exe.create(bean.getCb(), ab, bean); //设置新的 csOld.setIncomeNumber(ab.getAdjustList()); diff --git a/calc/com/tenwa/reckon/executor/FundRentPlanExecutor.java b/calc/com/tenwa/reckon/executor/FundRentPlanExecutor.java index 6132a9f68..e4a4ef784 100644 --- a/calc/com/tenwa/reckon/executor/FundRentPlanExecutor.java +++ b/calc/com/tenwa/reckon/executor/FundRentPlanExecutor.java @@ -159,7 +159,6 @@ public abstract class FundRentPlanExecutor { bm.createQuery(sql).executeUpdate(); } public abstract FundRentPlanBean create(TabCalBean tcb,Integer startList) throws Exception ; - public FundRentPlanBean createOnhire(TabCalBean tcb ) throws Exception { ConditionBean cb = tcb.getCb(); // 查询他的租金计划 @@ -212,6 +211,6 @@ public abstract class FundRentPlanExecutor { retainage = retainage.add(new BigDecimal(cb.getFactoryAccessories())); } cb.setShare(share); - cb.setRetainage(retainage); + //cb.setRetainage(retainage); } } diff --git a/calc/com/tenwa/reckon/executor/RentCalHelper.java b/calc/com/tenwa/reckon/executor/RentCalHelper.java index 159868883..2f48203a9 100644 --- a/calc/com/tenwa/reckon/executor/RentCalHelper.java +++ b/calc/com/tenwa/reckon/executor/RentCalHelper.java @@ -145,7 +145,7 @@ public class RentCalHelper { + " sum(case when DATE_FORMAT(t.plandate,'%Y/%m/%d') > DATE_FORMAT('"+this.paydayAdjust+"','%Y/%m/%d') then t.remaininterest else 0 end ) remaininterest, " +" sum(case when DATE_FORMAT(t.plandate,'%Y/%m/%d') > DATE_FORMAT('"+this.paydayAdjust+"','%Y/%m/%d') then t.corpus else 0 end ) remainfincorpus," +" sum(case when DATE_FORMAT( t.plandate,'%Y/%m/%d') > DATE_FORMAT('"+this.paydayAdjust+"','%Y/%m/%d') then t.interest else 0 end ) remainfininterest," - +" sum(case when DATE_FORMAT( t.plandate,'%Y/%m/%d') <= DATE_FORMAT('"+this.paydayAdjust+"','%Y/%m/%d') then t.overduerent else 0 end ) overduerent,sum(case when t.cou< t.planlist and t.planlist-t.cou<=12-t.cou then t.rent else 0 end) fist_rent," + +" sum(case when DATE_FORMAT( t.plandate,'%Y/%m/%d') < DATE_FORMAT('"+this.paydayAdjust+"','%Y/%m/%d') then t.overduerent else 0 end ) overduerent,sum(case when t.cou< t.planlist and t.planlist-t.cou<=12-t.cou then t.rent else 0 end) fist_rent," + " sum(case when t.cou< t.planlist and t.planlist-t.cou>12-t.cou then t.corpus else 0 end) fist_corpus," + " max( case when DATE_FORMAT(t.plandate, '%Y/%m/%d') < DATE_FORMAT('"+this.paydayAdjust+"','%Y/%m/%d') then t.plandate else '0' end) plandate" + " from (" @@ -156,7 +156,7 @@ public class RentCalHelper { + " t1.corpus," + " t1.interest," + " t1.plandate," - + " t1.planlist,IFNULL(t2.cou,0) cou" + + " t1.planlist,IFNULL(t2.planlist,0) cou" + " from (" + " select cfrp.plan_date plandate," + " cfrp.plan_list planlist," @@ -174,7 +174,7 @@ public class RentCalHelper { + " ,sum(cfri.interest ) sumincomeinterest," + " sum( cfri.rent ) sumincomerent," + " min(cfri.contract_id) contractid," - + " cfri.plan_list planlist,count(1) cou" + + " cfri.plan_list planlist " + " from LC_RENT_INCOME cfri " + " where cfri.contract_id = ? and payment_number=?" + " group by cfri.plan_list" diff --git a/calc/com/tenwa/reckon/executor/rentChange/RentChangeExe.java b/calc/com/tenwa/reckon/executor/rentChange/RentChangeExe.java index 65e347906..db643af8b 100644 --- a/calc/com/tenwa/reckon/executor/rentChange/RentChangeExe.java +++ b/calc/com/tenwa/reckon/executor/rentChange/RentChangeExe.java @@ -72,9 +72,12 @@ public class RentChangeExe { FundRentPlanBean frpb = this.before(cb, ab, tcb); FundRentPlanExecutor executor = this.getPmtExe(cb); // 得到正常pmt租金测算后的租金计划 - frpb = executor.create(tcb,startList); - - + if(ab.getAdjustList()>cb.getOldIncomeNumber()){ + cb.setDeferStr(true); + frpb = executor.create(tcb,startList); + }else{ + frpb = executor.createOnhire(tcb); + } //重置起租日 String start_date=""; if(ab.getPaydayAdjust()==null||ab.getPaydayAdjust().equals("")){ @@ -85,7 +88,7 @@ public class RentChangeExe { if(ab.getStartList()==1){ start_date=cb.getStartDate(); }else{ - start_date=frpb.getPlanDateList().get(ab.getStartList()-2).toString(); + start_date=ab.getPaydayAdjust(); } } cb.setStartDate(start_date); diff --git a/calc/com/tenwa/reckon/help/RentalServiceImpl.java b/calc/com/tenwa/reckon/help/RentalServiceImpl.java index 168abe415..4eb613d5a 100644 --- a/calc/com/tenwa/reckon/help/RentalServiceImpl.java +++ b/calc/com/tenwa/reckon/help/RentalServiceImpl.java @@ -73,7 +73,11 @@ public class RentalServiceImpl { }else{ BigDecimal finalPayment = new BigDecimal(cb.getFinalPayment()); if(finalPayment.compareTo(BigDecimal.ZERO) != 0) { - rent = new BigDecimal(RentTools.getPMT(preRate, cb.getIncomeNumber() + "", cleanLeaseMoney, finalPayment.toString(), cb.getPeriodType())).toString(); + if(cb.getDeferStr()){ + rent = new BigDecimal(RentTools.getPMT(preRate, cb.getIncomeNumber() + "", cleanLeaseMoney, "0", cb.getPeriodType())).toString(); + }else{ + rent = new BigDecimal(RentTools.getPMT(preRate, cb.getIncomeNumber() + "", cleanLeaseMoney, finalPayment.toString(), cb.getPeriodType())).toString(); + } } else { rent = new BigDecimal(RentTools.getPMT(preRate, cb.getIncomeNumber() + "", cleanLeaseMoney, cb.getEquipEndValue(), cb.getPeriodType())).toString(); }