diff --git a/WebContent/Accounting/LoanSimulation_change/LCRentChangeInfo.jsp b/WebContent/Accounting/LoanSimulation_change/LCRentChangeInfo.jsp
index e630b962f..bfff08bcf 100644
--- a/WebContent/Accounting/LoanSimulation_change/LCRentChangeInfo.jsp
+++ b/WebContent/Accounting/LoanSimulation_change/LCRentChangeInfo.jsp
@@ -83,7 +83,7 @@
}else{
url="/Accounting/LoanSimulation_change/LoanBasicInfoBusiness.jsp";
}
- dwTemp.replaceColumn("pay_condition", "", CurPage.getObjectWindowOutput());
+ dwTemp.replaceColumn("pay_condition", "", CurPage.getObjectWindowOutput());
String sButtons[][] = {
{"true","","Button","租金变更","租金变更","saveRecord()","","","","btn_icon_rentchange"},
{"true","","Button","变更撤销","变更撤销","cancelChange()","","","","btn_icon_delete"}
diff --git a/WebContent/Accounting/LoanSimulation_change/RentPlanList.jsp b/WebContent/Accounting/LoanSimulation_change/RentPlanList.jsp
index 869e43bae..d6311e2d7 100644
--- a/WebContent/Accounting/LoanSimulation_change/RentPlanList.jsp
+++ b/WebContent/Accounting/LoanSimulation_change/RentPlanList.jsp
@@ -106,7 +106,11 @@
importCondition["plannumber"] = "<%=plannumber%>";
var sUrl = "/Tenwa/Core/OfficeTemplate/TemplateManager/BFTemplateTest/uploadExcel.jsp";
var sparam = JSON.stringify(importCondition).replace(/,/g,"@");//生成模板的参数据
- AsDialog.PopView(sUrl,"importparam="+sparam,{width:"350px",height:"40px",title:"导入租金计划"},function(){reloadSelf();});
+ AsDialog.PopView(sUrl,"importparam="+sparam,{width:"350px",height:"40px",title:"导入租金计划"},function(retVal){
+ if('fail'!=retVal){
+ self.location.reload();
+ }
+ });
}
function downloadTemplate(){
diff --git a/WebContent/Logon.jsp b/WebContent/Logon.jsp
index f98574db6..b7d53599f 100644
--- a/WebContent/Logon.jsp
+++ b/WebContent/Logon.jsp
@@ -1,18 +1,21 @@
-<%@page import="com.amarsoft.dict.als.manage.NameManager"%>
+<%@page import="com.amarsoft.are.util.SpecialTools"%>
<%@page contentType="text/html; charset=GBK" session="false"%>
-<%@page import="com.amarsoft.are.util.*"%>
-<%@page import="com.amarsoft.awe.util.*"%>
-<%@page import="com.amarsoft.context.*"%>
-<%@page import="com.amarsoft.web.*"%>
-<%@page import="com.amarsoft.web.dw.*"%>
-<%@page import="java.util.*"%>
-<%@page import="com.amarsoft.awe.*"%><%@
-page import="com.amarsoft.awe.control.SessionListener"%><%@
-page import="com.amarsoft.awe.control.model.*"%><%@
-page import="com.amarsoft.awe.util.*"%><%@
-page import="com.amarsoft.awe.Configure"%><%@
-page import="com.amarsoft.awe.security.*"%><%@
-page import="com.amarsoft.awe.security.pwdrule.*"%><%!
+<%@page import="com.amarsoft.are.util.StringFunction"%>
+<%@page import="com.amarsoft.awe.Configure"%>
+<%@page import="com.amarsoft.awe.RuntimeContext"%>
+<%@page import="com.amarsoft.awe.control.SessionListener"%>
+<%@page import="com.amarsoft.awe.control.model.ComponentSession"%>
+<%@page import="com.amarsoft.awe.security.*"%>
+<%@page import="com.amarsoft.awe.security.pwdrule.ALSPWDRules"%><%@
+page import="com.amarsoft.awe.security.pwdrule.IsPasswordOverdueRule"%><%@
+page import="com.amarsoft.awe.security.pwdrule.PasswordRuleManager"%><%@
+page import="com.amarsoft.awe.util.ASResultSet"%><%@
+page import="com.amarsoft.awe.util.SqlObject"%><%@
+page import="com.amarsoft.awe.util.Transaction"%><%@
+page import="com.amarsoft.context.ASPreference"%>
+<%@ page import="com.amarsoft.context.ASUser" %>
+<%@ page import="com.amarsoft.dict.als.manage.NameManager" %>
+<%!
//检验验证码
public boolean vaildCheckCode(HttpServletRequest request, HttpSession session) {
String sCheckCode = request.getParameter("CheckCode");
@@ -179,6 +182,7 @@ public boolean validUserPassword(HttpServletRequest request, Transaction Sqlca,S
so.setOriginalSql(so.getOriginalSql().replaceAll("△", ":"));
so.setRunSql(so.getRunSql().replaceAll("△", ":"));
Sqlca.executeSQL(so);
+ Sqlca.commit();
}
//设置运行上下文参数 CurARC 在IncludeBegin.jsp中使用
@@ -194,26 +198,26 @@ public boolean validUserPassword(HttpServletRequest request, Transaction Sqlca,S
//用户登陆成功,记录登陆信息
SessionListener sessionListener=new SessionListener(request,session,CurUser,CurConfig.getConfigure("DataSource"));
session.setAttribute("listener",sessionListener);
-%>
+
+
<%
} catch (Exception e) {
- //e.printStackTrace();
- //e.fillInStackTrace();
- //e.printStackTrace(new java.io.PrintWriter(System.out));
%>
<%
- return;
} finally {
if(Sqlca!=null) {
//断掉当前数据连接
diff --git a/WebContent/Tenwa/Comm/DocList/PayDocList.jsp b/WebContent/Tenwa/Comm/DocList/PayDocList.jsp
index b320d67e1..8b741870a 100644
--- a/WebContent/Tenwa/Comm/DocList/PayDocList.jsp
+++ b/WebContent/Tenwa/Comm/DocList/PayDocList.jsp
@@ -108,45 +108,27 @@
};
%>
+
<%@include file="/Frame/resources/include/ui/include_list.jspf"%>
<%
}
diff --git a/WebContent/Tenwa/Lease/App/AutoFiveGradeClassification/AutoFiveGradeClassificationList.jsp b/WebContent/Tenwa/Lease/App/AutoFiveGradeClassification/AutoFiveGradeClassificationList.jsp
index 7b5050909..83a0f2c88 100644
--- a/WebContent/Tenwa/Lease/App/AutoFiveGradeClassification/AutoFiveGradeClassificationList.jsp
+++ b/WebContent/Tenwa/Lease/App/AutoFiveGradeClassification/AutoFiveGradeClassificationList.jsp
@@ -29,7 +29,7 @@
%><%@include file="/Frame/resources/include/ui/include_list.jspf"%>
+<%@ include file="/Frame/resources/include/include_end.jspf" %>
\ No newline at end of file
diff --git a/WebContent/Tenwa/Lease/Flow/Contract/ContractTerminate/ContractTerminateApplyList.jsp b/WebContent/Tenwa/Lease/Flow/Contract/ContractTerminate/ContractTerminateApplyList.jsp
index 6fb3a059c..26c68c6b9 100644
--- a/WebContent/Tenwa/Lease/Flow/Contract/ContractTerminate/ContractTerminateApplyList.jsp
+++ b/WebContent/Tenwa/Lease/Flow/Contract/ContractTerminate/ContractTerminateApplyList.jsp
@@ -10,6 +10,7 @@
//alert(getHtmlMessage('1'));//请选择一条信息!
return;
}
+ debugger
sReturn = sReturn.split("@");
var contract_id=sReturn[0];
var project_id=sReturn[1];
@@ -17,6 +18,8 @@
var contract_number = sReturn[3];
var project_name = sReturn[4];
var payment_number = sReturn[5];
+ //判断是否为可以发起部分结清
+ var settletype = sReturn[6];
//校验是否有保证金代偿
/* var isCompensation = AsControl.RunJavaMethod("com.tenwa.reckon.executor.RentCalHelper","isCompensation","contractId="+contract_id);
if("false" == isCompensation){
@@ -24,7 +27,7 @@
return ;
} */
var sParams = "applyType=<%=sApplyType%>,CurUserID=<%=CurUser.getUserID()%>";
- sParams =sParams+",payment_number="+payment_number+",ProjectId="+project_id+",FlowKey="+payment_number+",ProductId="+product_id+",ContractId="+contract_id+",ProjectName="+project_name;
+ sParams =sParams+",payment_number="+payment_number+",ProjectId="+project_id+",FlowKey="+payment_number+",ProductId="+product_id+",ContractId="+contract_id+",ProjectName="+project_name+",settletype="+settletype;
var sReturnInfo = RunJavaMethodTrans("com.tenwa.lease.flow.contract.terminate.TerminateFlowStartAction","initFLow",sParams);
if(typeof(sReturnInfo)=="undefined" || sReturnInfo=="" || sReturnInfo=="_CANCEL_") return;
var sReturnInfos=sReturnInfo.split("@");
diff --git a/WebContent/Tenwa/Lease/Flow/Project/BusinessApplication/CustomerFamilyTempInfo.jsp b/WebContent/Tenwa/Lease/Flow/Project/BusinessApplication/CustomerFamilyTempInfo.jsp
index ce6469332..da85667f8 100644
--- a/WebContent/Tenwa/Lease/Flow/Project/BusinessApplication/CustomerFamilyTempInfo.jsp
+++ b/WebContent/Tenwa/Lease/Flow/Project/BusinessApplication/CustomerFamilyTempInfo.jsp
@@ -262,6 +262,11 @@
// parent.parent.resetDWDialog("配偶身份证信息错误!",false);
return false;
} */
+ if(!CheckLicense(certid)){
+ alert("配偶证件号格式错误,请检查!");
+ return;
+ }
+
if(CheckLicense(certid)){
setItemValue(0,0,"certid",certid);
//setItemUnit(0,0,"certid","");
diff --git a/WebContent/Tenwa/Lease/Flow/Rent/PenaltyReduction/PenaltyReductionApplyList.jsp b/WebContent/Tenwa/Lease/Flow/Rent/PenaltyReduction/PenaltyReductionApplyList.jsp
index cf046705c..845ee9735 100644
--- a/WebContent/Tenwa/Lease/Flow/Rent/PenaltyReduction/PenaltyReductionApplyList.jsp
+++ b/WebContent/Tenwa/Lease/Flow/Rent/PenaltyReduction/PenaltyReductionApplyList.jsp
@@ -19,10 +19,11 @@
return;
}
}
- AsDialog.OpenSelector("SelectPaymentHavePenalty","businessType,"+businessType,"dialogWidth=" + parseInt(window.screen.width * 0.8) + "px dialogHeight=" + parseInt(window.screen.height * 0.6) + "px",function(sReturn){
- if(!sReturn||sReturn=="_CANCEL_"){
+
+ AsDialog.OpenSelector("SelectPaymentHavePenaltyNew","businessType,"+businessType,"dialogWidth=" + parseInt(window.screen.width * 0.8) + "px dialogHeight=" + parseInt(window.screen.height * 0.6) + "px",function(sReturn){
+ if(!sReturn||sReturn=="_CANCEL_"){
//alert(getHtmlMessage('1'));//请选择一条信息!
- return;
+ return;
}
sReturn = sReturn.split("@");
var contractId = sReturn[0];
@@ -44,11 +45,11 @@
}
else
{
- var mes=sReturnInfos[1];
+ var mes=sReturnInfos[0];
alert(mes);
}
reloadSelf();
- },"请选择合同");
+ },"请选择合同");
}
<%@ include file="/Tenwa/Core/FlowManager/BaseFlowList/BaseFlowApplyListEnd.jspf"%>
diff --git a/WebContent/Tenwa/Lease/Flow/Rent/RentReback/RentIncomeHisList.jsp b/WebContent/Tenwa/Lease/Flow/Rent/RentReback/RentIncomeHisList.jsp
index 0bc76b9b0..c88afbf7f 100644
--- a/WebContent/Tenwa/Lease/Flow/Rent/RentReback/RentIncomeHisList.jsp
+++ b/WebContent/Tenwa/Lease/Flow/Rent/RentReback/RentIncomeHisList.jsp
@@ -1,6 +1,8 @@
<%@page import="com.amarsoft.app.lc.workflow.action.GetFlowAction"%>
<%@ page contentType="text/html; charset=GBK"%>
<%@ include file="/Frame/resources/include/include_begin_list.jspf"%><%
+
+ String flowNo = CurPage.getParameter("FlowNo");//流程编号
String sFlowUnid = CurPage.getParameter("FlowUnid");//流程编号
if(sFlowUnid == null)sFlowUnid = "";
String sTempletNo = CurPage.getParameter("TempletNo");//模板号
@@ -18,6 +20,9 @@
ASObjectModel doTemp = new ASObjectModel(sTempletNo);
doTemp.setHtmlEvent("MEMO", "onmouseover", "showMemo");
doTemp.setHtmlEvent("MEMO", "onmouseout", "hideMemo");
+ if("RentRebackFlow".equals(flowNo)){ //租金红冲流程不显示保证金抵扣的数据
+ doTemp.appendJboWhere(" and SETTLE_METHOD <> 'settlemethod7'");
+ }
ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request);
dwTemp.Style="1"; //--设置为Grid风格--
dwTemp.ReadOnly = "1"; //只读模式
diff --git a/WebContent/Tenwa/Lease/voucher/voucherass_detail.jsp b/WebContent/Tenwa/Lease/voucher/voucherass_detail.jsp
index e7476437d..faf2cc290 100644
--- a/WebContent/Tenwa/Lease/voucher/voucherass_detail.jsp
+++ b/WebContent/Tenwa/Lease/voucher/voucherass_detail.jsp
@@ -10,7 +10,8 @@
String sFileSavePath = CurConfig.getConfigure("FileSavePath");
String sFileNameType = CurConfig.getConfigure("FileNameType");
String isTM = CurPage.getAttribute("isTM");//是否显示定时任务数据
- String sTempletNo = "VOUCHER_V8" ;
+ //String sTempletNo = "VOUCHER_V8" ;
+ String sTempletNo = "VOUCHER_V8_LIST" ;
if( isTM!=null && "true".equals(isTM)){
sTempletNo = "VOUCHER_V8_NEW";
}
diff --git a/WebContent/WEB-INF/etc/jbo/jbo_app.xml b/WebContent/WEB-INF/etc/jbo/jbo_app.xml
index 535ff180f..ada03585a 100644
--- a/WebContent/WEB-INF/etc/jbo/jbo_app.xml
+++ b/WebContent/WEB-INF/etc/jbo/jbo_app.xml
@@ -4545,6 +4545,7 @@
+
@@ -4667,6 +4668,7 @@
+
diff --git a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml
index 15e42feff..678446fb3 100644
--- a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml
+++ b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml
@@ -75,7 +75,7 @@
-
+
@@ -326,6 +326,11 @@
+
+
+
+
+
@@ -378,6 +383,11 @@
+
+
+
+
+
@@ -543,6 +553,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/WebContent/WEB-INF/etc/jbo/jbo_comm.xml b/WebContent/WEB-INF/etc/jbo/jbo_comm.xml
index 6e3d9a9fb..2e6f798db 100644
--- a/WebContent/WEB-INF/etc/jbo/jbo_comm.xml
+++ b/WebContent/WEB-INF/etc/jbo/jbo_comm.xml
@@ -845,6 +845,9 @@
+
+
+
diff --git a/WebContent/WEB-INF/etc/jbo/jbo_lease.xml b/WebContent/WEB-INF/etc/jbo/jbo_lease.xml
index 9a1fbbc18..6ba0723d5 100644
--- a/WebContent/WEB-INF/etc/jbo/jbo_lease.xml
+++ b/WebContent/WEB-INF/etc/jbo/jbo_lease.xml
@@ -808,6 +808,7 @@
+
@@ -1080,6 +1081,7 @@
+
@@ -1511,6 +1513,7 @@
+
@@ -2092,6 +2095,7 @@
+
@@ -2827,6 +2831,7 @@
+
@@ -3676,6 +3681,7 @@
+
diff --git a/WebContent/WEB-INF/etc/jbo/jbo_sys.xml b/WebContent/WEB-INF/etc/jbo/jbo_sys.xml
index 0846b3e7f..61f38bacc 100644
--- a/WebContent/WEB-INF/etc/jbo/jbo_sys.xml
+++ b/WebContent/WEB-INF/etc/jbo/jbo_sys.xml
@@ -3238,6 +3238,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/WebContent/WEB-INF/etc/jbo/jbo_voucher.xml b/WebContent/WEB-INF/etc/jbo/jbo_voucher.xml
index 49d8abd83..b95085768 100644
--- a/WebContent/WEB-INF/etc/jbo/jbo_voucher.xml
+++ b/WebContent/WEB-INF/etc/jbo/jbo_voucher.xml
@@ -298,6 +298,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calc/com/tenwa/flow/CopyDormantRentTempToFormal.java b/calc/com/tenwa/flow/CopyDormantRentTempToFormal.java
index 1d6ea6122..8392832d9 100644
--- a/calc/com/tenwa/flow/CopyDormantRentTempToFormal.java
+++ b/calc/com/tenwa/flow/CopyDormantRentTempToFormal.java
@@ -24,7 +24,7 @@ public class CopyDormantRentTempToFormal extends BaseBussiness{
MapfromCondtion=new HashMap();
fromCondtion.put("flowunid",this.getAttribute("FlowUnid").toString());
MapfromCondtion2=new HashMap();
- fromCondtion.put("contract_id",this.getAttribute("ContractId").toString());
+ fromCondtion2.put("contract_id",this.getAttribute("ContractId").toString());
MapotherProperty2=new HashMap();
otherProperty2.put("flowunid",this.getAttribute("FlowUnid").toString());
DataOperatorUtil.copySingleJBO(LC_DORMANT_RENT_ADJUST_TEMP.CLASS_NAME, fromCondtion, LC_DORMANT_RENT_ADJUST.CLASS_NAME, null, null, Sqlca);
diff --git a/calc/com/tenwa/reckon/copydata/CalcConditionUpdateRent.java b/calc/com/tenwa/reckon/copydata/CalcConditionUpdateRent.java
new file mode 100644
index 000000000..02f054ed3
--- /dev/null
+++ b/calc/com/tenwa/reckon/copydata/CalcConditionUpdateRent.java
@@ -0,0 +1,33 @@
+package com.tenwa.reckon.copydata;
+
+import com.amarsoft.awe.util.ASResultSet;
+import com.amarsoft.awe.util.SqlObject;
+import com.amarsoft.awe.util.Transaction;
+import com.tenwa.flow.baseBussion.BaseBussiness;
+
+/**
+ * 起租后方案信息变更租金计划表合同id为空
+ *
+ *
+ */
+public class CalcConditionUpdateRent extends BaseBussiness{
+
+ public Object run(Transaction Sqlca) throws Exception {
+ this.initBussinessParam(Sqlca);
+ String flowunid = this.getAttribute("ObjectNo").toString(); //获取流程编号
+ String contractId = this.getAttribute("ContractId").toString(); //获取合同编号
+ ASResultSet rs = Sqlca.getASResultSet(new SqlObject("select PROJECT_ID,PROJECT_PLAN_NUMBER ,CONTRACT_PLAN_NUMBER ,PAYMENT_NUMBER from lc_rent_plan where CONTRACT_ID ='"+contractId+"' and PLAN_LIST = '1' "));
+ if ( rs.next() ) {
+ SqlObject sql = new SqlObject("update lc_rent_plan_temp set "
+ + " PROJECT_ID =:projectId,PROJECT_PLAN_NUMBER=:projectPlanNumber ,"
+ + " CONTRACT_PLAN_NUMBER=:contractPlanNumber ,PAYMENT_NUMBER=:paymentNumber,CONTRACT_ID=:contractId "
+ + " where FLOWUNID=:flowUnid ");
+ sql.setParameter("projectId", rs.getString( "PROJECT_ID" ) ).setParameter("projectPlanNumber", rs.getString( "PROJECT_PLAN_NUMBER" ) )
+ .setParameter("contractPlanNumber", rs.getString( "CONTRACT_PLAN_NUMBER" ) ).setParameter("paymentNumber", rs.getString( "PAYMENT_NUMBER" ) )
+ .setParameter("contractId", contractId ).setParameter("flowUnid", flowunid);
+ Sqlca.executeSQL(sql);
+ }
+ return "true";
+
+ }
+}
diff --git a/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java b/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java
index 63a47e36b..068202683 100644
--- a/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java
+++ b/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java
@@ -313,14 +313,20 @@ public class CreateTransactionExecutor implements Transaction {
public String carRunOnhire(com.amarsoft.awe.util.Transaction Sqlca) throws Exception {
JBOTransaction tx=null;
BizObjectManager Bm=JBOFactory.getBizObjectManager(LC_CALC_CONDITION.CLASS_NAME, Sqlca);
+ BizObjectManager lprrM=JBOFactory.getBizObjectManager(LC_PAY_RENT_PLAN.CLASS_NAME, Sqlca);
BizObject boLCC = Bm.createQuery("contract_id='" + contractId + "'").getSingleResult(true);
BizObjectManager bmLCI=JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.CLASS_NAME, Sqlca);
BizObject boLCI = bmLCI.createQuery("id='" + contractId + "'").getSingleResult(false);
+
+ List lprrs = lprrM.createQuery(" payment_number=:payment_number ").setParameter("payment_number", this.plannumber ).getResultList(false);
+
//获取期次
if(boLCC != null) {
String settleMethod = boLCC.getAttribute("SETTLE_METHOD").getString();
String defaultDueDay = ProductParamUtil.getProductParameterValue(productId, "PRD0301", settleMethod, "DefaultDueDay");
- int incomeNumber = boLCC.getAttribute("INCOME_NUMBER").getInt();
+// int incomeNumber = boLCC.getAttribute("INCOME_NUMBER").getInt();
+ int incomeNumber = lprrs.size() ;
+
//期初-期末
String periodType = boLCC.getAttribute("PERIOD_TYPE").getString();
String incomeIntervalMonth = boLCC.getAttribute("INCOME_INTERVAL_MONTH").getInt() + "";
@@ -358,6 +364,7 @@ public class CreateTransactionExecutor implements Transaction {
}
boLCC.setAttributeValue("start_date", startDate);
boLCC.setAttributeValue("lease_amt_date", startDate);
+ boLCC.setAttributeValue("INCOME_NUMBER", incomeNumber);
if(planDateList.size()>0)boLCC.setAttributeValue("first_plan_date", planDateList.get(0));
if(planDateList.size()>1)boLCC.setAttributeValue("second_plan_date", planDateList.get(1));
Bm.saveObject(boLCC);
@@ -1397,12 +1404,12 @@ public class CreateTransactionExecutor implements Transaction {
Double factMoney = new Double(let.getAttribute("FACT_MONEY").getString());
if(mayopeMoney>=advanceMoney){
Double mayopeMoneyNew = mayopeMoney-advanceMoney;
- let.setAttributeValue("HAD_MONEY", factMoney - mayopeMoneyNew);
+ let.setAttributeValue("HAD_MONEY", advanceMoney);
let.setAttributeValue("MAYOPE_MONEY", mayopeMoneyNew);
letManage.saveObject(let);
break;
}else{
- let.setAttributeValue("HAD_MONEY", factMoney);
+ let.setAttributeValue("HAD_MONEY", mayopeMoney);
advanceMoney = advanceMoney-mayopeMoney;
let.setAttributeValue("MAYOPE_MONEY", 0);
letManage.saveObject(let);
diff --git a/calc/com/tenwa/reckon/executor/SegmentedFinancingExecutor.java b/calc/com/tenwa/reckon/executor/SegmentedFinancingExecutor.java
index 684e7864f..30bfd0fdf 100644
--- a/calc/com/tenwa/reckon/executor/SegmentedFinancingExecutor.java
+++ b/calc/com/tenwa/reckon/executor/SegmentedFinancingExecutor.java
@@ -43,6 +43,7 @@ public class SegmentedFinancingExecutor extends FundRentPlanExecutor {
List overCorpuss = new ArrayList<>();
PlanDateServiceImpl pdsi = new PlanDateServiceImpl( tx );
ConditionBean cb = tcb.getCb();
+ BigDecimal maxIncomeNumber = BigDecimal.ZERO;
for ( BizObject bo : bos ) {
// 分段号
String subsectionNumber = bo.getAttribute( "SUBSECTION_NUMBER" ).getString();
@@ -54,6 +55,10 @@ public class SegmentedFinancingExecutor extends FundRentPlanExecutor {
BigDecimal preRate = rate.divide( incomeNumberYear, 20, 4 );
// 期次
BigDecimal incomeNumber = new BigDecimal( bo.getAttribute( "INCOME_NUMBER" ).getString() );
+
+ if(incomeNumber.compareTo(maxIncomeNumber) > 0 ) {
+ maxIncomeNumber = incomeNumber;
+ }
cb.setIncomeNumber( incomeNumber.intValue() );
List planDateList = pdsi.getPlanDateList( cb, null );
if ( planDateList.size() > dates.size() ) {
@@ -179,6 +184,10 @@ public class SegmentedFinancingExecutor extends FundRentPlanExecutor {
}
}
}
+ //将分段融的最大值赋值给测算期次
+ cb.setIncomeNumber( maxIncomeNumber.intValue() );
+ //分段融目前没有配置还款间隔,默认为月付。租赁期限和租赁次数一致
+ cb.setLeaseTerm( maxIncomeNumber.intValue() );
FundRentPlanBean fundRentPlanBean = new FundRentPlanBean();
fundRentPlanBean.setCorpusOverageBusinessList( overCorpuss );
fundRentPlanBean.setCorpusBusinessList( corpuss );
diff --git a/src_core/com/tenwa/flow/util/FlowUtil.java b/src_core/com/tenwa/flow/util/FlowUtil.java
index 847bab7c0..56d84bfdf 100644
--- a/src_core/com/tenwa/flow/util/FlowUtil.java
+++ b/src_core/com/tenwa/flow/util/FlowUtil.java
@@ -1,68 +1,39 @@
package com.tenwa.flow.util;
-import java.text.DecimalFormat;
+import com.amarsoft.app.lc.util.DateAssistant;
+import com.amarsoft.are.jbo.*;
+import com.amarsoft.are.lang.StringX;
+import com.google.common.collect.ImmutableMap;
+import com.tenwa.comm.util.jboutil.DataOperatorUtil;
+import jbo.com.tenwa.entity.comm.flow.FLOW_WORK_FLAG;
+import jbo.com.tenwa.entity.comm.serialutil.T_SERIAL_NUMBER;
+
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
-
-import jbo.com.tenwa.entity.comm.flow.FLOW_BUSSINESS_OBJECT;
-import jbo.com.tenwa.entity.comm.flow.FLOW_WORK_FLAG;
-import jbo.com.tenwa.entity.comm.serialutil.T_SERIAL_DISCARD_NUMBER;
-import jbo.com.tenwa.entity.comm.serialutil.T_SERIAL_NUMBER;
-import jbo.sys.FLOW_OBJECT;
-
-import com.amarsoft.app.lc.util.DateAssistant;
-import com.amarsoft.are.jbo.BizObject;
-import com.amarsoft.are.jbo.BizObjectManager;
-import com.amarsoft.are.jbo.BizObjectQuery;
-import com.amarsoft.are.jbo.JBOFactory;
-import com.amarsoft.are.jbo.JBOTransaction;
-import com.amarsoft.are.lang.StringX;
-import com.amarsoft.awe.Configure;
-import com.amarsoft.awe.util.ASResultSet;
-import com.amarsoft.awe.util.SqlObject;
-import com.amarsoft.awe.util.Transaction;
-import com.tenwa.comm.util.jboutil.DataOperatorUtil;
+import java.util.Objects;
public class FlowUtil {
- public static synchronized String getProjectSerialNumber(String orgId,JBOTransaction tx) throws Exception{
- return FlowUtil.getSerialNumber("P{year}{month}{day}{maxOrderNumber}",6,null, "项目编号"+orgId, null, tx);
- }
-
- public static synchronized String getEbankSerialNumber(String orgId,JBOTransaction tx) throws Exception{
- return FlowUtil.getSerialNumber("E-{year}{month}{maxOrderNumber}",3,null, "网银编号"+orgId, null, tx);
- }
-
- public static synchronized String getOutNoNumber(JBOTransaction tx) throws Exception{
- return FlowUtil.getSerialNumber("PF{year}{month}{maxOrderNumber}",4,null, "", null, tx);
- }
-
- public static synchronized String getRentOutNoNumber(JBOTransaction tx) throws Exception{
- return FlowUtil.getSerialNumber("PR{year}{month}{maxOrderNumber}",4,null, "", null, tx);
- }
-
+
//获取1位的凭证号(凭证号--1、2、3)
- public static synchronized String getVoucher_Number(JBOTransaction tx) throws Exception{
- return String.valueOf(Integer.parseInt(FlowUtil.getSerialNumber("{maxOrderNumber}",6,null, "凭证号", Integer.parseInt("2018"), tx)));
+ public static String getVoucher_Number(JBOTransaction tx) throws Exception {
+ return FlowUtil.getSerialNumber("{maxOrderNumber}", 6, null, "凭证号", 2018, tx);
}
-
- //获取1位的客户编号(--1、2、3)
- public static synchronized String getCustomer_Number(JBOTransaction tx) throws Exception{
- return String.valueOf(Integer.parseInt(FlowUtil.getSerialNumber("{maxOrderNumber}",15,null, "客户编号", Integer.parseInt("2018"), tx)));
- }
- //获取法人customerid(--1、2、3)
- public static synchronized String getCustomer_Id(JBOTransaction tx) throws Exception{
- return String.valueOf(Integer.parseInt(FlowUtil.getSerialNumber("{maxOrderNumber}",15,null, "法人客户编号", Integer.parseInt("2018"), tx)));
+
+ //获取客户编号(法人,自然人)
+ public static String getCustomer_Number(boolean isCompany, String custType) throws Exception {
+ ImmutableMap model = ImmutableMap.of("custType", custType);
+ return FlowUtil.getSerialNumber("APZL{custType}{maxOrderNumber}", 15, model, isCompany ? "法人客户编号" : "客户编号", null, null);
}
-
+
//获取经销商编号
- public static synchronized String getDistributorSerialNumber(JBOTransaction tx) throws Exception{
+ public static String getDistributorSerialNumber(JBOTransaction tx) throws Exception {
return FlowUtil.getSerialNumber("DSTB{year}{month}{day}{maxOrderNumber}",6,null, "经销商编号", null, tx);
}
- protected static synchronized String getSerialNumber(String serialNumberPattern,int numberCount,Map model,String type,Integer queryYear,JBOTransaction tx) throws Exception
- {
+
+ private static String getSerialNumber(String serialNumberPattern, int numberCount, Map model, String type, Integer queryYear, JBOTransaction tx) throws Exception {
String currentDateTime = DateAssistant.getTodayNow();
String currentYear = currentDateTime.substring(0,4);
String month = currentDateTime.substring(5,7);
@@ -70,336 +41,74 @@ public class FlowUtil {
String hour = currentDateTime.substring(11,13);
String minute = currentDateTime.substring(14,16);
String second = currentDateTime.substring(17,19);
-
- Integer year = Integer.parseInt(currentYear);
- if(null != queryYear){
- year = queryYear;
- }
- Map paramMap = new HashMap();
+ Integer year = queryYear != null ? queryYear : Integer.valueOf(currentYear);
+ Map paramMap = new HashMap<>();
paramMap.put("year", year+"");
- paramMap.put("month", month+"");
- paramMap.put("day", day+"");
- paramMap.put("hour", hour+"");
- paramMap.put("minute", minute+"");
- paramMap.put("second", second+"");
-
- int maxOrderNumber = getMaxOrderNumber(type, queryYear, tx);
- StringBuffer numberFormat = new StringBuffer();
- for(int i=0;i paramMap,String serialNumberPattern){
- for(String key:paramMap.keySet()){
- if(serialNumberPattern.indexOf("{"+key+"}")>=0){
- serialNumberPattern=serialNumberPattern.replace("{"+key+"}", paramMap.get(key));
+ for (String key : paramMap.keySet()) {
+ if (serialNumberPattern.indexOf("{" + key + "}") >= 0) {
+ serialNumberPattern = serialNumberPattern.replace("{" + key + "}", paramMap.get(key));
}
}
return serialNumberPattern;
}
- /***
- * serialNumberPattern匹配值
- * {year}->年份,如果参数year为空则取当前年
- * {month}->当前月
- * {day}->当前日
- * {hour}->时
- * {minute}->分
- * {second}->秒
- * {maxOrderNumber}->当前最大序号
- *
- * **/
- protected static synchronized String getSerialNumberByMonth(String serialNumberPattern,int numberCount,Map model,String type,Integer queryYear,Integer queryMonth,JBOTransaction tx) throws Exception
- {
- String currentDateTime = DateAssistant.getTodayNow();
- String currentYear = currentDateTime.substring(0,4);
- String monthStr = currentDateTime.substring(5,7);
- String day = currentDateTime.substring(8,10);
- String hour = currentDateTime.substring(11,13);
- String minute = currentDateTime.substring(14,16);
- String second = currentDateTime.substring(17,19);
-
- int year = Integer.parseInt(currentYear);
- int month = Integer.parseInt(monthStr);
- if(null != queryYear){
- year = queryYear;
- }
- if(null != queryMonth){
- month = queryMonth ;
- }
- Map paramMap = new HashMap();
- paramMap.put("year", year+"");
- paramMap.put("month", monthStr+"");
- paramMap.put("day", day+"");
- paramMap.put("hour", hour+"");
- paramMap.put("minute", minute+"");
- paramMap.put("second", second+"");
-
- int maxOrderNumber = getMaxOrderNumberByMonth(type, year,month, tx);
- StringBuffer numberFormat = new StringBuffer();
- for(int i=0;isearchCondtion=new HashMap();
- if(!StringX.isEmpty(type)){
- searchCondtion.put("type_", type);
- }
- if(null != queryYear){
- searchCondtion.put("year_", queryYear.toString());
-
- }
- String querySql = DataOperatorUtil.getQuerySql(searchCondtion);
- BizObjectQuery bqDest = tNumberManager.createQuery(querySql);
- for (String key : searchCondtion.keySet()) {
- bqDest.setParameter(key, searchCondtion.get(key).toString());
- }
- BizObject serialNumber = null;
- serialNumber = bqDest.getSingleResult(true);// 目标JBO,需要做更新操作
-
-
- if(null==serialNumber){
-
- serialNumber = tNumberManager.newObject();
- if(null != queryYear)
- {
- currentYear = queryYear;
- }
- serialNumber.setAttributeValue("year_",currentYear);
- serialNumber.setAttributeValue("type_",type);
- serialNumber.setAttributeValue("order_number_", "0");
- }
- int maxOrderNumber = Integer.valueOf(serialNumber.getAttribute("order_number_").getInt()) + 1;
- serialNumber.setAttributeValue("order_number_",maxOrderNumber);
- tNumberManager.saveObject(serialNumber);
- return maxOrderNumber;
- }
- //考虑并发情况必须采用同步机制
- @SuppressWarnings("unchecked")
- protected static synchronized int getMaxOrderNumberByMonth(String type,Integer queryYear,Integer queryMonth,JBOTransaction tx) throws Exception
- {
- int currentYear = Calendar.getInstance().get(Calendar.YEAR);
- int currentMonth = Calendar.getInstance().get(Calendar.MONTH);
- BizObjectManager tNumberManager = JBOFactory.getBizObjectManager(T_SERIAL_NUMBER.CLASS_NAME);
- tx.join(tNumberManager);
- MapsearchCondtion=new HashMap();
- if(!StringX.isEmpty(type)){
- searchCondtion.put("type_", type);
- }
- if(null != queryYear){
- searchCondtion.put("year_", queryYear.toString());
-
- }
- if(null != queryMonth){
- searchCondtion.put("month_", queryMonth.toString());
-
- }
- String querySql = DataOperatorUtil.getQuerySql(searchCondtion);
- BizObjectQuery bqDest = tNumberManager.createQuery(querySql);
- for (String key : searchCondtion.keySet()) {
- bqDest.setParameter(key, searchCondtion.get(key).toString());
- }
- BizObject serialNumber = null;
- serialNumber = bqDest.getSingleResult(true);// 目标JBO,需要做更新操作
-
-
- if(null==serialNumber)
- {
-
- serialNumber = tNumberManager.newObject();
- if(null != queryYear)
- {
- currentYear = queryYear;
+ //考虑并发情况必须采用同步机制
+ private static synchronized int getMaxOrderNumber(String type, Integer queryYear) throws Exception {
+ JBOTransaction tx = null;
+ try {
+ tx = JBOFactory.createJBOTransaction();
+ int currentYear = Calendar.getInstance().get(Calendar.YEAR);
+ BizObjectManager tNumberManager = JBOFactory.getBizObjectManager(T_SERIAL_NUMBER.CLASS_NAME);
+ tx.join(tNumberManager);
+ Map searchCondtion = new HashMap();
+ if (!StringX.isEmpty(type)) {
+ searchCondtion.put("type_", type);
}
- if(null != queryMonth){
- currentMonth = queryMonth;
+ if (null != queryYear) {
+ searchCondtion.put("year_", queryYear.toString());
+
}
- serialNumber.setAttributeValue("year_",currentYear);
- serialNumber.setAttributeValue("month_",currentMonth);
- serialNumber.setAttributeValue("type_",type);
- serialNumber.setAttributeValue("order_number_", "0");
+ String querySql = DataOperatorUtil.getQuerySql(searchCondtion);
+ BizObjectQuery bqDest = tNumberManager.createQuery(querySql);
+ for (String key : searchCondtion.keySet()) {
+ bqDest.setParameter(key, searchCondtion.get(key).toString());
+ }
+ // 目标JBO,需要做更新操作
+ BizObject serialNumber = bqDest.getSingleResult(true);
+ if (Objects.isNull(serialNumber)) {
+ serialNumber = tNumberManager.newObject();
+ serialNumber.setAttributeValue("year_", queryYear != null ? queryYear : currentYear);
+ serialNumber.setAttributeValue("type_", type);
+ serialNumber.setAttributeValue("order_number_", "0");
+ }
+ int maxOrderNumber = serialNumber.getAttribute("order_number_").getInt() + 1;
+ serialNumber.setAttributeValue("order_number_", maxOrderNumber);
+ tNumberManager.saveObject(serialNumber);
+ tx.commit();
+ return maxOrderNumber;
+ } catch (Exception e) {
+ if (tx != null) tx.rollback();
+ throw e;
}
- int maxOrderNumber = Integer.valueOf(serialNumber.getAttribute("order_number_").getInt()) + 1;
- serialNumber.setAttributeValue("order_number_",maxOrderNumber);
- tNumberManager.saveObject(serialNumber);
- return maxOrderNumber;
}
- /**
- * 优先从号码废弃池中取号,如果号码废弃池中没有待取号吗,则根据序列号生成
- * @param serialNumberPattern
- * @param numberCount
- * @param model
- * @param type
- * @param queryYear
- * @param hibernateTemplate
- * @param jdbcTemplate
- * @return
- * @throws Exception
- */
- protected static synchronized String getSerialNumberFirstDiscard(String serialNumberPattern,int numberCount,Map model,String type,Integer queryYear,JBOTransaction tx) throws Exception
- {
- String currentDateTime = DateAssistant.getTodayNow();
- String currentYear = currentDateTime.substring(0,4);
- String month = currentDateTime.substring(5,7);
- String day = currentDateTime.substring(8,10);
- String hour = currentDateTime.substring(11,13);
- String minute = currentDateTime.substring(14,16);
- String second = currentDateTime.substring(17,19);
-
- int year = Integer.parseInt(currentYear);
- if(null != queryYear){
- year = queryYear;
- }
- Map paramMap = new HashMap();
- paramMap.put("year", year+"");
- paramMap.put("month", month+"");
- paramMap.put("day", day+"");
- paramMap.put("hour", hour+"");
- paramMap.put("minute", minute+"");
- paramMap.put("second", second+"");
-
- int maxOrderNumber =0;
- //从废弃池查找可用号码
- maxOrderNumber=getMinDiscardNumber(type, queryYear, tx);
- if(maxOrderNumber<0){//废弃池中没有数据
- maxOrderNumber=getMaxOrderNumber(type, year, tx);
- }
- StringBuffer numberFormat = new StringBuffer();
- for(int i=0;i condtion = new HashMap();
+ condtion.put("flow_unid", flowUnid);
+ DataOperatorUtil.deleteJBOByCondtion(FLOW_WORK_FLAG.CLASS_NAME, condtion, tx);
}
- @SuppressWarnings("unchecked")
- protected static synchronized int getMinDiscardNumber(String type,Integer queryYear,JBOTransaction tx) throws Exception
- {
- BizObjectManager tNumberManager = JBOFactory.getBizObjectManager(T_SERIAL_DISCARD_NUMBER.CLASS_NAME);
- tx.join(tNumberManager);
- MapsearchCondtion=new HashMap();
- if(!StringX.isEmpty(type)){
- searchCondtion.put("type_", type);
- }
- if(null != queryYear){
- searchCondtion.put("year_", queryYear.toString());
-
- }
-
- String querySql = DataOperatorUtil.getQuerySql(searchCondtion);
- BizObjectQuery bqDest = tNumberManager.createQuery(querySql);
- for (String key : searchCondtion.keySet()) {
- bqDest.setParameter(key, searchCondtion.get(key).toString());
- }
- BizObject serialNumber = null;
- serialNumber = bqDest.getSingleResult(true);// 目标JBO,需要做更新操作
-
- if(null!=serialNumber)
- {
- int minOrderNumber = serialNumber.getAttribute("discard_number_").getInt();
- tNumberManager.deleteObject(serialNumber);
- return minOrderNumber;
- }
- return -1;
- }
-
- public static void deleteWorkFlowConflict(String flowUnid,JBOTransaction tx) throws Exception{
- Map condtion=new HashMap();
- condtion.put("flow_unid", flowUnid);
- DataOperatorUtil.deleteJBOByCondtion(FLOW_WORK_FLAG.CLASS_NAME, condtion, tx);
- }
-
- public static String checkWorkFlowConflict(String flowUnid,String flowname,String flowkey,JBOTransaction tx)throws Exception{
- String sql="SELECT flow_unid,flow_name FROM flow_work_flag WHERE flow_name IN("
- + "SELECT flow_nameb FROM flow_mutex_config "
- + "WHERE flow_namea=:flow_namea ) AND mutex_key=:mutex_key";
- ASResultSet rs = null;
- String flow_unid=null;
- String flow_name=null;
- String username=null;
- String res="";
- try {
- MapsearchCondtion=new HashMap();
- Configure CurConfig = Configure.getInstance();
- String sDataSource = CurConfig.getDataSource();
- Transaction Sqlca = Transaction.createTransaction(sDataSource);
- SqlObject so = new SqlObject(sql);
- so.setParameter("flow_namea",flowname);
- so.setParameter("mutex_key",flowkey);
- rs = Sqlca.getASResultSet(so);
- while(rs.next()){
- flow_unid=rs.getString("flow_unid");
- flow_name=rs.getString("flow_name");
- searchCondtion.clear();
- searchCondtion.put("objectno", flow_unid);
- BizObject flowobject=DataOperatorUtil.getSingleJBO(FLOW_OBJECT.CLASS_NAME, searchCondtion, tx);
- if(res!=""){
- res+=",";
- }
- res+=flow_name+"[用户名:"+flowobject.getAttribute("username").getString()+"]";
- }
- } catch (Exception e) {
- e.printStackTrace();
- }finally{
- rs.close();
- }
- if(res.length()>0){
- //删除表数据
- Mapcondtion=new HashMap();
- condtion.put("flow_unid", flowUnid);
- DataOperatorUtil.deleteJBOByCondtion(FLOW_BUSSINESS_OBJECT.CLASS_NAME, condtion, tx);
- return "当前流程和"+res+"互斥,如有疑惑请联系管理员";
- }else{
- /*BizObjectManager bom=JBOFactory.getBizObjectManager(FLOW_BUSSINESS_OBJECT.CLASS_NAME);
- tx.join(bom);
- BizObject bo=bom.newObject();
-
- bo.setAttributeValue("flow_unid", flowUnid);
- bo.setAttributeValue("flow_name", flowname);
- bo.setAttributeValue("flow_key", flowkey);
- bom.saveObject(bo);*/
- return null;
- }
-
- }
-
+
}
diff --git a/src_core/com/tenwa/jbo/manager/BizObject.java b/src_core/com/tenwa/jbo/manager/BizObject.java
new file mode 100644
index 000000000..00c20673d
--- /dev/null
+++ b/src_core/com/tenwa/jbo/manager/BizObject.java
@@ -0,0 +1,177 @@
+package com.tenwa.jbo.manager;
+
+import com.tenwa.comm.exception.BusinessException;
+import org.apache.commons.lang.StringUtils;
+
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class BizObject implements Cloneable {
+
+ private String className;
+ private List datas;
+
+ private BizObject(String className ) {
+ this.className = className;
+ }
+
+ public static BizObject getBizObject(String className ) {
+ return new BizObject( className );
+ }
+
+ public void setAttributeValue( String columnName, Object value ) throws SQLException {
+ if ( columnName == null || "".equals( columnName ) ) {
+ throw new SQLException( "column name can not be null" );
+ }
+
+ if ( datas == null ) {
+ datas = new ArrayList();
+ }
+
+ if ( value == null || "".equals( value ) ) {
+ datas.add( new DataObject( columnName, "string", null ) );
+ } else {
+ String type = value.getClass().getSimpleName().toLowerCase();
+ if ( !DataObject.types.contains( type ) ) {
+ throw new SQLException( "unrecognized value type" );
+ }
+ datas.add( new DataObject( columnName, type, value ) );
+ }
+ }
+
+ public List query(String params ) throws Exception {
+ return query( null, params );
+ }
+
+ public List query(List