diff --git a/WebContent/Accounting/LoanSimulation/LCCalcSubsectionInfoTempList.jsp b/WebContent/Accounting/LoanSimulation/LCCalcSubsectionInfoTempList.jsp new file mode 100644 index 000000000..cefb3c1a8 --- /dev/null +++ b/WebContent/Accounting/LoanSimulation/LCCalcSubsectionInfoTempList.jsp @@ -0,0 +1,228 @@ +<%@ page contentType="text/html; charset=GBK"%> +<%@ include file="/Frame/resources/include/include_begin_list.jspf"%><% + /* + Author: undefined 2021-07-20 + Content: + History Log: + */ + String flowunid = CurPage.getParameter("flowunid"); + String projectId = CurPage.getParameter("projectId"); + ASObjectModel doTemp = new ASObjectModel("LCCalcSubsectionInfoTemp"); + doTemp.setHtmlEvent( "DISCOUNT", "onblur", "changeDiscount" ); + doTemp.setHtmlEvent( "DISCOUNT_RATE", "onblur", "changeDiscountRate" ); + doTemp.setHtmlEvent( "CLEAN_LEASE_RATIO", "onblur", "changeCleanLeaseRatio" ); + doTemp.setHtmlEvent( "CLEAN_LEASE_MONEY", "onblur", "changeCleanLeaseMoney" ); + doTemp.setHtmlEvent( "INCOME_NUMBER", "onchange", "changeIncomeNumber" ); + String discountCalcMethod = Sqlca.getString("select DISCOUNT_CALC_METHOD from LC_CALC_SUBSECTION_INFO_TEMP where FLOWUNID='"+flowunid+"'"); + if(discountCalcMethod != null){ + if(discountCalcMethod.equals("1")){ + doTemp.setReadOnly("DISCOUNT",true); + doTemp.setReadOnly("DISCOUNT_RATE",false); + }else if (discountCalcMethod.equals("2")){ + doTemp.setReadOnly("DISCOUNT",false); + doTemp.setReadOnly("DISCOUNT_RATE",true); + }else if (discountCalcMethod.equals("3")){//固定值,对应的值改为只读 + doTemp.setReadOnly("DISCOUNT_RATE",true); + doTemp.setReadOnly("FINANCING_RATE",true); + doTemp.setReadOnly("INCOME_NUMBER",true); + doTemp.setReadOnly("DISCOUNT",true); + } + } + ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request); + dwTemp.Style="1"; //--设置为Grid风格-- + dwTemp.ReadOnly = "0"; //只读模式 + dwTemp.setPageSize(10); + dwTemp.genHTMLObjectWindow(flowunid); + + //0、是否展示 1、 权限控制 2、 展示类型 3、按钮显示名称 4、按钮解释文字 5、按钮触发事件代码 6、 7、 8、 9、图标,CSS层叠样式 10、风格 + String sButtons[][] = { + {"true","All","Button","保存","保存","save()","","","","btn_icon_save",""}, + {"true","","Button","详情","保存","viewAndEdit()","","","","btn_icon_detail",""}, + }; +%><%@include file="/Frame/resources/include/ui/include_list.jspf"%> + +<%@ include file="/Frame/resources/include/include_end.jspf"%> diff --git a/WebContent/Accounting/LoanSimulation/LCSubsectionRentPlanTempList.jsp b/WebContent/Accounting/LoanSimulation/LCSubsectionRentPlanTempList.jsp new file mode 100644 index 000000000..2408de6a3 --- /dev/null +++ b/WebContent/Accounting/LoanSimulation/LCSubsectionRentPlanTempList.jsp @@ -0,0 +1,37 @@ +<%@ page contentType="text/html; charset=GBK"%> +<%@ include file="/Frame/resources/include/include_begin_list.jspf"%><% + /* + Author: undefined 2021-07-28 + Content: + History Log: + */ + ASObjectModel doTemp = new ASObjectModel("LCSubsectionRentPlanTempList"); + ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request); + dwTemp.Style="1"; //--设置为Grid风格-- + dwTemp.ReadOnly = "1"; //只读模式 + dwTemp.setPageSize((pageSize==null||"undefined".equals(pageSize))?24:Integer.parseInt(pageSize)); + dwTemp.genHTMLObjectWindow(CurPage.getParameter("flowunid")+","+CurPage.getParameter("subsectionNumber")); + + //0、是否展示 1、 权限控制 2、 展示类型 3、按钮显示名称 4、按钮解释文字 5、按钮触发事件代码 6、 7、 8、 9、图标,CSS层叠样式 10、风格 + String sButtons[][] = { + {"false","All","Button","新增","新增","newRecord()","","","","btn_icon_add",""}, + {"false","","Button","详情","详情","viewAndEdit()","","","","btn_icon_detail",""}, + {"false","","Button","删除","删除","if(confirm('确实要删除吗?'))as_delete(0,'alert(getRowCount(0))')","","","","btn_icon_delete",""}, + }; +%><%@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/Accounting/LoanSimulation/LoanBasicInfo.jsp b/WebContent/Accounting/LoanSimulation/LoanBasicInfo.jsp index 9c23a310f..db72d1d38 100644 --- a/WebContent/Accounting/LoanSimulation/LoanBasicInfo.jsp +++ b/WebContent/Accounting/LoanSimulation/LoanBasicInfo.jsp @@ -18,6 +18,7 @@ <%@ include file="/Frame/resources/include/include_begin_info.jspf"%> <% /*获取参数*/ + String flowNo = CurPage.getParameter("FlowNo"); String flowunid = CurPage.getParameter("FlowUnid"); String plannumber=CurPage.getParameter("plannumber"); String productId=CurPage.getParameter("ProductId"); @@ -40,7 +41,7 @@ } TabCalBean tcb=TbBeanTools.getTabInfo(calType); String planCName=tcb.getPlanCName(); - //方案编号 + //方案编号 if(plannumber==null){ if("pay_process".equals(calType)||"onHire_process".equals(calType)){ BizObject condtion=JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP","flowunid=:flowunid and PAYMENT_NUMBER is not null and length(PAYMENT_NUMBER)>0 ").setParameter("flowunid", flowunid).getSingleResult(false); @@ -86,8 +87,8 @@ String carTypea = Sqlca.getString( "SELECT car_typea FROM lb_equipment_car_temp WHERE flowunid='" + flowunid + "' LIMIT 1 " ); //获取产品配置的留购价款 String nominalPrice= ProductParamUtil.getProductParameterValue( productId, "PRD0315", "NOMINAL_PRICE", "CostType08" ) ; - - + + ASObjectModel doTemp = new ASObjectModel(templateNo); Map> productRates = ProductParamUtil.getProductComponentType(productId, "PRD0350"); @@ -107,7 +108,7 @@ } if("02".equals(termType)){ doTemp.setColumnAttribute("INCOME_NUMBER", "coleditstyle", "1"); - + } if("N".equals(isFixedRate)){ doTemp.setReadOnly("YEAR_RATE", false); @@ -122,7 +123,7 @@ doTemp.setHtmlEvent( "YEAR_RATE", "onchange", "changeYearRate" ); // 年利率事件 doTemp.setHtmlEvent( "RENT_VALUE", "onchange", "changeRentValue" ); // 预计租金事件 doTemp.setDefaultValue( "GPS_DIFFERENCE", ProductParamUtil.getProductParameterValue( productId, "PRD0390", "GPSDifference", "GPSDifference" ) ); - + Map> ProductRevenue = ProductParamUtil.getProductComponentType(productId, "PRD0390"); Map bondAndPayments = ProductRevenue.get("bondAndPayments"); bondAndPaymentsMin = bondAndPayments.get("bondAndPayments-MIN"); @@ -149,6 +150,7 @@ doTemp.setHtmlEvent("FIRST_PLAN_DATE", "onchange", "changeFistPlanDate");//第一期计划日期 doTemp.setHtmlEvent("CORPUS_RATIO", "onchange", "changeCorpusRatio");//期限内本金比例 doTemp.setHtmlEvent("EQUIP_AMT", "onchange", "changgeCompare");//车价 + doTemp.setHtmlEvent("SUBSECTION_CONDIG", "onchange", "changeSubsectionConfig");//车价 /*设置字段事件*/ /*设置模板属性*/ @@ -156,13 +158,13 @@ //费用规则 ProductCondition pc=new ProductCondition(); pc.getProductFundRules(doTemp, productId); - String calcRules=pc.getProductRules(doTemp, productId,vali); - + String calcRules=pc.getProductRules(doTemp, productId, vali, flowunid ); + //获取产品名称 BizObject bo = JBOFactory.createBizObjectQuery(BUSINESS_TYPE.CLASS_NAME,"typeno=:productID") .setParameter("productID", productId).getSingleResult(false); String productName = (bo==null)?"":bo.getAttribute("typename").getString(); - + //非车辆产品,融资额可编辑 String productType = Sqlca.getString(new SqlObject("select attribute2 from business_type where typeno='"+productId+"'")); if("car_product".equals(productType)){ @@ -171,7 +173,7 @@ // doTemp.setVisible("CORPUS_RATIO", true); // doTemp.setVisible("CORPUS", true); // doTemp.setRequired("CORPUS_RATIO", true); - } + } if("quoted_price".equals(calType)){//客户报价 流程号存的是客户主键 doTemp.setDefaultValue("cust_id", flowunid); } @@ -185,27 +187,28 @@ doTemp.setDataQueryClass("com.tenwa.lease.flow.flowarchive.calcarchive.CalcCondtionInfoArachiveShow");//如果是历史则新显示历史数据 } */ /*设置模板属性*/ - + /*设置页面属性*/ CurPage.getCurComp().setAttribute("RightType", null); Parameter p=new Parameter("plannumber",plannumber); Vector v=CurPage.parameterList; v.add(p); - /*设置页面属性*/ + /*设置页面属性*/ boolean flag=CurUser.hasRole("401"); if(CurUser.hasRole("401")){ doTemp.setVisible("CAUTION_MONEY_METHOD",false); doTemp.setVisible("DISCOUNT", false); + doTemp.setVisible("DISCOUNT_INTEREST", false); // doTemp.setColumnAttribute("DISCOUNT","colvisible","0"); - } + } if(CurUser.hasRole("800R00000013")||CurUser.hasRole("800R00000014")||CurUser.hasRole("800R00000015")){ doTemp.setVisible("YEAR_RATE", true); doTemp.setVisible("RENT_RATIO",true); } - + ASObjectWindowCalc dwTemp = new ASObjectWindowCalc(CurPage, doTemp,request); - - + + dwTemp.Style = "2";//freeform if((null!=RightType&&RightType.equals("ReadOnly"))||(null!=ishistory&&ishistory.equals("true"))){ dwTemp.ReadOnly = "1";//只读模式 @@ -219,13 +222,15 @@ dwTemp.setAttr("showRatio", true); dwTemp.genHTMLObjectWindow(flowunid); CurPage.getCurComp().setAttribute("RightType", RightType); - + String compClientID = request.getParameter("CompClientID"); - dwTemp.replaceColumn("condition_plan", "", CurPage.getObjectWindowOutput()); - //dwTemp.replaceColumn("even_subsection", "", CurPage.getObjectWindowOutput()); + dwTemp.replaceColumn("condition_plan", "", CurPage.getObjectWindowOutput()); + //dwTemp.replaceColumn("even_subsection", "", CurPage.getObjectWindowOutput()); //dwTemp.replaceColumn("knowing_config", "", CurPage.getObjectWindowOutput()); + dwTemp.replaceColumn("subsection_info", "", CurPage.getObjectWindowOutput()); + String businessDate = DateHelper.getBusinessDate(); - + //获取对应车辆指导价 BizObject bo1 = JBOFactory.createBizObjectQuery(LB_EQUIPMENT_CAR_TEMP.CLASS_NAME,"PROJECT_ID=:projectId") .setParameter("projectId",projectId).getSingleResult(false); @@ -253,7 +258,7 @@ $(function(){ rentOrRateOption=$("#RENT_OR_RATE").children(); incomeNumberYear=$("#INCOME_NUMBER_YEAR").children(); adjustType=$("#ADJUST_TYPE").children(); - + incomeNumber=$("#INCOME_NUMBER").children(); var fundRules=calcRules["fund"]; for(var key in fundRules){ @@ -288,11 +293,11 @@ $(function(){ if(inco[value]==1){ $("#INCOME_NUMBER").append(this); } - }); + }); $("#INCOME_NUMBER").val(inerNumber); - + count++; - }else{ + }else{ changeSettleMethod3(); } // getRatioByMoney(getObj(0, "EQUIP_AMT")); @@ -303,10 +308,25 @@ $(function(){ } var nominalPrice = "<%=nominalPrice%>" ; var carNum = parseInt("<%=carNum%>"); - setItemValue( 0, 0, 'NOMINAL_PRICE', Number(nominalPrice)*carNum ); - + var flowNo = "<%=flowNo%>"; + if( "BusinessApplyFlow"==flowNo || "BusinessChangeFlow" == flowNo ){ + setItemValue( 0, 0, 'NOMINAL_PRICE', Number(nominalPrice)*carNum ); + } }); +function changeSubsectionConfig() { + var settleMethod = getItemValue( 0, 0, 'SETTLE_METHOD' ); + var subsectionConfig = getItemValue( 0, 0, 'SUBSECTION_CONDIG' ); + if ( 'segmented_financing' === settleMethod && '' !== subsectionConfig ) { + var equipAmt = getItemValue( 0, 0, 'EQUIP_AMT' ); + var cleanLeaseMoney = getItemValue( 0, 0, 'CLEAN_LEASE_MONEY' ); + var result = RunJavaMethodTrans( 'com.tenwa.reckon.executor.CreateTransactionExecutor', 'resetSubsection', 'flowunid=<%=flowunid%>,equipAmt=' + equipAmt + ',cleanLeasemoney=' + cleanLeaseMoney + ',subsectionConfig=' + subsectionConfig ); + if ( result === 'SUCCESS' ) { + subsection_list.window.reloadSelf(); + } + } +} + function changeYearRate() { if ( getItemValue( 0, 0, 'YEAR_RATE' ) !== '' ) { setItemValue( 0, 0, 'RENT_VALUE', '0.00' ); @@ -360,7 +380,7 @@ function importCustomerQuot(){ var param2="FlowUnid=<%=flowunid%>&calType=<%=calType%>&plannumber=<%=plannumber%>"; AsControl.OpenView("/Accounting/LoanSimulation/LoanBasicInfo.jsp",param2, "_self"); },"请选择客户报价",''); - + } @@ -426,7 +446,7 @@ CalcControl.InitStartDate=function(){ break; } //是按起租日计算的情况,直接读取当前日期 - if(calcRules["method"][methodName]["DefaultDueDay"] != "02") { + if( calcRules["method"][methodName]["DefaultDueDay"] && calcRules["method"][methodName]["DefaultDueDay"] != "02") { rentDay = calcRules["method"][methodName]["ActualDay"]; } @@ -471,7 +491,7 @@ CalcControl.InitSecondPlanDate=function(){ var firstPlanDate=getItemValue(0,0,"FIRST_PLAN_DATE"); if(!firstPlanDate)return; setItemValue(0,0,"SECOND_PLAN_DATE",dateAdd('m',incomenumberyear,new Date(firstPlanDate)).format('yyyy\/MM\/dd')); - + } @@ -552,7 +572,7 @@ CalcControl.SettleMethodView=function(){ } var ids="RENT_OR_RATE,INCOME_NUMBER_YEAR,INCOME_INTERVAL_MONTH,INCOME_NUMBER,PERIOD_TYPE,GRACE,RATE_FLOAT_TYPE,BASE_RATE,RATE_FLOAT_AMT,YEAR_RATE,RENT_VALUE,FIRST_PLAN_DATE,SECOND_PLAN_DATE"; if(method == 'irregular_rent'||method=="even_subsection"){ - + setDisable(ids); var showIds="RATE_FLOAT_DAY,FIRST_PLAN_DATE,SECOND_PLAN_DATE,PERIOD_TYPE,GRACE"; if(method == 'irregular_rent'){ @@ -572,7 +592,7 @@ CalcControl.SettleMethodView=function(){ CalcControl.RentOrRateView(); setItemRequired(0,"YEAR_RATE",true); } - + //日期 //计划日期 var plan = ""; @@ -660,8 +680,13 @@ CalcControl.SettleMethodView=function(){ setItemRequired(0,"RATE",false); setItemRequired(0,"ADDITIONAL_RATE",false); } + + if ( 'segmented_financing' === method ) { + setItemRequired( 0, 'YEAR_RATE', false ); + } + var param="CompClientID=<%=compClientID%>&flowunid=<%=flowunid%>&plannumber=<%=plannumber%>&planCName=<%=planCName%>&IsHistory=<%=ishistory%>&NodeNo=<%=nodeNo%>&calType=<%=calType%>&ProductId=<%=productId%>&method="+method; - AsControl.OpenView("/Accounting/LoanSimulation/condition_plan.jsp",param, "frame_list"); + AsControl.OpenView("/Accounting/LoanSimulation/condition_plan.jsp",param, "frame_list"); } CalcControl.SettleMethodInit=function(){ var method=getItemValue(0,getRow(),"SETTLE_METHOD"); @@ -700,7 +725,7 @@ CalcControl.SettleMethodInit=function(){ setItemValue(0,0,"ADDITIONAL_RATE",calcRules['method'][method]["AdditionalRate"]); setItemValue(0,0,"INTEREST_DAY_TYPE",calcRules['method'][method]["InterestDayType"]); } - + } CalcControl.RentOrRateView=function(){ var rentOrRate = getItemValue(0,getRow(),"RENT_OR_RATE");//租金推算方式 @@ -711,22 +736,22 @@ CalcControl.RentOrRateView=function(){ setItemRequired(0,"RENT_VALUE",false); if(rentOrRate == 'rate'){//按年利率算租金 if(method=="irregular_rent"||method=="even_subsection"){ - + }else{ setEnable(ids); setEnable(ids2); CalcControl.RateFloatTypeView(); setItemRequired(0,"YEAR_RATE",true); } - - }else if(rentOrRate == 'rent'){//按租金算年利率 + + }else if(rentOrRate == 'rent'){//按租金算年利率 setDisable(ids); setEnable(ids2); setEnable('RENT_VALUE'); setEnable('INCOME_NUMBER'); setItemRequired(0,"YEAR_RATE",false); setItemRequired(0,"RENT_VALUE",true); - }else if(rentOrRate == 'knowing_rent'){//已知租金规则 只能固定利率 + }else if(rentOrRate == 'knowing_rent'){//已知租金规则 只能固定利率 setDisable(ids); setEnable(ids2); setItemRequired(0,"YEAR_RATE",false); @@ -799,19 +824,18 @@ CalcControl.RentOrRateInit=function(){ setItemValue(0,0,"FIRST_PLAN_DATE",""); setItemValue(0,0,"SECOND_PLAN_DATE",""); } - + } //改变租金计算方式 function changeSettleMethod(){ CalcControl.SettleMethodInit(); changeSettleMethod2(); CalcControl.SettleMethodView(); - if(count > 0){ - AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","runDeleSubsection","flowunid=<%=flowunid%>,plannumber=<%=plannumber%>,planCName=<%=planCName%>,calType=<%=calType%>"); - - } + <%--if(count > 0){--%> + <%-- AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","runDeleSubsection","flowunid=<%=flowunid%>,plannumber=<%=plannumber%>,planCName=<%=planCName%>,calType=<%=calType%>");--%> + <%--}--%> rentOrRateChange(); - + } @@ -831,8 +855,9 @@ function changeSettleMethod2(){ a["even_rent_day"]={"rate":1,"rent":1,"knowing_rent":1,"rent_period":1,"rent_period_360":1}; a["even_subsection"]={"rate":1}; a["irregular_rent"]={"rate":1}; + a["segmented_financing"]={"rate":1}; a[""]={}; - + //***********设置租金推算方法 var settleMethod=getItemValue(0,0,"SETTLE_METHOD"); @@ -874,7 +899,19 @@ function changeSettleMethod2(){ }); $("#INCOME_NUMBER_YEAR").val(incomeValue); } - + document.all( 'A_Group_0020' ).style.display = 'none'; + showItem(0,"SUBSECTION_CONDIG",'none'); + showItem(0,"COMPREHENSIVE_RATE",'none'); + if ( settleMethod === 'segmented_financing' ) { + showItem(0,"SUBSECTION_CONDIG",'block'); + showItem(0,"COMPREHENSIVE_RATE",'block'); + document.all( 'A_Group_0020' ).style.display = 'block'; + var param = 'CompClientID=<%=compClientID%>&flowunid=<%=flowunid%>&plannumber=<%=plannumber%>&planCName=<%=planCName%>&IsHistory=<%=ishistory%>&NodeNo=<%=nodeNo%>&calType=<%=calType%>'; + AsControl.OpenView( '/Accounting/LoanSimulation/LCCalcSubsectionInfoTempList.jsp', param, 'subsection_list' ); + setItemRequired( 0, 'SUBSECTION_CONDIG', true ); + setItemRequired( 0, 'INCOME_NUMBER', false ); + setItemRequired( 0, 'YEAR_RATE', false ); + } } function changeRateType(){ @@ -883,10 +920,10 @@ function changeRateType(){ a["base"]={"fixed":1,"add":1}; a["proportion"]={"fixed":1,"calculation":1,"add":1}; a["add"]={"fixed":1,"calculation":1,"add":1}; - + var RATE_FLOAT_TYPE=getItemValue(0,0,"RATE_FLOAT_TYPE"); var adjustTypeValue=getItemValue(0,0,"ADJUST_TYPE"); - + $("#ADJUST_TYPE").empty(); $(adjustType).each(function(){ var value=$(this).attr("value"); @@ -909,7 +946,7 @@ function getRatioByMoney(e){ var cleanLeaseMoney=getItemValue(0,0,"CLEAN_LEASE_MONEY");//融资额 var allMoney = 0; var fundRules=calcRules["fund"]; - + for(var key in fundRules) { var fundMoney = getItemValue(0,0,key);//金额 if(typeof(fundRules[key]["financing"]) != "undefined" && fundRules[key]["financing"] == "true") { @@ -944,11 +981,11 @@ function getRatioByMoney(e){ cleanLeaseMoney = equipAmt - firstPayment + Number(allMoney); setItemValue(0, 0, "CLEAN_LEASE_MONEY", cleanLeaseMoney + ""); allMoney = eval(allMoney + "+" + equipAmt); - + for(var key in fundRules){ var fundMoney=getItemValue(0,0,key);//金额 var fundRatio=getItemValue(0,0,key+"_RATIO");// 比例 - + var money=0; if(fundRules[key]["ratioFee"]=="EquipEndAmt"&&key!="FIRST_PAYMENT"){//比例参照项 money=cleanLeaseMoney; @@ -957,7 +994,7 @@ function getRatioByMoney(e){ }else{ money=equipAmt; } - + if(fundRules[key]["ratioType"]=="InputMode03"){//互算 if(e.id==key){ if(Number(equipAmt)!=0){ @@ -981,7 +1018,7 @@ function getRatioByMoney(e){ } fundRatio=Number(fundMoney/money*100).toFixed(6); }else{ - fundRatio=Number(0).toFixed(6); + fundRatio=Number(0).toFixed(6); } setValue(key+"_RATIO",fundRatio); if(fundRules[key]["isShowRatio"]!="false"){ @@ -1052,6 +1089,21 @@ function changeCorpusRatio(){ } function saveRecord(sPostEvents){ + var settleMethod=getItemValue(0,0,"SETTLE_METHOD"); + if(settleMethod == 'segmented_financing'){ + var subsectionCondig=getItemValue(0,0,"SUBSECTION_CONDIG"); + if(typeof(subsectionCondig) == "undefined" || subsectionCondig.length == 0 ){ + alert("请先选择分段配置信息!"); + return ; + } + var equipAmt=getItemValue(0,0,"EQUIP_AMT"); + var cleanLeaseMoney=getItemValue(0,0,"CLEAN_LEASE_MONEY"); + var checkSubsectionInfo= AsControl.RunJavaMethod("com.tenwa.reckon.check.SubsectionCheck","checkSubsectionInfo","flowUnid=<%=flowunid%>"+",equipAmt="+equipAmt+",cleanLeaseMoney="+cleanLeaseMoney+",subsectionCondig="+subsectionCondig); + if(checkSubsectionInfo != "success"){ + alert(checkSubsectionInfo); + return ; + } + } if(getItemValue(0,0,"PURCHASE_TAX") < 0){ alert("购置税不能小于0"); return; @@ -1089,63 +1141,65 @@ function saveRecord(sPostEvents){ alert('融资额需大于0 !!!'); return ; } - var incomeNumebr = getItemValue(0,getRow(),"INCOME_NUMBER"); - if(incomeNumebr && Number(incomeNumebr) <= 0){ - alert('还租次数需大于0 !!!'); - return ; - } - - var termMin = parseInt("<%=termMin%>"); - var termMax = parseInt("<%=termMax%>"); - var incomeNumber = parseInt(getItemValue(0,0,"INCOME_NUMBER")); - if("02"=="<%=termType%>"){ - if(incomeNumbertermMax){ - alert("期数不能大于"+termMax); - return; - } - } - //校验年利率是否合法 - var isFixedRate = "<%=isFixedRate%>"; - var yearRae = getItemValue(0,0,"YEAR_RATE"); - if("N" == isFixedRate && yearRae > 0 ){ - var rateTermMin = "<%=rateTermMin%>"; - var rateTermMax = "<%=rateTermMax%>"; - console.log(rateTermMin +"===" +yearRae+"====" +rateTermMax); - console.log(rateTermMin > yearRae); - console.log(Number(yearRae) > Number(rateTermMax)); - if(Number(rateTermMin) > Number(yearRae) || Number(yearRae) > Number(rateTermMax)){ - alert("年利率必须大于等于:"+rateTermMin+",并且小于等于:"+rateTermMax); - return; - } - } - //贷款比例不能大于产品配置 - var cleanLeaseMoney=eval(getItemValue(0,0,"CLEAN_LEASE_MONEY"));//融资额 - var EQUIP_AMT=eval(getItemValue(0,0,"EQUIP_AMT")); - var LeaseMoneyRatio = Number(cleanLeaseMoney/EQUIP_AMT*100).toFixed(6); - if(calcRules["fund"]["CLEAN_LEASE_MONEY"]){ - var productCleanLeaseMoneyRatioMax = eval(calcRules["fund"]["CLEAN_LEASE_MONEY"]["LeaseMoneyRatio"]["max"]);//贷款比例上限 - var productCleanLeaseMoneyRatioMin = eval(calcRules["fund"]["CLEAN_LEASE_MONEY"]["LeaseMoneyRatio"]["min"]);//贷款比例下限 - var productCleanLeaseMoneyMax = eval(calcRules["fund"]["CLEAN_LEASE_MONEY"]["max"]);//融资额上限 - var productCleanLeaseMoneyMin = eval(calcRules["fund"]["CLEAN_LEASE_MONEY"]["min"]);//融资额下限 - if((LeaseMoneyRatioproductCleanLeaseMoneyRatioMax)&&(productCleanLeaseMoneyRatioMax!=null)&&(productCleanLeaseMoneyRatioMax!="")){ - AsDebug.showMessage("提示","综合融资额比例不能大于"+productCleanLeaseMoneyRatioMax+"%","","",true); - return ; + var termMin = parseInt("<%=termMin%>"); + var termMax = parseInt("<%=termMax%>"); + var incomeNumber = parseInt(getItemValue(0, 0, "INCOME_NUMBER")); + if ("02" == "<%=termType%>") { + if (incomeNumber < termMin) { + alert("期数不能小于" + termMin); + return; + } + if (incomeNumber > termMax) { + alert("期数不能大于" + termMax); + return; + } } - if((cleanLeaseMoney 0) { + var rateTermMin = "<%=rateTermMin%>"; + var rateTermMax = "<%=rateTermMax%>"; + console.log(rateTermMin + "===" + yearRae + "====" + rateTermMax); + console.log(rateTermMin > yearRae); + console.log(Number(yearRae) > Number(rateTermMax)); + if (Number(rateTermMin) > Number(yearRae) || Number(yearRae) > Number(rateTermMax)) { + alert("年利率必须大于等于:" + rateTermMin + ",并且小于等于:" + rateTermMax); + return; + } } - if((cleanLeaseMoney>productCleanLeaseMoneyMax)&&(productCleanLeaseMoneyMax!=null)&&(productCleanLeaseMoneyMax!="")){ - AsDebug.showMessage("提示","融资额不能大于"+productCleanLeaseMoneyMax,"","",true); - return ; + + //贷款比例不能大于产品配置 + var cleanLeaseMoney=eval(getItemValue(0,0,"CLEAN_LEASE_MONEY"));//融资额 + var EQUIP_AMT=eval(getItemValue(0,0,"EQUIP_AMT")); + var LeaseMoneyRatio = Number(cleanLeaseMoney/EQUIP_AMT*100).toFixed(6); + if(calcRules["fund"]["CLEAN_LEASE_MONEY"]){ + var productCleanLeaseMoneyRatioMax = eval(calcRules["fund"]["CLEAN_LEASE_MONEY"]["LeaseMoneyRatio"]["max"]);//贷款比例上限 + var productCleanLeaseMoneyRatioMin = eval(calcRules["fund"]["CLEAN_LEASE_MONEY"]["LeaseMoneyRatio"]["min"]);//贷款比例下限 + var productCleanLeaseMoneyMax = eval(calcRules["fund"]["CLEAN_LEASE_MONEY"]["max"]);//融资额上限 + var productCleanLeaseMoneyMin = eval(calcRules["fund"]["CLEAN_LEASE_MONEY"]["min"]);//融资额下限 + if((LeaseMoneyRatioproductCleanLeaseMoneyRatioMax)&&(productCleanLeaseMoneyRatioMax!=null)&&(productCleanLeaseMoneyRatioMax!="")){ + AsDebug.showMessage("提示","综合融资额比例不能大于"+productCleanLeaseMoneyRatioMax+"%","","",true); + return ; + } + if((cleanLeaseMoneyproductCleanLeaseMoneyMax)&&(productCleanLeaseMoneyMax!=null)&&(productCleanLeaseMoneyMax!="")){ + AsDebug.showMessage("提示","融资额不能大于"+productCleanLeaseMoneyMax,"","",true); + return ; + } } } var startDate=getItemValue(0,getRow(),"START_DATE"); @@ -1159,7 +1213,7 @@ function saveRecord(sPostEvents){ alert("第一期租金计划日期不能小于起租日!"); return ; } - + //已知本金已知租金,判断保存后的租金和本地是否跟净融资额匹配? var rentOrRate = getItemValue(0,getRow(),"RENT_OR_RATE"); var cleanLeaseMoney = getItemValue(0,getRow(),"CLEAN_LEASE_MONEY"); @@ -1194,16 +1248,16 @@ function saveRecord(sPostEvents){ alert("保证金和首付款和不在产品配置的值内!!!"); return; } - + } // 如果是不规则租金测算的话,那么仅保存商务报价。 var settleMethod = getItemValue(0,getRow(),"SETTLE_METHOD"); if(settleMethod == 'irregular_rent'){ - as_save("myiframe0"); + as_save("myiframe0"); }else{ as_save("myiframe0","run()"); - + } } function run() @@ -1215,6 +1269,7 @@ function run() setItemValue(0,getRow(),p.toUpperCase(),result.info[p]); } } + subsection_list.window.reloadSelf(); if(result.message){ alert(result.message); } @@ -1223,15 +1278,15 @@ function run() function dateAdd(strInterval, num, date){ date = arguments[2] || new Date(); switch (strInterval) { - case 's' :return new Date(date.getTime() + (1000 * num)); - case 'n' :return new Date(date.getTime() + (60000 * num)); - case 'h' :return new Date(date.getTime() + (3600000 * num)); - case 'd' :return new Date(date.getTime() + (86400000 * num)); - case 'w' :return new Date(date.getTime() + ((86400000 * 7) * num)); - case 'm' :return new Date(date.getFullYear(), (date.getMonth()) + num, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()); - case 'y' :return new Date((date.getFullYear() + num), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()); - } -} + case 's' :return new Date(date.getTime() + (1000 * num)); + case 'n' :return new Date(date.getTime() + (60000 * num)); + case 'h' :return new Date(date.getTime() + (3600000 * num)); + case 'd' :return new Date(date.getTime() + (86400000 * num)); + case 'w' :return new Date(date.getTime() + ((86400000 * 7) * num)); + case 'm' :return new Date(date.getFullYear(), (date.getMonth()) + num, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()); + case 'y' :return new Date((date.getFullYear() + num), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()); + } +} //在input框后设置比例 function setItemRatio(fieldName,unit){ var dwname=0; @@ -1364,13 +1419,12 @@ function changeFistPlanDate(){ function rentOrRateChange(){ CalcControl.RentOrRateInit(); CalcControl.RentOrRateView(); - - //document.all("frame_list_knowing").src = document.all("frame_list_knowing").src; - - if(count > 0){ - AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","runDelteKnowing","flowunid=<%=flowunid%>,plannumber=<%=plannumber%>,planCName=<%=planCName%>,calType=<%=calType%>"); - } + //document.all("frame_list_knowing").src = document.all("frame_list_knowing").src; + + <%--if(count > 0){--%> + <%-- AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","runDelteKnowing","flowunid=<%=flowunid%>,plannumber=<%=plannumber%>,planCName=<%=planCName%>,calType=<%=calType%>");--%> + <%--}--%> } @@ -1384,10 +1438,10 @@ function changeSettleMethod3(){ } <%-- var param="CompClientID=<%=compClientID%>&flowunid=<%=flowunid%>&plannumber=<%=plannumber%>&planCName=<%=planCName%>&IsHistory=<%=ishistory%>&NodeNo=<%=nodeNo%>&calType=<%=calType%>&method="+method; AsControl.OpenView("/Accounting/LoanSimulation/condition_plan.jsp",param, "frame_list"); --%> - + var rentOrRate ="<%=dwTemp.getData().get("RENT_OR_RATE")%>";//租金推算方式 // document.all("A_Group_calc_config").style.display="none"; - if(rentOrRate == 'knowing_rent'){//已知租金规则 只能固定利率 + if(rentOrRate == 'knowing_rent'){//已知租金规则 只能固定利率 document.all("A_Group_calc_config").style.display="block"; var param="CompClientID=<%=compClientID%>&flowunid=<%=flowunid%>&plannumber=<%=plannumber%>&planCName=<%=planCName%>&IsHistory=<%=ishistory%>&NodeNo=<%=nodeNo%>&calType=<%=calType%>"; AsControl.OpenView("/Accounting/LoanSimulation/KnowConfigList.jsp",param,"frame_list_knowing"); @@ -1491,6 +1545,15 @@ function changeSettleMethod3(){ //setItemRequired(0,"RATE",false); //setItemRequired(0,"ADDITIONAL_RATE",false); } + var settleMethod=getItemValue(0,0,"SETTLE_METHOD"); + document.all( 'A_Group_0020' ).style.display = 'none'; + showItem(0,"SUBSECTION_CONDIG",'none'); + if ( settleMethod === 'segmented_financing' ) { + showItem(0,"SUBSECTION_CONDIG",'block'); + document.all( 'A_Group_0020' ).style.display = 'block'; + var param = 'CompClientID=<%=compClientID%>&flowunid=<%=flowunid%>&plannumber=<%=plannumber%>&planCName=<%=planCName%>&IsHistory=<%=ishistory%>&NodeNo=<%=nodeNo%>&calType=<%=calType%>'; + AsControl.OpenView( '/Accounting/LoanSimulation/LCCalcSubsectionInfoTempList.jsp', param, 'subsection_list' ); + } } var ischeck=true; function checkModified(){ @@ -1520,7 +1583,7 @@ var fundError={}; var ele_error = document.createElement("li"); var errmsg = fundError[list[ii].element.getAttribute('name')];; ele_error.innerHTML = "" + errmsg + ""; - + if(ii>=iExtCount){ document.getElementById("ul_error_1").appendChild(ele_error); }else{ @@ -1547,7 +1610,7 @@ var fundError={}; } catch(e){} } -} +} jQuery.validator.prototype.showLabel = function(element,message){ var id=element.getAttribute('id'); diff --git a/WebContent/Frame/page/jspf/include/jsp_head_res_dw.jspf b/WebContent/Frame/page/jspf/include/jsp_head_res_dw.jspf index 9c9822217..33c380e93 100644 --- a/WebContent/Frame/page/jspf/include/jsp_head_res_dw.jspf +++ b/WebContent/Frame/page/jspf/include/jsp_head_res_dw.jspf @@ -2,5 +2,6 @@ + - \ No newline at end of file + diff --git a/WebContent/Tenwa/Core/SystemConfig/OwnConfig/BOwnAccount/BOwnAccount.jsp b/WebContent/Tenwa/Core/SystemConfig/OwnConfig/BOwnAccount/BOwnAccount.jsp index c70f49fd3..f048cedd3 100644 --- a/WebContent/Tenwa/Core/SystemConfig/OwnConfig/BOwnAccount/BOwnAccount.jsp +++ b/WebContent/Tenwa/Core/SystemConfig/OwnConfig/BOwnAccount/BOwnAccount.jsp @@ -100,11 +100,11 @@ alert("收款暂不支持银企直连!"); return; } - if(state_="0010"){ + if(state=="0010"){ var sParams = "accountType="+accountType+",accType="+accType+",state="+state+",FbSdk="+FbSdk+",ownId="+ownId; var sReturn = RunJavaMethodTrans("com.tenwa.reckon.copydata.CalcRentCompare", "compare",sParams ); - if(id==null||id==""||accountPurpose!="default"||sReturn=="null"||sReturn==id){ + if(accountPurpose!="default" || sReturn=="null" || (id != "" && sReturn == id)){ as_save("myiframe0","parent.AsDialog.ClosePage()"); }else{ alert("相同类型的账户只能存在一个,请检查(银行账号类型 ,是否为企银直连,银行账户用途,状态等字段)!"); diff --git a/WebContent/Tenwa/Lease/Flow/CollectionAudit/VERIFICATIONSPARE.jsp b/WebContent/Tenwa/Lease/Flow/CollectionAudit/VERIFICATIONSPARE.jsp index d6a117895..7fabd0162 100644 --- a/WebContent/Tenwa/Lease/Flow/CollectionAudit/VERIFICATIONSPARE.jsp +++ b/WebContent/Tenwa/Lease/Flow/CollectionAudit/VERIFICATIONSPARE.jsp @@ -166,20 +166,24 @@ if(!confirm("核销差额不为0,是否确认核销?")){return;} } if(confirm("核销后批次号和核销信息将不可修改,是否确认核销?")){ - as_save("myiframe0","parent.AsDialog.ClosePage()"); - var SPARE_BATCH_NO = getItemValue(0, 0, "SPARE_BATCH_NO"); // 批次号 - var OWN_NUMBER = getItemValue(0, 0, "OWN_NUMBER"); // 银行账号 - var CHARGEBACK_DATE_S = getItemValue(0, 0, "CHARGEBACK_DATE_S"); // 扣款成功日期 - var CHARGEBACK_MONEY_S = getItemValue(0, 0, "CHARGEBACK_MONEY_S"); // 扣款成功金额 - var ACHIEVED_MONEY = getItemValue(0, 0, "ACHIEVED_MONEY"); // 银行到账金额 - var ACHIEVED_DATE = getItemValue(0, 0, "ACHIEVED_DATE"); // 银行到账日期 - var ACC_TITLE = getItemValue(0, 0, "ACC_TITLE"); // 银行科目 - var SEREVICE_CHARGE = getItemValue(0, 0, "SEREVICE_CHARGE"); // 手续费 - var CHARGEBACK_BALANCE = getItemValue(0, 0, "CHARGEBACK_BALANCE"); // 核销差额 - var sparam = "SPARE_BATCH_NO="+SPARE_BATCH_NO+",ACHIEVED_MONEY="+ACHIEVED_MONEY+",SEREVICE_CHARGE="+SEREVICE_CHARGE+",CHARGEBACK_BALANCE="+CHARGEBACK_BALANCE+",CHARGEBACK_MONEY_S="+CHARGEBACK_MONEY_S+",ACHIEVED_DATE="+ACHIEVED_DATE+",OWN_NUMBER="+OWN_NUMBER+",ACC_TITLE="+ACC_TITLE+",userId="+"<%=CurUser.getUserID()%>"; - // 调用生成卡扣汇总凭证 - var result = RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.CreateVoucherForCardSummarizing","createCardSummarizingVoucher",sparam); - } + as_save("myiframe0","createVoucher()"); + } + } + + function createVoucher(){ + var SPARE_BATCH_NO = getItemValue(0, 0, "SPARE_BATCH_NO"); // 批次号 + var OWN_NUMBER = getItemValue(0, 0, "OWN_NUMBER"); // 银行账号 + var CHARGEBACK_DATE_S = getItemValue(0, 0, "CHARGEBACK_DATE_S"); // 扣款成功日期 + var CHARGEBACK_MONEY_S = getItemValue(0, 0, "CHARGEBACK_MONEY_S"); // 扣款成功金额 + var ACHIEVED_MONEY = getItemValue(0, 0, "ACHIEVED_MONEY"); // 银行到账金额 + var ACHIEVED_DATE = getItemValue(0, 0, "ACHIEVED_DATE"); // 银行到账日期 + var ACC_TITLE = getItemValue(0, 0, "ACC_TITLE"); // 银行科目 + var SEREVICE_CHARGE = getItemValue(0, 0, "SEREVICE_CHARGE"); // 手续费 + var CHARGEBACK_BALANCE = getItemValue(0, 0, "CHARGEBACK_BALANCE"); // 核销差额 + var sparam = "SPARE_BATCH_NO="+SPARE_BATCH_NO+",ACHIEVED_MONEY="+ACHIEVED_MONEY+",SEREVICE_CHARGE="+SEREVICE_CHARGE+",CHARGEBACK_BALANCE="+CHARGEBACK_BALANCE+",CHARGEBACK_MONEY_S="+CHARGEBACK_MONEY_S+",ACHIEVED_DATE="+ACHIEVED_DATE+",OWN_NUMBER="+OWN_NUMBER+",ACC_TITLE="+ACC_TITLE+",userId="+"<%=CurUser.getUserID()%>"; + // 调用生成卡扣汇总凭证 + var result = RunJavaMethodTrans("com.tenwa.voucher.CreateVoucherProcess.CreateVoucherForCardSummarizing","createCardSummarizingVoucher",sparam); + parent.AsDialog.ClosePage(); } <%@ include file="/Frame/resources/include/include_end.jspf"%> \ No newline at end of file diff --git a/WebContent/Tenwa/Lease/Flow/Comm/LBDebitCard/AccountChangeFlowDebitCardInfo.jsp b/WebContent/Tenwa/Lease/Flow/Comm/LBDebitCard/AccountChangeFlowDebitCardInfo.jsp index 0a86b1829..f90dcb7aa 100644 --- a/WebContent/Tenwa/Lease/Flow/Comm/LBDebitCard/AccountChangeFlowDebitCardInfo.jsp +++ b/WebContent/Tenwa/Lease/Flow/Comm/LBDebitCard/AccountChangeFlowDebitCardInfo.jsp @@ -157,7 +157,11 @@ setItemValue(0,0,'bank_code',res[0]); setItemValue(0,0,'bank_type',res[1]); setItemValue(0,0,"bank_name",res[1]); - setItemValue(0,0,"collect_type",res[2]); + if("<%=subjectId%>"=="aa740e4111c111eaaa0000163e0e11e6"){//深圳主体都是广州银联 + setItemValue(0,0,"collect_type","YLcollect"); + }else{ + setItemValue(0,0,"collect_type",res[2]); + } bool = false; } @@ -181,7 +185,11 @@ setItemValue(0,0,'bank_code',sReturn[0]); setItemValue(0,0,'bank_type',sReturn[1]); setItemValue(0,0,"bank_name",sReturn[1]); - setItemValue(0,0,"collect_type",sReturn[2]); + if("<%=subjectId%>"=="aa740e4111c111eaaa0000163e0e11e6"){//深圳主体都是广州银联 + setItemValue(0,0,"collect_type","YLcollect"); + }else{ + setItemValue(0,0,"collect_type",sReturn[2]); + } },"选择银行名称"); } diff --git a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp index bb385059a..702000a00 100644 --- a/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp +++ b/WebContent/Tenwa/Lease/Flow/Comm/LBEquipment_Car/LBEquipmentInfo.jsp @@ -199,6 +199,8 @@ setItemRequired(0,"FRAME_NUMBER",true); setItemRequired(0,"CAR_COLOUR",true); setItemRequired(0,"ENGINE_NUMBER",true); + setItemRequired(0,"EQUIP_PRICE",false); + setItemRequired(0,"head_name",false); setItemReadOnly(0,0,"MEMO",false); setItemReadOnly(0,0,"DEVICE_TYPE",true); setItemReadOnly(0,0,"gears",true); @@ -338,11 +340,15 @@ } setItemValue(0,0,"project_id",projectId);//设置项目id } - var equipPrice = getItemValue(0,getRow(0),"EQUIP_PRICE"); - if(equipPrice <= 0){ - alert("请输入正确车辆交易价!!!"); - return ; + + var equipPrice = getItemValue(0,getRow(0),"EQUIP_PRICE"); + if(!("合同制作流程"=="<%=flowName%>"||"合同变更流程"=="<%=flowName%>")){ + if(equipPrice <= 0){ + alert("请输入正确车辆交易价!!!"); + return ; + } } + if("SYC"==carTypea){//如果是商用车,将车辆交易价赋值给新车指导价 setItemValue(0,0,"NOW_TOTAL", equipPrice ); } @@ -768,9 +774,12 @@ function changeHeadInfo(){ var carAttribute=getItemValue(0,getRow(0),"car_attribute"); if("tail"==carAttribute){ - showItem(0,"head_name",''); - setItemRequired(0,"head_name",true); - setItemRequired(0,"ENGINE_NUMBER",false); + showItem(0,"head_name",''); + setItemRequired(0,"head_name",true); + setItemRequired(0,"ENGINE_NUMBER",false); + if("合同制作流程"=="<%=flowName%>"||"合同变更流程"=="<%=flowName%>"){ + setItemRequired(0,"head_name",false); + } }else{ showItem(0,"head_name",'none'); setItemRequired(0,"head_name",false); diff --git a/WebContent/Tenwa/Lease/Flow/Fund/ActualPayment/ActualPaymentCarTempList.jsp b/WebContent/Tenwa/Lease/Flow/Fund/ActualPayment/ActualPaymentCarTempList.jsp index 28cbc5cc2..f88146a8b 100644 --- a/WebContent/Tenwa/Lease/Flow/Fund/ActualPayment/ActualPaymentCarTempList.jsp +++ b/WebContent/Tenwa/Lease/Flow/Fund/ActualPayment/ActualPaymentCarTempList.jsp @@ -8,33 +8,18 @@ String sFileSaveMode = CurConfig.getConfigure("FileSaveMode"); String sFileSavePath = CurConfig.getConfigure("FileSavePath"); String sFileNameType = CurConfig.getConfigure("FileNameType"); - String phaseNo = CurPage.getParameter("PhaseNo"); String rightType = CurComp.getParameter("RightType"); String flowunid = CurPage.getParameter("FlowUnid"); - String ishistory = CurPage.getParameter("IsHistory"); - String contract_id = CurPage.getParameter("contract_id"); - String projectId = CurPage.getParameter("ProjectId"); String payType = Sqlca.getString(new SqlObject("SELECT payType FROM LC_FUND_INCOME_TEMP_HXM WHERE flowunid='"+flowunid+"'")); - ASObjectModel doTemp = new ASObjectModel("ActualPaymentCarTempList"); -/* if(null!=ishistory&&ishistory.equals("true")){ - doTemp.setDataQueryClass("com.tenwa.flow.flowHistory.FlowDataListHistory"); - } */ - String customertype = null; - String customer_id = null; - String project_id = null; - String product_id = null; - String contract_number = null; - ASResultSet rs = Sqlca.getASResultSet(new SqlObject("select customertype,contract_number,customer_id,LC_FUND_INCOME_TEMP.project_id,Product_Id from LC_FUND_INCOME_TEMP left join LB_CONTRACT_INFO lpi on lpi.PROJECT_ID=LC_FUND_INCOME_TEMP.PROJECT_ID left join LB_UNION_LESSEE ul on LC_FUND_INCOME_TEMP.contract_id=ul.contract_id and ul.is_main='Y' left join CUSTOMER_INFO cu on ul.customer_id=cu.customerid where LC_FUND_INCOME_TEMP.contract_id = "+contract_id)); - if(rs.next()){ - customertype = rs.getString("customertype"); - customer_id = rs.getString("customer_id"); - project_id = rs.getString("project_id"); - product_id = rs.getString("Product_Id"); - contract_number = rs.getString("contract_number"); - }else{ - customertype = "gaoxiao"; - } + String payMode = Sqlca.getString(new SqlObject("SELECT pay_mode FROM LB_ACTUAL_PAYMENT_INFO_TEMP WHERE flowunid='"+flowunid+"'")); + + ASObjectModel doTemp = new ASObjectModel("ActualPaymentCarTempList"); + if("cgb".equals(payMode)){ + doTemp.setVisible("REQSTS",false); + doTemp.setVisible("RTNFLG",false); + doTemp.setVisible("RTNNAR",true); + } ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request); dwTemp.Style="1"; //--设置为Grid风格-- dwTemp.MultiSelect = true; @@ -114,7 +99,7 @@ <%@ include file="/Frame/resources/include/include_end.jspf"%> \ No newline at end of file diff --git a/WebContent/Tenwa/Lease/Flow/Project/BusinessApplication/CustomerInfo.jsp b/WebContent/Tenwa/Lease/Flow/Project/BusinessApplication/CustomerInfo.jsp index aad0090b4..271182133 100644 --- a/WebContent/Tenwa/Lease/Flow/Project/BusinessApplication/CustomerInfo.jsp +++ b/WebContent/Tenwa/Lease/Flow/Project/BusinessApplication/CustomerInfo.jsp @@ -86,11 +86,12 @@ } function checkMailingAddress(){//当邮寄地址选择为户籍地址时,户籍地址必填 var mailingAddress = getItemValue(0,0,'Mailing_Address'); - if("户籍地址" == mailingAddress){ - setItemRequired(0, "NATIVEPLACE", true); - }else{ - setItemRequired(0, "NATIVEPLACE", false); - } + setItemRequired(0, "NATIVEPLACE", true); + // if("户籍地址" == mailingAddress){ + // setItemRequired(0, "NATIVEPLACE", true); + // }else{ + // setItemRequired(0, "NATIVEPLACE", true); + // } } /* function identityVerification(){//身份校验 diff --git a/WebContent/WEB-INF/etc/app/component/component-config.xml b/WebContent/WEB-INF/etc/app/component/component-config.xml index ed29faeb3..147a9f006 100644 --- a/WebContent/WEB-INF/etc/app/component/component-config.xml +++ b/WebContent/WEB-INF/etc/app/component/component-config.xml @@ -1,434 +1,434 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WebContent/WEB-INF/etc/app/component/component-parameter-config.xml b/WebContent/WEB-INF/etc/app/component/component-parameter-config.xml index d723735bf..730aa5bd9 100644 --- a/WebContent/WEB-INF/etc/app/component/component-parameter-config.xml +++ b/WebContent/WEB-INF/etc/app/component/component-parameter-config.xml @@ -1,199 +1,199 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml index 9d22dcaed..d93d5b429 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml @@ -68,13 +68,14 @@ - + + @@ -105,7 +106,7 @@ - + @@ -385,7 +386,7 @@ - + @@ -487,7 +488,7 @@ - + @@ -541,7 +542,7 @@ - + @@ -592,7 +593,7 @@ - + @@ -1080,6 +1081,7 @@ + @@ -1423,6 +1425,8 @@ + + @@ -1499,7 +1503,7 @@ - + @@ -1554,7 +1558,7 @@ - + @@ -1605,7 +1609,7 @@ - + @@ -1664,7 +1668,7 @@ - + @@ -1737,7 +1741,7 @@ - + @@ -1800,13 +1804,13 @@ - + @@ -1869,13 +1873,13 @@ - + @@ -1964,6 +1968,7 @@ + @@ -2512,7 +2517,7 @@ - + @@ -2566,7 +2571,7 @@ - + @@ -2783,6 +2788,8 @@ + + @@ -2984,7 +2991,7 @@ - + @@ -3185,7 +3192,7 @@ - + @@ -3212,8 +3219,8 @@ - - + + @@ -3368,6 +3375,8 @@ + + @@ -3376,7 +3385,7 @@ - + @@ -3389,6 +3398,10 @@ + + + + @@ -3409,7 +3422,12 @@ + + + + + @@ -3418,7 +3436,7 @@ - + @@ -3448,7 +3466,7 @@ - + @@ -3682,7 +3700,7 @@ - + @@ -4152,7 +4170,7 @@ - + @@ -4231,7 +4249,7 @@ - + @@ -4302,7 +4320,7 @@ - + @@ -4628,5 +4646,452 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WebContent/WEB-INF/etc/jbo/jbo_lease.xml b/WebContent/WEB-INF/etc/jbo/jbo_lease.xml index 45e493c66..6dbc0713b 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_lease.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_lease.xml @@ -3862,11 +3862,11 @@ - + - + diff --git a/WebContent/js/decimal/decimal.min.js b/WebContent/js/decimal/decimal.min.js new file mode 100644 index 000000000..f3afe8a7a --- /dev/null +++ b/WebContent/js/decimal/decimal.min.js @@ -0,0 +1,2 @@ +/* decimal.js v10.2.0 https://github.com/MikeMcl/decimal.js/LICENCE */ +!function(n){"use strict";var h,R,e,o,u=9e15,g=1e9,m="0123456789abcdef",t="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",r="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",c={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-u,maxE:u,crypto:!1},N=!0,f="[DecimalError] ",w=f+"Invalid argument: ",s=f+"Precision limit exceeded",a=f+"crypto unavailable",L=Math.floor,v=Math.pow,l=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,d=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,p=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,b=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,T=1e7,U=7,E=t.length-1,x=r.length-1,y={name:"[object Decimal]"};function M(n){var e,i,t,r=n.length-1,s="",o=n[0];if(0i-1&&(void 0===s[t+1]&&(s[t+1]=0),s[t+1]+=s[t]/i|0,s[t]%=i)}return s.reverse()}y.absoluteValue=y.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),_(n)},y.ceil=function(){return _(new this.constructor(this),this.e+1,2)},y.comparedTo=y.cmp=function(n){var e,i,t,r,s=this,o=s.d,u=(n=new s.constructor(n)).d,c=s.s,f=n.s;if(!o||!u)return c&&f?c!==f?c:o===u?0:!o^c<0?1:-1:NaN;if(!o[0]||!u[0])return o[0]?c:u[0]?-f:0;if(c!==f)return c;if(s.e!==n.e)return s.e>n.e^c<0?1:-1;for(e=0,i=(t=o.length)<(r=u.length)?t:r;eu[e]^c<0?1:-1;return t===r?0:rthis.d.length-2},y.isNaN=function(){return!this.s},y.isNegative=y.isNeg=function(){return this.s<0},y.isPositive=y.isPos=function(){return 0e&&(e=this.e+1)):e=NaN,e},y.round=function(){var n=this.constructor;return _(new n(this),this.e+1,n.rounding)},y.sine=y.sin=function(){var n,e,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(n=t.precision,e=t.rounding,t.precision=n+Math.max(i.e,i.sd())+U,t.rounding=1,i=function(n,e){var i,t=e.d.length;if(t<3)return W(n,2,e,e);i=16<(i=1.4*Math.sqrt(t))?16:0|i,e=e.times(1/J(5,i)),e=W(n,2,e,e);for(var r,s=new n(5),o=new n(16),u=new n(20);i--;)r=e.times(e),e=e.times(s.plus(r.times(o.times(r).minus(u))));return e}(t,z(t,i)),t.precision=n,t.rounding=e,_(2=n.d.length-1&&(i=f<0?-f:f)<=9007199254740991)return r=I(c,u,i,t),n.s<0?new c(1).div(r):_(r,t,s);if((o=u.s)<0){if(ec.maxE+1||e=r.toExpPos):(q(n,1,g),void 0===e?e=r.rounding:q(e,0,8),A(t=_(new r(t),n,e),n<=t.e||t.e<=r.toExpNeg,n)),t.isNeg()&&!t.isZero()?"-"+i:i},y.toSignificantDigits=y.toSD=function(n,e){var i=this.constructor;return void 0===n?(n=i.precision,e=i.rounding):(q(n,1,g),void 0===e?e=i.rounding:q(e,0,8)),_(new i(this),n,e)},y.toString=function(){var n=this,e=n.constructor,i=A(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+i:i},y.truncated=y.trunc=function(){return _(new this.constructor(this),this.e+1,1)},y.valueOf=y.toJSON=function(){var n=this,e=n.constructor,i=A(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+i:i};var F=function(){function S(n,e,i){var t,r=0,s=n.length;for(n=n.slice();s--;)t=n[s]*e+r,n[s]=t%i|0,r=t/i|0;return r&&n.unshift(r),n}function Z(n,e,i,t){var r,s;if(i!=t)s=te[r]?1:-1;break}return s}function P(n,e,i,t){for(var r=0;i--;)n[i]-=r,r=n[i](F[c]||0)&&u--,null==i?(N=i=O.precision,t=O.rounding):N=r?i+(n.e-e.e)+1:i,N<0)g.push(1),h=!0;else{if(N=N/a+2|0,c=0,1==M){for(A=A[f=0],N++;(c=s/2&&++y;f=0,(o=Z(A,m,M,w))<0?(v=m[0],M!=w&&(v=v*s+(m[1]||0)),1<(f=v/y|0)?(s<=f&&(f=s-1),1==(o=Z(l=S(A,f,s),m,d=l.length,w=m.length))&&(f--,P(l,Md.maxE?(n.d=null,n.e=NaN):n.en.constructor.maxE?(n.d=null,n.e=NaN):n.er-1;)h[i]=0,i||(++s,h.unshift(1));for(c=h.length;!h[c-1];--c);for(o=0,a="";oc)for(s-=c;s--;)a+="0";else se)return n.length=e,!0}function Q(n){return new this(n).abs()}function X(n){return new this(n).acos()}function Y(n){return new this(n).acosh()}function nn(n,e){return new this(n).plus(e)}function en(n){return new this(n).asin()}function tn(n){return new this(n).asinh()}function rn(n){return new this(n).atan()}function sn(n){return new this(n).atanh()}function on(n,e){n=new this(n),e=new this(e);var i,t=this.precision,r=this.rounding,s=t+4;return n.s&&e.s?n.d||e.d?!e.d||n.isZero()?(i=e.s<0?P(this,t,r):new this(0)).s=n.s:!n.d||e.isZero()?(i=P(this,s,1).times(.5)).s=n.s:i=e.s<0?(this.precision=s,this.rounding=1,i=this.atan(F(n,e,s,1)),e=P(this,s,1),this.precision=t,this.rounding=r,n.s<0?i.minus(e):i.plus(e)):this.atan(F(n,e,s,1)):(i=P(this,s,1).times(0s.maxE?(r.e=NaN,r.d=null):n.e 0 or v.ifnull(FINANCING_RATE,0) > 0 or v.ifnull(INCOME_NUMBER,0) > 0)").setParameter("flowunid", flowUnid).getResultList(false); + if( lcsits == null || lcsits.size()==0){ + return "分段信息中有融资金额、融资利率、期次为空,请检查!"; + } + List> dataClm = DataOperatorUtil.getDataBySql("select sum(ifnull(CLEAN_LEASE_MONEY,0)) as CLEAN_LEASE_MONEY from LC_CALC_SUBSECTION_INFO_TEMP where flowunid='"+flowUnid+"' group by flowunid"); + BigDecimal clm = new BigDecimal("0"); + if( dataClm != null && dataClm.size() > 0 ){ + clm = new BigDecimal(dataClm.get(0).get("CLEAN_LEASE_MONEY")); + } + //不管根据什么计算,都校验分段融的金额和综合融资额 + if(new BigDecimal(cleanLeaseMoney).compareTo( clm ) != 0){ + return "分段融资额和综合融资额不一致,请检查!"; + } + /*if(subsectionCondig.equals("CarPrice")){ + if(new BigDecimal(equipAmt).compareTo( clm ) != 0){ + return "分段融资额和车价金额不一致,请检查!"; + } + }else if(subsectionCondig.equals("FinancingPrice")){ + if(new BigDecimal(cleanLeaseMoney).compareTo( clm ) != 0){ + return "分段融资额和综合融资额不一致,请检查!"; + } + }else{ + return "没有检查到对应的分段配置,请检查!"; + }*/ + return "success"; + } + + + public String getFlowUnid() { + return flowUnid; + } + public void setFlowUnid(String flowUnid) { + this.flowUnid = flowUnid; + } + + public String getEquipAmt() { + return equipAmt; + } + + public void setEquipAmt(String equipAmt) { + this.equipAmt = equipAmt; + } + + public String getCleanLeaseMoney() { + return cleanLeaseMoney; + } + + public void setCleanLeaseMoney(String cleanLeaseMoney) { + this.cleanLeaseMoney = cleanLeaseMoney; + } + + public String getSubsectionCondig() { + return subsectionCondig; + } + + public void setSubsectionCondig(String subsectionCondig) { + this.subsectionCondig = subsectionCondig; + } +} + diff --git a/calc/com/tenwa/reckon/copydata/CalcRentCompare.java b/calc/com/tenwa/reckon/copydata/CalcRentCompare.java index 221321125..0eabd527f 100644 --- a/calc/com/tenwa/reckon/copydata/CalcRentCompare.java +++ b/calc/com/tenwa/reckon/copydata/CalcRentCompare.java @@ -93,7 +93,7 @@ public class CalcRentCompare implements BizObjectCompare{ } public String compare(JBOTransaction tx) throws JBOException{ - String sql ="select id from O where O.own_id='"+ownId+"' and O.state_='0010' and O.ACC_TYPE='0010' and O.FbSdk='Y' and (O.account_type='out_account' or O.account_type='inAndOut_account')"; + String sql ="select id from O where O.own_id='"+ownId+"' and O.state_='0010' and O.ACC_TYPE='0010' and O.FbSdk='Y' and (O.account_type='out_account' or O.account_type='inAndOut_account') and account_purpose='default' "; if("in_account".equals(accountType)){ sql ="select id from O where O.own_id='"+ownId+"' and O.state_='0010' and O.ACC_TYPE='0010' and (O.account_type='in_account' or O.account_type='inAndOut_account') and account_purpose='default'"; }else if("inAndOut_account".equals(accountType)){ diff --git a/calc/com/tenwa/reckon/executor/CashFlowExecutor.java b/calc/com/tenwa/reckon/executor/CashFlowExecutor.java index ae3b1dc7a..628782c26 100644 --- a/calc/com/tenwa/reckon/executor/CashFlowExecutor.java +++ b/calc/com/tenwa/reckon/executor/CashFlowExecutor.java @@ -15,6 +15,7 @@ import com.amarsoft.are.jbo.JBOFactory; import com.amarsoft.are.jbo.JBOTransaction; import com.amarsoft.awe.util.SqlObject; import com.amarsoft.awe.util.Transaction; +import com.gnete.bc.util.Strings; import com.tenwa.comm.util.jboutil.DataOperatorUtil; import com.tenwa.reckon.bean.ConditionBean; import com.tenwa.reckon.bean.TabCalBean; @@ -23,30 +24,52 @@ import com.tenwa.reckon.util.IRRCalculateUtil; import com.tenwa.reckon.util.IrrTools; public class CashFlowExecutor { - + private JBOTransaction tx; - + public CashFlowExecutor(JBOTransaction tx){ this.tx=tx; } - - + + public String run(ConditionBean cb , TabCalBean tcb) throws Exception{ this.delete(tcb, cb); this.add(cb, tcb); - String irr = this.getIrr(cb,tcb); + String irr = ""; + if( "segmented_financing".equals( cb.getSettleMethod() ) ){ + irr = this.getIrr(cb,tcb,"subsectionIRR"); + String subsectionRate = this.getIrr(cb, tcb, "subsectionRate"); + cb.setComprehensiveRate( subsectionRate ); + }else{ + irr = this.getIrr(cb,tcb,"normal"); + } cb.setIrr(irr); return irr; } - private String getIrr(ConditionBean cb ,TabCalBean tcb) throws Exception{ + //calcType 计算类型 normal正常合同计算IRR;subsectionIRR:分段融计算IRR,subsectionRate:分段融计算综合利率 + private String getIrr(ConditionBean cb , TabCalBean tcb, String calcType) throws Exception{ String cashSql = "select NET_FLOW,PLAN_DATE from "+Tools.getTable(tcb.getContractCashTb())+" where flowunid ='"+tcb.getDocId()+"' and "+tcb.getPlanCName()+"='"+tcb.getPlanCValue()+"' order by plan_date"; List> cashes =DataOperatorUtil.getDataBySql(tx, cashSql, null); List netList = new ArrayList(); List dateList = new ArrayList(); - for(Map cash :cashes){ - netList.add(cash.get("NET_FLOW")); - dateList.add(cash.get("PLAN_DATE")); + for(Map cash :cashes){ + netList.add(cash.get("NET_FLOW")); + dateList.add(cash.get("PLAN_DATE")); } + if ("subsectionRate".equals(calcType) ){ + String subsectionSql = "select IS_BALANCE_LENDING,DISCOUNT,DISCOUNT_COLLECTION_PERIOD from lc_calc_subsection_info_temp where FLOWUNID='"+tcb.getDocId()+"'"; + List> subsectionData =DataOperatorUtil.getDataBySql(tx, subsectionSql, null); + BigDecimal tempMoney = BigDecimal.ZERO; + int coss = 0; + for (Map subsection :subsectionData) { + String ibl = subsection.get("IS_BALANCE_LENDING"); + if(!"Y".equals(ibl)){ + coss = Integer.parseInt( subsection.get("DISCOUNT_COLLECTION_PERIOD") ); + } + tempMoney = new BigDecimal( netList.get(coss) ); + netList.set(coss, ( tempMoney.subtract( new BigDecimal( subsection.get("DISCOUNT") ) ) ).toString() ); + } + } String irr=""; if("STAGE_IRR".equals(cb.getIrrType())){//按期IRR BigDecimal issueRate=IRRCalculateUtil.getIRR2(netList); @@ -87,15 +110,15 @@ public class CashFlowExecutor { } return irr; } - + private void delete(TabCalBean tcb,ConditionBean cb) throws Exception{ BizObjectManager bm=JBOFactory.getBizObjectManager(tcb.getContractCashTb(), tx); String sql = " delete from O where flowunid='" + tcb.getDocId() + "' and "+tcb.getPlanCName()+"='"+tcb.getPlanCValue()+"'"; bm.createQuery(sql).executeUpdate(); - } - + } + private void add(ConditionBean cb,TabCalBean tcb) throws Exception{ - + Map> productRevenues = tcb.getProductRevenues(); String GPSDifference = "0";//获取产品中的GPS差额配置 Map GPSMap = productRevenues == null ? null : productRevenues.get( "GPSDifference" ); @@ -115,7 +138,7 @@ public class CashFlowExecutor { personalInsuranceDifference = "0"; } }*/ - + String sql = ""; if("MYSQL".equals(InitDBType.DBTYPE)){ sql += "INSERT INTO " +Tools.getTable(tcb.getContractCashTb())+ " (id," + tcb.getPlanCName() + ""; @@ -127,7 +150,7 @@ public class CashFlowExecutor { sql += ",net_flow"; sql += ",flowunid";//create_date,creator_ "+DateUtil.getSystemDate()+"' create_date ,'"+SecurityUtil.getPrincipal().getId()+"' creator_" sql += " )"; - + sql +=" select replace(uuid(),'-','') id,'"+tcb.getPlanCValue()+"' "+tcb.getPlanCName()+",t.plan_date,sum(t.flowin) fundin,ifnull(group_concat(if(t.flowindetail='',null,t.flowindetail)),'-') fundindetails, "; sql +=" sum(t.flowout) fundout ,ifnull(group_concat(if(t.flowoutdetail='',null,t.flowoutdetail)),'-')fundoutdetails,sum(t.cleanfow)netflow ,'"+tcb.getDocId()+"' flowunid " ; sql +=" from (" ; @@ -146,7 +169,7 @@ public class CashFlowExecutor { sql +=" if(fundplan.pay_type='pay_type_in',fundplan.plan_money,-fundplan.plan_money) cleanfow " ; sql +=" from "+Tools.getTable(tcb.getFundFundPlan_tb())+" fundplan " ; sql +=" left join code_library tdd on fundplan.fee_type = tdd.itemno and tdd.codeno='FeeType' " ; - sql +=" where fundplan.flowunid = '"+ tcb.getDocId()+"' and fundplan."+tcb.getPlanCName()+"='"+tcb.getPlanCValue()+"' and fundplan.fee_type in ('feetype2','feetype1','feetype10','feetype16','feetype17','feetype33','feetype24') "; + sql +=" where fundplan.flowunid = '"+ tcb.getDocId()+"' and fundplan."+tcb.getPlanCName()+"='"+tcb.getPlanCValue()+"' and fundplan.fee_type in ('feetype2','feetype1','feetype10','feetype16','feetype17','feetype33','feetype24','feetype27') "; //根据客户(张文竹)不管是否灵活产品,配置的GPS差额和个人意外险差额添加到IRR计算 /* if( !"0".equals(personalInsuranceDifference) ){ @@ -156,7 +179,7 @@ public class CashFlowExecutor { if( !"0".equals(GPSDifference) ){ sql += "union all select plan_date,'"+GPSDifference+"' flowin,'GPS差额:"+GPSDifference+"' flowindetail,'' flowout,'' flowoutdetil,'"+GPSDifference+"' cleanfow from lc_fund_plan_temp where flowunid = '"+tcb.getDocId()+"' and fee_type='feetype10' "; } - + }else if("ORACLE".equals(InitDBType.DBTYPE)){ sql += "INSERT INTO " +Tools.getTable(tcb.getContractCashTb())+ " (id," + tcb.getPlanCName() + ""; sql += ",plan_date"; @@ -167,7 +190,7 @@ public class CashFlowExecutor { sql += ",net_flow"; sql += ",flowunid";//create_date,creator_ "+DateUtil.getSystemDate()+"' create_date ,'"+SecurityUtil.getPrincipal().getId()+"' creator_" sql += " )"; - + sql +=" select sys_guid() id,'"+tcb.getPlanCValue()+"' "+tcb.getPlanCName()+",t.plan_date,sum(t.flowin) fundin,nvl(wmsys.wm_concat(case when t.flowindetail='' then null else t.flowindetail end ),'-') fundindetails, "; sql +=" sum(t.flowout) fundout ,nvl(wmsys.wm_concat(case when t.flowoutdetail='' then null else t.flowoutdetail end),'-') fundoutdetails,sum(t.cleanfow)netflow ,'"+tcb.getDocId()+"' flowunid " ; sql +=" from (" ; @@ -207,10 +230,10 @@ public class CashFlowExecutor { sql +=" )t group by t.plan_date "; Transaction Sqlca =null; Sqlca = Transaction.createTransaction(tx); - SqlObject asql = new SqlObject(""); + SqlObject asql = new SqlObject(""); asql.setOriginalSql(sql); Sqlca.executeSQL(asql); - + String depositStyle = ""; Map> productCost = ProductParamUtil.getProductComponentType(productId, "PRD0315"); if( productCost != null && productCost.size() > 0 ){ @@ -244,7 +267,7 @@ public class CashFlowExecutor { break; } } - + }else if ("caution_money_method02".equals( depositStyle )){//保证金退回 outMoney = new BigDecimal(cb.getCautionMoney() ); inMoney = new BigDecimal(lcftDate.get(0).get("FUND_IN") ); @@ -252,9 +275,9 @@ public class CashFlowExecutor { asql.setOriginalSql(updateSql); Sqlca.executeSQL(asql); } - + } - - - + + + } diff --git a/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java b/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java index 52bfef1f5..f9b4ff979 100644 --- a/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java +++ b/calc/com/tenwa/reckon/executor/CreateTransactionExecutor.java @@ -59,9 +59,26 @@ public class CreateTransactionExecutor implements Transaction { private String ebanknumber; private String projectId; private String distributorId; + private String equipAmt; + private String subsectionConfig; + public String getEquipAmt() { + return equipAmt; + } - public String getStartDate() { + public void setEquipAmt(String equipAmt) { + this.equipAmt = equipAmt; + } + + public String getSubsectionConfig() { + return subsectionConfig; + } + + public void setSubsectionConfig(String subsectionConfig) { + this.subsectionConfig = subsectionConfig; + } + + public String getStartDate() { return startDate; } @@ -146,16 +163,43 @@ public class CreateTransactionExecutor implements Transaction { } } } + } + public String resetSubsection( JBOTransaction tx ) throws Exception { + try { + BizObjectManager bom = JBOFactory.getBizObjectManager( "jbo.app.tenwa.calc.LC_CALC_SUBSECTION_INFO_TEMP", tx ); + List bos = bom.createQuery( "flowunid = :flowunid" ).setParameter( "flowunid", this.flowunid ).getResultList( true ); + for ( BizObject bo : bos ) { + String cleanLeaseRatio = bo.getAttribute( "CLEAN_LEASE_RATIO" ).toString(); + if ( !"".equals( cleanLeaseRatio ) ) { + BigDecimal cleanLeaseMoney; + if ( "CarPrice".equals( subsectionConfig ) ) { + cleanLeaseMoney = new BigDecimal( cleanLeaseRatio ).multiply( new BigDecimal( equipAmt ) ) + .divide( new BigDecimal( 100 ), 2, 4 ); + } else { + cleanLeaseMoney = new BigDecimal( cleanLeaseRatio ).multiply( new BigDecimal( cleanLeasemoney ) ) + .divide( new BigDecimal( 100 ), 2, 4 ); + } + bo.setAttributeValue( "CLEAN_LEASE_MONEY", cleanLeaseMoney.toString() ); + bom.saveObject( bo ); + } + } + } catch ( Exception e ) { + e.printStackTrace(); + tx.rollback(); + return "ERROR"; + } + return "SUCCESS"; } public void checkYearRate( ConditionBean cb, TabCalBean tcb, BigDecimal yearRate ) throws BusinessException { -// if ( "Y".equals( cb.getFlexible() ) ) { + if( !"segmented_financing".equals( cb.getSettleMethod() ) ){ + // if ( "Y".equals( cb.getFlexible() ) ) { // 灵活产品验证年利率区间 try { Map> productRevenues = ProductParamUtil.getProductComponentType( tcb.getProductId(), "PRD0390" ); tcb.setProductRevenues( productRevenues ); - + Map> productRates = ProductParamUtil.getProductComponentType(productId, "PRD0350"); Map productRate = productRates.get("product_rate"); String isFixedRate = productRate.get("isFixedRate"); @@ -178,7 +222,9 @@ public class CreateTransactionExecutor implements Transaction { e.printStackTrace(); throw new BusinessException( e.getMessage() ); } + // } + } } /** @@ -326,19 +372,19 @@ public class CreateTransactionExecutor implements Transaction { } return "success"; } - + /** * 插入分润计划 * @param splittingRatio,Sqlca * @return - * @throws JBOException + * @throws JBOException * @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"); - + 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(); @@ -392,8 +438,8 @@ public class CreateTransactionExecutor implements Transaction { } finally { if(ps != null) ps.close(); } - - + + } public String getSplitByProductId(JBOTransaction tx) { @@ -667,6 +713,8 @@ public class CreateTransactionExecutor implements Transaction { executor=new CarEvenInterestExecutor(tx,bean.getProductId());//车贷均息入口 }else if(settleMethod.equals("car_even_rent")){ executor=new CarEvenRentExecutor(tx,bean.getProductId());//车贷等租入口 + } else if ( "segmented_financing".equals( settleMethod ) ) { + executor = new SegmentedFinancingExecutor( tx ); } else { executor = new EvenRentExecutor(tx); } @@ -1372,7 +1420,7 @@ public class CreateTransactionExecutor implements Transaction { tx.commit(); return "Success"; } - + //校验融资金额是否超额 public String checkMoney()throws Exception{ BigDecimal sumMoney = new BigDecimal("0") ; @@ -1384,8 +1432,8 @@ public class CreateTransactionExecutor implements Transaction { sumMoney = sumMoney.setScale(2, BigDecimal.ROUND_HALF_UP); return sumMoney.toString(); } - - + + public String getCalType() { return calType; } diff --git a/calc/com/tenwa/reckon/executor/FundFundPlanExecutor.java b/calc/com/tenwa/reckon/executor/FundFundPlanExecutor.java index 934a69736..a108b0e47 100644 --- a/calc/com/tenwa/reckon/executor/FundFundPlanExecutor.java +++ b/calc/com/tenwa/reckon/executor/FundFundPlanExecutor.java @@ -29,7 +29,7 @@ import com.tenwa.reckon.bean.TabCalBean; import com.tenwa.reckon.util.UUIDUtil; public class FundFundPlanExecutor { - + public void run(ConditionBean cb , TabCalBean tcb,FundRentPlanBean rentPlan,JBOTransaction tx) throws Exception{ cb.setDocId(tcb.getDocId()); List fundPlanBeans=new ArrayList(); @@ -43,6 +43,36 @@ public class FundFundPlanExecutor { cb.setDeductionLastPlanDate(cb.getLastPlanDate());//不生成保证金抵扣及退还计划 } fundPlanBeans = this.create(tcb,fundPlanBeans,tx); + + // 补上分段融贴息计划 + if ( "segmented_financing".equals( cb.getSettleMethod() ) ) { + BizObjectManager bom = JBOFactory.getBizObjectManager( "jbo.app.tenwa.calc.LC_CALC_SUBSECTION_INFO_TEMP", tx ); + List bos = bom.createQuery( "flowunid = :flowunid" ).setParameter( "flowunid", tcb.getDocId() ).getResultList( false ); + for ( BizObject bo : bos ) { + String discount = bo.getAttribute( "DISCOUNT_INTEREST" ).getString(); + String subsectionNumber = bo.getAttribute( "SUBSECTION_NUMBER" ).getString(); + String isBalanceLending = bo.getAttribute( "IS_BALANCE_LENDING" ).getString(); + String discountCollectionPeriod = bo.getAttribute( "DISCOUNT_COLLECTION_PERIOD" ).getString(); + FundPlanBean fundPlanBean = new FundPlanBean(); + fundPlanBean.setFeeType( "feetype27" ); + fundPlanBean.setPlanList( subsectionNumber ); + fundPlanBean.setSettleMethod( "payfund6" ); + fundPlanBean.setPayType( "pay_type_in" ); + if ( "Y".equals( isBalanceLending ) ) { + fundPlanBean.setPlanDate( getPlanDate( "PaymentTime1", cb ) ); + } else { + if ( "0".equals( discountCollectionPeriod ) ) { + fundPlanBean.setPlanDate( getPlanDate( "PaymentTime1", cb ) ); + } else { + fundPlanBean.setPlanDate( rentPlan.getPlanDateList().get( Integer.parseInt( discountCollectionPeriod ) - 1 ) ); + } + } + fundPlanBean.setPlanMoney( discount ); + fundPlanBean.setPayCust( "" ); + fundPlanBeans.add( fundPlanBean ); + } + } + this.delete(tcb,tx); this.add(fundPlanBeans, tcb,tx); } @@ -110,7 +140,7 @@ public class FundFundPlanExecutor { if(Float.parseFloat(sdhandlingCharge)>0){ ffcp=new FundPlanBean(); ffcp.setId(UUID.randomUUID().toString().replaceAll("-", "")); - ffcp.setFeeType("feetype30");//商定违约金 + ffcp.setFeeType("feetype30");//商定违约金 ffcp.setPlanList("1"); ffcp.setSettleMethod("payfund6"); ffcp.setPayType("pay_type_in"); @@ -136,7 +166,7 @@ public class FundFundPlanExecutor { if(Float.parseFloat(otherIn)>0){ ffcp=new FundPlanBean(); ffcp.setId(UUID.randomUUID().toString().replaceAll("-", "")); - ffcp.setFeeType("feetype8");//其他应收 + ffcp.setFeeType("feetype8");//其他应收 ffcp.setPlanList("1"); ffcp.setSettleMethod("payfund6"); ffcp.setPayType("pay_type_in"); @@ -147,7 +177,7 @@ public class FundFundPlanExecutor { } return fundPlanBeans; } - + //创建资金计划 private List create(TabCalBean tcb,List fundPlanBeans,JBOTransaction tx) throws Exception{ //获取产品租赁物类型配置 @@ -167,7 +197,7 @@ public class FundFundPlanExecutor { if("quoted_price".equals(tcb.getCalType())){ custid=tcb.getDocId(); }else if(tcb.getUserId()==null||tcb.getUserId().equals("")){ - + } else{ String sql2="select customer_id from "+tcb.getUserId()+" where flowunid='"+tcb.getDocId()+"'"; List> list=DataOperatorUtil.getDataBySql(tx, sql2, null); @@ -175,10 +205,10 @@ public class FundFundPlanExecutor { custid=list.get(0).get("customer_id"); } } - + BizObject con=tcb.getCondition(); ConditionBean cb=tcb.getCb(); - + //String sql="select itemno from O where codeno='FeeType' and relativecode=:code"; Item[] items = CodeCache.getItems("FeeType"); for(Map.Entry> entry:map.entrySet()){ @@ -192,11 +222,11 @@ public class FundFundPlanExecutor { && "EQUIP_END_VALUE".equals(key)) { continue; } - + //取值 BigDecimal temp = null; - - if("business_product".equals(tcb.getProductType()) + + if("business_product".equals(tcb.getProductType()) && "CLEAN_LEASE_MONEY".equals(key)) { temp = new BigDecimal(con.getAttribute("EQUIP_AMT").getDouble()); } else if("UNITE_MONEY_OUT".equals(key)){ @@ -204,7 +234,7 @@ public class FundFundPlanExecutor { }else{ temp = new BigDecimal(con.getAttribute(key).getDouble()); } - + Item item = null; for(Item it : items) { if(key.equals(it.getRelativeCode())) { @@ -212,7 +242,7 @@ public class FundFundPlanExecutor { break; } } - + //BizObject item=JBOFactory.createBizObjectQuery(CODE_LIBRARY.CLASS_NAME, sql).setParameter("code", entry.getKey()).getSingleResult(false); if (item!=null && temp.compareTo(BigDecimal.ZERO)>0) { FundPlanBean ffcp = new FundPlanBean(); @@ -224,7 +254,7 @@ public class FundFundPlanExecutor { ffcp.setId(boLFP.getAttribute("id").getString()); bomLFP.deleteObject(boLFP); } - + } ffcp.setFeeType(item.getItemNo());//费用类型 ffcp.setPlanList("1"); @@ -283,7 +313,7 @@ public class FundFundPlanExecutor { BizObjectManager bm=JBOFactory.getBizObjectManager(tcb.getFundFundPlan_tb(), tx); bm.createQuery(sql).executeUpdate(); } - + //保存资金计划到表 private void add(List fp,TabCalBean tcb,JBOTransaction tx) throws Exception{ com.amarsoft.awe.util.Transaction tran = com.amarsoft.awe.util.Transaction.createTransaction(tx); @@ -341,17 +371,17 @@ public class FundFundPlanExecutor { fundPlan.setAttributeValue("PAY_OBJ", fund.getPayObj()); fundPlan.setAttributeValue("SETTLE_METHOD",fund.getSettleMethod()); fundPlan.setAttributeValue("PAY_TYPE", fund.getPayType()); - + //联合方出资比例 //BigDecimal unionRatio=new BigDecimal(tcb.getCb().getUnioRatio()); //fundPlan.setAttributeValue("plan_money_union",new BigDecimal(fundPlan.getAttribute("PLAN_MONEY").getString()).multiply(unionRatio).divide(new BigDecimal(100), 2,BigDecimal.ROUND_HALF_UP).toString()); //fundPlan.setAttributeValue("plan_money_company", new BigDecimal(fundPlan.getAttribute("PLAN_MONEY").getString()).subtract(new BigDecimal(fundPlan.getAttribute("plan_money_union").getString())).toString()); - + bm.saveObject(fundPlan); }*/ } - - //生成抵扣保证金 保证金退还 资金计划 + + //生成抵扣保证金 保证金退还 资金计划 private static List splitFundFundPlan(FundRentPlanBean planBean,ConditionBean cb,String custID,String remainType,String reduceType) throws Exception{ List planDates = planBean.getPlanDateList(); List rentPlans = planBean.getRentList(); @@ -410,18 +440,19 @@ public class FundFundPlanExecutor { } return newFundPlans; } - - //生成抵扣保证金 保证金退还 资金计划 + + //生成抵扣保证金 保证金退还 资金计划 private static List splitFundFundPlanList(FundRentPlanBean planBean,ConditionBean cb,String custID,String remainType,String reduceType) throws Exception{ List planDates = planBean.getPlanDateList(); List rentPlans = planBean.getRentList(); //安鹏逻辑,只抵最后一期租金 - BigDecimal lastRent = new BigDecimal(rentPlans.get(rentPlans.size() - 1)); - BigDecimal cautionMoneyDeduction = new BigDecimal(cb.getCautionDeductionMoney()); - if(lastRent.compareTo(cautionMoneyDeduction) < 0) { - cb.setCautionMoneyRemain(cautionMoneyDeduction.subtract(lastRent).toString()); - cb.setCautionDeductionMoney(lastRent.toString()); - } + // 取消安鹏只抵最后一期逻辑 by zhulh 2021/08/19 +// BigDecimal lastRent = new BigDecimal(rentPlans.get(rentPlans.size() - 1)); +// BigDecimal cautionMoneyDeduction = new BigDecimal(cb.getCautionDeductionMoney()); +// if(lastRent.compareTo(cautionMoneyDeduction) < 0) { +// cb.setCautionMoneyRemain(cautionMoneyDeduction.subtract(lastRent).toString()); +// cb.setCautionDeductionMoney(lastRent.toString()); +// } List newFundPlans = new ArrayList(); if(Double.parseDouble(cb.getCautionMoneyRemain()) > 0){//退还保证金 FundPlanBean newFundPlan=new FundPlanBean(); @@ -437,16 +468,7 @@ public class FundFundPlanExecutor { } if(Double.parseDouble(cb.getCautionDeductionMoney()) > 0){//抵扣保证金 BigDecimal planMoney=new BigDecimal(cb.getCautionDeductionMoney()); - FundPlanBean newFundPlan=new FundPlanBean(); - newFundPlan.setFeeType(reduceType); - newFundPlan.setPlanList("1"); - newFundPlan.setSettleMethod("payfund6"); - newFundPlan.setPayType("pay_type_out"); - newFundPlan.setPlanMoney(planMoney.toString()); - newFundPlan.setPlanDate(planDates.get(planDates.size() - 1)); - newFundPlan.setPayCust(custID); - newFundPlans.add(newFundPlan); - /*int planList=0; + int planList=0; for(int i = planDates.size()-1 ; i >= 0 ; i--){ planList++; BigDecimal rent=new BigDecimal(rentPlans.get(i)); @@ -481,7 +503,7 @@ public class FundFundPlanExecutor { cb.setDeductionLastPlanDate(planDates.get(i)); break; } - }*/ + } }else{ cb.setDeductionLastPlanDate(cb.getLastPlanDate()); } diff --git a/calc/com/tenwa/reckon/executor/ManageSubsectionData.java b/calc/com/tenwa/reckon/executor/ManageSubsectionData.java new file mode 100644 index 000000000..2f8d07c5f --- /dev/null +++ b/calc/com/tenwa/reckon/executor/ManageSubsectionData.java @@ -0,0 +1,66 @@ +//package com.tenwa.reckon.executor; +// +//import java.util.List; +// +//import com.amarsoft.are.jbo.BizObject; +//import com.amarsoft.are.jbo.BizObjectManager; +//import com.amarsoft.are.jbo.JBOFactory; +//import com.amarsoft.are.jbo.JBOTransaction; +// +//import jbo.app.tenwa.calc.LB_SUBSECTION_INFO_TEMP; +// +//public class ManageSubsectionData { +// +// private String subsectionNumber; +// private String projectId; +// private String flowunid; +// +// public String getSubsectionNumber() { +// return subsectionNumber; +// } +// public void setSubsectionNumber(String subsectionNumber) { +// this.subsectionNumber = subsectionNumber; +// } +// public String getProjectId() { +// return projectId; +// } +// public void setProjectId(String projectId) { +// this.projectId = projectId; +// } +// public String getFlowunid() { +// return flowunid; +// } +// public void setFlowunid(String flowunid) { +// this.flowunid = flowunid; +// } +// +// public String saveSubsection(JBOTransaction tx) throws Exception { +// Integer sn = new Integer(subsectionNumber); +// BizObjectManager lsitManger = JBOFactory.getBizObjectManager(LB_SUBSECTION_INFO_TEMP.CLASS_NAME, tx); +// List lsitList = lsitManger.createQuery(" flowunid=:flowunid ").setParameter("flowunid", flowunid).getResultList(false); +// if( sn >= 0 ) { +// if(lsitList.size()==0 || sn > lsitList.size()) { +// int i = ( lsitList.size()+1 ) ; +// for( ; i<=sn ; i++ ) { +// BizObject lsit = lsitManger.newObject(); +// lsit.setAttributeValue("subsection_number", i); +// lsit.setAttributeValue("projectid", projectId); +// lsit.setAttributeValue("flowunid", flowunid); +// lsitManger.saveObject(lsit); +// } +// }else if( sn < lsitList.size()){ +// int i = (sn +1); +// for( ; i<= lsitList.size() ; i++ ) { +// BizObject lsit = lsitManger.createQuery("flowunid =:flowunid and subsection_number =:subsectionNumber").setParameter("flowunid", flowunid).setParameter("subsectionNumber", i).getSingleResult(true); +// if(lsit!=null ) { +// lsitManger.deleteObject(lsit); +// } +// } +// } +// } +// return "success"; +// } +// +// +// +//} diff --git a/calc/com/tenwa/reckon/executor/RentCalHelper.java b/calc/com/tenwa/reckon/executor/RentCalHelper.java index 599d8de64..591e0c95c 100644 --- a/calc/com/tenwa/reckon/executor/RentCalHelper.java +++ b/calc/com/tenwa/reckon/executor/RentCalHelper.java @@ -142,7 +142,7 @@ public class RentCalHelper { // if(payDayAdjust.compareTo(min) >= 0 && payDayAdjust.compareTo(max) <= 0){ if(payDayAdjust.compareTo(max) <= 0){ //约定终止日不能落在已汇款的租金计划的区间段 - checkSql = "select max(rp.plan_date) maxdate from LC_RENT_PLAN rp left join lc_rent_income ci on rp.id=ci.plan_id where ci.id is not null and rp.contract_id = ? and rp.payment_number=?"; + checkSql = "select max(rp.plan_date) maxdate from LC_RENT_PLAN rp left join lc_rent_income ci on rp.id=ci.plan_id where (rp.COLLECT_STATUS <> '未收款' AND rp.COLLECT_STATUS IS NOT NULL AND LENGTH(rp.COLLECT_STATUS)>0 ) and ci.id is not null and rp.contract_id = ? and rp.payment_number=?"; results = conn.executeQuery(checkSql, this.contractId,this.paymentnumber); String maxDate = results.get(0).get("maxdate"); if(maxDate != null){ diff --git a/calc/com/tenwa/reckon/executor/SegmentedFinancingExecutor.java b/calc/com/tenwa/reckon/executor/SegmentedFinancingExecutor.java new file mode 100644 index 000000000..02a0cb96b --- /dev/null +++ b/calc/com/tenwa/reckon/executor/SegmentedFinancingExecutor.java @@ -0,0 +1,223 @@ +package com.tenwa.reckon.executor; + +import com.amarsoft.are.jbo.BizObject; +import com.amarsoft.are.jbo.BizObjectManager; +import com.amarsoft.are.jbo.JBOFactory; +import com.amarsoft.are.jbo.JBOTransaction; +import com.tenwa.comm.exception.BusinessException; +import com.tenwa.reckon.bean.ConditionBean; +import com.tenwa.reckon.bean.FundRentPlanBean; +import com.tenwa.reckon.bean.TabCalBean; +import com.tenwa.reckon.help.PlanDateServiceImpl; +import com.tenwa.reckon.util.IrrTools; +import com.tenwa.reckon.util.RentTools; +import org.apache.commons.lang3.StringUtils; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +public class SegmentedFinancingExecutor extends FundRentPlanExecutor { + + public SegmentedFinancingExecutor(JBOTransaction tx) { + super( tx ); + } + + @Override + public FundRentPlanBean create( TabCalBean tcb, Integer startList ) throws Exception { + this.deleteRentPlan( tcb.getRentPlan_tb(), tcb, startList ); + + // 年还款次数 + String flowunid = tcb.getDocId(); + BigDecimal incomeNumberYear = new BigDecimal( tcb.getCb().getIncomeNumberYear() ); + BizObjectManager bom = JBOFactory.getBizObjectManager( "jbo.app.tenwa.calc.LC_CALC_SUBSECTION_INFO_TEMP", tx ); + BizObjectManager bomLSRPT = JBOFactory.getBizObjectManager( "jbo.app.tenwa.calc.LC_SUBSECTION_RENT_PLAN_TEMP", tx ); + bomLSRPT.createQuery( "delete from O where flowunid = :flowunid" ).setParameter( "flowunid", flowunid ).executeUpdate(); + // 遍历分段融表 + List bos = bom.createQuery( "flowunid = :flowunid order by subsection_number" ).setParameter( "flowunid", flowunid ) + .getResultList( true ); + List dates = new ArrayList<>(); + List interests = new ArrayList<>(); + List corpuss = new ArrayList<>(); + List rents = new ArrayList<>(); + List overCorpuss = new ArrayList<>(); + PlanDateServiceImpl pdsi = new PlanDateServiceImpl( tx ); + ConditionBean cb = tcb.getCb(); + for ( BizObject bo : bos ) { + // 分段号 + String subsectionNumber = bo.getAttribute( "SUBSECTION_NUMBER" ).getString(); + // 融资金额 + BigDecimal cleanLeaseMoney = new BigDecimal( bo.getAttribute( "CLEAN_LEASE_MONEY" ).getString() ); + // 标准利率 + BigDecimal rate = new BigDecimal( bo.getAttribute( "RATE" ).getString() ).divide( new BigDecimal( 100 ), 20, 4 ); + // 期利率 + BigDecimal preRate = rate.divide( incomeNumberYear, 20, 4 ); + // 期次 + BigDecimal incomeNumber = new BigDecimal( bo.getAttribute( "INCOME_NUMBER" ).getString() ); + cb.setIncomeNumber( incomeNumber.intValue() ); + List planDateList = pdsi.getPlanDateList( cb, null ); + if ( planDateList.size() > dates.size() ) { + dates = planDateList; + } + // 贴息计算方式 + String discountCalcMethod = bo.getAttribute( "DISCOUNT_CALC_METHOD" ).getString(); + // 融资利率 + BigDecimal financingRate; + //获取融资利率是否只读,如果只读每次计算需要更新融资利率 + String iulma =bo.getAttribute( "IS_UPDATE_LEASE_MONEY_RATIO" ).getString(); + if ( "1".equals( discountCalcMethod ) ) { // 根据利率计算贴息金额 + // 贴息后利率 + BigDecimal discountRate = new BigDecimal( bo.getAttribute( "DISCOUNT_RATE" ).getString() ).divide( new BigDecimal( 100 ), 20, 4 ); + // 期利率 + BigDecimal preDiscountRate = discountRate.divide( incomeNumberYear, 20, 4 ); + // 标准利率计算租金 + String rent = RentTools.getPMT( preRate.toString(), incomeNumber.toString(), cleanLeaseMoney.negate().toString(), "0", "0" ); + // 贴息后利率计算租金 + String afterDiscountRent = RentTools.getPMT( preDiscountRate.toString(), incomeNumber.toString(), cleanLeaseMoney.negate().toString(), "0", "0" ); + // 计算贴息 + BigDecimal discount = new BigDecimal( rent ).setScale( 2, 4 ).multiply( incomeNumber ).subtract( new BigDecimal( afterDiscountRent ).setScale( 2, 4 ).multiply( incomeNumber ) ); + bo.setAttributeValue( "DISCOUNT", discount ); + + String fr = bo.getAttribute( "FINANCING_RATE" ).getString(); + + if ( StringUtils.isEmpty( fr ) || ( iulma!=null && "Y".equals(iulma) ) ) { + financingRate = discountRate.divide( new BigDecimal( 100 ), 20, 4 ); + bo.setAttributeValue( "FINANCING_RATE", discountRate.toString() ); + } else { + financingRate = new BigDecimal( fr ).divide( new BigDecimal( 100 ), 20, 4 ); + } + bo.setAttributeValue( tcb.getPlanCName(), tcb.getPlanCValue() ); + bom.saveObject( bo ); + } else if("2".equals( discountCalcMethod )) { //根据金额算利率 + // 贴息金额 + BigDecimal discount = new BigDecimal( bo.getAttribute( "DISCOUNT" ).getString() ); + // 标准利率计算租金 + String rent = RentTools.getPMT( preRate.toString(), incomeNumber.toString(), cleanLeaseMoney.negate().toString(), "0", "0" ); + // 贴息后租金 + BigDecimal afterDiscountRent = new BigDecimal( rent ).setScale( 2, 4 ).multiply( incomeNumber ).subtract( discount ).divide( incomeNumber, 2, 4 ); + List cashFlow = new ArrayList<>(); + cashFlow.add( cleanLeaseMoney.negate() ); + for ( int i = 0; i < incomeNumber.intValue(); i ++ ) { + cashFlow.add( afterDiscountRent ); + } + BigDecimal discountRate = getIRR( cashFlow, incomeNumberYear ).setScale( 6, 4 ); + bo.setAttributeValue( "DISCOUNT_RATE", discountRate.toString() ); + String fr = bo.getAttribute( "FINANCING_RATE" ).getString(); + if ( StringUtils.isEmpty( fr ) || ( iulma!=null && "Y".equals(iulma) ) ) { + financingRate = discountRate.divide( new BigDecimal( 100 ), 20, 4 ); + bo.setAttributeValue( "FINANCING_RATE", discountRate.toString() ); + } else { + financingRate = new BigDecimal( fr ).divide( new BigDecimal( 100 ), 20, 4 ); + } + bo.setAttributeValue( tcb.getPlanCName(), tcb.getPlanCValue() ); + bom.saveObject( bo ); + }else if("3".equals( discountCalcMethod )) { // 固定值 + financingRate = new BigDecimal( bo.getAttribute( "FINANCING_RATE" ).getString() ).divide( new BigDecimal( 100 ), 20, 4 ); + } else { + throw new BusinessException( "分段信息没有配置计算规则,无法测算!" ); + } + //校验贴息是否在配置的区间内 + BigDecimal discountCheck = new BigDecimal( bo.getAttribute( "DISCOUNT" ).getString() ); + if ( !( discountCheck.compareTo( new BigDecimal( bo.getAttribute( "MAXIMUM_DISCOUNT" ).getString() ) ) <= 0 && discountCheck.compareTo( new BigDecimal( bo.getAttribute( "MINIMUM_DISCOUNT" ).getString() ) ) >= 0 ) ) { + throw new BusinessException( "分段融的第"+subsectionNumber+"段的贴息金额不在产品配置的区间内!" ); + } + + // 融资期利率 + BigDecimal preFinancingRate = financingRate.divide( incomeNumberYear, 20, 4 ); + // 实际租金 + String rent = RentTools.getPMT( preFinancingRate.toString(), incomeNumber.toString(), cleanLeaseMoney.negate().toString(), "0", "0" ); + BigDecimal r = new BigDecimal( rent ).setScale( 2, 4 ); + for ( int i = 0; i < incomeNumber.intValue(); i ++ ) { + BigDecimal interest; + BigDecimal corpus; + if ( i == incomeNumber.intValue() - 1 ) { + corpus = cleanLeaseMoney; + if ( corpus.compareTo( r ) >= 0 ) { + r = corpus; + interest = BigDecimal.ZERO; + } else { + interest = r.subtract( corpus ); + } + cleanLeaseMoney = BigDecimal.ZERO; + } else { + interest = cleanLeaseMoney.multiply( preFinancingRate ).setScale( 2, 4 ); + corpus = r.subtract( interest ); + cleanLeaseMoney = cleanLeaseMoney.subtract( corpus ); + } + BizObject boLSRPT = bomLSRPT.newObject(); + boLSRPT.setAttributeValue( "FLOWUNID", flowunid ); + boLSRPT.setAttributeValue( tcb.getPlanCName(), tcb.getPlanCValue() ); + boLSRPT.setAttributeValue( "PLAN_LIST", i + 1 ); + boLSRPT.setAttributeValue( "PLAN_DATE", planDateList.get( i ) ); + boLSRPT.setAttributeValue( "INTEREST_DATE", planDateList.get( i ) ); + boLSRPT.setAttributeValue( "PLAN_STATUS", "未回笼" ); + boLSRPT.setAttributeValue( "RENT", r.toString() ); + boLSRPT.setAttributeValue( "CORPUS", corpus.toString() ); + boLSRPT.setAttributeValue( "INTEREST", interest.toString() ); + boLSRPT.setAttributeValue( "ALL_REMAIN_CORPUS", cleanLeaseMoney.toString() ); + boLSRPT.setAttributeValue( "CORPUS_BUSINESS", corpus.toString() ); + boLSRPT.setAttributeValue( "INTEREST_BUSINESS", interest.toString() ); + boLSRPT.setAttributeValue( "SUBSECTION_NUMBER", subsectionNumber ); + bomLSRPT.saveObject( boLSRPT ); + if ( interests.size() > i ) { + interests.set( i, new BigDecimal( interests.get( i ) ).add( interest ).toString() ); + corpuss.set( i, new BigDecimal( corpuss.get( i ) ).add( corpus ).toString() ); + overCorpuss.set( i, new BigDecimal( overCorpuss.get( i ) ).add( cleanLeaseMoney ).toString() ); + rents.set( i, new BigDecimal( rents.get( i ) ).add( r ).toString() ); + } else { + interests.add( interest.toString() ); + corpuss.add( corpus.toString() ); + overCorpuss.add( cleanLeaseMoney.toString() ); + rents.add( r.toString() ); + } + } + } + FundRentPlanBean fundRentPlanBean = new FundRentPlanBean(); + fundRentPlanBean.setCorpusOverageBusinessList( overCorpuss ); + fundRentPlanBean.setCorpusBusinessList( corpuss ); + fundRentPlanBean.setInterestBusinessList( interests ); + fundRentPlanBean.setPlanDateList( dates ); + fundRentPlanBean.setRentList( rents ); + + this.addRentPlan( fundRentPlanBean, tcb, startList ); + return fundRentPlanBean; + } + + public static BigDecimal getIRR( List cashFlows, BigDecimal incomeNumberYear ) { + List cashFlow = new ArrayList<>(); + for ( int o = 0; o < cashFlows.size(); o ++ ) { + Object obj = cashFlows.get( o ); + if ( obj instanceof BigDecimal ) { + cashFlow.add( ( BigDecimal ) obj ); + } else { + cashFlow.add( new BigDecimal( obj.toString() ) ); + } + } + BigDecimal up = BigDecimal.ONE; + BigDecimal down = BigDecimal.ZERO; + BigDecimal two = new BigDecimal( "2" ); + BigDecimal irr = new BigDecimal( "0.01" ); + BigDecimal accuracy = new BigDecimal( "0.0000001" ); + BigDecimal out; + + int i = 0; + while ( irr.abs().compareTo( accuracy ) > 0 && i < 200 ) { + out = cashFlow.get( 0 ); + for ( int j = 1; j < cashFlow.size(); j ++ ) { + out = out.add( cashFlow.get( j ).divide( new BigDecimal( Math.pow( BigDecimal.ONE.add( irr ).doubleValue(), j ) ), 20, 4 ) ); + } + + if ( out.compareTo( BigDecimal.ZERO ) > 0 ) { + down = irr; + irr = irr.add( up ).divide( two, 20, 4 ); + } else if ( out.compareTo( BigDecimal.ZERO ) < 0 ) { + up = irr; + irr = irr.add( down ).divide( two, 20, 4 ); + } + i ++; + } + irr = irr.multiply( incomeNumberYear ).multiply( new BigDecimal( 100 ) ); + + return irr; + } +} diff --git a/calc/com/tenwa/reckon/help/CalcConditionCopyService.java b/calc/com/tenwa/reckon/help/CalcConditionCopyService.java index c1672c2c7..b8b5a8de6 100644 --- a/calc/com/tenwa/reckon/help/CalcConditionCopyService.java +++ b/calc/com/tenwa/reckon/help/CalcConditionCopyService.java @@ -4,46 +4,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import jbo.app.tenwa.calc.LC_CALC_CONDITION; -import jbo.app.tenwa.calc.LC_CALC_CONDITION_HIS; -import jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP; -import jbo.app.tenwa.calc.LC_CALC_PERIOD; -import jbo.app.tenwa.calc.LC_CALC_PERIOD_TEMP; -import jbo.app.tenwa.calc.LC_CALC_RULES; -import jbo.app.tenwa.calc.LC_CALC_RULES_TEMP; -import jbo.app.tenwa.calc.LC_CALC_SUBSECTION; -import jbo.app.tenwa.calc.LC_CALC_SUBSECTION_TEMP; -import jbo.app.tenwa.calc.LC_CASH_FLOW; -import jbo.app.tenwa.calc.LC_CASH_FLOW_HIS; -import jbo.app.tenwa.calc.LC_CASH_FLOW_TEMP; -import jbo.app.tenwa.calc.LC_CONTRACT_CASH_FLOW; -import jbo.app.tenwa.calc.LC_CONTRACT_CONDITION; -import jbo.app.tenwa.calc.LC_CONTRACT_FUND_PLAN; -import jbo.app.tenwa.calc.LC_CONTRACT_PERIOD; -import jbo.app.tenwa.calc.LC_CONTRACT_RENT_PLAN; -import jbo.app.tenwa.calc.LC_CONTRACT_RULES; -import jbo.app.tenwa.calc.LC_CONTRACT_SUBSECTION; -import jbo.app.tenwa.calc.LC_CUSTOMER_CASH_FLOW; -import jbo.app.tenwa.calc.LC_CUSTOMER_CONDITION; -import jbo.app.tenwa.calc.LC_CUSTOMER_FUND_PLAN; -import jbo.app.tenwa.calc.LC_CUSTOMER_PERIOD; -import jbo.app.tenwa.calc.LC_CUSTOMER_RENT_PLAN; -import jbo.app.tenwa.calc.LC_CUSTOMER_RULES; -import jbo.app.tenwa.calc.LC_CUSTOMER_SUBSECTION; -import jbo.app.tenwa.calc.LC_FUND_PLAN; -import jbo.app.tenwa.calc.LC_FUND_PLAN_TEMP; -import jbo.app.tenwa.calc.LC_PAY_CASH_FLOW; -import jbo.app.tenwa.calc.LC_PAY_RENT_PLAN; -import jbo.app.tenwa.calc.LC_PROJ_CASH_FLOW; -import jbo.app.tenwa.calc.LC_PROJ_CONDITION; -import jbo.app.tenwa.calc.LC_PROJ_FUND_PLAN; -import jbo.app.tenwa.calc.LC_PROJ_PERIOD; -import jbo.app.tenwa.calc.LC_PROJ_RENT_PLAN; -import jbo.app.tenwa.calc.LC_PROJ_RULES; -import jbo.app.tenwa.calc.LC_PROJ_SUBSECTION; -import jbo.app.tenwa.calc.LC_RENT_PLAN; -import jbo.app.tenwa.calc.LC_RENT_PLAN_HIS; -import jbo.app.tenwa.calc.LC_RENT_PLAN_TEMP; +import jbo.app.tenwa.calc.*; import jbo.com.tenwa.entity.comm.flow.FLOW_BUSSINESS_OBJECT; import jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO_TEMP; import jbo.com.tenwa.lease.comm.LB_PROJECT_INFO; @@ -70,14 +31,14 @@ public class CalcConditionCopyService { public void custToTemp(String flowunid,String quotid,String planCName,String planCValue,JBOTransaction tx) throws JBOException, RecordNotFoundException, Exception{ Map fromCondition=new HashMap(); fromCondition.put("quot_id", quotid); - + Map otherProperty=new HashMap(); otherProperty.put("FLOWUNID", flowunid); otherProperty.put(planCName, planCValue); - + Map toCondition=new HashMap(); toCondition.put(planCName, planCValue); - + //商务条件 DataOperatorUtil.copyJBOSet(LC_CUSTOMER_CONDITION.CLASS_NAME, fromCondition,LC_CALC_CONDITION_TEMP.CLASS_NAME, toCondition, otherProperty, null, tx); //测算租金规则 @@ -93,22 +54,22 @@ public class CalcConditionCopyService { //分段测算 DataOperatorUtil.copyJBOSet(LC_CUSTOMER_SUBSECTION.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_TEMP.CLASS_NAME, toCondition, otherProperty, null, tx); } - - - + + + //临时表到项目表 public void tempToProj(String flowunid,JBOTransaction tx) throws Exception{ - + BizObject flow=JBOFactory.createBizObjectQuery(FLOW_BUSSINESS_OBJECT.CLASS_NAME,"flow_unid=:flowunid").setParameter("flowunid", flowunid).getSingleResult(false); - + String projid=flow.getAttribute("proj_id").getString(); - + Map fromCondition=new HashMap(); fromCondition.put("FLOWUNID", flowunid); - + Map toCondition=new HashMap(); toCondition.put("PROJECT_ID", projid); - + Map otherProperty=new HashMap(); otherProperty.put("project_id", projid); //商务条件 @@ -126,15 +87,19 @@ public class CalcConditionCopyService { DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION_TEMP.CLASS_NAME, fromCondition, LC_PROJ_SUBSECTION.CLASS_NAME, toCondition, otherProperty, null, tx); //前提条件 DataOperatorUtil.copyJBOSet(LC_CONDITION_TEMP.CLASS_NAME, fromCondition, LC_CONDITION.CLASS_NAME, toCondition, otherProperty, null, tx); + // 分段融导表 + DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION_INFO_TEMP.CLASS_NAME, fromCondition, LC_PROJ_SUBSECTION_INFO.CLASS_NAME, toCondition, otherProperty, null, tx); + // 分段租金计划导表 + DataOperatorUtil.copyJBOSet(LC_SUBSECTION_RENT_PLAN_TEMP.CLASS_NAME, fromCondition, LC_PROJ_SUBSECTION_RENT_PLAN.CLASS_NAME, toCondition, otherProperty, null, tx); } - + //项目表到临时表 public void porjToTemp(String flowunid,String projid,JBOTransaction tx) throws Exception{ - + Map fromCondition=new HashMap(); fromCondition.put("PROJECT_ID", projid); - - + + Map otherProperty=new HashMap(); otherProperty.put("FLOWUNID", flowunid); //商务条件 @@ -153,39 +118,42 @@ public class CalcConditionCopyService { DataOperatorUtil.copyJBOSet(LC_PROJ_SUBSECTION.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_TEMP.CLASS_NAME, null, otherProperty, null, tx); //前提条件 DataOperatorUtil.copyJBOSet(LC_CONDITION.CLASS_NAME, fromCondition, LC_CONDITION_TEMP.CLASS_NAME, null, otherProperty, null, tx); - + // 分段融导表 + DataOperatorUtil.copyJBOSet(LC_PROJ_SUBSECTION_INFO.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_INFO_TEMP.CLASS_NAME, null, otherProperty, null, tx); + // 分段租金计划导表 + DataOperatorUtil.copyJBOSet(LC_PROJ_SUBSECTION_RENT_PLAN.CLASS_NAME, fromCondition, LC_SUBSECTION_RENT_PLAN_TEMP.CLASS_NAME, null, otherProperty, null, tx); } //项目表到合同临时表 public void projToContract(String flowunid,String projid,String contractid,JBOTransaction tx) throws Exception{ - - + + BizObject proj=JBOFactory.createBizObjectQuery(LB_PROJECT_INFO.CLASS_NAME,"id=:id").setParameter("id", projid).getSingleResult(false); String project_id=proj.getAttribute("project_no").getString();//项目编号 - - + + Map fromCondition=new HashMap(); fromCondition.put("PROJECT_ID", projid); List list=DataOperatorUtil.getSetJBO(LC_PROJ_CONDITION.CLASS_NAME, fromCondition, tx); - + Map otherProperty=new HashMap(); otherProperty.put("FLOWUNID", flowunid); - + for(BizObject bo:list){ - + String projPlanNumber=bo.getAttribute("PROJECT_PLAN_NUMBER").getString(); - + String contractPlanNumber=projPlanNumber.replace(project_id, contractid); - + fromCondition.clear(); fromCondition.put("PROJECT_ID", projid); fromCondition.put("PROJECT_PLAN_NUMBER", projPlanNumber); - + otherProperty.clear(); otherProperty.put("FLOWUNID", flowunid); otherProperty.put("CONTRACT_PLAN_NUMBER", contractPlanNumber); - + //商务条件 DataOperatorUtil.copyJBOSet(LC_PROJ_CONDITION.CLASS_NAME, fromCondition,LC_CALC_CONDITION_TEMP.CLASS_NAME, null, otherProperty, null, tx); //测算租金规则 @@ -200,28 +168,31 @@ public class CalcConditionCopyService { DataOperatorUtil.copyJBOSet(LC_PROJ_PERIOD.CLASS_NAME, fromCondition, LC_CALC_PERIOD_TEMP.CLASS_NAME, null, otherProperty, null, tx); //分段测算 DataOperatorUtil.copyJBOSet(LC_PROJ_SUBSECTION.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_TEMP.CLASS_NAME, null, otherProperty, null, tx); + // 分段融导表 + DataOperatorUtil.copyJBOSet(LC_PROJ_SUBSECTION_INFO.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_INFO_TEMP.CLASS_NAME, null, otherProperty, null, tx); + // 分段租金计划导表 + DataOperatorUtil.copyJBOSet(LC_PROJ_SUBSECTION_RENT_PLAN.CLASS_NAME, fromCondition, LC_SUBSECTION_RENT_PLAN_TEMP.CLASS_NAME, null, otherProperty, null, tx); otherProperty.clear(); otherProperty.put("FLOWUNID", flowunid); otherProperty.put("PLAN_NUMBER", contractPlanNumber); //付款前提 DataOperatorUtil.copyJBOSet(LC_PAY_CONDTION.CLASS_NAME, fromCondition, LC_PAY_CONDTION_TEMP.CLASS_NAME, null, otherProperty, null, tx); - } } //合同层 单次起租 临时 到正式 public void tempToContractOne(String flowunid,String contractid,JBOTransaction tx) throws Exception{ - + BizObject contract=JBOFactory.createBizObjectQuery(LB_CONTRACT_INFO_TEMP.CLASS_NAME,"flowunid=:flowunid").setParameter("flowunid", flowunid).getSingleResult(false); - + String paymentNumber=SerialNumberUtil.getPlannumber(contract.getAttribute("CONTRACT_NO").getString(),"pay_process", tx); - - + + Map fromCondition=new HashMap(); fromCondition.put("FLOWUNID", flowunid); - + Map toCondition=new HashMap(); toCondition.put("contract_id", contractid); - + Map otherProperty=new HashMap(); otherProperty.put("contract_id", contractid); otherProperty.put("PAYMENT_NUMBER", paymentNumber); @@ -239,7 +210,10 @@ public class CalcConditionCopyService { DataOperatorUtil.copyJBOSet(LC_CALC_PERIOD_TEMP.CLASS_NAME, fromCondition, LC_CONTRACT_PERIOD.CLASS_NAME, toCondition, otherProperty, null, tx); //分段测算 DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION_TEMP.CLASS_NAME, fromCondition, LC_CONTRACT_SUBSECTION.CLASS_NAME, toCondition, otherProperty, null, tx); - + // 分段融导表 + DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION_INFO_TEMP.CLASS_NAME, fromCondition, LC_CONTRACT_SUBSECTION_INFO.CLASS_NAME, toCondition, otherProperty, null, tx); + // 分段租金计划导表 + DataOperatorUtil.copyJBOSet(LC_SUBSECTION_RENT_PLAN_TEMP.CLASS_NAME, fromCondition, LC_CONTRACT_SUBSECTION_RENT_PLAN.CLASS_NAME, toCondition, otherProperty, null, tx); //商务条件 DataOperatorUtil.copyJBOSet(LC_CALC_CONDITION_TEMP.CLASS_NAME, fromCondition,LC_CALC_CONDITION.CLASS_NAME, toCondition, otherProperty, null, tx); @@ -255,22 +229,27 @@ public class CalcConditionCopyService { DataOperatorUtil.copyJBOSet(LC_CALC_PERIOD_TEMP.CLASS_NAME, fromCondition, LC_CALC_PERIOD.CLASS_NAME, toCondition, otherProperty, null, tx); //分段测算 DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION_TEMP.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION.CLASS_NAME, toCondition, otherProperty, null, tx); + // 分段融导表 + DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION_INFO_TEMP.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_INFO.CLASS_NAME, toCondition, otherProperty, null, tx); + // 分段租金计划导表 + DataOperatorUtil.copyJBOSet(LC_SUBSECTION_RENT_PLAN_TEMP.CLASS_NAME, fromCondition, LC_SUBSECTION_RENT_PLAN.CLASS_NAME, toCondition, otherProperty, null, tx); + //付款前提 LeaseFlowBaseService service=new LeaseFlowBaseServiceImp(); service.copyOrLoadPayCondtionInfo(tx, fromCondition,toCondition,otherProperty, ServiceOperatorEnum.TempToFormal,null); - + HandlingApportionManager.setSingleHandlingApportion(flowunid,contractid,paymentNumber,tx); } - + //合同层 多次起租 临时 到正式 public void tempToContractMany(String flowunid,String contractid,JBOTransaction tx) throws Exception{ - + Map fromCondition=new HashMap(); fromCondition.put("FLOWUNID", flowunid); - + Map toCondition=new HashMap(); toCondition.put("contract_id", contractid); - + Map otherProperty=new HashMap(); otherProperty.put("contract_id", contractid); //商务条件 @@ -287,17 +266,22 @@ public class CalcConditionCopyService { DataOperatorUtil.copyJBOSet(LC_CALC_PERIOD_TEMP.CLASS_NAME, fromCondition, LC_CONTRACT_PERIOD.CLASS_NAME, toCondition, otherProperty, null, tx); //分段测算 DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION_TEMP.CLASS_NAME, fromCondition, LC_CONTRACT_SUBSECTION.CLASS_NAME, toCondition, otherProperty, null, tx); + // 分段融导表 + DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION_INFO_TEMP.CLASS_NAME, fromCondition, LC_CONTRACT_SUBSECTION_INFO.CLASS_NAME, toCondition, otherProperty, null, tx); + // 分段租金计划导表 + DataOperatorUtil.copyJBOSet(LC_SUBSECTION_RENT_PLAN_TEMP.CLASS_NAME, fromCondition, LC_CONTRACT_SUBSECTION_RENT_PLAN.CLASS_NAME, toCondition, otherProperty, null, tx); + //付款前提 LeaseFlowBaseService service=new LeaseFlowBaseServiceImp(); service.copyOrLoadPayCondtionInfo(tx, fromCondition,toCondition,otherProperty, ServiceOperatorEnum.TempToFormal,null); } - + //合同正式到临时 public void contractTotemp(String flowunid,String contractid,JBOTransaction tx) throws Exception{ - + Map fromCondition=new HashMap(); fromCondition.put("contract_id", contractid); - + Map otherProperty=new HashMap(); otherProperty.put("FLOWUNID", flowunid); //商务条件 @@ -314,21 +298,26 @@ public class CalcConditionCopyService { DataOperatorUtil.copyJBOSet(LC_CONTRACT_PERIOD.CLASS_NAME, fromCondition, LC_CALC_PERIOD_TEMP.CLASS_NAME, null, otherProperty, null, tx); //分段测算 DataOperatorUtil.copyJBOSet(LC_CONTRACT_SUBSECTION.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_TEMP.CLASS_NAME, null, otherProperty, null, tx); + // 分段融导表 + DataOperatorUtil.copyJBOSet(LC_CONTRACT_SUBSECTION_INFO.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_INFO_TEMP.CLASS_NAME, null, otherProperty, null, tx); + // 分段租金计划导表 + DataOperatorUtil.copyJBOSet(LC_CONTRACT_SUBSECTION_RENT_PLAN.CLASS_NAME, fromCondition, LC_SUBSECTION_RENT_PLAN_TEMP.CLASS_NAME, null, otherProperty, null, tx); + } - + //临时到投放 public void tempToPay(String flowunid,String paymentNumber,JBOTransaction tx) throws Exception{ - + BizObject flow=JBOFactory.createBizObjectQuery(FLOW_BUSSINESS_OBJECT.CLASS_NAME,"flow_unid=:flowunid").setParameter("flowunid", flowunid).getSingleResult(false); - + String contractid=flow.getAttribute("contract_id").getString(); - + Map fromCondition=new HashMap(); fromCondition.put("PAYMENT_NUMBER", paymentNumber); fromCondition.put("flowunid", flowunid); Map toCondition=new HashMap(); toCondition.put("PAYMENT_NUMBER", paymentNumber); - + Map otherProperty=new HashMap(); otherProperty.put("contract_id", contractid); //商务条件 @@ -345,15 +334,19 @@ public class CalcConditionCopyService { DataOperatorUtil.copyJBOSet(LC_CALC_PERIOD_TEMP.CLASS_NAME, fromCondition, LC_CALC_PERIOD.CLASS_NAME, toCondition, otherProperty, null, tx); //分段测算 DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION_TEMP.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION.CLASS_NAME, toCondition, otherProperty, null, tx); - + // 分段融导表 + DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION_INFO_TEMP.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_INFO.CLASS_NAME, toCondition, otherProperty, null, tx); + // 分段租金计划导表 + DataOperatorUtil.copyJBOSet(LC_SUBSECTION_RENT_PLAN_TEMP.CLASS_NAME, fromCondition, LC_SUBSECTION_RENT_PLAN.CLASS_NAME, toCondition, otherProperty, null, tx); + HandlingApportionManager.setHandlingApportion(flowunid,contractid,paymentNumber,tx); } //投放到临时 public void payToTemp(String flowunid,String paymentNumber,JBOTransaction tx) throws Exception{ - + Map fromCondition=new HashMap(); fromCondition.put("PAYMENT_NUMBER", paymentNumber); - + Map otherProperty=new HashMap(); otherProperty.put("FLOWUNID", flowunid); //商务条件 @@ -370,21 +363,24 @@ public class CalcConditionCopyService { DataOperatorUtil.copyJBOSet(LC_CALC_PERIOD.CLASS_NAME, fromCondition, LC_CALC_PERIOD_TEMP.CLASS_NAME, null, otherProperty, null, tx); //分段测算 DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_TEMP.CLASS_NAME, null, otherProperty, null, tx); - + // 分段融导表 + DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION_INFO.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_INFO_TEMP.CLASS_NAME, null, otherProperty, null, tx); + // 分段租金计划导表 + DataOperatorUtil.copyJBOSet(LC_SUBSECTION_RENT_PLAN.CLASS_NAME, fromCondition, LC_SUBSECTION_RENT_PLAN_TEMP.CLASS_NAME, null, otherProperty, null, tx); } //临时到起租 public void tempToOnhire(String flowunid,String paymentNumber,String contractid,JBOTransaction tx) throws Exception{ - + Map fromCondition=new HashMap(); fromCondition.put("FLOWUNID", flowunid); fromCondition.put("PAYMENT_NUMBER", paymentNumber); - + Map toCondition=new HashMap(); toCondition.put("PAYMENT_NUMBER", paymentNumber); - + Map otherProperty=new HashMap(); otherProperty.put("contract_id", contractid); - + CalcRentCompare com=new CalcRentCompare(); //商务条件 DataOperatorUtil.copyJBOSet(LC_CALC_CONDITION_TEMP.CLASS_NAME, fromCondition,LC_CALC_CONDITION.CLASS_NAME, toCondition, otherProperty, null, tx); @@ -394,14 +390,18 @@ public class CalcConditionCopyService { DataOperatorUtil.copyJBOSet(LC_FUND_PLAN_TEMP.CLASS_NAME, fromCondition,LC_FUND_PLAN.CLASS_NAME, toCondition, otherProperty, com, tx); //现金流 DataOperatorUtil.copyJBOSet(LC_CASH_FLOW_TEMP.CLASS_NAME, fromCondition, LC_CASH_FLOW.CLASS_NAME, toCondition, otherProperty, null, tx); - + // 分段融导表 + DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION_INFO_TEMP.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_INFO.CLASS_NAME, toCondition, otherProperty, null, tx); + // 分段租金计划导表 + DataOperatorUtil.copyJBOSet(LC_SUBSECTION_RENT_PLAN_TEMP.CLASS_NAME, fromCondition, LC_SUBSECTION_RENT_PLAN.CLASS_NAME, toCondition, otherProperty, null, tx); + //HandlingApportionManager.setHandlingApportion(flowunid,contractid,paymentNumber,tx); } //起租到临时 public void onhireToTemp(String flowunid,String paymentNumber,JBOTransaction tx) throws Exception{ Map fromCondition=new HashMap(); fromCondition.put("PAYMENT_NUMBER", paymentNumber); - + Map otherProperty=new HashMap(); otherProperty.put("FLOWUNID", flowunid); //商务条件 @@ -418,13 +418,17 @@ public class CalcConditionCopyService { DataOperatorUtil.copyJBOSet(LC_CALC_PERIOD.CLASS_NAME, fromCondition, LC_CALC_PERIOD_TEMP.CLASS_NAME, null, otherProperty, null, tx); //分段测算 DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_TEMP.CLASS_NAME, null, otherProperty, null, tx); + // 分段融导表 + DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION_INFO.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_INFO_TEMP.CLASS_NAME, null, otherProperty, null, tx); + // 分段租金计划导表 + DataOperatorUtil.copyJBOSet(LC_SUBSECTION_RENT_PLAN.CLASS_NAME, fromCondition, LC_SUBSECTION_RENT_PLAN_TEMP.CLASS_NAME, null, otherProperty, null, tx); } - + //起租到临时 public void onhireToTempList(String flowunid,String contractid,JBOTransaction tx) throws Exception{ Map fromCondition=new HashMap(); fromCondition.put("contract_id", contractid); - + Map otherProperty=new HashMap(); otherProperty.put("FLOWUNID", flowunid); //商务条件 @@ -450,6 +454,10 @@ public class CalcConditionCopyService { DataOperatorUtil.copyJBOSet(LC_CALC_PERIOD.CLASS_NAME, fromCondition, LC_CALC_PERIOD_TEMP.CLASS_NAME, null, otherProperty, null, tx); //分段测算 DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_TEMP.CLASS_NAME, null, otherProperty, null, tx); + // 分段融导表 + DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION_INFO.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_INFO_TEMP.CLASS_NAME, null, otherProperty, null, tx); + // 分段租金计划导表 + DataOperatorUtil.copyJBOSet(LC_SUBSECTION_RENT_PLAN.CLASS_NAME, fromCondition, LC_SUBSECTION_RENT_PLAN_TEMP.CLASS_NAME, null, otherProperty, null, tx); } //租金计划历史 public void onhireToHis(String flowunid,String paymentNumber,JBOTransaction tx) throws Exception{ @@ -463,6 +471,10 @@ public class CalcConditionCopyService { DataOperatorUtil.copyJBOSet(LC_RENT_PLAN.CLASS_NAME, fromCondition,LC_RENT_PLAN_HIS.CLASS_NAME, null, other, null, tx); //现金流 DataOperatorUtil.copyJBOSet(LC_CASH_FLOW.CLASS_NAME, fromCondition, LC_CASH_FLOW_HIS.CLASS_NAME, null, other, null, tx); + // 分段融导表 + DataOperatorUtil.copyJBOSet(LC_CALC_SUBSECTION_INFO.CLASS_NAME, fromCondition, LC_CALC_SUBSECTION_INFO_HIS.CLASS_NAME, null, other, null, tx); + // 分段租金计划导表 + DataOperatorUtil.copyJBOSet(LC_SUBSECTION_RENT_PLAN.CLASS_NAME, fromCondition, LC_SUBSECTION_RENT_PLAN_HIS.CLASS_NAME, null, other, null, tx); } - + } diff --git a/calc/com/tenwa/reckon/help/ConditionHelper.java b/calc/com/tenwa/reckon/help/ConditionHelper.java index 0b1717844..7a7eecc01 100644 --- a/calc/com/tenwa/reckon/help/ConditionHelper.java +++ b/calc/com/tenwa/reckon/help/ConditionHelper.java @@ -81,7 +81,9 @@ public class ConditionHelper { //更新保证金抵扣 params.put("CAUTION_DEDUCTION_MONEY",cb.getCautionDeductionMoney()); params.put("CAUTION_MONEY_REMAIN",cb.getCautionMoneyRemain()); - + if( "segmented_financing".equals( cb.getSettleMethod() ) ){ + params.put( "COMPREHENSIVE_RATE",cb.getComprehensiveRate() ); + } if ( "Y".equals( cb.getFlexible() ) ) { // 灵活产品计算其他项 try { diff --git a/calc/com/tenwa/reckon/product/ProductCondition.java b/calc/com/tenwa/reckon/product/ProductCondition.java index 041967437..9a2174ab0 100644 --- a/calc/com/tenwa/reckon/product/ProductCondition.java +++ b/calc/com/tenwa/reckon/product/ProductCondition.java @@ -1,5 +1,6 @@ package com.tenwa.reckon.product; +import java.math.BigDecimal; import java.util.Calendar; import java.util.HashMap; import java.util.List; @@ -7,6 +8,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Vector; +import com.amarsoft.are.jbo.BizObjectManager; import jbo.com.tenwa.lease.comm.CONFIGURATE; import jbo.prd.BUSINESS_TYPE; import jbo.sys.CODE_LIBRARY; @@ -32,13 +34,13 @@ public class ProductCondition { * @return * @throws Exception */ - public String getProductRules(ASObjectModel doTemp,String productId,Vector vali) throws Exception{ + public String getProductRules(ASObjectModel doTemp, String productId, Vector vali, String flowunid) throws Exception{ doTemp.setDefaultValue("LEASE_AMT_DATE", DateUtil.getToday()); StringBuilder sb=new StringBuilder(); sb.append("{"); sb.append("'fund':"+getProductFundRules(doTemp, productId,vali));//资金配置项 sb.append(",'grace':"+this.getProductGraceRules(doTemp, productId, vali));//宽限期 - sb.append(",'method':"+this.getProductSettleRules(doTemp, productId));//计算方式 + sb.append(",'method':"+this.getProductSettleRules(doTemp, productId, flowunid));//计算方式 sb.append(",'incomeNumber':"+this.getIncomeNumber(productId)); sb.append("}"); setRentOrRate(doTemp, productId);//租金推算方法 @@ -50,7 +52,7 @@ public class ProductCondition { this.getCautionRatio(doTemp, productId);//保证金比例 return sb.toString(); } - + public String getProductRulesBusiness(ASObjectModel doTemp,String productId,Vector vali) throws Exception{ doTemp.setDefaultValue("LEASE_AMT_DATE", DateUtil.getToday()); StringBuilder sb=new StringBuilder(); @@ -68,7 +70,7 @@ public class ProductCondition { this.getCautionRatio(doTemp, productId);//保证金比例 return sb.toString(); } - + public String getProductRulesApp(List> appList,String productId,Vector vali) throws Exception{ ProductBaseLoanTools.addAppList(appList, "LEASE_AMT_DATE", "coldefaultvalue", DateUtil.getToday()); StringBuilder sb=new StringBuilder(); @@ -86,12 +88,12 @@ public class ProductCondition { this.getCautionRatioApp(appList, productId);//保证金比例 return sb.toString(); } - + /** * 设置日期 * @param doTemp * @param productId - * @throws Exception + * @throws Exception */ public void setDateRule(ASObjectModel doTemp,String productId) throws Exception{ Map> map=ProductParamUtil.getProductComponentType(productId, "PRD0340"); @@ -116,7 +118,7 @@ public class ProductCondition { doTemp.setColumnAttribute("PLAN_DATE_HOILDAY", "colvisible", "1"); doTemp.setColumnAttribute("PLAN_DATE_HOILDAY", "colrequired", "1"); } - + } } if(map.containsKey("InterestDate")){//计息日 @@ -140,7 +142,7 @@ public class ProductCondition { doTemp.setColumnAttribute("INTEREST_DATE_HOLIDAY", "colvisible", "1"); doTemp.setColumnAttribute("INTEREST_DATE_HOLIDAY", "colrequired", "1"); } - + } } if(map.containsKey("RateInfo")){ @@ -148,7 +150,7 @@ public class ProductCondition { doTemp.setDefaultValue("ADDITIONAL_RATE", map.get("RateInfo").get("AdditionalRate")); } } - + public void setDateRuleApp(List> appList,String productId) throws Exception{ Map> map=ProductParamUtil.getProductComponentType(productId, "PRD0340"); Map PLAN_DATE_HOILDAY = new HashMap(); @@ -195,7 +197,7 @@ public class ProductCondition { } } } - + if(map.containsKey("InterestDate")){//计息日 Map plandatemap=map.get("InterestDate"); if(plandatemap.containsKey("HolidayAdjust")){ @@ -208,7 +210,7 @@ public class ProductCondition { if(plandatemap.containsKey("date_proc")){ String s=plandatemap.get("date_proc"); if(s.indexOf("1")>=0){ - + FIRST_INTEREST_DATE.put("colvisible", "1"); FIRST_INTEREST_DATE.put("colrequired", "1"); appList.add(FIRST_INTEREST_DATE); @@ -223,7 +225,7 @@ public class ProductCondition { INTEREST_DATE_HOLIDAY.put("colrequired", "1"); appList.add(INTEREST_DATE_HOLIDAY); } - + } } if(map.containsKey("RateInfo")){ @@ -233,7 +235,7 @@ public class ProductCondition { appList.add(ADDITIONAL_RATE); } } - + /** * 项目粗利 净融资额 期初付款总计 是否显示 * @param doTemp @@ -267,12 +269,12 @@ public class ProductCondition { ProductBaseLoanTools.addAppList(appList, "FIRST_PAYMENT_TOTAL", "colvisible", "0"); } } - + /** * 设置租金推算方法 下拉选项 * @param doTemp * @param productId - * @throws Exception + * @throws Exception */ public void setRentOrRate(ASObjectModel doTemp,String productId) throws Exception{ Map> map=ProductParamUtil.getProductComponentType(productId, "PRD0310"); @@ -287,10 +289,10 @@ public class ProductCondition { doTemp.setColumnAttribute("RENT_OR_RATE","coleditsource","jbo.sys.CODE_LIBRARY,itemno,itemname,codeno='rent_or_rate' and itemno in ("+s+") order by sortno"); } } - - + + } - + public void setRentOrRateApp(List> appList,String productId) throws Exception{ Map> map=ProductParamUtil.getProductComponentType(productId, "PRD0310"); if(map.containsKey("ROR01")){ @@ -305,10 +307,10 @@ public class ProductCondition { + "itemno,itemname,codeno='rent_or_rate' and itemno in ("+s+") order by sortno"); } } - - + + } - + /** * 获取产品配置的资金项 * @param productId @@ -338,7 +340,7 @@ public class ProductCondition { } return list; } - + /** * 获取产品 资金类型 配置 显示页面 * @param doTemp @@ -371,7 +373,7 @@ public class ProductCondition { if(!"".equals(cautionMoneymethod)&&cautionMoneymethod!=null){ doTemp.setDefaultValue("CAUTION_MONEY_METHOD",cautionMoneymethod); } - + if("Y".equals(fina)){ fina = "finatype02"; }else { @@ -420,7 +422,7 @@ public class ProductCondition { sb.append("}"); return sb.toString(); } - + @SuppressWarnings("unchecked") public String getProductFundRulesApp(List> appList,String productId,Vector vali) throws Exception{ StringBuilder sb=new StringBuilder(); @@ -442,7 +444,7 @@ public class ProductCondition { if(!"".equals(cautionMoneymethod)&&cautionMoneymethod!=null){ ProductBaseLoanTools.addAppList(appList, "CAUTION_MONEY_METHOD", "coldefaultvalue", cautionMoneymethod); } - + if("Y".equals(fina)){ fina = "finatype02"; }else { @@ -459,7 +461,7 @@ public class ProductCondition { ProductBaseLoanTools.addAppList(appList, col+"_FINA", "colvisible", "0"); } ProductBaseLoanTools.addAppList(appList, col, "colvisible", "0"); - + if(fee.getAttribute("itemno").getString().equals("feetype2")){ ProductBaseLoanTools.addAppList(appList, "CAUTION_DEDUCTION_MONEY", "colvisible", "0"); ProductBaseLoanTools.addAppList(appList, "CAUTION_MONEY_REMAIN", "colvisible", "0"); @@ -495,7 +497,7 @@ public class ProductCondition { sb.append("}"); return sb.toString(); } - + /** * 宽限期最大值 * @param doTemp @@ -504,7 +506,7 @@ public class ProductCondition { * @throws Exception */ public String getProductGraceRules(ASObjectModel doTemp,String productId,Vector vali) throws Exception{ - + Map rule=new HashMap(); //获取产品其它 Map> map=ProductParamUtil.getProductComponentType(productId, "PRD0311"); @@ -524,9 +526,9 @@ public class ProductCondition { } return FileOperatorUtil.getMapToJsonStr(rule); } - + public String getProductGraceRulesApp(List> appList,String productId,Vector vali) throws Exception{ - + Map rule=new HashMap(); //获取产品其它 Map> map=ProductParamUtil.getProductComponentType(productId, "PRD0311"); @@ -549,10 +551,10 @@ public class ProductCondition { * 设置 第一期还款计划 第二期还款计划 期末余值 是否显示 * @param doTemp * @param productId - * @throws Exception + * @throws Exception */ public void getOtherRule(ASObjectModel doTemp,String productId) throws Exception{ - + String[] param={"EQUIP_END_VALUE"}; //获取产品其它 Map> map=ProductParamUtil.getProductComponentType(productId, "PRD0311"); @@ -562,11 +564,11 @@ public class ProductCondition { doTemp.setColumnAttribute(param[i], "colrequired", "1"); } } - + } - + public void getOtherRuleApp(List> appList,String productId) throws Exception{ - + String[] param={"EQUIP_END_VALUE"}; //获取产品其它 Map> map=ProductParamUtil.getProductComponentType(productId, "PRD0311"); @@ -576,7 +578,7 @@ public class ProductCondition { ProductBaseLoanTools.addAppList(appList, param[i], "colrequired", "1"); } } - + } /** @@ -606,9 +608,9 @@ public class ProductCondition { if(attribute2!=""&&"car_product".equals(attribute2)){ day = (bo==null)?"":bo.getAttribute("ATTR_VALUE").getString(); } - + doTemp.setDefaultValue("FREE_DEFA_INTER_DAY", day); - + if(map.containsKey("PENALTY_RATE_DAY")){//罚息日利率 String rate=map.get("PENALTY_RATE_DAY").get("PENALTY_RATE_DAY"); if(rate.length()>0){ @@ -619,7 +621,7 @@ public class ProductCondition { } } } - + public void getProductPenaRulesApp(List> appList,String productId) throws Exception{ Map> map=ProductParamUtil.getProductComponentType(productId, "PRD0308"); /*if(map.containsKey("PFD01")){//免罚息天数 @@ -645,7 +647,7 @@ public class ProductCondition { } } } - + /** * 设置调息规则 * @param doTemp @@ -666,7 +668,7 @@ public class ProductCondition { doTemp.setColumnAttribute("ADJUST_STYLE","coleditsource","jbo.sys.CODE_LIBRARY,itemno,itemname,codeno='adjust_style' and itemno in ("+this.getSqlWhere(rule.get("adjust_style"))+") order by sortno"); //调息方式 doTemp.setColumnAttribute("ADJUST_TYPE","coleditsource","jbo.sys.CODE_LIBRARY,itemno,itemname,codeno='adjust_type' and itemno in ("+this.getSqlWhere(rule.get("rate_float_type"))+") order by sortno"); - + }*/ if(null != rule.get("rate_float_type") && null != rule.get("adjust_style")) { //调息方式 @@ -676,7 +678,7 @@ public class ProductCondition { } } } - + public void getProductAdjustRulesApp(List> appList,String productId) throws Exception{ Map> map=ProductParamUtil.getProductComponentType(productId, "PRD0320"); if(map.containsKey("ADJUST_INTEREST")){ @@ -696,21 +698,21 @@ public class ProductCondition { * @return * @throws Exception */ - public String getProductSettleRules(ASObjectModel doTemp,String productId) throws Exception{ + public String getProductSettleRules(ASObjectModel doTemp, String productId, String flowunid) throws Exception{ //租金计算方式 Map> map=ProductParamUtil.getProductComponentType(productId, "PRD0301"); //分段 Map> submap=ProductParamUtil.getProductComponentType(productId, "PRD0321"); String s=""; - + String sJson=""; for(Map.Entry> entry:map.entrySet()){ if(s.length()>0)s+=","; s+="'"+entry.getKey()+"'"; if(sJson.length()>0)sJson+=","; sJson+="'"+entry.getKey()+"':"+FileOperatorUtil.getMapToJsonStr(entry.getValue()); - + if(entry.getKey().equals( doTemp.getColumnAttribute("SETTLE_METHOD", "coldefaultvalue"))){ Map values=entry.getValue(); if(values.containsKey("HolidayAdjust")){ @@ -746,7 +748,7 @@ public class ProductCondition { if(s.length()>0)s+=","; s+="'even_subsection'"; } - + /*if(s.indexOf("even_rent") != -1) { s = "'even_rent'"; } else if(s.indexOf("even_corpus") != -1) { @@ -757,11 +759,70 @@ public class ProductCondition { // doTemp.setReadOnly("SETTLE_METHOD", true); doTemp.setColumnAttribute("SETTLE_METHOD","coleditsource","jbo.sys.CODE_LIBRARY,itemno,itemname,codeno='settle_method' and itemno in ("+s+") order by sortno"); doTemp.setDefaultValue("SETTLE_METHOD", s.replaceAll("'", "")); - - + + if ( "'segmented_financing'".equals( s ) ) { + BizObjectManager bom = JBOFactory.getBizObjectManager( "jbo.app.tenwa.calc.LC_CALC_SUBSECTION_INFO_TEMP" ); + List bos = bom.createQuery( "flowunid = :flowunid" ).setParameter( "flowunid", flowunid ).getResultList( false ); + if ( bos.size() == 0 ) { + Map>> configs = ProductParamUtil.getProductComponentDecisionTable( productId, "PRD0301", + "Rate", "Discount", "DiscountRate", "DiscountCalcMethod", "IsBalanceLending", "DiscountCollectionPeriod", "MaximumDiscount" , + "isFixedDiscount","isUpdateLeaseMoneyRatio","maxLeaseMoney","MinimumDiscount","MaxincomeNumber","MinincomeNumber","MinLeaseMoney"); + List> sf = configs.get( "segmented_financing" ); + int i = 1; + String discountCalcMethod = null ; + for ( Map f : sf ) { + if(discountCalcMethod == null || discountCalcMethod.isEmpty()){ + discountCalcMethod = f.get("DiscountCalcMethod"); + } + //String discountCalcMethod = f.get( "DiscountCalcMethod" ); + BizObject bo = bom.newObject(); + bo.setAttributeValue( "SUBSECTION_NUMBER", i ); + bo.setAttributeValue( "RATE", f.get( "Rate" ) ); + bo.setAttributeValue( "DISCOUNT_CALC_METHOD", discountCalcMethod ); + if ( "1".equals( discountCalcMethod ) ) { + bo.setAttributeValue( "DISCOUNT_RATE", f.get( "DiscountRate" ) ); + bo.setAttributeValue( "FINANCING_RATE", f.get( "DiscountRate" ) ); + } else if( "2".equals( discountCalcMethod ) ){ + bo.setAttributeValue( "DISCOUNT", f.get( "Discount" ) ); + }else if ( "3".equals( discountCalcMethod ) ){ + bo.setAttributeValue( "DISCOUNT_RATE", f.get( "DiscountRate" ) ); + bo.setAttributeValue( "FINANCING_RATE", f.get( "DiscountRate" ) ); + bo.setAttributeValue( "DISCOUNT", f.get( "Discount" ) ); + } + String isBalanceLending = f.get( "IsBalanceLending" ); + bo.setAttributeValue( "IS_BALANCE_LENDING", isBalanceLending ); + if ( "Y".equals( isBalanceLending ) ) { + bo.setAttributeValue( "DISCOUNT_COLLECTION_PERIOD", "0" ); + } else { + bo.setAttributeValue( "DISCOUNT_COLLECTION_PERIOD", f.get( "DiscountCollectionPeriod" ) ); + } + bo.setAttributeValue( "MAXIMUM_DISCOUNT", f.get( "MaximumDiscount" ) ); + bo.setAttributeValue( "FLOWUNID", flowunid ); + //根据产品配置期次,如果配置赋值给对应的值 + String MinincomeNumber = f.get( "MinincomeNumber" ); + String MaxincomeNumber = f.get( "MaxincomeNumber" ); + if(MinincomeNumber != null && MaxincomeNumber != null && new BigDecimal(MinincomeNumber).compareTo(new BigDecimal(MaxincomeNumber))==0 ){ + bo.setAttributeValue( "IS_ONLYREAD_INCOME_NUMBER", "Y" ); + bo.setAttributeValue( "INCOME_NUMBER", MaxincomeNumber ); + }else{ + bo.setAttributeValue( "IS_ONLYREAD_INCOME_NUMBER", "N" ); + } + bo.setAttributeValue( "MAX_INCOME_NUMBER", MaxincomeNumber ); + bo.setAttributeValue( "MIN_INCOME_NUMBER", MinincomeNumber ); + + bo.setAttributeValue( "IS_FIXED_DISCOUNT", f.get( "isFixedDiscount" ) ); + bo.setAttributeValue( "IS_UPDATE_LEASE_MONEY_RATIO", f.get( "isUpdateLeaseMoneyRatio" ) ); + bo.setAttributeValue( "MAX_LEASE_MONEY", f.get( "maxLeaseMoney" ) ); + bo.setAttributeValue( "MIN_LEASE_MONEY", f.get( "MinLeaseMoney" ) ); + bo.setAttributeValue( "MINIMUM_DISCOUNT", f.get( "MinimumDiscount" ) ); + bom.saveObject( bo ); + i ++; + } + } + } return "{"+sJson+"}"; } - + /** * 设置计算方式 * @param doTemp @@ -776,14 +837,14 @@ public class ProductCondition { //分段 Map> submap=ProductParamUtil.getProductComponentType(productId, "PRD0321"); String s=""; - + String sJson=""; for(Map.Entry> entry:map.entrySet()){ if(s.length()>0)s+=","; s+="'"+entry.getKey()+"'"; if(sJson.length()>0)sJson+=","; sJson+="'"+entry.getKey()+"':"+FileOperatorUtil.getMapToJsonStr(entry.getValue()); - + if(entry.getKey().equals( doTemp.getColumnAttribute("SETTLE_METHOD", "coldefaultvalue"))){ Map values=entry.getValue(); if(values.containsKey("HolidayAdjust")){ @@ -807,7 +868,7 @@ public class ProductCondition { if(s.length()>0)s+=","; s+="'even_subsection'"; } - + /*if(s.indexOf("even_rent") != -1) { s = "'even_rent'"; } else if(s.indexOf("even_corpus") != -1) { @@ -818,12 +879,12 @@ public class ProductCondition { // doTemp.setReadOnly("SETTLE_METHOD", true); doTemp.setColumnAttribute("SETTLE_METHOD","coleditsource","jbo.sys.CODE_LIBRARY,itemno,itemname,codeno='settle_method' and itemno in ("+s+") order by sortno"); doTemp.setDefaultValue("SETTLE_METHOD", s.replaceAll("'", "")); - - + + return "{"+sJson+"}"; } - - + + public String getProductSettleRulesApp(List> appList,String productId) throws Exception{ //租金计算方式 @@ -831,7 +892,7 @@ public class ProductCondition { //分段 Map> submap=ProductParamUtil.getProductComponentType(productId, "PRD0321"); String s=""; - + String sJson=""; for(Map.Entry> entry:map.entrySet()){ if(s.length()>0)s+=","; @@ -884,10 +945,10 @@ public class ProductCondition { ProductBaseLoanTools.addAppList(appList, "SETTLE_METHOD", "colreadonly", "1"); ProductBaseLoanTools.addAppList(appList, "SETTLE_METHOD", "coleditsource", "jbo.sys.CODE_LIBRARY,itemno,itemname,codeno='settle_method' and itemno in ("+s+") order by sortno"); ProductBaseLoanTools.addAppList(appList, "SETTLE_METHOD", "coldefaultvalue", s.replaceAll("'", "")); - + return "{"+sJson+"}"; } - + /** * 获取产品 资金类型 配置 添加列 * @param doTemp @@ -901,7 +962,7 @@ public class ProductCondition { Map> map=ProductParamUtil.getProductComponentType(productId, "PRD0315"); for(String key:map.keySet()){ if(!("EQUIP_AMT".equals(key)||"FIRST_PAYMENT".equals(key))){//设备款和首付款不管 - if("feetype_test".equals(key)){//测试费用 + if("feetype_test".equals(key)){//测试费用 doTemp.Columns.add(this.prodSer.createFeeCol(key, map.get(key))); doTemp.Columns.add(this.prodSer.createFeeColRatio(key, map.get(key))); } @@ -909,7 +970,7 @@ public class ProductCondition { } } /** - * + * * APP * 获取产品 资金类型 配置 添加列 * @param doTemp @@ -922,14 +983,14 @@ public class ProductCondition { Map> map=ProductParamUtil.getProductComponentType(productId, "PRD0315"); for(String key:map.keySet()){ if(!("EQUIP_AMT".equals(key)||"FIRST_PAYMENT".equals(key))){//设备款和首付款不管 - if("feetype_test".equals(key)){//测试费用 + if("feetype_test".equals(key)){//测试费用 this.prodSer.createFeeColApp(appList, key, map.get(key)); this.prodSer.createFeeColRatioApp(appList, key, map.get(key)); } } } } - + public String getSqlWhere(String condition){ String[] conds=condition.split(","); String s=""; @@ -939,7 +1000,7 @@ public class ProductCondition { } return s; } - + public String getIncomeNumber(String productId) throws Exception{ StringBuilder sb=new StringBuilder(); sb.append("{"); @@ -951,7 +1012,7 @@ public class ProductCondition { sb.append("}"); return sb.toString(); } - + //获取期数等 public void getCautionRatio(ASObjectModel doTemp,String productId) throws Exception{ //测算年利率字段 @@ -965,7 +1026,7 @@ public class ProductCondition { // doTemp.setDefaultValue("INCOME_NUMBER",incomeNumber); /*String periodType = productRate.get("begin_end") == null ? "period_type_0" : productRate.get("begin_end"); doTemp.setDefaultValue("PERIOD_TYPE",periodType)*/; - + String ProductType = productRate.get("ProductType") == null ? "0" : productRate.get("ProductType"); String isReadOnly = productRate.get("ProductRateReadOnly") == null ? "Y" : productRate.get("ProductRateReadOnly"); String YEAR_RATE = productRate.get("ProductRate") == null ? "0" : productRate.get("ProductRate"); @@ -979,7 +1040,7 @@ public class ProductCondition { doTemp.setDefaultValue("YEAR_RATE",YEAR_RATE); } } - + public void getCautionRatioApp(List> appList, String productId) throws Exception{ //测算年利率字段 Map> productRates = ProductParamUtil.getProductComponentType(productId, "PRD0350"); diff --git a/calc/com/tenwa/reckon/util/IrrTools.java b/calc/com/tenwa/reckon/util/IrrTools.java index 1f8138c69..821279350 100644 --- a/calc/com/tenwa/reckon/util/IrrTools.java +++ b/calc/com/tenwa/reckon/util/IrrTools.java @@ -17,7 +17,7 @@ import com.tenwa.reckon.constant.Scale; import com.tenwa.reckon.exception.LeasingException; /** - * + * * @author SHIHONGFEI * @version 1.0 * @copyright (C) TENWA 2011 @@ -27,9 +27,9 @@ import com.tenwa.reckon.exception.LeasingException; public class IrrTools { /** - * + * * ( 根据配置信息构建现金流执行语句,如有其它现金流信息的可在此构建时修改) - * + * * @param cfgb_list * @param tcb * @return @@ -55,9 +55,9 @@ public class IrrTools { } /** - * + * * ( 得到去除重复的时间集合,返回一个含有一个时间,对应他的现金集合的下标的键值对 ,如按天则substring(0, 7)需处理) - * + * * @param ccfbList * @return */ @@ -80,9 +80,9 @@ public class IrrTools { } /** - * + * * ( 根据时间得到新的现金流集合 ) - * + * * @param ht_date 现金流对应日期 * @param cdbList 现金流集合 * @return @@ -106,10 +106,10 @@ public class IrrTools { String quot_id = "";// 报价编号 String contract_id = ""; // 合同号 String plan_date = obj[i].toString();// 日期 - + String fund_in = "0"; // 流入量 String fund_in_details = ""; // 流入量清单 - + String fund_out = "0"; // 流出量 String fund_out_details = ""; // 流出量清单 @@ -152,7 +152,7 @@ public class IrrTools { /** * 根据租金现金流,偿还间隔,租金间隔,年还款次数测算irr - * + * * @param l_inflow_pour所有现金流入流出 * @param chjg偿还间隔 * @param zjjg租金间隔 @@ -235,7 +235,7 @@ public class IrrTools { /** * XIRR计算公式 参数1 l_inflow_pour 是对于的现金流,参数2l_date 是对于的现金流时间 这个需要一一对于.
* 这个算法对于的是EXECL中的XIRR算法.可以用于精确到日的 日IRR计算 - * + * * @param l_inflow_pour * 现金流List * @param l_date @@ -277,9 +277,9 @@ public class IrrTools { } /** - * + * * ( 得到保证金抵扣现金流明细) - * + * * @param rent_list * @param caut_money * @return @@ -321,9 +321,9 @@ public class IrrTools { } /** - * + * * 保证金抵扣金额小于保证金金额 最后要做一笔流出 为保证金金额减去保证金抵扣金额) - * + * * @param cdbList * 现金流 * @param caution_money @@ -352,9 +352,9 @@ public class IrrTools { } /** - * + * * ( 得到预收租金抵扣现金流明细) - * + * * @param rent_list * @param rentbefore_money * @return @@ -400,9 +400,9 @@ public class IrrTools { } /** - * + * * 预收租金抵扣金额小于预收租金金额 最后要做一笔流出 为预收租金金额减去预收租金抵扣金额) - * + * * @param cdbList * 现金流 * @param Column_8 @@ -430,9 +430,9 @@ public class IrrTools { } /** - * + * * ( 得到可以保证金抵扣的租金下标值) - * + * * @param cdbList * @param caut_money * @param d_total @@ -453,10 +453,10 @@ public class IrrTools { int_s = int_s.indexOf(",") > -1 ? int_s.substring(0, int_s.length() - 1) : int_s;// 得到可以抵扣的租金的下标 return int_s; } - + /** - * + * * ( 对最后一项现金流明细进行整理,如有变更的可以重写此方法) * 其他情况 * @param cdbList @@ -471,10 +471,10 @@ public class IrrTools { String planDate = cdb.getPlanDate(); // 日期 (只有年月) String income_number_year = cb.getIncomeNumberYear(); int onhire_id = cdb.getOnhire_id(); - + //起租类型 注意: 期初 数字 1 字符串 period_type_1 #分割线# 期末 数字0 字符串 period_type_0 String periodType = cb.getPeriodType(); - + // 更新流入,净流量值 期末余值 if ( null != equip_end_value && !"".equals(equip_end_value) && Double.parseDouble(equip_end_value) > Double.parseDouble("0.00") ) {// 期末残值大于0时 //‘期末余值’期末情况下的统一处理方式:直接加在最后一期现金流数据中 @@ -484,53 +484,53 @@ public class IrrTools { cdb.setNetFlow(String.valueOf(Double.parseDouble(cdb.getNetFlow()) + Double.parseDouble(equip_end_value))); } } - + //期末购买权在月付双月付情况下在下方单独处理 if (null != nominal_price && !"".equals(nominal_price) && Double.parseDouble(nominal_price) > Double.parseDouble("0.00") && !"income_1".equals(income_number_year) && !"income_2".equals(income_number_year) && !"6".equals(income_number_year) && !"12".equals(income_number_year) || ( "period_type_0".equals(periodType) || "0".equals(periodType) ) ) {// 期末购买权【原名称:名义货价】大于0时 cdb.setFundIn(String.valueOf(Double.parseDouble(cdb.getFundIn()) + Double.parseDouble(nominal_price))); cdb.setFundInDetails(cdb.getFundInDetails() + ";期末购买权:" + NumTools.formatNumberDouble(Double.parseDouble(NumTools.formatNumberDoubleScale(nominal_price, 2))) + ";"); cdb.setNetFlow(String.valueOf(Double.parseDouble(cdb.getNetFlow()) + Double.parseDouble(nominal_price))); } - + // 重新设置此元素的值 cdbList.set(cdbList.size() - 1, cdb); - + // 处理特殊的保证金抵扣 保证金抵扣金额小于保证金金额 最后要做一笔流出 为保证金金额减去保证金抵扣金额 cdbList = IrrTools.getRentDetailsByDeductOut(cdbList, cb.getCautionMoney(), cb.getCautionDeductionMoney()); - + List new_cdbList = new ArrayList(); for (CashDetailsBean obj : cdbList) { new_cdbList.add(obj); } - - - //TODO:sea 期末购买权在月付情况下:最后一期日期加一月作为单独的一行数据,其它情况下:最后一期的日期 + + + //TODO:sea 期末购买权在月付情况下:最后一期日期加一月作为单独的一行数据,其它情况下:最后一期的日期 //2014-06-11 期末余值新的处理逻辑:【符合】‘期末购买权月付/双月付情况’这个前提下, 期初情况的‘期末余值’与‘期末购买权’一致放在新增的一期一起作为最后一期现金流的数据 if(null != nominal_price && !"".equals(nominal_price) && Double.parseDouble(nominal_price) > Double.parseDouble("0.00") && !Tools.isNullOrEmpty(planDate) && ( "income_1".equals(income_number_year) || "12".equals(income_number_year) || "income_2".equals(income_number_year) || "6".equals(income_number_year) ) && ("period_type_1".equals(periodType) || "1".equals(periodType)) ){//月付/双月付情况下 //重新取一次值 CashDetailsBean new_cdb = new CashDetailsBean();//cdbList.get(cdbList.size() - 1); planDate = planDate+"-01";//构建成完整的日期格式 - //2014-01-01 日期加1个月 + //2014-01-01 日期加1个月 planDate = DateTools.getDateAdd(planDate, 1, "mm"); new_cdb.setPlanDate(planDate.substring(0, 7)+"-01"); new_cdb.setFundOut("0"); new_cdb.setFundOutDetails(""); - + new_cdb.setFundIn(String.valueOf(Double.parseDouble(nominal_price) + Double.parseDouble(equip_end_value))); new_cdb.setFundInDetails("期末购买权:" + NumTools.formatNumberDouble(Double.parseDouble(NumTools.formatNumberDoubleScale(nominal_price, 2))) + ";期末余值:" + NumTools.formatNumberDouble(Double.parseDouble(NumTools.formatNumberDoubleScale(equip_end_value, 2)))); new_cdb.setNetFlow( String.valueOf( Double.parseDouble(nominal_price) + Double.parseDouble(equip_end_value) ) ); - + new_cdb.setOnhire_id( onhire_id + 1 );//现金流按固定格式补0情况下,所以这里月付情况下,直接最后一次变量加1做为最终的期末购买权排序依据 new_cdbList.add(new_cdb); }else{ - + //TODO:2014-06-11 期末余值新的处理逻辑:【不符合】‘期末购买权月付情况’这个前提下, 期初情况的‘期末余值’与‘期末购买权’一致放在新增的一期一起作为最后一期现金流的数据 //TODO:这里存在少处理不是月付情况,例如:季付情况下,‘期末余值’是不是不能直接最后一期加一个月,是加一个租赁间隔,是加一个季度三个月,中间需要补两个0 if( !Tools.isNullOrEmpty(planDate) && null != equip_end_value && !"".equals(equip_end_value) && Double.parseDouble(equip_end_value) > Double.parseDouble("0.00") && ("period_type_1".equals(periodType) || "1".equals(periodType)) ){// 期初 //重新取一次值 CashDetailsBean new_cdb = new CashDetailsBean();//cdbList.get(cdbList.size() - 1); planDate = planDate+"-01";//构建成完整的日期格式 - //2014-01-01 日期加1个月 + //2014-01-01 日期加1个月 planDate = DateTools.getDateAdd(planDate, 1, "mm"); new_cdb.setPlanDate(planDate.substring(0, 7)+"-01"); new_cdb.setFundOut("0"); @@ -541,13 +541,13 @@ public class IrrTools { new_cdb.setOnhire_id( onhire_id + 1 );//现金流按固定格式补0情况下,所以这里月付情况下,直接最后一次变量加1做为最终的期末购买权排序依据 new_cdbList.add(new_cdb); } - + } - + return new_cdbList; } - + /** *

对最后一项现金流明细进行整理,针对项目类型为‘VP业务’情况下,期末购买权不计算入最后一期现金流中。

* @author sea @@ -562,31 +562,31 @@ public class IrrTools { // 更新流入,净流量值 if (null != equip_end_value && !"".equals(equip_end_value) && Double.parseDouble(equip_end_value) > 0) {// 期末残值大于0时 cdb.setFundIn(String.valueOf(Double.parseDouble(cdb.getFundIn()) + Double.parseDouble(equip_end_value))); - + cdb.setFundInDetails(cdb.getFundInDetails() + ";期末余值:" + NumTools.formatNumberDouble(Double.parseDouble(NumTools.formatNumberDoubleScale(equip_end_value, 2)))); - + cdb.setNetFlow(String.valueOf(Double.parseDouble(cdb.getNetFlow()) + Double.parseDouble(equip_end_value))); } - + if (null != nominal_price && !"".equals(nominal_price) && Double.parseDouble(nominal_price) > 0) {// 期末购买权【原名称:名义货价】大于0时 cdb.setFundIn(String.valueOf(Double.parseDouble(cdb.getFundIn()) + Double.parseDouble(nominal_price))); //项目类型为‘VP业务’情况下,期末购买权不算入流入中 cdb.setFundInDetails( cdb.getFundInDetails() ); cdb.setNetFlow( cdb.getNetFlow() ); } - + // 重新设置此元素的值 cdbList.set(cdbList.size() - 1, cdb); - + // 2011-10-26 // 处理特殊的保证金抵扣 保证金抵扣金额小于保证金金额 最后要做一笔流出 为保证金金额减去保证金抵扣金额 cdbList = IrrTools.getRentDetailsByDeductOut(cdbList, cb.getCautionMoney(), cb.getCautionDeductionMoney()); - + return cdbList; - + } /** - * + * * ( 现金流明细构建) * 按月计算IRR * @param cdbList @@ -595,7 +595,7 @@ public class IrrTools { public static String getIrr(List cdbList) { // 得到租金列表 List rent_list = getRentListByCashDetails(cdbList); - /* + /* * 后三个参数为固定按月计算 * @param chjg 固定值1 * @param zjjg 固定值1 @@ -606,7 +606,7 @@ public class IrrTools { } /** - * + * * @Title: getIrr * @author zhangc * @Description: 牛顿分切法计算XIRR @@ -624,7 +624,7 @@ public class IrrTools { return IrrTools.getXIRR(rent_list, planDate_list).toString(); //return IrrTools.getIRR(rent_list, "1","1","12"); } - + public static String getIrrNew( List netList,List dateList,String process) throws Exception { // 得到租金列表 //List rent_list = getRentListByCashDetails(cashlist,process); @@ -634,9 +634,9 @@ public class IrrTools { //return IrrTools.getIRR(rent_list, "1","1","12"); } /** - * + * * ( 现金流明细构建) - * + * * @param cdbList * @param cb * @return @@ -651,9 +651,9 @@ public class IrrTools { } /** - * + * * ( 现金流明细构建) - * + * * @param cdbList * @param cb * @return @@ -668,9 +668,9 @@ public class IrrTools { } /** - * + * * ( 根据现金流明细得到新的租金列表,用于算irr值) - * + * * @param cdbList */ private static List getRentListByCashDetails(List cdbList) { @@ -680,7 +680,7 @@ public class IrrTools { } return rent_list; } - + private static List getRentListByCashDetails(List cdbList,String process) throws Exception { List rent_list = new ArrayList(); for (Object cdb : cdbList) { @@ -691,12 +691,12 @@ public class IrrTools { }else{ rent_list.add(((ContractCashDetailTemp)cdb).getNetFlow().toString()); }*/ - + rent_list.add(((BizObject)cdb).getAttribute("NET_FLOW").getString()); } return rent_list; } - + private static List getRentListByCashDetailsPlanDate(List cdbList,String process) throws Exception { List rent_list = new ArrayList(); for (Object cdb : cdbList) { @@ -706,9 +706,9 @@ public class IrrTools { } /** - * + * * ( 算出均息法下的均息法租金列表的irr,并把其当做年利率传递做第二次正常租金测算) - * + * * @param cb * 交易结构bean * @param frpb @@ -734,7 +734,7 @@ public class IrrTools { } else { l_inflow_pour.add("-" + leasing_money); } - + for (int i = grace; i < rent_list.size(); i++) { l_inflow_pour.add(rent_list.get(i).toString()); } @@ -745,16 +745,16 @@ public class IrrTools { l_inflow_pour.set(l_inflow_pour.size()-1, new BigDecimal(l_inflow_pour.get(l_inflow_pour.size()-1)).add(new BigDecimal(cb.getEquipEndValue())).toString()); } } - + irr = IrrTools.getIRR(l_inflow_pour, String.valueOf(12 / Integer.parseInt(cb.getIncomeNumberYear())), String.valueOf(12 / Integer.parseInt(cb.getIncomeNumberYear())), cb.getIncomeNumberYear()); irr = Double.parseDouble(irr) + ""; return irr; } /** - * + * * (根据现金流获得对应的年利率) - * + * * @param alCash * 现金流 用HashMap key为net_flow 存的每期的值 * @param income_number_year @@ -770,7 +770,7 @@ public class IrrTools { } return NumTools.formatNumberDoubleScale(Double.parseDouble(getIRR(alirr, "1", "1", income_number_year)) * 100 + "", 6); } - + /** *

根据原始现金流集合按固定模式补0构建成独特格式的现金流。

* @author sea @@ -784,26 +784,26 @@ public class IrrTools { List list = new ArrayList(); List cashList = new ArrayList(); // 期初(期末)支付 注意: 期初 数字 1 字符串 period_type_1 #分割线# 期末 数字0 字符串 period_type_0 - String periodType = cb.getPeriodType(); + String periodType = cb.getPeriodType(); if (ccfbList != null && ccfbList.size() > 0 && ccfbList.size() > size) {//现金流的长度如果小于2条,该方法不适用,特别是期初情况下,理论上现金流只存在一行数据了 - + //第0期现金流集合 CashDetailsBean objFirst = new CashDetailsBean(); objFirst = ccfbList.get(0);//默认第0期的值等于原始现金流的第0期 - - double firstIn = 0.00; - double firstOut = 0.00; + + double firstIn = 0.00; + double firstOut = 0.00; String firstFundInDetails = ""; String firstFundOutDetails = ""; for (int i = 0; i < size; i++) { CashDetailsBean oneObj = ccfbList.get(i); //第i期流入流出 - firstIn = firstIn + NumberUtils.parseDouble( NumberUtils.nullToZero( oneObj.getFundIn() ) ); - firstOut = firstOut + NumberUtils.parseDouble( NumberUtils.nullToZero( oneObj.getFundOut() ) ); + firstIn = firstIn + NumberUtils.parseDouble( NumberUtils.nullToZero( oneObj.getFundIn() ) ); + firstOut = firstOut + NumberUtils.parseDouble( NumberUtils.nullToZero( oneObj.getFundOut() ) ); firstFundInDetails = firstFundInDetails +oneObj.getFundInDetails(); firstFundOutDetails = firstFundOutDetails+oneObj.getFundOutDetails(); } - + //期初前收情况下:做合并处理 if("1".equals(periodType) || "period_type_1".equals(periodType)){ //封装新的第0期 @@ -816,7 +816,7 @@ public class IrrTools { objFirst.setNetFlow(NumberUtils.doubleToString( firstIn + firstRent - firstOut ) ); objFirst.setOnhire_id(1000); cashList.add(objFirst); - + //封装后续所有现金流 int key = 2; int onhire_id = 1000; @@ -868,7 +868,7 @@ public class IrrTools { } return cashList; } - + /** *

计算固定格式情况现金流补0个数。

* @author sea @@ -894,7 +894,7 @@ public class IrrTools { } return num; } - + /** *

生成补0的现金流对象。

* @author sea @@ -915,14 +915,14 @@ public class IrrTools { newObj.setOnhire_id(onhire_id); return newObj; } - - + + /** * 牛顿迭代法求IRR * @param cashList:现金流List * @return IRR */ - public BigDecimal getIRR(List cashList){ + public static BigDecimal getIRR(List cashList){ //long startTime = System.currentTimeMillis(); BigDecimal diff = BigDecimal.ONE; //租金现值总和与总本金的差值 BigDecimal irr = BigDecimal.ZERO; @@ -970,7 +970,7 @@ public class IrrTools { BigDecimal daoRate=BigDecimal.ZERO; // 1/(1+irr) BigDecimal netflowNow; //净流量现值 BigDecimal error = new BigDecimal("0.0000000001"); //误差 - int size = cashList.size(); //现金流大小 + int size = cashList.size(); //现金流大小 int j = 0; //迭代次数 double k = 0; String startDate = ""; @@ -990,7 +990,7 @@ public class IrrTools { }catch(Exception e){ e.printStackTrace(); } - + } j++; irr = irr.subtract(diff.divide(derivative, 20, BigDecimal.ROUND_HALF_UP)); //迭代关系式 diff --git a/config/cgb.properties b/config/cgb.properties new file mode 100644 index 000000000..54ed59eb2 --- /dev/null +++ b/config/cgb.properties @@ -0,0 +1,8 @@ +#客户号 +cifMaster=60000002922 +#操作员 +entUserId=100001 +#操作密码 +password=1q2w3e4r +#前置机地址 +cgbUrl=http://114.242.219.170:63312/CGBClient/BankAction \ No newline at end of file diff --git a/src/com/amarsoft/app/flow/FlowAction.java b/src/com/amarsoft/app/flow/FlowAction.java index 494cbb258..04587d97f 100644 --- a/src/com/amarsoft/app/flow/FlowAction.java +++ b/src/com/amarsoft/app/flow/FlowAction.java @@ -691,7 +691,7 @@ public class FlowAction { sql.setOriginalSql(sql.getOriginalSql().replaceAll("△", ":")); sql.setRunSql(sql.getRunSql().replaceAll("△", ":")); tran.executeSQL(sql); - sql = new SqlObject("update user_task_info set task_number = nvl(task_number, 0) + 1 " + sql = new SqlObject("update user_task_info set task_number = task_number + 1 " + " where userid = '" + AssignmentId + "' and roleid = '" + curRole + "'"); tran.executeSQL(sql); } else { @@ -703,8 +703,8 @@ public class FlowAction { sql.setOriginalSql(sql.getOriginalSql().replaceAll("△", ":")); sql.setRunSql(sql.getRunSql().replaceAll("△", ":")); tran.executeSQL(sql); - sql = new SqlObject("update user_task_info set task_number = nvl(task_number, 0) - 1 " - + " where userid = '" + userID + "' and roleid = '" + curRole + "'"); + sql = new SqlObject("update user_task_info set task_number = task_number - 1 " + + " where userid = '" + userID + "' and roleid = '" + curRole + "' and task_number >=1 "); tran.executeSQL(sql); } } diff --git a/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayPaymentDo.java b/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayPaymentDo.java index 30e005792..cc76dbd1a 100644 --- a/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayPaymentDo.java +++ b/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayPaymentDo.java @@ -19,7 +19,7 @@ import com.amarsoft.are.jbo.JBOTransaction; public class AllinpayPaymentDo { private String id; - + /** * 批量代收-发送请求 * @param tx @@ -103,8 +103,7 @@ public class AllinpayPaymentDo { new Thread(run).start(); } public void queryCollectResult(){ - AllinpayPaymentQueryRun run = new AllinpayPaymentQueryRun(); - new Thread(run).start(); + new AllinpayPaymentQueryRun().allinpayPaymentQuerySt(); } public String getId() { return id; diff --git a/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayPaymentQueryJob.java b/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayPaymentQueryJob.java index 4e6020ae6..c7ec72914 100644 --- a/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayPaymentQueryJob.java +++ b/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayPaymentQueryJob.java @@ -1,31 +1,30 @@ package com.tenwa.lease.app.allinpay.service.impl; -import org.apache.log4j.Logger; -import org.quartz.Job; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; - 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 org.apache.log4j.Logger; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; -public class AllinpayPaymentQueryJob implements Job{ - private Logger logger = Logger.getLogger(this.getClass()); - @Override - public void execute(JobExecutionContext arg0) throws JobExecutionException { - try { - BizObjectManager manager = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_CARD_PAYMENT"); - BizObject object = manager.createQuery("O.STATUS='正在处理'").getSingleResult(true); - if(object==null) { - logger.info("没有需要查询的通联卡扣信息"); - return; - } - AllinpayPaymentQueryRun run = new AllinpayPaymentQueryRun(); - run.run(); - } catch (JBOException e) { - e.printStackTrace(); - } - } +public class AllinpayPaymentQueryJob implements Job { + private Logger logger = Logger.getLogger(this.getClass()); + + @Override + public void execute(JobExecutionContext arg0) throws JobExecutionException { + try { + BizObjectManager manager = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_CARD_PAYMENT"); + BizObject object = manager.createQuery("O.STATUS='正在处理'").getSingleResult(true); + if (object == null) { + logger.info("没有需要查询的通联卡扣信息"); + return; + } + new AllinpayPaymentQueryRun().allinpayPaymentQuerySt(); + } catch (JBOException e) { + e.printStackTrace(); + } + } } diff --git a/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayPaymentQueryRun.java b/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayPaymentQueryRun.java index 94d42949f..2fd414732 100644 --- a/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayPaymentQueryRun.java +++ b/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayPaymentQueryRun.java @@ -1,67 +1,53 @@ package com.tenwa.lease.app.allinpay.service.impl; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.math.BigDecimal; -import java.sql.SQLException; -import java.text.DecimalFormat; -import java.text.SimpleDateFormat; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -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.LB_BUCKLE_LOG; - -import org.apache.log4j.Logger; - import com.allinpay.xml.XmlParser; import com.allinpay.xstruct.common.AipgRsp; import com.allinpay.xstruct.common.InfoRsp; import com.allinpay.xstruct.trans.qry.QTDetail; import com.allinpay.xstruct.trans.qry.QTransRsp; import com.amarsoft.app.lc.util.DateAssistant; -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.jbo.JBOTransaction; +import com.amarsoft.are.jbo.*; 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.ctc.wstx.util.DataUtil; import com.tenwa.collectaudit.cache.CollectAuditInfoCache; import com.tenwa.lease.app.allinpay.util.AllinpayProperties; import com.tenwa.lease.app.allinpay.util.ConfigConstant; import com.tenwa.reckon.util.UUIDUtil; +import jbo.app.tenwa.calc.LC_RENT_INCOME; +import jbo.com.tenwa.lease.comm.LB_BUCKLE_LOG; +import org.apache.log4j.Logger; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; public class AllinpayPaymentQueryRun implements Runnable{ - + @Override public void run() { this.allinpayPaymentQuerySt(); } private AllinpayProperties allinpay; - + private String localFilePath; private Logger logger = Logger.getLogger(this.getClass()); - public AllinpayPaymentQueryRun() { - } - /** * 分页处理需要进行查询的扣款数据 - * @param + * @param * @return */ @SuppressWarnings({ "unchecked"}) @@ -82,16 +68,16 @@ public class AllinpayPaymentQueryRun implements Runnable{ while (size > start) { logger.info("开始第" + start + "至" + (start + maxCount) + "次循环"); boLOEDs = bomLCP.createQuery("O.STATUS='正在处理' ").setFirstResult(start).setMaxResults(maxCount).getResultList(true); - + if (boLOEDs == null || boLOEDs.size() == 0) { logger.error("没有需要查询的通联支付信息>>>>>>>>>>:"); break; } for (BizObject boLCP : boLOEDs) { try { - + BizObject object = JBOFactory.getBizObjectManager("jbo.com.tenwa.lease.comm.LB_PROJECT_INFO").createQuery("O.id=:id").setParameter("id", boLCP.getAttribute("PROJECT_ID").toString()).getSingleResult(false); - + allinpay = new AllinpayProperties(object.getAttribute("subjectid").toString()); String quertSn= boLCP.getAttribute("REQ_SN").toString(); String num = boLCP.getAttribute("NUM").toString(); @@ -101,7 +87,7 @@ public class AllinpayPaymentQueryRun implements Runnable{ sqlMap.put("NUM", Integer.parseInt(num) + ""); mapXml.put("quertSn", quertSn); sqlMap = sendMessageByProxy(mapXml, sqlMap); - + if (localFilePath == null) { LocalDateTime ldt = LocalDateTime.now(); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMdd"); @@ -248,7 +234,6 @@ public class AllinpayPaymentQueryRun implements Runnable{ /** * 修改通联扣款数据汇总表 - * @param map * @return Exception */ private void updateMessage(BizObjectManager bomLCP, BizObject boLCP, Map sqlMap) throws Exception { @@ -260,7 +245,7 @@ public class AllinpayPaymentQueryRun implements Runnable{ boLCP.setAttributeValue(key, sqlMap.get(key)); } bomLCP.saveObject(boLCP); - + updateOtherMessage(boLCP); } public void saveBuckle(BizObject bo,JBOTransaction tx,String sn,String rent) throws JBOException{ @@ -306,11 +291,11 @@ public class AllinpayPaymentQueryRun implements Runnable{ if("处理成功".equals(status)&&boLCP.getAttribute("FINISH_AMOUNT")!=null&&!"".equals(boLCP.getAttribute("FINISH_AMOUNT").toString())){ insertMessage(boLRP,finishAmount,tx); //租金计划表状态处理 - BizObjectManager bomVRC = JBOFactory.getBizObjectManager("jbo.loan.VI_RENT_COLLECT",tx); - BizObject vrc = bomVRC.createQuery("id=:id").setParameter("id", plan_id).getSingleResult(false); - double rentOver = vrc.getAttribute("rent_over").getDouble(); - double penaltyOver = vrc.getAttribute("penalty_over").getDouble(); - if(rentOver>0 || penaltyOver>0){ + BizObjectManager bomIncome = JBOFactory.getBizObjectManager(LC_RENT_INCOME.CLASS_NAME,tx); + BizObject boLRI = bomIncome.createQuery("select v.sum(v.ifnull(rent,0)) as v.rent from o where payment_number=:paymentNumber and plan_list=:planList") + .setParameter("paymentNumber", boLRP.getAttribute("payment_number").getString()) + .setParameter("planList", boLRP.getAttribute("plan_list").getString()).getSingleResult(false); + if(boLRP.getAttribute("rent").getDouble()>boLRI.getAttribute("rent").getDouble()){ batchStatus = "complete"; collectStatus = "部分收款"; collectMsg = "通联收款"; diff --git a/src_cmb/com/tenwa/cgb/conf/CGBconfProperties.java b/src_cmb/com/tenwa/cgb/conf/CGBconfProperties.java new file mode 100644 index 000000000..91ba0a429 --- /dev/null +++ b/src_cmb/com/tenwa/cgb/conf/CGBconfProperties.java @@ -0,0 +1,32 @@ +package com.tenwa.cgb.conf; + +import java.io.IOException; +import java.util.Properties; + +/** + * 广发银企直联配置 + * + * @program: apzl_leasing + * @author: yjf + * @create: 2021-07-20 08:24 + **/ +public class CGBconfProperties { + + public static final String CIFMASTER; + public static final String ENTUSERID; + public static final String PASSWORD; + public static final String CGBURL; + + static { + Properties prop = new Properties(); + try { + prop.load(CGBconfProperties.class.getResourceAsStream("/cgb.properties")); + } catch (IOException e) { + e.printStackTrace(); + } + CIFMASTER = prop.getProperty("cifMaster"); + ENTUSERID = prop.getProperty("entUserId"); + PASSWORD = prop.getProperty("password"); + CGBURL = prop.getProperty("cgbUrl"); + } +} diff --git a/src_cmb/com/tenwa/cgb/controller/OperateOfCGBController.java b/src_cmb/com/tenwa/cgb/controller/OperateOfCGBController.java new file mode 100644 index 000000000..910882247 --- /dev/null +++ b/src_cmb/com/tenwa/cgb/controller/OperateOfCGBController.java @@ -0,0 +1,476 @@ +package com.tenwa.cgb.controller; + +import com.amarsoft.are.jbo.*; +import com.amarsoft.awe.util.ASResultSet; +import com.amarsoft.awe.util.SqlObject; +import com.amarsoft.awe.util.Transaction; +import com.amarsoft.dict.als.manage.CodeManager; +import com.tenwa.cgb.conf.CGBconfProperties; +import com.tenwa.cgb.util.CGBLogAssistant; +import com.tenwa.cgb.util.HttpAssistant; +import com.tenwa.comm.exception.BusinessException; +import com.tenwa.comm.util.date.DateAssistant; +import com.tenwa.comm.util.jboutil.DataOperatorUtil; +import jbo.app.tenwa.calc.LB_ACTUAL_PAYMENT_INFO_TEMP; +import jbo.app.tenwa.calc.LC_FUND_INCOME_TEMP; +import jbo.com.tenwa.lease.comm.LC_FUND_INCOME_CALLBACK_DETAIL_TEMP; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.math.BigDecimal; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @program: apzl_leasing + * @author: yjf + * @create: 2021-07-19 11:39 + **/ +public class OperateOfCGBController { + + private static final String XMLDECLARE = ""; + private static Log log = LogFactory.getLog(OperateOfCGBController.class); + private String flowUnid; + private String userId; + private String orgId; + private String contractIds; + + public void setFlowUnid(String flowUnid) { + this.flowUnid = flowUnid; + } + + public void setContractIds(String contractIds) { + this.contractIds = contractIds; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public void setOrgId(String orgId) { + this.orgId = orgId; + } + + /** + * 批量转账 + * + * @param tx + * @return + * @throws Exception + */ + public String batchPayOfCGB(JBOTransaction tx) throws Exception { + String retResult = "success发起付款成功!"; + contractIds = contractIds.replaceAll("@", "','"); + String subjectSql = "SELECT subjectId AS subjectuid FROM lb_contract_info WHERE id IN ('" + contractIds + "') GROUP BY subjectId "; + List> lciList = DataOperatorUtil.getDataBySql(subjectSql); + if (lciList.size() > 1) { + return "放款合同中有多个主体,请检查!!!"; + } + BizObjectManager actualPaymentMan = JBOFactory.getBizObjectManager(LB_ACTUAL_PAYMENT_INFO_TEMP.CLASS_NAME, tx); + BizObject actualBo = actualPaymentMan.createQuery("flowunid=:flowunid").setParameter("flowunid", flowUnid).getSingleResult(false); + if (actualBo == null || actualBo.getAttribute("acc_number").getString().length() == 0) { + throw new BusinessException("没有匹配的本方账户,请检查!!!"); + } + String payAccountNum = actualBo.getAttribute("acc_number").getString(); + BizObjectManager incomeMan = JBOFactory.getBizObjectManager(LC_FUND_INCOME_TEMP.CLASS_NAME, tx); + BizObject singleResult = incomeMan.createQuery("select v.count(1) as v.allCount from O where FLOWUNID=:FLOWUNID and o.contract_id in ('" + contractIds + "') and o.PAY_TYPE = 'pay_type_out' and o.CMB_PAY_LOG is null ").setParameter("FLOWUNID", flowUnid).getSingleResult(false); + if (singleResult != null && singleResult.getAttribute("allCount").getInt() > 0) { + int start = 0; + int maxCount = 200; + while (singleResult.getAttribute("allCount").getInt() > start) { + String customerBatchNo = "AP" + System.currentTimeMillis(); + log.info("CGB FLOWUNID[" + flowUnid + "]---开始第" + start + "至" + (start + maxCount) + "条循环"); + List income_all_list = incomeMan.createQuery("select o.ID,o.CMB_PAY_NO,o.FACT_MONEY,o.FLOWUNID,o.CONTRACT_ID,contract_info.CONTRACT_NO,contract_info.ZC_CONTRACT_NUMBER,lul.CUSTOMER_NAME,distributor.distributor_id,distributor.acc_number,distributor.open_bank,distributor.account from o join jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO contract_info on o.CONTRACT_ID = contract_info.id join jbo.com.tenwa.lease.comm.LB_UNION_LESSEE lul on contract_info.id = lul.contract_id join jbo.app.tenwa.customer.DISTRIBUTOR_ACCOUNT distributor on contract_info.distributor_id = distributor.distributor_id and distributor.is_main='Y' " + + " where o.FLOWUNID=:FLOWUNID and o.contract_id in ('" + contractIds + "') and o.PAY_TYPE = 'pay_type_out' and o.CMB_PAY_LOG is null ") + .setParameter("FLOWUNID", flowUnid).setFirstResult(start).setMaxResults(maxCount).getResultList(false); + //批量转账报文 + String batchPayMsgXml = createBatchPayMsg(customerBatchNo, payAccountNum, income_all_list); + //保存发起日志 + CGBLogAssistant.insertCGBlog(flowUnid, "pay", customerBatchNo, null, batchPayMsgXml); + HashMap map = new HashMap<>(); + map.put("cgb_data", batchPayMsgXml); + String retMsg = HttpAssistant.post(CGBconfProperties.CGBURL, map); + if (retMsg == null) return "连接前置机异常,请联系管理员!"; + log.info("CGB [" + customerBatchNo + "] BATCHPAY RETURN XML : " + retMsg); + //更新返回日志 + CGBLogAssistant.updateCGBlog(customerBatchNo, null, retMsg); + //批量转账报文解析 + Map batchPayResult = getBatchPayResult(retMsg); + if (batchPayResult.size() > 0 && "000".equals(batchPayResult.get("retCode"))) { + for (BizObject incomeObj : income_all_list) { + payBackResultHandle(incomeObj, customerBatchNo, batchPayResult, actualBo); + } + } else { + return "发起付款失败,广发返回错误:[" + CodeManager.getItemName("cgb_describe", batchPayResult.get("retCode")) + "]"; + } + start += 200; + } + } else { + return "选择数据包含付款中数据,请检查!!!"; + } + return retResult; + } + + /** + * 批量查询 + * + * @param tx + * @return + * @throws Exception + */ + public String batchQueryOfCGB(JBOTransaction tx) throws Exception { + BizObjectManager bm = JBOFactory.getBizObjectManager(LC_FUND_INCOME_CALLBACK_DETAIL_TEMP.CLASS_NAME); + List bizObjects = bm.createQuery(" flowunid = :flowunid and cmb_pay_log is not null and ERRTXT='付款中' ") + .setParameter("flowunid", flowUnid).getResultList(false); + if (bizObjects.isEmpty()) return "待回盘数据为空,请检查"; + String customerBatchNo = null, customerSalarySeq = null; + for (BizObject bizObject : bizObjects) { + customerBatchNo = bizObject.getAttribute("cmb_pay_log").getString(); + customerSalarySeq = bizObject.getAttribute("cmb_pay_no").getString(); + String batchPayQueryXml = createBatchPayQueryMsg(customerBatchNo, customerSalarySeq); + //保存发起日志 + CGBLogAssistant.insertCGBlog(flowUnid, "query", customerBatchNo, customerSalarySeq, batchPayQueryXml); + HashMap map = new HashMap<>(); + map.put("cgb_data", batchPayQueryXml); + String retMsg = HttpAssistant.post(CGBconfProperties.CGBURL, map); + if (retMsg == null) return "连接前置机异常,请联系管理员!"; + log.info("CGB customerBatchNo[" + customerBatchNo + "] customerSalarySeq[" + customerSalarySeq + "] QUERY RETURN XML : " + retMsg); + //更新返回日志 + CGBLogAssistant.updateCGBlog(customerBatchNo, customerSalarySeq, retMsg); + Map batchQueryResult = getBatchQueryResult(retMsg); + JBOTransaction tx1 = null; + try { + tx1 = JBOFactory.createJBOTransaction(); + Transaction sqlca = Transaction.createTransaction(tx1); + String retCode = batchQueryResult.get("retCode"); + if ("000".equals(retCode)) { + String bankstatus = batchQueryResult.get("bankstatus"); + String errText = "付款中"; + String business_status = null, ebankStatus = null; + if ("6,B".indexOf(bankstatus) != -1) { //交易成功 + business_status = "31"; + ebankStatus = "05"; + errText = "付款成功"; + } else if ("4,7,9,C,b".indexOf(bankstatus) != -1) { //交易失败 + business_status = "32"; + ebankStatus = "04"; + errText = "付款失败"; + } + errText = batchQueryResult.get("errorreason") == null ? errText : batchQueryResult.get("errorreason"); + //更新回调结果状态 + SqlObject sqlObject = new SqlObject("update LC_FUND_INCOME_CALLBACK_DETAIL_TEMP set ERRCOD=:errCode,ERRTXT=:errText,RTNNAR=:rtnNar where id =:id") + .setParameter("errCode", bankstatus) + .setParameter("errText", errText) + .setParameter("rtnNar", getbankstatusMsg(bankstatus)) + .setParameter("id", bizObject.getAttribute("id").getString()); + sqlca.executeSQL(sqlObject); + if (business_status != null) { + //插入项目进度表 + sqlObject = new SqlObject(""); + sqlObject.setOriginalSql("insert into BUSINESS_STATUS select replace(uuid(),'-',''),contract_no,'" + business_status + "','" + userId + "','" + orgId + "','" + DateAssistant.getTodayNow() + "',null,null,null,null from lb_contract_info where id = '" + bizObject.getAttribute("contract_id").getString() + "'"); + sqlca.executeSQL(sqlObject); + //更新资金实收临时表 + sqlObject = new SqlObject("update LC_FUND_INCOME_TEMP set EBANK_STATUS=:ebankStatus,CMB_PAY_NO=:customerSalarySeq,CMB_PAY_LOG=:customerBatchNo where flowunid=:flowunid and contract_id =:contractId ") + .setParameter("ebankStatus", ebankStatus) + .setParameter("customerSalarySeq", "04".equals(ebankStatus) ? null : customerSalarySeq) + .setParameter("customerBatchNo", "04".equals(ebankStatus) ? null : customerBatchNo) + .setParameter("flowunid", flowUnid) + .setParameter("contractId", bizObject.getAttribute("contract_id").getString()); + sqlca.executeSQL(sqlObject); + } + } else { + //更新回调结果状态 + SqlObject sqlObject = new SqlObject("update LC_FUND_INCOME_CALLBACK_DETAIL_TEMP set ERRCOD=:errCode,ERRTXT=:errText where id =:id") + .setParameter("errCode", retCode) + .setParameter("errText", CodeManager.getItemName("cgb_describe", retCode)) + .setParameter("id", bizObject.getAttribute("id").getString()); + sqlca.executeSQL(sqlObject); + } + tx1.commit(); + } catch (Exception e) { + log.error("customerBatchNo:[" + customerBatchNo + "] customerSalarySeq:[" + customerSalarySeq + "] 查询结果处理异常:", e); + if (tx1 != null) try { + tx1.rollback(); + } catch (JBOException e1) { + e1.printStackTrace(); + } + } + } + return "success查询付款结果成功"; + } + + /** + * 批量转账报文 + * + * @param tx + * @return + * @throws Exception + */ + private String createBatchPayMsg(String customerBatchNo, String accountNo, List payObjs) throws Exception { + StringBuilder sb = new StringBuilder(); + sb.append(XMLDECLARE); + sb.append(""); + sb.append(""); + sb.append(commonMseeage("0033")); + sb.append(""); + sb.append("").append(customerBatchNo).append("");//客户批次号 企业内唯一[必输] 长度20 + sb.append("").append(accountNo).append("");//付款账号 [必输] + int allCount = 0; + BigDecimal allSalary = new BigDecimal(0); + for (BizObject payObj : payObjs) { + allSalary = allSalary.add(BigDecimal.valueOf(payObj.getAttribute("fact_money").getDouble())); + allCount++; + } + sb.append("").append(allCount).append("");//总笔数 [必输] + sb.append("").append(allSalary.toString()).append("");//总金额 单位:元[必输] + sb.append(""); + int i = 0; + String customerSalarySeq = null, customerName = null, contractNo = null, contractNoZC = null, remark = null; + for (BizObject payObj : payObjs) { + customerSalarySeq = customerBatchNo + String.format("%04d", ++i); + customerName = payObj.getAttribute("CUSTOMER_NAME").getString(); + contractNo = payObj.getAttribute("contract_no").getString(); + contractNoZC = payObj.getAttribute("ZC_CONTRACT_NUMBER").getString(); + remark = "".equals(contractNoZC) ? customerName + "-" + contractNo : customerName + "-" + contractNoZC + "-" + contractNo; + sb.append(""); + sb.append("").append(customerSalarySeq).append("");//客户批次子流水号 企业内唯一[必输] 长度20 + sb.append("").append(checkCGB(payObj.getAttribute("open_bank").getString()) ? "0" : "1").append(""); //交易类型 0:行内 1:跨行 [必输] + sb.append("").append(payObj.getAttribute("account")).append(""); //收款人 [必输] + sb.append("").append(payObj.getAttribute("acc_number")).append(""); //收款账号 [必输] + sb.append("").append(payObj.getAttribute("open_bank").getString()).append(""); //收款银行 [必输] + sb.append("").append("").append(""); //收款银行地址 + sb.append("").append("").append(""); //联行号 跨行时 [必输] 广发自动根据银行名称匹配--技术回复 + sb.append("").append(payObj.getAttribute("fact_money").getString()).append(""); //金额 单位:元 [必输] + sb.append("").append(remark).append(""); //备注 客户名+合作方合同号+安鹏合同号 + sb.append("").append(payObj.getAttribute("id").getString()).append(""); //附言 绑定支付对象主键 + sb.append(""); + payObj.setAttributeValue("CMB_PAY_NO", customerSalarySeq); + } + sb.append(""); + sb.append(""); + sb.append(""); + sb.append(""); + log.info("CGB [" + customerBatchNo + "] BATCHPAY SEND XML : " + sb.toString()); + return sb.toString(); + } + + /** + * 解析批量转账结果 + * + * @param strXML + * @return + */ + private Map getBatchPayResult(String strXML) { + Map res = new HashMap(); + //获取批次号 + Pattern pm = Pattern.compile("(?<=)([\\S\\s]*?)(?=)"); + Matcher mm = pm.matcher(strXML); + if (mm.find()) { + res.put("customerBatchNo", mm.group()); + } + pm = Pattern.compile("(?<=)([\\S\\s]*?)(?=)"); + mm = pm.matcher(strXML); + if (mm.find()) { + res.put("retCode", mm.group()); + } + return res; + } + + /** + * 批量转账查询报文 + * + * @param customerBatchNo + * @param customerSalarySeq + * @return + * @throws Exception + */ + private String createBatchPayQueryMsg(String customerBatchNo, String customerSalarySeq) throws Exception { + StringBuilder sb = new StringBuilder(); + sb.append(XMLDECLARE); + sb.append(""); + sb.append(""); + sb.append(commonMseeage("0034")); + sb.append(""); + sb.append("").append(customerBatchNo).append(""); //客户批次号 [必输] + sb.append("").append(customerSalarySeq == null ? "" : customerSalarySeq).append(""); //客户批次子流水号 + sb.append(""); + sb.append(""); + sb.append(""); + log.info("CGB customerBatchNo[" + customerBatchNo + "] customerSalarySeq[" + customerSalarySeq + "] QUERY SEND XML : " + sb.toString()); + return sb.toString(); + } + + + /** + * 解析查询结果 + * + * @param strXML + * @return + */ + private Map getBatchQueryResult(String strXML) { + Map res = new HashMap(); + Pattern pm = Pattern.compile("(?<=)([\\S\\s]*?)(?=)"); + Matcher mm = pm.matcher(strXML); + if (mm.find()) { + res.put("retCode", mm.group()); + } + //获取批次号 + pm = Pattern.compile("(?<=)([\\S\\s]*?)(?=)"); + mm = pm.matcher(strXML); + if (mm.find()) { + res.put("customerSalarySeq", mm.group()); + } + pm = Pattern.compile("(?<=)([\\S\\s]*?)(?=)"); + mm = pm.matcher(strXML); + if (mm.find()) { + res.put("bankstatus", mm.group()); + } + pm = Pattern.compile("(?<=)([\\S\\s]*?)(?=)"); + mm = pm.matcher(strXML); + if (mm.find()) { + if (mm.group().length() > 0) res.put("errorreason", mm.group()); + } + return res; + } + + + /** + * 公共报文头拼接 + * + * @param tranCode 交易码 + * @return + */ + private String commonMseeage(String tranCode) throws Exception { + StringBuilder sb = new StringBuilder(); + sb.append(""); + sb.append("").append(tranCode).append("");//交易码 + sb.append("").append(CGBconfProperties.CIFMASTER).append("");//客户号 + sb.append("").append("CGB").append(System.currentTimeMillis()).append("");//企业财务系统流水号 企业财务系统自己产生的流水号,每天唯一 长度20 + sb.append("").append(DateAssistant.getFormatDate("yyyyMMdd")).append("");//日期 + sb.append("").append(DateAssistant.getFormatDate("HHmmss")).append("");//时间 + sb.append("");//返回码,请求报文是,默认为空 + sb.append("").append(CGBconfProperties.ENTUSERID).append("");//操作员 + sb.append(" ");//操作密码 + sb.append(""); + return sb.toString(); + } + + /** + * 检查是否广发银行账号 + * + * @param str + * @return + */ + private boolean checkCGB(String str) { + if (str.indexOf("广发") != -1) { + return true; + } else { + return false; + } + } + + /** + * 支付回调结果处理 + */ + private void payBackResultHandle(BizObject payObj, String customerBatchNo, Map retResult, BizObject actualObj) { + JBOTransaction tx = null; + String serialNum = null; + try { + serialNum = payObj.getAttribute("CMB_PAY_NO").getString(); + tx = JBOFactory.createJBOTransaction(); + Transaction sqlca = Transaction.createTransaction(tx); + //修改上次扣款记录,避免显示多条数据 + SqlObject sqlObject = new SqlObject("update LC_FUND_INCOME_CALLBACK_DETAIL_TEMP set contract_id = null where flowunid=:flowunid and contract_id =:contractId") + .setParameter("flowunid", flowUnid).setParameter("contractId", payObj.getAttribute("contract_id").getString()); + sqlca.executeSQL(sqlObject); + //添加新的扣款记录 + sqlObject = new SqlObject("insert into LC_FUND_INCOME_CALLBACK_DETAIL_TEMP (id,FLOWUNID,CMB_PAY_LOG,CMB_PAY_NO,ERRTXT,CONTRACT_ID,DISTRIBUTOR_ID,INPUTUSERID,INPUTORGID,INPUTTIME) " + + " values (replace(uuid(),'-',''),:flowunid,:cmbPayLog,:serialNum,'付款中',:contractId,:distributorId,:userId,:orgId,:inputTime)") + .setParameter("flowunid", flowUnid) + .setParameter("cmbPayLog", customerBatchNo) //批次号 + .setParameter("serialNum", serialNum) //序号 + .setParameter("contractId", payObj.getAttribute("contract_id").getString()) //合同id + .setParameter("distributorId", payObj.getAttribute("distributor_id").getString())//经销商id + .setParameter("userId", userId) + .setParameter("orgId", orgId) + .setParameter("inputTime", DateAssistant.getTodayNow()); + sqlca.executeSQL(sqlObject); + //更新批次号,序号到支付明细数据 + sqlObject = new SqlObject("update LC_FUND_INCOME_TEMP set CMB_PAY_LOG=:customerBatchNo,CMB_PAY_NO=:serialNum,bank=:bank,account=:account,acc_number=:accNumber where id = :id ") + .setParameter("customerBatchNo", customerBatchNo) + .setParameter("serialNum", serialNum) + .setParameter("bank", actualObj.getAttribute("bank").getString())//本方银行 + .setParameter("account", actualObj.getAttribute("account").getString())//本方账户 + .setParameter("accNumber", actualObj.getAttribute("acc_number").getString())//本方账号 + .setParameter("id", payObj.getAttribute("id").getString()); + sqlca.executeSQL(sqlObject); + tx.commit(); + } catch (Exception e) { + log.error("customerBatchNo:[" + customerBatchNo + "] customerSalarySeq:[" + serialNum + "] 批量转账结果处理异常!", e); + if (tx != null) try { + tx.rollback(); + } catch (JBOException e1) { + e1.printStackTrace(); + } + } + } + + /** + * 交易处理状态 + * + * @param bankstatus + * @return + */ + private String getbankstatusMsg(String bankstatus) { + String msg = null; + //行内汇款:6,7,8 跨行汇款:A,B,C,E + switch (bankstatus) { + case "6": + msg = "主机交易成功"; + break; + case "7": + msg = "主机交易失败"; + break; + case "8": + msg = "状态未知,没有收到后台系统返回的应答"; + break; + case "A": + msg = "支付系统正在处理"; + break; + case "B": + msg = "处理成功"; + break; + case "C": + msg = "处理失败"; + break; + case "E": + msg = "大额查证"; + break; + case "9": + msg = "查证取消交易"; + break; + default: + msg = bankstatus; + } + return msg; + } + + public String vaildate(Transaction sqlCa) throws Exception { + ASResultSet as = sqlCa.getASResultSet("select count(1) as nums," + + "sum(case when cmb_pay_log is not null or locate(RTNFLG,'F')>0 and length(RTNFLG)>0 then 0 else 1 end ) cmb_succ_num," + + "sum(case when cmb_pay_log is null or locate(ERRCOD,'4,7,9,C,b,W')>0 and length(ERRCOD)>0 then 0 else 1 end ) cgb_succ_num" + + " from LC_FUND_INCOME_CALLBACK_DETAIL_TEMP where flowunid = '" + flowUnid + "'"); + if (as.next()) { + int nums = as.getInt("nums"); + int CMBNums = as.getInt("cmb_succ_num"); //招商发起成功数 + int CGBNums = as.getInt("cgb_succ_num"); //广发发起成功数 + if (nums > 0 && (CMBNums > 0 || CGBNums > 0)) { + return "已发起支付,禁止变更"; + } + } + return "succ"; + } +} diff --git a/src_cmb/com/tenwa/cgb/util/CGBLogAssistant.java b/src_cmb/com/tenwa/cgb/util/CGBLogAssistant.java new file mode 100644 index 000000000..4e3782dbe --- /dev/null +++ b/src_cmb/com/tenwa/cgb/util/CGBLogAssistant.java @@ -0,0 +1,74 @@ +package com.tenwa.cgb.util; + +import com.amarsoft.are.jbo.JBOException; +import com.amarsoft.are.jbo.JBOFactory; +import com.amarsoft.are.jbo.JBOTransaction; +import com.amarsoft.awe.util.SqlObject; +import com.amarsoft.awe.util.Transaction; +import com.tenwa.comm.util.date.DateAssistant; + +/** + * @program: apzl_leasing + * @author: yjf + * @create: 2021-07-20 15:15 + **/ +public class CGBLogAssistant { + + public static void insertCGBlog(String flowUnid, String type, String batchNo, String serialNum, String reqMsg) { + JBOTransaction tx = null; + try { + tx = JBOFactory.createJBOTransaction(); + Transaction sqlca = Transaction.createTransaction(tx); + SqlObject sqlObject = new SqlObject("insert into lb_cgb_log (type,flow_unid,batch_no,serial_num,req_msg,req_time) values (:type,:flowUnid,:batchNo,:serialNum,:reqMsg,:reqTime)") + .setParameter("type", type) + .setParameter("flowUnid", flowUnid) + .setParameter("batchNo", batchNo) + .setParameter("serialNum", serialNum) + .setParameter("reqMsg", reqMsg) + .setParameter("reqTime", DateAssistant.getTodayNow()); + sqlca.executeSQL(sqlObject); + tx.commit(); + } catch (Exception e) { + if (tx != null) try { + tx.rollback(); + } catch (JBOException e1) { + e1.printStackTrace(); + } + } + } + + + public static void updateCGBlog(String batchNo, String serialNum, String retMsg) { + JBOTransaction tx = null; + try { + tx = JBOFactory.createJBOTransaction(); + Transaction sqlca = Transaction.createTransaction(tx); + SqlObject sqlObject = null; + StringBuilder sb = new StringBuilder("update lb_cgb_log set ret_msg=:retMsg,ret_time=:retTime where batch_no =:batchNo and"); + if (serialNum == null) { + sb.append(" serial_num is null"); + sqlObject = new SqlObject(sb.toString()) + .setParameter("retMsg", retMsg) + .setParameter("retTime", DateAssistant.getTodayNow()) + .setParameter("batchNo", batchNo); + } else { + sb.append(" serial_num =:serialNum"); + sqlObject = new SqlObject(sb.toString()) + .setParameter("retMsg", retMsg) + .setParameter("retTime", DateAssistant.getTodayNow()) + .setParameter("batchNo", batchNo) + .setParameter("serialNum", serialNum); + } + sqlca.executeSQL(sqlObject); + tx.commit(); + } catch (Exception e) { + if (tx != null) try { + tx.rollback(); + } catch (JBOException e1) { + e1.printStackTrace(); + } + } + } + + +} diff --git a/src_cmb/com/tenwa/cgb/util/HttpAssistant.java b/src_cmb/com/tenwa/cgb/util/HttpAssistant.java new file mode 100644 index 000000000..8b1530710 --- /dev/null +++ b/src_cmb/com/tenwa/cgb/util/HttpAssistant.java @@ -0,0 +1,64 @@ +package com.tenwa.cgb.util; + + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.NameValuePair; +import org.apache.commons.httpclient.methods.PostMethod; +import org.apache.commons.httpclient.params.HttpMethodParams; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @program: apzl_leasing + * @author: yjf + * @create: 2021-07-20 08:43 + **/ +public class HttpAssistant { + + private static Log log = LogFactory.getLog(HttpAssistant.class); + private static final HttpClient httpClient = new HttpClient(); + + static { + httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(10000); + httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "GBK"); + } + + public static String post(String reqUrl, Map paramMap) { + String result = null; + PostMethod postMethod = null; + try { + postMethod = new PostMethod(reqUrl); + // 这个basicNameValue**放在List中 + List nameValuePairs = new ArrayList(); + // 创建basicNameValue***对象参数 + if (paramMap != null) { + for (Map.Entry entry : paramMap.entrySet()) { + nameValuePairs.add(new NameValuePair(entry.getKey(), entry.getValue().toString())); + } + } + // 填入各个表单域的值 + NameValuePair[] param = nameValuePairs.toArray(new NameValuePair[nameValuePairs.size()]); + postMethod.addParameters(param); + postMethod.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=gbk"); + postMethod.setRequestHeader("Cache-Control", "no-cache"); + // 执行postMethod + int statusCode = httpClient.executeMethod(postMethod); + if (statusCode == HttpStatus.SC_OK) { + result = postMethod.getResponseBodyAsString(); + } + } catch (IOException e) { + log.error("执行HTTP Post请求" + reqUrl + "时,发生异常:", e); + } finally { + if (postMethod != null) postMethod.releaseConnection(); + } + return result; + } + +} diff --git a/src_cmb/com/tenwa/sdk/controller/CmbToPayController.java b/src_cmb/com/tenwa/sdk/controller/CmbToPayController.java index d5635a1b6..adcf44343 100644 --- a/src_cmb/com/tenwa/sdk/controller/CmbToPayController.java +++ b/src_cmb/com/tenwa/sdk/controller/CmbToPayController.java @@ -1,40 +1,24 @@ package com.tenwa.sdk.controller; -import java.math.BigDecimal; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -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.jbo.*; import com.amarsoft.awe.Configure; import com.tenwa.comm.util.jboutil.DataOperatorUtil; import com.tenwa.flow.action.comm.BaseFlowStartAction; -import com.tenwa.sdk.VO.SDKDcPayReqxVO; -import com.tenwa.sdk.VO.SDKInfoVO; -import com.tenwa.sdk.VO.SDKPayCallBackVO; -import com.tenwa.sdk.VO.SDKPayCallDetail; -import com.tenwa.sdk.VO.SDKPayRqxVO; -import com.tenwa.sdk.VO.SDKToPayVO; +import com.tenwa.sdk.VO.*; import com.tenwa.sdk.utils.HttpRequest; import com.tenwa.sdk.utils.XMLStream; import com.thoughtworks.xstream.XStream; - +import jbo.app.tenwa.calc.LB_ACTUAL_PAYMENT_INFO_TEMP; import jbo.app.tenwa.calc.LC_FUND_INCOME_TEMP; -import jbo.com.tenwa.entity.comm.own.OWN_ACCOUNT; import jbo.com.tenwa.lease.comm.*; import jbo.prd.LB_PRODUCTTOCOMPANY_INFO; import jbo.sys.CODE_LIBRARY; import net.sf.json.JSONObject; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; + public class CmbToPayController extends BaseFlowStartAction { private String distributor_ids; //获取选择的 经销商ID private String contract_ids; //获取选择的合同ID @@ -116,26 +100,14 @@ public class CmbToPayController extends BaseFlowStartAction { /* * 本方放款账户获取######开始 */ - BizObjectManager accountManager = JBOFactory.getBizObjectManager(OWN_ACCOUNT.CLASS_NAME); - List accountBoList = null; - if("aa740e4111c111eaaa0000163e0e11e6".equals(subjectId)){ - accountBoList = accountManager.createQuery("select o.id,o.acc_number,o.acc_bank,o.acc_name,o.branch_code,oi.OWN_NAME from o left join jbo.com.tenwa.entity.comm.own.OWN_INFO oi on o.own_id = oi.OWN_NUMBER where o.money_type='01' and o.state_='0010' and o.acc_type='0010' and o.FbSdk='Y' and (o.account_type='out_account' or o.account_type='inAndOut_account') and oi.OWN_NAME='安鹏国际融资租赁(深圳)有限公司'").getResultList(false); - }else if("d989246c11c111eaaa0000163e0e11e6".equals(subjectId)){ - accountBoList = accountManager.createQuery("select o.id,o.acc_number,o.acc_bank,o.acc_name,o.branch_code,oi.OWN_NAME from o left join jbo.com.tenwa.entity.comm.own.OWN_INFO oi on o.own_id = oi.OWN_NUMBER where o.money_type='01' and o.state_='0010' and o.acc_type='0010' and o.FbSdk='Y' and (o.account_type='out_account' or o.account_type='inAndOut_account') and oi.OWN_NAME='安鹏融资租赁(天津)有限公司'").getResultList(false); - } - if( accountBoList==null ||accountBoList.size()==0) { - map.put("code", "1") ; - map.put("msg", "没有匹配的本方账户,请在本方账户中检查!") ; + BizObjectManager actualPaymentMan = JBOFactory.getBizObjectManager(LB_ACTUAL_PAYMENT_INFO_TEMP.CLASS_NAME); + BizObject accountBo = actualPaymentMan.createQuery("select o.account,o.acc_number,o.bank,oa.id,oa.branch_code from o join jbo.com.tenwa.entity.comm.own.OWN_ACCOUNT oa on o.acc_number = oa.acc_number where flowunid=:flowunid and and (oa.account_type='out_account' or oa.account_type='inAndOut_account')").setParameter("flowunid", FLOWUNID).getSingleResult(false); + if (accountBo == null) { + map.put("code", "1"); + map.put("msg", "没有匹配的本方账户,请在本方账户中检查!"); JSONObject jsonObj = JSONObject.fromObject(map); return jsonObj.toString(); } - if( accountBoList!=null && accountBoList.size()>1 ) { - map.put("code", "1") ; - map.put("msg", "启用的汽车类放款账户只能同时存在一个,请在本方账户中检查!") ; - JSONObject jsonObj = JSONObject.fromObject(map); - return jsonObj.toString(); - } - BizObject accountBo = accountBoList.get(0); /* * 本方放款账户获取######结束 */ @@ -490,6 +462,9 @@ public class CmbToPayController extends BaseFlowStartAction { income_boo.setParameter("FLOWUNID",pay_detail_one.getAttribute("FLOWUNID").toString()) ; income_boo.setParameter("CONTRACT_ID",pay_detail_one.getAttribute("CONTRACT_ID").toString()) ; income_boo.setParameter("DISTRIBUTOR_ID",pay_detail_one.getAttribute("DISTRIBUTOR_ID").toString()) ; + income_boo.setParameter("bank",accountBo.getAttribute("bank").toString()) ; + income_boo.setParameter("account",accountBo.getAttribute("account").toString()) ; + income_boo.setParameter("acc_number",accountBo.getAttribute("acc_number").toString()) ; income_boo.executeUpdate();//更新资金收付表 pay_detail_bom.saveObject(pay_detail_one); //插入支付详情表 } diff --git a/src_core/com/tenwa/comm/util/date/DateAssistant.java b/src_core/com/tenwa/comm/util/date/DateAssistant.java index f9158f227..1075f4d0b 100644 --- a/src_core/com/tenwa/comm/util/date/DateAssistant.java +++ b/src_core/com/tenwa/comm/util/date/DateAssistant.java @@ -38,7 +38,17 @@ public class DateAssistant { DateX date=new DateX(); return date.getDateString("HH:mm:ss"); } - + + /** + * 获得自定义格式日期 + * @param format + * @return + */ + public final static String getFormatDate(String format){ + DateX date=new DateX(); + return date.getDateString(format); + } + public static long getDateSubDays(String sDate1, String sDate2, String sFormat) throws Exception { Calendar calendar1 = Calendar.getInstance(); calendar1.setTime(new SimpleDateFormat(sFormat).parse(sDate1)); diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/IncomeVoucher.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/IncomeVoucher.java index bcd3b16b3..9ecad6b34 100644 --- a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/IncomeVoucher.java +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/IncomeVoucher.java @@ -6,16 +6,27 @@ import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherCustCautionMoneyIncom import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherEbankMoney; import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherRedCompensatory; import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherRentIncome; +import com.tenwa.voucher.serviceImp.OverdueRepayPlanVoucherPSBC; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * 网银收款流程结束后生成相应的凭证 * @author xiezhiwen */ public class IncomeVoucher extends BaseBussiness { - + private static final Logger logger = LoggerFactory.getLogger(IncomeVoucher.class); @Override public Object run(Transaction Sqlca) throws Exception { this.initBussinessParam(Sqlca); String FlowUnid=this.getAttribute("FlowUnid").toString(); + logger.info("IncomeVoucher 20210906 新增判断代码【开始】"); + OverdueRepayPlanVoucherPSBC overdueRepayPlanVoucherPSBC = new OverdueRepayPlanVoucherPSBC(); + if(overdueRepayPlanVoucherPSBC.findFcPSBCOverduce(FlowUnid)){ + logger.info("IncomeVoucher 网银收款流程结束后生成相应的凭证,当前是邮储相关订单凭证不执行以下操作。【结束】,未通过。"); + return "true"; + } + logger.info("IncomeVoucher 20210906 新增判断代码【结束】,通过。"); String userid = this.getAttribute("CurUserID").toString(); /** diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/InsertVoucherRentIncome.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/InsertVoucherRentIncome.java index 5932f132f..7af590773 100644 --- a/src_core/com/tenwa/voucher/CreateVoucherProcess/InsertVoucherRentIncome.java +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/InsertVoucherRentIncome.java @@ -8,15 +8,19 @@ import com.amarsoft.awe.util.SqlObject; import com.amarsoft.awe.util.Transaction; import com.amarsoft.dict.als.cache.CacheLoaderFactory; import com.tenwa.comm.util.jboutil.DataOperatorUtil; +import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherMethodSettle.IncomeVoucher; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * 定时任务生成卡扣租金及逾期利息凭证 * @author xiezhiwen */ public class InsertVoucherRentIncome { + private static final Logger logger = LoggerFactory.getLogger(InsertVoucherRentIncome.class); /** * 定时任务触发 - * @throws Exception + * @throws Exception */ public void execute() throws Exception{ // 将需要生成凭证的数据存入中间 @@ -24,11 +28,11 @@ public class InsertVoucherRentIncome { // 插数据入v8表生成凭证 CreateVoucher(); } - - /** + + /** * 查询租金实收表, 将需要生成凭证的数据存入中间表 - * @throws Exception - */ + * @throws Exception + */ public void initLVRentIncome() throws Exception{ Transaction Sqlca =null; Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource()); @@ -39,21 +43,50 @@ public class InsertVoucherRentIncome { * 查询数据, 判断是否需要执行插入中间表 */ // 查询是否有当月的, 未生成凭证的数据(卡扣) - String sqls1="SELECT lri.RENT FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income GROUP BY INCOME_ID,LRI_ID) LV1 ON LV1.INCOME_ID = LRI.PLAN_ID AND LV1.LRI_ID = LRI.ID LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income2 GROUP BY INCOME_ID,LRI_ID) LV2 ON LV2.INCOME_ID = LRI.PLAN_ID AND LV2.LRI_ID = LRI.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV3 ON LV3.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV4 ON LV4.INCOME_ID = LRP.ID WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay') AND lri.rent > 0 AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND LV3.INCOME_ID IS NULL AND LV4.INCOME_ID IS NULL) AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(),'%Y-%m') = DATE_FORMAT(lrp.plan_date, '%Y-%m')"; - // 查询跨月的, 未生成凭证的数据(卡扣) - String sqls2="SELECT lri.RENT FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income GROUP BY INCOME_ID,LRI_ID) LV1 ON LV1.INCOME_ID = LRI.PLAN_ID AND LV1.LRI_ID = LRI.ID LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income2 GROUP BY INCOME_ID,LRI_ID) LV2 ON LV2.INCOME_ID = LRI.PLAN_ID AND LV2.LRI_ID = LRI.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV3 ON LV3.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV4 ON LV4.INCOME_ID = LRP.ID WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay') AND lri.rent > 0 AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND LV3.INCOME_ID IS NULL AND LV4.INCOME_ID IS NULL) AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(),'%Y-%m')<> DATE_FORMAT(lrp.plan_date, '%Y-%m')"; + logger.info("InsertVoucherRentIncome 20210906 新增fc_yc_overdue_repay_plan联表查询代码【开始】"); + String sqls1="SELECT lri.RENT FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income GROUP BY INCOME_ID,LRI_ID) LV1 ON LV1.INCOME_ID = LRI.PLAN_ID AND LV1.LRI_ID = LRI.ID LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income2 GROUP BY INCOME_ID,LRI_ID) LV2 ON LV2.INCOME_ID = LRI.PLAN_ID AND LV2.LRI_ID = LRI.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV3 ON LV3.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV4 ON LV4.INCOME_ID = LRP.ID " + + " LEFT JOIN fc_yc_overdue_repay_plan fyorp ON fyorp.rent_plan_id = lri.PLAN_ID " + + " WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay','TLCollect') " + + " AND fyorp.id IS NULL " + + " AND lri.rent > 0 AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND LV3.INCOME_ID IS NULL AND LV4.INCOME_ID IS NULL) AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(),'%Y-%m') = DATE_FORMAT(lrp.plan_date, '%Y-%m')"; + // 查询跨月的, 未生成凭证的数W据(卡扣) + String sqls2="SELECT lri.RENT FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income GROUP BY INCOME_ID,LRI_ID) LV1 ON LV1.INCOME_ID = LRI.PLAN_ID AND LV1.LRI_ID = LRI.ID LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income2 GROUP BY INCOME_ID,LRI_ID) LV2 ON LV2.INCOME_ID = LRI.PLAN_ID AND LV2.LRI_ID = LRI.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV3 ON LV3.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV4 ON LV4.INCOME_ID = LRP.ID " + + " LEFT JOIN fc_yc_overdue_repay_plan fyorp ON fyorp.rent_plan_id = lri.PLAN_ID " + + " WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay','TLCollect') " + + " AND fyorp.id IS NULL " + + " AND lri.rent > 0 AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND LV3.INCOME_ID IS NULL AND LV4.INCOME_ID IS NULL) AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(),'%Y-%m')<> DATE_FORMAT(lrp.plan_date, '%Y-%m')"; // 查询当前数据是否有逾期利息(卡扣) - String sqls3="SELECT lri.PENALTY FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT income_id,LRI_ID FROM lv_penalty_income GROUP BY INCOME_ID,LRI_ID) LV1 ON LV1.INCOME_ID = LRI.PLAN_ID AND LV1.LRI_ID = LRI.ID LEFT JOIN (SELECT INCOME_ID FROM LV_PENALTY_PLAN GROUP BY INCOME_ID) LV2 ON LV2.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV3 ON LV3.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV4 ON LV4.INCOME_ID = LRP.ID WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay') AND lri.penalty > 0 AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND LV3.INCOME_ID IS NULL AND LV4.INCOME_ID IS NULL) AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d')"; - + String sqls3="SELECT lri.PENALTY FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT income_id,LRI_ID FROM lv_penalty_income GROUP BY INCOME_ID,LRI_ID) LV1 ON LV1.INCOME_ID = LRI.PLAN_ID AND LV1.LRI_ID = LRI.ID LEFT JOIN (SELECT INCOME_ID FROM LV_PENALTY_PLAN GROUP BY INCOME_ID) LV2 ON LV2.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV3 ON LV3.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV4 ON LV4.INCOME_ID = LRP.ID " + + " LEFT JOIN fc_yc_overdue_repay_plan fyorp ON fyorp.rent_plan_id = lri.PLAN_ID " + + " WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay','TLCollect') " + + " AND fyorp.id IS NULL " + + " AND lri.penalty > 0 AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND LV3.INCOME_ID IS NULL AND LV4.INCOME_ID IS NULL) AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d')"; + // 代偿反冲租金 - String sqls4="SELECT lri.RENT,LRI.ID AS F56 FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV1 ON LV1.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV2 ON LV2.INCOME_ID = LRP.ID LEFT JOIN (SELECT F58,F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿反冲-收到代偿的租金%' AND (F56 IS NOT NULL AND F56 <> '' AND F58 IS NOT NULL AND F58 <> '') GROUP BY F58,F56) V8 ON V8.F58 = LRI.PLAN_ID AND V8.F56 = LRI.ID WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXUnionPay') AND lri.rent > 0 AND (LV1.INCOME_ID IS NOT NULL OR LV2.INCOME_ID IS NOT NULL) AND V8.F58 IS NULL AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d')"; + String sqls4="SELECT lri.RENT,LRI.ID AS F56 FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV1 ON LV1.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV2 ON LV2.INCOME_ID = LRP.ID LEFT JOIN (SELECT F58,F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿反冲-收到代偿的租金%' AND (F56 IS NOT NULL AND F56 <> '' AND F58 IS NOT NULL AND F58 <> '') GROUP BY F58,F56) V8 ON V8.F58 = LRI.PLAN_ID AND V8.F56 = LRI.ID " + + " LEFT JOIN fc_yc_overdue_repay_plan fyorp ON fyorp.rent_plan_id = lri.PLAN_ID " + + " WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXUnionPay','TLCollect') " + + " AND fyorp.id IS NULL " + + " AND lri.rent > 0 AND (LV1.INCOME_ID IS NOT NULL OR LV2.INCOME_ID IS NOT NULL) AND V8.F58 IS NULL AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d')"; // 代偿反冲逾期利息 - String slqs5="SELECT lri.PENALTY,LRI.ID AS F56 FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV1 ON LV1.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV2 ON LV2.INCOME_ID = LRP.ID LEFT JOIN (SELECT F58,F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿反冲-代偿逾期利息%' AND (F56 IS NOT NULL AND F56 <> '' AND F58 IS NOT NULL AND F58 <> '') GROUP BY F58,F56) V8 ON V8.F58 = LRI.PLAN_ID AND V8.F56 = LRI.ID WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXUnionPay') AND lri.PENALTY > 0 AND (LV1.INCOME_ID IS NOT NULL OR LV2.INCOME_ID IS NOT NULL) AND V8.F58 IS NULL AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') "; + String slqs5="SELECT lri.PENALTY,LRI.ID AS F56 FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV1 ON LV1.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV2 ON LV2.INCOME_ID = LRP.ID LEFT JOIN (SELECT F58,F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿反冲-代偿逾期利息%' AND (F56 IS NOT NULL AND F56 <> '' AND F58 IS NOT NULL AND F58 <> '') GROUP BY F58,F56) V8 ON V8.F58 = LRI.PLAN_ID AND V8.F56 = LRI.ID " + + " LEFT JOIN fc_yc_overdue_repay_plan fyorp ON fyorp.rent_plan_id = lri.PLAN_ID " + + " WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXUnionPay','TLCollect') " + + " AND fyorp.id IS NULL " + + " AND lri.PENALTY > 0 AND (LV1.INCOME_ID IS NOT NULL OR LV2.INCOME_ID IS NOT NULL) AND V8.F58 IS NULL AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') "; // 代偿反冲租金(微信) - String sqls6="SELECT lri.RENT,LRI.ID AS F56 FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV1 ON LV1.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV2 ON LV2.INCOME_ID = LRP.ID LEFT JOIN (SELECT F58,F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿反冲-收到代偿的租金%' AND (F56 IS NOT NULL AND F56 <> '' AND F58 IS NOT NULL AND F58 <> '') GROUP BY F58,F56) V8 ON V8.F58 = LRI.PLAN_ID AND V8.F56 = LRI.ID WHERE LRI.CHARGE_WAY IN ('WXPay') AND lri.rent > 0 AND (LV1.INCOME_ID IS NOT NULL OR LV2.INCOME_ID IS NOT NULL) AND V8.F58 IS NULL AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d')"; + String sqls6="SELECT lri.RENT,LRI.ID AS F56 FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV1 ON LV1.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV2 ON LV2.INCOME_ID = LRP.ID LEFT JOIN (SELECT F58,F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿反冲-收到代偿的租金%' AND (F56 IS NOT NULL AND F56 <> '' AND F58 IS NOT NULL AND F58 <> '') GROUP BY F58,F56) V8 ON V8.F58 = LRI.PLAN_ID AND V8.F56 = LRI.ID " + + " LEFT JOIN fc_yc_overdue_repay_plan fyorp ON fyorp.rent_plan_id = lri.PLAN_ID " + + " WHERE LRI.CHARGE_WAY IN ('WXPay') " + + " AND fyorp.id IS NULL " + + " AND lri.rent > 0 AND (LV1.INCOME_ID IS NOT NULL OR LV2.INCOME_ID IS NOT NULL) AND V8.F58 IS NULL AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d')"; // 代偿反冲逾期利息(微信) - String slqs7="SELECT lri.PENALTY,LRI.ID AS F56 FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV1 ON LV1.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV2 ON LV2.INCOME_ID = LRP.ID LEFT JOIN (SELECT F58,F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿反冲-代偿逾期利息%' AND (F56 IS NOT NULL AND F56 <> '' AND F58 IS NOT NULL AND F58 <> '') GROUP BY F58,F56) V8 ON V8.F58 = LRI.PLAN_ID AND V8.F56 = LRI.ID WHERE LRI.CHARGE_WAY IN ('WXPay') AND lri.PENALTY > 0 AND (LV1.INCOME_ID IS NOT NULL OR LV2.INCOME_ID IS NOT NULL) AND V8.F58 IS NULL AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') "; - + String slqs7="SELECT lri.PENALTY,LRI.ID AS F56 FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV1 ON LV1.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV2 ON LV2.INCOME_ID = LRP.ID LEFT JOIN (SELECT F58,F56 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿反冲-代偿逾期利息%' AND (F56 IS NOT NULL AND F56 <> '' AND F58 IS NOT NULL AND F58 <> '') GROUP BY F58,F56) V8 ON V8.F58 = LRI.PLAN_ID AND V8.F56 = LRI.ID " + + " LEFT JOIN fc_yc_overdue_repay_plan fyorp ON fyorp.rent_plan_id = lri.PLAN_ID " + + " WHERE LRI.CHARGE_WAY IN ('WXPay') " + + " AND fyorp.id IS NULL " + + " AND lri.PENALTY > 0 AND (LV1.INCOME_ID IS NOT NULL OR LV2.INCOME_ID IS NOT NULL) AND V8.F58 IS NULL AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') "; + List> dataList1=DataOperatorUtil.getDataBySql(Sqlca, sqls1, null); List> dataList2=DataOperatorUtil.getDataBySql(Sqlca, sqls2, null); List> dataList3=DataOperatorUtil.getDataBySql(Sqlca, sqls3, null); @@ -61,16 +94,28 @@ public class InsertVoucherRentIncome { List> dataList5=DataOperatorUtil.getDataBySql(Sqlca, slqs5, null); List> dataList6=DataOperatorUtil.getDataBySql(Sqlca, sqls6, null); List> dataList7=DataOperatorUtil.getDataBySql(Sqlca, slqs7, null); - + logger.info("InsertVoucherRentIncome 20210906 新增fc_yc_overdue_repay_plan联表查询代码【结束】"); /** * 将数据插入中间表的SQL */ // 未逾期及逾期未过月(卡扣) - String sql1="INSERT INTO lv_rent_income (SELECT REPLACE(UUID(), '-', ''),CONCAT('k', getSerialNumber ('凭证号')),cif.customer_num,cif.customername,lci.id,lci.contract_number,lrp.id,lri.HIRE_DATE,lrp.plan_list,lri.RENT,lri.CORPUS,lri.INTEREST,0.00,lri.OWN_BANK,lri.OWN_ACCOUNT,lri.OWN_NUMBER,lri.EBANK_NUMBER,lri.CARDDEDUCT_ID,lri.ACCOUNTING_DATE,LRI.CHARGE_WAY AS COLLECT_STATUS,LCI.BUSINESSTYPE,LCI.LEAS_FORM,LRI.ID FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income GROUP BY INCOME_ID,LRI_ID) LV1 ON LV1.INCOME_ID = LRI.PLAN_ID AND LV1.LRI_ID = LRI.ID LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income2 GROUP BY INCOME_ID,LRI_ID) LV2 ON LV2.INCOME_ID = LRI.PLAN_ID AND LV2.LRI_ID = LRI.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV3 ON LV3.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV4 ON LV4.INCOME_ID = LRP.ID WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay') AND lri.rent > 0 AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND LV3.INCOME_ID IS NULL AND LV4.INCOME_ID IS NULL) AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(), '%Y-%m') = DATE_FORMAT(lrp.plan_date, '%Y-%m'))"; + String sql1="INSERT INTO lv_rent_income (SELECT REPLACE(UUID(), '-', ''),CONCAT('k', getSerialNumber ('凭证号')),cif.customer_num,cif.customername,lci.id,lci.contract_number,lrp.id,lri.HIRE_DATE,lrp.plan_list,lri.RENT,lri.CORPUS,lri.INTEREST,0.00,lri.OWN_BANK,lri.OWN_ACCOUNT,lri.OWN_NUMBER,lri.EBANK_NUMBER,lri.CARDDEDUCT_ID,lri.ACCOUNTING_DATE,LRI.CHARGE_WAY AS COLLECT_STATUS,LCI.BUSINESSTYPE,LCI.LEAS_FORM,LRI.ID FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income GROUP BY INCOME_ID,LRI_ID) LV1 ON LV1.INCOME_ID = LRI.PLAN_ID AND LV1.LRI_ID = LRI.ID LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income2 GROUP BY INCOME_ID,LRI_ID) LV2 ON LV2.INCOME_ID = LRI.PLAN_ID AND LV2.LRI_ID = LRI.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV3 ON LV3.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV4 ON LV4.INCOME_ID = LRP.ID " + + " LEFT JOIN fc_yc_overdue_repay_plan fyorp ON fyorp.rent_plan_id = lri.PLAN_ID " + + " WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay','TLCollect') " + + " AND fyorp.id IS NULL " + + " AND lri.rent > 0 AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND LV3.INCOME_ID IS NULL AND LV4.INCOME_ID IS NULL) AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(), '%Y-%m') = DATE_FORMAT(lrp.plan_date, '%Y-%m'))"; // 逾期过月(卡扣) - String sql2="INSERT INTO lv_rent_income2 (SELECT REPLACE(UUID(), '-', ''),CONCAT('k', getSerialNumber ('凭证号')),cif.customer_num,cif.customername,lci.id,lci.contract_number,lrp.id,lri.HIRE_DATE,lrp.plan_list,lri.RENT,lri.CORPUS,lri.INTEREST,0.00,lri.OWN_BANK,lri.OWN_ACCOUNT,lri.OWN_NUMBER,lri.EBANK_NUMBER,lri.CARDDEDUCT_ID,lri.ACCOUNTING_DATE,LRI.CHARGE_WAY AS COLLECT_STATUS,LCI.BUSINESSTYPE,LCI.LEAS_FORM,LRI.ID FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income GROUP BY INCOME_ID,LRI_ID) LV1 ON LV1.INCOME_ID = LRI.PLAN_ID AND LV1.LRI_ID = LRI.ID LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income2 GROUP BY INCOME_ID,LRI_ID) LV2 ON LV2.INCOME_ID = LRI.PLAN_ID AND LV2.LRI_ID = LRI.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV3 ON LV3.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV4 ON LV4.INCOME_ID = LRP.ID WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay') AND lri.rent > 0 AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND LV3.INCOME_ID IS NULL AND LV4.INCOME_ID IS NULL) AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(),'%Y-%m')<> DATE_FORMAT(lrp.plan_date, '%Y-%m'))"; + String sql2="INSERT INTO lv_rent_income2 (SELECT REPLACE(UUID(), '-', ''),CONCAT('k', getSerialNumber ('凭证号')),cif.customer_num,cif.customername,lci.id,lci.contract_number,lrp.id,lri.HIRE_DATE,lrp.plan_list,lri.RENT,lri.CORPUS,lri.INTEREST,0.00,lri.OWN_BANK,lri.OWN_ACCOUNT,lri.OWN_NUMBER,lri.EBANK_NUMBER,lri.CARDDEDUCT_ID,lri.ACCOUNTING_DATE,LRI.CHARGE_WAY AS COLLECT_STATUS,LCI.BUSINESSTYPE,LCI.LEAS_FORM,LRI.ID FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income GROUP BY INCOME_ID,LRI_ID) LV1 ON LV1.INCOME_ID = LRI.PLAN_ID AND LV1.LRI_ID = LRI.ID LEFT JOIN (SELECT income_id,LRI_ID FROM lv_rent_income2 GROUP BY INCOME_ID,LRI_ID) LV2 ON LV2.INCOME_ID = LRI.PLAN_ID AND LV2.LRI_ID = LRI.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV3 ON LV3.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV4 ON LV4.INCOME_ID = LRP.ID " + + " LEFT JOIN fc_yc_overdue_repay_plan fyorp ON fyorp.rent_plan_id = lri.PLAN_ID " + + " WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay','TLCollect') " + + " AND fyorp.id IS NULL " + + " AND lri.rent > 0 AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND LV3.INCOME_ID IS NULL AND LV4.INCOME_ID IS NULL) AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(),'%Y-%m')<> DATE_FORMAT(lrp.plan_date, '%Y-%m'))"; // 逾期利息(卡扣) - String sql3="INSERT INTO lv_penalty_income (SELECT REPLACE(UUID(), '-', ''),CONCAT('k', getSerialNumber ('凭证号')),cif.customer_num,cif.customername,lci.id,lci.contract_number,lrp.id,lri.HIRE_DATE,lrp.plan_list,0.00,0.00,0.00,lri.PENALTY,lri.OWN_BANK,lri.OWN_ACCOUNT,lri.OWN_NUMBER,lri.EBANK_NUMBER,lri.CARDDEDUCT_ID,lri.ACCOUNTING_DATE,LRI.CHARGE_WAY AS COLLECT_STATUS,LCI.BUSINESSTYPE,LCI.LEAS_FORM,LRI.ID FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT income_id,LRI_ID FROM lv_penalty_income GROUP BY INCOME_ID,LRI_ID) LV1 ON LV1.INCOME_ID = LRI.PLAN_ID AND LV1.LRI_ID = LRI.ID LEFT JOIN (SELECT INCOME_ID FROM LV_PENALTY_PLAN GROUP BY INCOME_ID) LV2 ON LV2.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV3 ON LV3.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV4 ON LV4.INCOME_ID = LRP.ID WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay') AND lri.penalty > 0 AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND LV3.INCOME_ID IS NULL AND LV4.INCOME_ID IS NULL) AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d'))"; + String sql3="INSERT INTO lv_penalty_income (SELECT REPLACE(UUID(), '-', ''),CONCAT('k', getSerialNumber ('凭证号')),cif.customer_num,cif.customername,lci.id,lci.contract_number,lrp.id,lri.HIRE_DATE,lrp.plan_list,0.00,0.00,0.00,lri.PENALTY,lri.OWN_BANK,lri.OWN_ACCOUNT,lri.OWN_NUMBER,lri.EBANK_NUMBER,lri.CARDDEDUCT_ID,lri.ACCOUNTING_DATE,LRI.CHARGE_WAY AS COLLECT_STATUS,LCI.BUSINESSTYPE,LCI.LEAS_FORM,LRI.ID FROM lc_rent_income lri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lri.contract_id AND lrp.plan_list = lri.plan_list LEFT JOIN lb_contract_info lci ON lci.id = lrp.contract_id LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN (SELECT income_id,LRI_ID FROM lv_penalty_income GROUP BY INCOME_ID,LRI_ID) LV1 ON LV1.INCOME_ID = LRI.PLAN_ID AND LV1.LRI_ID = LRI.ID LEFT JOIN (SELECT INCOME_ID FROM LV_PENALTY_PLAN GROUP BY INCOME_ID) LV2 ON LV2.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN GROUP BY INCOME_ID) LV3 ON LV3.INCOME_ID = LRP.ID LEFT JOIN (SELECT INCOME_ID FROM LV_RENT_PLAN2 GROUP BY INCOME_ID) LV4 ON LV4.INCOME_ID = LRP.ID " + + " LEFT JOIN fc_yc_overdue_repay_plan fyorp ON fyorp.rent_plan_id = lri.PLAN_ID " + + " WHERE LRI.CHARGE_WAY IN ('AutoBuckle','WXPay','WXUnionPay','TLCollect') " + + " AND fyorp.id IS NULL " + + " AND lri.penalty > 0 AND (LV1.INCOME_ID IS NULL AND LV2.INCOME_ID IS NULL AND LV3.INCOME_ID IS NULL AND LV4.INCOME_ID IS NULL) AND lul.is_main = 'Y' AND DATE_FORMAT(LRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d'))"; /** * 根据查询语句判断, 有值才执行插入SQL */ @@ -90,34 +135,34 @@ public class InsertVoucherRentIncome { System.out.println("本次需生成卡扣逾期利息凭证数据:"+c+"条 !"); } Sqlca.commit(); - + /** - * 收取租金时, 如果已经经销商代偿, 生成反冲代偿凭证; 将租金id存入集合, 遍历结合, 通过id生成凭证 - */ + * 收取租金时, 如果已经经销商代偿, 生成反冲代偿凭证; 将租金id存入集合, 遍历结合, 通过id生成凭证 + */ CreateVoucherRedCompensatory cvrc = new CreateVoucherRedCompensatory(); List list = new ArrayList(); for (Map map1 : dataList4) { - if(!list.contains(map1.get("F56"))){ - list.add(map1.get("F56")); - } + if(!list.contains(map1.get("F56"))){ + list.add(map1.get("F56")); + } } for (Map map2 : dataList5) { - if(!list.contains(map2.get("F56"))){ - list.add(map2.get("F56")); - } + if(!list.contains(map2.get("F56"))){ + list.add(map2.get("F56")); + } } List list2 = new ArrayList(); for (Map map1 : dataList6) { - if(!list2.contains(map1.get("F56"))){ - list2.add(map1.get("F56")); - } + if(!list2.contains(map1.get("F56"))){ + list2.add(map1.get("F56")); + } } for (Map map2 : dataList7) { - if(!list2.contains(map2.get("F56"))){ - list2.add(map2.get("F56")); - } + if(!list2.contains(map2.get("F56"))){ + list2.add(map2.get("F56")); + } } - + for (String F56 : list) { // 判断当期是否已生成经销商代偿凭证, 如已生成, 反冲 cvrc.CreateVoucher("PZ2019071500000030", "admin",F56);// 代偿反冲-收到的租金 @@ -134,12 +179,12 @@ public class InsertVoucherRentIncome { System.out.println("**********************代偿反冲凭证收成**************************"); System.out.println("***********************************************************"); } - + if(Sqlca!=null){ Sqlca.disConnect(); } } - + /*** * 将数据插入v8表 * @param VOUCHERNO @@ -155,20 +200,20 @@ public class InsertVoucherRentIncome { * 汽车回租-卡扣 */ // 当月的租金(卡扣)-(汽车回租) - String sqlqh1="SELECT lvri.RENT,lvri.income_id AS F58 FROM lv_rent_income lvri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lvri.contract_id AND lrp.id = lvri.income_id LEFT JOIN (SELECT F58,F56 FROM VOUCHER_V8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56) V8 ON V8.F58 = LVRI.INCOME_ID AND V8.F56 = LVRI.LRI_ID WHERE lvri.collect_status IN ('AutoBuckle') AND lvri.rent > 0 AND LVRI.BUSINESSTYPE = '1' AND LVRI.LEAS_FORM = '02' AND V8.F58 IS NULL AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(), '%Y-%m') = DATE_FORMAT(lrp.plan_date, '%Y-%m')"; + String sqlqh1="SELECT lvri.RENT,lvri.income_id AS F58 FROM lv_rent_income lvri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lvri.contract_id AND lrp.id = lvri.income_id LEFT JOIN (SELECT F58,F56 FROM VOUCHER_V8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND F58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56) V8 ON V8.F58 = LVRI.INCOME_ID AND V8.F56 = LVRI.LRI_ID WHERE lvri.collect_status IN ('AutoBuckle','TLCollect') AND lvri.rent > 0 AND LVRI.BUSINESSTYPE = '1' AND LVRI.LEAS_FORM = '02' AND V8.F58 IS NULL AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(), '%Y-%m') = DATE_FORMAT(lrp.plan_date, '%Y-%m')"; // 本月以前的租金(卡扣)-(汽车回租) - String sqlqh2="SELECT lvri.RENT,lvri.income_id AS F58 FROM lv_rent_income2 lvri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lvri.contract_id AND lrp.id = lvri.income_id LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56) V8 ON V8.F58 = LVRI.INCOME_ID AND V8.F56 = LVRI.LRI_ID WHERE lvri.collect_status IN ('AutoBuckle') AND lvri.rent > 0 AND LVRI.BUSINESSTYPE = '1' AND LVRI.LEAS_FORM = '02' AND V8.F58 IS NULL AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(),'%Y-%m')<> DATE_FORMAT(lrp.plan_date, '%Y-%m') "; + String sqlqh2="SELECT lvri.RENT,lvri.income_id AS F58 FROM lv_rent_income2 lvri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lvri.contract_id AND lrp.id = lvri.income_id LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56) V8 ON V8.F58 = LVRI.INCOME_ID AND V8.F56 = LVRI.LRI_ID WHERE lvri.collect_status IN ('AutoBuckle','TLCollect') AND lvri.rent > 0 AND LVRI.BUSINESSTYPE = '1' AND LVRI.LEAS_FORM = '02' AND V8.F58 IS NULL AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(),'%Y-%m')<> DATE_FORMAT(lrp.plan_date, '%Y-%m') "; // 逾期利息(卡扣)-(汽车回租) - String sqlqh3="SELECT lvri.PENALTY,lvri.income_id AS F58 FROM lv_penalty_income lvri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lvri.contract_id AND lrp.id = lvri.income_id LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%收到的逾期利息(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56) V8 ON V8.F58 = LVRI.INCOME_ID AND V8.F56 = LVRI.LRI_ID WHERE lvri.collect_status IN ('AutoBuckle') AND lvri.PENALTY > 0 AND LVRI.BUSINESSTYPE = '1' AND LVRI.LEAS_FORM = '02' AND V8.F58 IS NULL AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') "; + String sqlqh3="SELECT lvri.PENALTY,lvri.income_id AS F58 FROM lv_penalty_income lvri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lvri.contract_id AND lrp.id = lvri.income_id LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%收到的逾期利息(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56) V8 ON V8.F58 = LVRI.INCOME_ID AND V8.F56 = LVRI.LRI_ID WHERE lvri.collect_status IN ('AutoBuckle','TLCollect') AND lvri.PENALTY > 0 AND LVRI.BUSINESSTYPE = '1' AND LVRI.LEAS_FORM = '02' AND V8.F58 IS NULL AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') "; /** * 汽车直租-卡扣 */ // 当月的租金(卡扣)-(汽车直租) - String sqlqz1="SELECT lvri.RENT,lvri.income_id AS F58 FROM lv_rent_income lvri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lvri.contract_id AND lrp.id = lvri.income_id LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56) V8 ON V8.F58 = LVRI.INCOME_ID AND V8.F56 = LVRI.LRI_ID WHERE lvri.collect_status IN ('AutoBuckle') AND lvri.rent > 0 AND LVRI.BUSINESSTYPE = '1' AND LVRI.LEAS_FORM = '01' AND V8.F58 IS NULL AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(), '%Y-%m') = DATE_FORMAT(lrp.plan_date, '%Y-%m')"; + String sqlqz1="SELECT lvri.RENT,lvri.income_id AS F58 FROM lv_rent_income lvri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lvri.contract_id AND lrp.id = lvri.income_id LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56) V8 ON V8.F58 = LVRI.INCOME_ID AND V8.F56 = LVRI.LRI_ID WHERE lvri.collect_status IN ('AutoBuckle','TLCollect') AND lvri.rent > 0 AND LVRI.BUSINESSTYPE = '1' AND LVRI.LEAS_FORM = '01' AND V8.F58 IS NULL AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(), '%Y-%m') = DATE_FORMAT(lrp.plan_date, '%Y-%m')"; // 本月以前的租金(卡扣)-(汽车直租) - String sqlqz2="SELECT lvri.RENT,lvri.income_id AS F58 FROM lv_rent_income2 lvri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lvri.contract_id AND lrp.id = lvri.income_id LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56) V8 ON V8.F58 = LVRI.INCOME_ID AND V8.F56 = LVRI.LRI_ID WHERE lvri.collect_status IN ('AutoBuckle') AND lvri.rent > 0 AND LVRI.BUSINESSTYPE = '1' AND LVRI.LEAS_FORM = '01' AND V8.F58 IS NULL AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(),'%Y-%m')<> DATE_FORMAT(lrp.plan_date, '%Y-%m')"; + String sqlqz2="SELECT lvri.RENT,lvri.income_id AS F58 FROM lv_rent_income2 lvri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lvri.contract_id AND lrp.id = lvri.income_id LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56) V8 ON V8.F58 = LVRI.INCOME_ID AND V8.F56 = LVRI.LRI_ID WHERE lvri.collect_status IN ('AutoBuckle','TLCollect') AND lvri.rent > 0 AND LVRI.BUSINESSTYPE = '1' AND LVRI.LEAS_FORM = '01' AND V8.F58 IS NULL AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(),'%Y-%m')<> DATE_FORMAT(lrp.plan_date, '%Y-%m')"; // 逾期利息(卡扣)-(汽车直租) - String sqlqz3="SELECT lvri.PENALTY,lvri.income_id AS F58 FROM lv_penalty_income lvri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lvri.contract_id AND lrp.id = lvri.income_id LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%收到的逾期利息(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56) V8 ON V8.F58 = LVRI.INCOME_ID AND V8.F56 = LVRI.LRI_ID WHERE lvri.collect_status IN ('AutoBuckle') AND lvri.PENALTY > 0 AND LVRI.BUSINESSTYPE = '1' AND LVRI.LEAS_FORM = '01' AND V8.F58 IS NULL AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d')"; + String sqlqz3="SELECT lvri.PENALTY,lvri.income_id AS F58 FROM lv_penalty_income lvri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lvri.contract_id AND lrp.id = lvri.income_id LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%收到的逾期利息(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56) V8 ON V8.F58 = LVRI.INCOME_ID AND V8.F56 = LVRI.LRI_ID WHERE lvri.collect_status IN ('AutoBuckle','TLCollect') AND lvri.PENALTY > 0 AND LVRI.BUSINESSTYPE = '1' AND LVRI.LEAS_FORM = '01' AND V8.F58 IS NULL AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d')"; /** * 汽车回租-微信 */ @@ -187,7 +232,7 @@ public class InsertVoucherRentIncome { String sqlWYh2="SELECT lvri.RENT,lvri.income_id AS F58 FROM lv_rent_income2 lvri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lvri.contract_id AND lrp.id = lvri.income_id LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(微信银联)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56) V8 ON V8.F58 = LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE lvri.collect_status ='WXUnionPay' AND lvri.rent > 0 AND LVRI.BUSINESSTYPE = '1' AND LVRI.LEAS_FORM = '02' AND V8.F58 IS NULL AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') AND DATE_FORMAT(NOW(), '%Y-%m') <> DATE_FORMAT(lrp.plan_date, '%Y-%m') "; // 逾期利息(微信)-(汽车直租) String sqlWYh3="SELECT lvri.PENALTY,lvri.income_id AS F58 FROM lv_penalty_income lvri LEFT JOIN lc_rent_plan lrp ON lrp.contract_id = lvri.contract_id AND lrp.id = lvri.income_id LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%收到的逾期利息(微信银联)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56) V8 ON V8.F58 = LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE lvri.collect_status ='WXUnionPay' AND lvri.PENALTY > 0 AND LVRI.BUSINESSTYPE = '1' AND LVRI.LEAS_FORM = '02' AND V8.F58 IS NULL AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d')"; - + /** * 汽车回租-卡扣 */ @@ -200,7 +245,7 @@ public class InsertVoucherRentIncome { List> dataListqz1= DataOperatorUtil.getDataBySql(Sqlca, sqlqz1, null); List> dataListqz2= DataOperatorUtil.getDataBySql(Sqlca, sqlqz2, null); List> dataListqz3= DataOperatorUtil.getDataBySql(Sqlca, sqlqz3, null); - + /** * 汽车回租-微信 */ @@ -213,25 +258,25 @@ public class InsertVoucherRentIncome { List> dataListWYh1= DataOperatorUtil.getDataBySql(Sqlca, sqlWYh1, null); List> dataListWYh2= DataOperatorUtil.getDataBySql(Sqlca, sqlWYh2, null); List> dataListWYh3= DataOperatorUtil.getDataBySql(Sqlca, sqlWYh3, null); - + /** * 汽车类-回租-卡扣 */ // 收到的租金--卡扣-当月的-(汽车回租) - String sql_whereqh1 = "INSERT INTO voucher_v8 (id,evidence_message,periodyear,f15,f2,f3,f5,f6,f7,f8,f12,f1,f49,f50,f51,f52,F56,f59,f60,f61,f62,f65,f73,f74,f75,f76,v8_status,generate_date,v8_flag,module_name,entrydc,inputuserid,f58,f67,F47,F48) SELECT REPLACE (UUID(), '-', '') id,'凭证输出' evidence_message,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) periodyear,lvri.HIRE_DATE f15,lv.SUBJECTS_CODE AS f2,lvri.voucher_f3 AS f3,CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS f5,lv.LOAN_SUBJECT AS f6,CASE WHEN lv.sort_number = '1' THEN lvri.rent WHEN LV.sort_number = '2' THEN LVRI.INTEREST ELSE 0.00 END f7,CASE WHEN lv.sort_number = '3' THEN lvri.corpus WHEN lv.sort_number = '4' THEN lvri.interest WHEN lv.sort_number = '5' THEN ROUND(lvri.interest / getTax (lci.leas_form,'租息',lcct.start_date),2) WHEN lv.sort_number = '6' THEN (lvri.interest - ROUND(lvri.interest / getTax (lci.leas_form,'租息',lcct.start_date),2)) ELSE 0.00 END f8,'定时任务-每天生成租金实收凭证' AS f12,CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END AS f1,LCI.SUBJECTID AS f49,LCI.SUBJECTNAME AS f50,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS f51,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS f52,LVRI.LRI_ID,lv.sort_number AS f59,CASE WHEN lv.sort_number = '1' OR lv.sort_number = '6' THEN '' ELSE lci.contract_number END AS f60,CASE WHEN lv.sort_number = '1' THEN '汽车C端待查客户' WHEN lv.sort_number = '6' THEN '' ELSE lvri.cust_name END AS f61,lv.LOAN_SUBJECT AS f62,CASE WHEN lv.sort_number = '1' THEN 'APZL00000000DC' WHEN lv.sort_number = '6' THEN '' ELSE lvri.cust_id END AS f65,CASE WHEN lv.sort_number = '5' THEN '0604' ELSE '' END AS f73,'' AS f74,'' AS f75,CASE WHEN lv.sort_number = '6' THEN (SELECT TAX_CODES FROM tax_code WHERE TAX_NUMBER = ROUND((getTax (lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0)) ELSE '' END AS f76,'已完整' AS v8_status,DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS generate_date,'0' AS v8_flag,lv.modular_number AS module_name,CASE WHEN lv.loan_direction = '1' THEN '1' ELSE '-1' END AS entrydc,'admin' AS inputuserid,lvri.income_id AS f58,lci.leas_form AS f67,LCI.CONTRACT_NUMBER,OI.OWN_NUMBER FROM lv_rent_income lvri LEFT JOIN lb_contract_info lci ON lci.id = lvri.contract_id LEFT JOIN lc_calc_condition lcct ON lcct.contract_id = lci.id LEFT JOIN (SELECT OWN_NUMBER,MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN (SELECT lvc.PROJ_TYPE,lvl.id,lvl.LOAN_DIRECTION,lvc.OWNED_COMPANY,lvl.sort_number,lvl.loan_subject,lvc.modular_number,lsc.SUBJECTS_CODE FROM lv_voucher_config lvc LEFT JOIN lv_voucher_loan lvl ON lvl.VOUCHER_ID = lvc.id LEFT JOIN lv_stacts_config lsc ON lsc.id = lvl.LOAN_SUBJECT WHERE lvc.voucher_no IN ('PZ2018082100000142')) lv ON lv.proj_type = lci.LEAS_FORM LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56)V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LCI.BUSINESSTYPE = '1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL AND lvri.rent > 0 AND lvri.collect_status IN ('AutoBuckle') AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') ORDER BY lvri.voucher_f3 "; + String sql_whereqh1 = "INSERT INTO voucher_v8 (id,evidence_message,periodyear,f15,f2,f3,f5,f6,f7,f8,f12,f1,f49,f50,f51,f52,F56,f59,f60,f61,f62,f65,f73,f74,f75,f76,v8_status,generate_date,v8_flag,module_name,entrydc,inputuserid,f58,f67,F47,F48) SELECT REPLACE (UUID(), '-', '') id,'凭证输出' evidence_message,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) periodyear,lvri.HIRE_DATE f15,lv.SUBJECTS_CODE AS f2,lvri.voucher_f3 AS f3,CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS f5,lv.LOAN_SUBJECT AS f6,CASE WHEN lv.sort_number = '1' THEN lvri.rent WHEN LV.sort_number = '2' THEN LVRI.INTEREST ELSE 0.00 END f7,CASE WHEN lv.sort_number = '3' THEN lvri.corpus WHEN lv.sort_number = '4' THEN lvri.interest WHEN lv.sort_number = '5' THEN ROUND(lvri.interest / getTax (lci.leas_form,'租息',lcct.start_date),2) WHEN lv.sort_number = '6' THEN (lvri.interest - ROUND(lvri.interest / getTax (lci.leas_form,'租息',lcct.start_date),2)) ELSE 0.00 END f8,'定时任务-每天生成租金实收凭证' AS f12,CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END AS f1,LCI.SUBJECTID AS f49,LCI.SUBJECTNAME AS f50,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS f51,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS f52,LVRI.LRI_ID,lv.sort_number AS f59,CASE WHEN lv.sort_number = '1' OR lv.sort_number = '6' THEN '' ELSE lci.contract_number END AS f60,CASE WHEN lv.sort_number = '1' THEN '汽车C端待查客户' WHEN lv.sort_number = '6' THEN '' ELSE lvri.cust_name END AS f61,lv.LOAN_SUBJECT AS f62,CASE WHEN lv.sort_number = '1' THEN 'APZL00000000DC' WHEN lv.sort_number = '6' THEN '' ELSE lvri.cust_id END AS f65,CASE WHEN lv.sort_number = '5' THEN '0604' ELSE '' END AS f73,'' AS f74,'' AS f75,CASE WHEN lv.sort_number = '6' THEN (SELECT TAX_CODES FROM tax_code WHERE TAX_NUMBER = ROUND((getTax (lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0)) ELSE '' END AS f76,'已完整' AS v8_status,DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS generate_date,'0' AS v8_flag,lv.modular_number AS module_name,CASE WHEN lv.loan_direction = '1' THEN '1' ELSE '-1' END AS entrydc,'admin' AS inputuserid,lvri.income_id AS f58,lci.leas_form AS f67,LCI.CONTRACT_NUMBER,OI.OWN_NUMBER FROM lv_rent_income lvri LEFT JOIN lb_contract_info lci ON lci.id = lvri.contract_id LEFT JOIN lc_calc_condition lcct ON lcct.contract_id = lci.id LEFT JOIN (SELECT OWN_NUMBER,MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN (SELECT lvc.PROJ_TYPE,lvl.id,lvl.LOAN_DIRECTION,lvc.OWNED_COMPANY,lvl.sort_number,lvl.loan_subject,lvc.modular_number,lsc.SUBJECTS_CODE FROM lv_voucher_config lvc LEFT JOIN lv_voucher_loan lvl ON lvl.VOUCHER_ID = lvc.id LEFT JOIN lv_stacts_config lsc ON lsc.id = lvl.LOAN_SUBJECT WHERE lvc.voucher_no IN ('PZ2018082100000142')) lv ON lv.proj_type = lci.LEAS_FORM LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56)V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LCI.BUSINESSTYPE = '1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL AND lvri.rent > 0 AND lvri.collect_status IN ('AutoBuckle','TLCollect') AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') ORDER BY lvri.voucher_f3 "; // 收到的租金--卡扣-跨月的-(汽车回租) - String sql_whereqh2 = "INSERT INTO voucher_v8 (id,evidence_message,periodyear,f15,F2,f3,f5,f6,f7,f8,f12,f1,f49,f50,f51,f52,F56,f59,f60,f61,f62,f65,f73,f74,f75,f76,v8_status,generate_date,v8_flag,module_name,entrydc,inputuserid,f58,f67,F47,F48) SELECT REPLACE (UUID(), '-', '') id,'凭证输出' evidence_message,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) periodyear,lvri.HIRE_DATE f15,lv.SUBJECTS_CODE AS f2,lvri.voucher_f3 AS f3,CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS f5,lv.LOAN_SUBJECT AS f6,CASE WHEN lv.sort_number = '1' THEN lvri.rent ELSE 0.00 END f7,CASE WHEN lv.sort_number = '2' THEN lvri.corpus WHEN lv.sort_number = '3' THEN lvri.interest ELSE 0.00 END f8,'定时任务-每天生成租金实收凭证' AS f12,CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END AS f1,LCI.SUBJECTID AS f49,LCI.SUBJECTNAME AS f50,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS f51,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS f52,LVRI.LRI_ID AS F56,lv.sort_number AS f59,CASE WHEN lv.sort_number = '1' THEN '' ELSE lci.contract_number END AS f60,CASE WHEN lv.sort_number = '1' THEN '汽车C端待查客户' ELSE lvri.cust_name END AS f61,lv.LOAN_SUBJECT AS f62,CASE WHEN lv.sort_number = '1' THEN 'APZL00000000DC' ELSE lvri.cust_id END AS f65,'' AS f73,'' AS f74,'' AS f75,'' AS f76,'已完整' AS v8_status,DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS generate_date,'0' AS v8_flag,lv.modular_number AS module_name,CASE WHEN lv.loan_direction = '1' THEN '1' ELSE '-1' END AS entrydc,'admin' AS inputuserid,lvri.income_id AS f58,lci.leas_form AS f67,LCI.CONTRACT_NUMBER,OI.OWN_NUMBER FROM lv_rent_income2 lvri LEFT JOIN lb_contract_info lci ON lci.id = lvri.contract_id LEFT JOIN lc_calc_condition lcct ON lcct.contract_id = lci.id LEFT JOIN (SELECT OWN_NUMBER,MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN (SELECT lvc.PROJ_TYPE,lvl.id,lvl.LOAN_DIRECTION,lvc.OWNED_COMPANY,lvl.sort_number,lvl.loan_subject,lvc.modular_number,lsc.SUBJECTS_CODE FROM lv_voucher_config lvc LEFT JOIN lv_voucher_loan lvl ON lvl.VOUCHER_ID = lvc.id LEFT JOIN lv_stacts_config lsc ON lsc.id = lvl.LOAN_SUBJECT WHERE lvc.voucher_no IN ('PZ2018082100000143')) lv ON lv.proj_type = lci.leas_form LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56)V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LCI.BUSINESSTYPE = '1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL AND lvri.rent > 0 AND lvri.collect_status IN ('AutoBuckle') AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') ORDER BY lvri.voucher_f3 "; + String sql_whereqh2 = "INSERT INTO voucher_v8 (id,evidence_message,periodyear,f15,F2,f3,f5,f6,f7,f8,f12,f1,f49,f50,f51,f52,F56,f59,f60,f61,f62,f65,f73,f74,f75,f76,v8_status,generate_date,v8_flag,module_name,entrydc,inputuserid,f58,f67,F47,F48) SELECT REPLACE (UUID(), '-', '') id,'凭证输出' evidence_message,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) periodyear,lvri.HIRE_DATE f15,lv.SUBJECTS_CODE AS f2,lvri.voucher_f3 AS f3,CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS f5,lv.LOAN_SUBJECT AS f6,CASE WHEN lv.sort_number = '1' THEN lvri.rent ELSE 0.00 END f7,CASE WHEN lv.sort_number = '2' THEN lvri.corpus WHEN lv.sort_number = '3' THEN lvri.interest ELSE 0.00 END f8,'定时任务-每天生成租金实收凭证' AS f12,CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END AS f1,LCI.SUBJECTID AS f49,LCI.SUBJECTNAME AS f50,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS f51,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS f52,LVRI.LRI_ID AS F56,lv.sort_number AS f59,CASE WHEN lv.sort_number = '1' THEN '' ELSE lci.contract_number END AS f60,CASE WHEN lv.sort_number = '1' THEN '汽车C端待查客户' ELSE lvri.cust_name END AS f61,lv.LOAN_SUBJECT AS f62,CASE WHEN lv.sort_number = '1' THEN 'APZL00000000DC' ELSE lvri.cust_id END AS f65,'' AS f73,'' AS f74,'' AS f75,'' AS f76,'已完整' AS v8_status,DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS generate_date,'0' AS v8_flag,lv.modular_number AS module_name,CASE WHEN lv.loan_direction = '1' THEN '1' ELSE '-1' END AS entrydc,'admin' AS inputuserid,lvri.income_id AS f58,lci.leas_form AS f67,LCI.CONTRACT_NUMBER,OI.OWN_NUMBER FROM lv_rent_income2 lvri LEFT JOIN lb_contract_info lci ON lci.id = lvri.contract_id LEFT JOIN lc_calc_condition lcct ON lcct.contract_id = lci.id LEFT JOIN (SELECT OWN_NUMBER,MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN (SELECT lvc.PROJ_TYPE,lvl.id,lvl.LOAN_DIRECTION,lvc.OWNED_COMPANY,lvl.sort_number,lvl.loan_subject,lvc.modular_number,lsc.SUBJECTS_CODE FROM lv_voucher_config lvc LEFT JOIN lv_voucher_loan lvl ON lvl.VOUCHER_ID = lvc.id LEFT JOIN lv_stacts_config lsc ON lsc.id = lvl.LOAN_SUBJECT WHERE lvc.voucher_no IN ('PZ2018082100000143')) lv ON lv.proj_type = lci.leas_form LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56)V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LCI.BUSINESSTYPE = '1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL AND lvri.rent > 0 AND lvri.collect_status IN ('AutoBuckle','TLCollect') AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') ORDER BY lvri.voucher_f3 "; //收到的逾期利息--卡扣-(汽车回租) - String sql_whereqh3 = "INSERT INTO voucher_v8 ( id, evidence_message, periodyear, f15, f2, f3, f5, f6, f7, f8, f12, f1, f49, f50, f51, f52,F56, f59, f60, f61, f62, f65, f73, f74, f75,f76, v8_status, generate_date, v8_flag, module_name, entrydc, inputuserid, f58, f67,F47,F48) SELECT REPLACE (UUID(), '-', '') id,'凭证输出' evidence_message,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE, '%Y/%m/%d') END,1,4) periodyear,lvri.HIRE_DATE AS f15,lv.SUBJECTS_CODE AS f2,lvri.voucher_f3 AS f3,CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的逾期利息-卡扣-',LVRI.PLAN_LIST) ELSE '收到的逾期利息-卡扣' END AS f5,lv.LOAN_SUBJECT AS f6,CASE WHEN lv.sort_number = '1' THEN lvri.penalty ELSE 0.00 END AS f7,CASE WHEN lv.sort_number = '2' THEN ROUND(lvri.penalty / getTax (LCI.LEAS_FORM,'逾期利息',lcct.start_date),2) WHEN lv.sort_number = '3' THEN lvri.penalty - (ROUND(lvri.penalty /getTax (LCI.LEAS_FORM,'逾期利息',lcct.start_date),2)) ELSE 0.00 END AS f8,'定时任务-每天生成租金实收凭证' AS f12,CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE, '%Y/%m/%d') END AS f1,LCI.SUBJECTID AS f49,LCI.SUBJECTNAME AS f50,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE, '%Y/%m/%d') END,1,4) AS f51,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE, '%Y/%m/%d') END,6,2) AS f52,LVRI.LRI_ID AS F56,lv.sort_number AS f59,CASE WHEN lv.sort_number = '2' THEN lci.contract_number ELSE '' END AS f60,CASE WHEN lv.sort_number = '1' THEN '汽车C端待查客户' WHEN lv.sort_number = '3' THEN '' ELSE lvri.cust_name END AS f61,lv.LOAN_SUBJECT AS f62,CASE WHEN lv.sort_number = '1' THEN 'APZL00000000DC' WHEN lv.sort_number = '3' THEN '' ELSE lvri.cust_id END AS f65,CASE WHEN lv.sort_number = '2' THEN '0603' ELSE '' END AS f73,'' AS f74,'' AS f75,CASE WHEN lv.sort_number = '3' THEN (SELECT TAX_CODES FROM tax_code WHERE TAX_NUMBER = ROUND((getTax (lci.LEAS_FORM,'逾期利息',LCCT.START_DATE) - 1) * 100,0)) ELSE '' END AS f76,'已完整' AS v8_status,DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS generate_date,'0' AS v8_flag,lv.modular_number AS module_name,CASE WHEN lv.loan_direction = '1' THEN '1' ELSE '-1' END AS entrydc,'admin' AS inputuserid,lvri.income_id AS f58,lci.leas_form AS f67,LCI.CONTRACT_NUMBER,OI.OWN_NUMBER FROM lv_penalty_income lvri LEFT JOIN lb_contract_info lci ON lci.id = lvri.contract_id LEFT JOIN lc_calc_condition lcct ON lcct.contract_id = lci.id LEFT JOIN (SELECT OWN_NUMBER,MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN (SELECT lvc.PROJ_TYPE,lvl.id,lvl.LOAN_DIRECTION,lvc.OWNED_COMPANY,lvl.sort_number,lvl.loan_subject,lvc.modular_number,lsc.subjects_code FROM lv_voucher_config lvc LEFT JOIN lv_voucher_loan lvl ON lvl.VOUCHER_ID = lvc.id LEFT JOIN lv_stacts_config lsc ON lsc.id = lvl.loan_subject WHERE lvc.voucher_no IN ('PZ2018082100000144')) lv ON lv.proj_type = lci.leas_form LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%收到的逾期利息(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56)V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LCI.BUSINESSTYPE = '1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL AND lvri.penalty > 0 AND lvri.collect_status IN ('AutoBuckle') AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') ORDER BY lvri.voucher_f3 "; + String sql_whereqh3 = "INSERT INTO voucher_v8 ( id, evidence_message, periodyear, f15, f2, f3, f5, f6, f7, f8, f12, f1, f49, f50, f51, f52,F56, f59, f60, f61, f62, f65, f73, f74, f75,f76, v8_status, generate_date, v8_flag, module_name, entrydc, inputuserid, f58, f67,F47,F48) SELECT REPLACE (UUID(), '-', '') id,'凭证输出' evidence_message,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE, '%Y/%m/%d') END,1,4) periodyear,lvri.HIRE_DATE AS f15,lv.SUBJECTS_CODE AS f2,lvri.voucher_f3 AS f3,CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的逾期利息-卡扣-',LVRI.PLAN_LIST) ELSE '收到的逾期利息-卡扣' END AS f5,lv.LOAN_SUBJECT AS f6,CASE WHEN lv.sort_number = '1' THEN lvri.penalty ELSE 0.00 END AS f7,CASE WHEN lv.sort_number = '2' THEN ROUND(lvri.penalty / getTax (LCI.LEAS_FORM,'逾期利息',lcct.start_date),2) WHEN lv.sort_number = '3' THEN lvri.penalty - (ROUND(lvri.penalty /getTax (LCI.LEAS_FORM,'逾期利息',lcct.start_date),2)) ELSE 0.00 END AS f8,'定时任务-每天生成租金实收凭证' AS f12,CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE, '%Y/%m/%d') END AS f1,LCI.SUBJECTID AS f49,LCI.SUBJECTNAME AS f50,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE, '%Y/%m/%d') END,1,4) AS f51,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE, '%Y/%m/%d') END,6,2) AS f52,LVRI.LRI_ID AS F56,lv.sort_number AS f59,CASE WHEN lv.sort_number = '2' THEN lci.contract_number ELSE '' END AS f60,CASE WHEN lv.sort_number = '1' THEN '汽车C端待查客户' WHEN lv.sort_number = '3' THEN '' ELSE lvri.cust_name END AS f61,lv.LOAN_SUBJECT AS f62,CASE WHEN lv.sort_number = '1' THEN 'APZL00000000DC' WHEN lv.sort_number = '3' THEN '' ELSE lvri.cust_id END AS f65,CASE WHEN lv.sort_number = '2' THEN '0603' ELSE '' END AS f73,'' AS f74,'' AS f75,CASE WHEN lv.sort_number = '3' THEN (SELECT TAX_CODES FROM tax_code WHERE TAX_NUMBER = ROUND((getTax (lci.LEAS_FORM,'逾期利息',LCCT.START_DATE) - 1) * 100,0)) ELSE '' END AS f76,'已完整' AS v8_status,DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS generate_date,'0' AS v8_flag,lv.modular_number AS module_name,CASE WHEN lv.loan_direction = '1' THEN '1' ELSE '-1' END AS entrydc,'admin' AS inputuserid,lvri.income_id AS f58,lci.leas_form AS f67,LCI.CONTRACT_NUMBER,OI.OWN_NUMBER FROM lv_penalty_income lvri LEFT JOIN lb_contract_info lci ON lci.id = lvri.contract_id LEFT JOIN lc_calc_condition lcct ON lcct.contract_id = lci.id LEFT JOIN (SELECT OWN_NUMBER,MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN (SELECT lvc.PROJ_TYPE,lvl.id,lvl.LOAN_DIRECTION,lvc.OWNED_COMPANY,lvl.sort_number,lvl.loan_subject,lvc.modular_number,lsc.subjects_code FROM lv_voucher_config lvc LEFT JOIN lv_voucher_loan lvl ON lvl.VOUCHER_ID = lvc.id LEFT JOIN lv_stacts_config lsc ON lsc.id = lvl.loan_subject WHERE lvc.voucher_no IN ('PZ2018082100000144')) lv ON lv.proj_type = lci.leas_form LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%收到的逾期利息(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56)V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LCI.BUSINESSTYPE = '1' AND LCI.LEAS_FORM='02' AND V8.F58 IS NULL AND lvri.penalty > 0 AND lvri.collect_status IN ('AutoBuckle','TLCollect') AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') ORDER BY lvri.voucher_f3 "; /** * 汽车类-直租-卡扣 */ // 收到的租金--卡扣-当月的-(汽车直租) - String sql_whereqz1 = "INSERT INTO voucher_v8 (id,evidence_message,periodyear,f15,f2,f3,f5,f6,f7,f8,f12,f1,f49,f50,f51,f52,F56,f59,f60,f61,f62,f65,f73,f74,f75,f76,v8_status,generate_date,v8_flag,module_name,entrydc,inputuserid,f58,f67,F47,F48) SELECT REPLACE (UUID(), '-', '') id,'凭证输出' evidence_message,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) periodyear,lvri.HIRE_DATE f15,lv.SUBJECTS_CODE AS f2,lvri.voucher_f3 AS f3,CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS f5,lv.LOAN_SUBJECT AS f6,CASE WHEN LV.sort_number = '1' THEN LVRI.RENT WHEN LV.sort_number = '2' THEN LVRI.INTEREST WHEN LV.sort_number = '3' THEN (LVRI.CORPUS-ROUND(LVRI.CORPUS / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) ELSE 0.00 END f7,CASE WHEN lv.sort_number = '4' THEN lvri.corpus WHEN lv.sort_number = '5' THEN lvri.interest WHEN lv.sort_number = '6' THEN ROUND(lvri.interest / getTax (lci.leas_form,'租息',lcct.start_date),2) WHEN lv.sort_number = '7' THEN ((LVRI.CORPUS - ROUND(LVRI.CORPUS /getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2))+(lvri.interest - ROUND(lvri.interest /getTax(LCI.LEAS_FORM,'利息',LCCT.START_DATE),2))) ELSE 0.00 END f8,'定时任务-每天生成租金实收凭证' AS f12,CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END AS f1,LCI.SUBJECTID AS f49,LCI.SUBJECTNAME AS f50,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS f51,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS f52,LVRI.LRI_ID AS F56,lv.sort_number AS f59,CASE WHEN lv.sort_number = '1' OR lv.sort_number = '7' THEN '' ELSE lci.contract_number END AS f60,CASE WHEN lv.sort_number = '1' THEN '汽车C端待查客户' WHEN lv.sort_number = '7' THEN '' ELSE lvri.cust_name END AS f61,lv.LOAN_SUBJECT AS f62,CASE WHEN lv.sort_number = '1' THEN 'APZL00000000DC' WHEN lv.sort_number = '7' THEN '' ELSE lvri.cust_id END AS f65,CASE WHEN lv.sort_number = '6' THEN '0604' ELSE '' END AS f73,'' AS f74,'' AS f75,CASE WHEN lv.sort_number = '7' THEN (SELECT TAX_CODES FROM tax_code WHERE TAX_NUMBER = ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0)) ELSE '' END AS f76,'已完整' AS v8_status,DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS generate_date,'0' AS v8_flag,lv.modular_number AS module_name,CASE WHEN lv.loan_direction = '1' THEN '1' ELSE '-1' END AS entrydc,'admin' AS inputuserid,lvri.income_id AS f58,lci.leas_form AS f67,LCI.CONTRACT_NUMBER,OI.OWN_NUMBER FROM lv_rent_income lvri LEFT JOIN lb_contract_info lci ON lci.id = lvri.contract_id LEFT JOIN lc_calc_condition lcct ON lcct.contract_id = lci.id LEFT JOIN (SELECT OWN_NUMBER,MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN (SELECT lvc.PROJ_TYPE,lvl.id,lvl.LOAN_DIRECTION,lvc.OWNED_COMPANY,lvl.sort_number,lvl.loan_subject,lvc.modular_number,lsc.SUBJECTS_CODE FROM lv_voucher_config lvc LEFT JOIN lv_voucher_loan lvl ON lvl.VOUCHER_ID = lvc.id LEFT JOIN lv_stacts_config lsc ON lsc.id = lvl.LOAN_SUBJECT WHERE lvc.voucher_no IN ('PZ2019070100000008')) lv ON lv.proj_type = lci.LEAS_FORM LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56)V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LCI.BUSINESSTYPE = '1' AND LCI.LEAS_FORM = '01' AND V8.F58 IS NULL AND lvri.rent > 0 AND lvri.collect_status IN ('AutoBuckle') AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') ORDER BY lvri.voucher_f3 "; + String sql_whereqz1 = "INSERT INTO voucher_v8 (id,evidence_message,periodyear,f15,f2,f3,f5,f6,f7,f8,f12,f1,f49,f50,f51,f52,F56,f59,f60,f61,f62,f65,f73,f74,f75,f76,v8_status,generate_date,v8_flag,module_name,entrydc,inputuserid,f58,f67,F47,F48) SELECT REPLACE (UUID(), '-', '') id,'凭证输出' evidence_message,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) periodyear,lvri.HIRE_DATE f15,lv.SUBJECTS_CODE AS f2,lvri.voucher_f3 AS f3,CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS f5,lv.LOAN_SUBJECT AS f6,CASE WHEN LV.sort_number = '1' THEN LVRI.RENT WHEN LV.sort_number = '2' THEN LVRI.INTEREST WHEN LV.sort_number = '3' THEN (LVRI.CORPUS-ROUND(LVRI.CORPUS / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) ELSE 0.00 END f7,CASE WHEN lv.sort_number = '4' THEN lvri.corpus WHEN lv.sort_number = '5' THEN lvri.interest WHEN lv.sort_number = '6' THEN ROUND(lvri.interest / getTax (lci.leas_form,'租息',lcct.start_date),2) WHEN lv.sort_number = '7' THEN ((LVRI.CORPUS - ROUND(LVRI.CORPUS /getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2))+(lvri.interest - ROUND(lvri.interest /getTax(LCI.LEAS_FORM,'利息',LCCT.START_DATE),2))) ELSE 0.00 END f8,'定时任务-每天生成租金实收凭证' AS f12,CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END AS f1,LCI.SUBJECTID AS f49,LCI.SUBJECTNAME AS f50,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS f51,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS f52,LVRI.LRI_ID AS F56,lv.sort_number AS f59,CASE WHEN lv.sort_number = '1' OR lv.sort_number = '7' THEN '' ELSE lci.contract_number END AS f60,CASE WHEN lv.sort_number = '1' THEN '汽车C端待查客户' WHEN lv.sort_number = '7' THEN '' ELSE lvri.cust_name END AS f61,lv.LOAN_SUBJECT AS f62,CASE WHEN lv.sort_number = '1' THEN 'APZL00000000DC' WHEN lv.sort_number = '7' THEN '' ELSE lvri.cust_id END AS f65,CASE WHEN lv.sort_number = '6' THEN '0604' ELSE '' END AS f73,'' AS f74,'' AS f75,CASE WHEN lv.sort_number = '7' THEN (SELECT TAX_CODES FROM tax_code WHERE TAX_NUMBER = ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0)) ELSE '' END AS f76,'已完整' AS v8_status,DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS generate_date,'0' AS v8_flag,lv.modular_number AS module_name,CASE WHEN lv.loan_direction = '1' THEN '1' ELSE '-1' END AS entrydc,'admin' AS inputuserid,lvri.income_id AS f58,lci.leas_form AS f67,LCI.CONTRACT_NUMBER,OI.OWN_NUMBER FROM lv_rent_income lvri LEFT JOIN lb_contract_info lci ON lci.id = lvri.contract_id LEFT JOIN lc_calc_condition lcct ON lcct.contract_id = lci.id LEFT JOIN (SELECT OWN_NUMBER,MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN (SELECT lvc.PROJ_TYPE,lvl.id,lvl.LOAN_DIRECTION,lvc.OWNED_COMPANY,lvl.sort_number,lvl.loan_subject,lvc.modular_number,lsc.SUBJECTS_CODE FROM lv_voucher_config lvc LEFT JOIN lv_voucher_loan lvl ON lvl.VOUCHER_ID = lvc.id LEFT JOIN lv_stacts_config lsc ON lsc.id = lvl.LOAN_SUBJECT WHERE lvc.voucher_no IN ('PZ2019070100000008')) lv ON lv.proj_type = lci.LEAS_FORM LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56)V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LCI.BUSINESSTYPE = '1' AND LCI.LEAS_FORM = '01' AND V8.F58 IS NULL AND lvri.rent > 0 AND lvri.collect_status IN ('AutoBuckle','TLCollect') AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') ORDER BY lvri.voucher_f3 "; // 收到的租金--卡扣-跨月的-(汽车直租) - String sql_whereqz2 = "INSERT INTO voucher_v8 (id,evidence_message,periodyear,f15,F2,f3,f5,f6,f7,f8,f12,f1,f49,f50,f51,f52,F56,f59,f60,f61,f62,f65,f73,f74,f75,f76,v8_status,generate_date,v8_flag,module_name,entrydc,inputuserid,f58,f67,F47,F48) SELECT REPLACE (UUID(), '-', '') id,'凭证输出' evidence_message,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) periodyear,lvri.HIRE_DATE f15,lv.SUBJECTS_CODE AS f2,lvri.voucher_f3 AS f3,CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS f5,lv.LOAN_SUBJECT AS f6,CASE WHEN lv.sort_number = '1' THEN lvri.rent ELSE 0.00 END f7,CASE WHEN lv.sort_number = '2' THEN lvri.corpus WHEN lv.sort_number = '3' THEN lvri.interest ELSE 0.00 END f8,'定时任务-每天生成租金实收凭证' AS f12,CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END AS f1,LCI.SUBJECTID AS f49,LCI.SUBJECTNAME AS f50,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS f51,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS f52,LVRI.LRI_ID AS F56,lv.sort_number AS f59,CASE WHEN lv.sort_number = '1' THEN '' ELSE lci.contract_number END AS f60,CASE WHEN lv.sort_number = '1' THEN '汽车C端待查客户' ELSE lvri.cust_name END AS f61,lv.LOAN_SUBJECT AS f62,CASE WHEN lv.sort_number = '1' THEN 'APZL00000000DC' ELSE lvri.cust_id END AS f65,'' AS f73,'' AS f74,'' AS f75,'' AS f76,'已完整' AS v8_status,DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS generate_date,'0' AS v8_flag,lv.modular_number AS module_name,CASE WHEN lv.loan_direction = '1' THEN '1' ELSE '-1' END AS entrydc,'admin' AS inputuserid,lvri.income_id AS f58,lci.leas_form AS f67,LCI.CONTRACT_NUMBER,OI.OWN_NUMBER FROM lv_rent_income2 lvri LEFT JOIN lb_contract_info lci ON lci.id = lvri.contract_id LEFT JOIN lc_calc_condition lcct ON lcct.contract_id = lci.id LEFT JOIN (SELECT OWN_NUMBER,MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN (SELECT lvc.PROJ_TYPE,lvl.id,lvl.LOAN_DIRECTION,lvc.OWNED_COMPANY,lvl.sort_number,lvl.loan_subject,lvc.modular_number,lsc.SUBJECTS_CODE FROM lv_voucher_config lvc LEFT JOIN lv_voucher_loan lvl ON lvl.VOUCHER_ID = lvc.id LEFT JOIN lv_stacts_config lsc ON lsc.id = lvl.LOAN_SUBJECT WHERE lvc.voucher_no IN ('PZ2019070100000009')) lv ON lv.proj_type = lci.leas_form LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56)V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LCI.BUSINESSTYPE = '1' AND LCI.LEAS_FORM = '01' AND V8.F58 IS NULL AND lvri.rent > 0 AND lvri.collect_status IN ('AutoBuckle') AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') ORDER BY lvri.voucher_f3 "; + String sql_whereqz2 = "INSERT INTO voucher_v8 (id,evidence_message,periodyear,f15,F2,f3,f5,f6,f7,f8,f12,f1,f49,f50,f51,f52,F56,f59,f60,f61,f62,f65,f73,f74,f75,f76,v8_status,generate_date,v8_flag,module_name,entrydc,inputuserid,f58,f67,F47,F48) SELECT REPLACE (UUID(), '-', '') id,'凭证输出' evidence_message,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) periodyear,lvri.HIRE_DATE f15,lv.SUBJECTS_CODE AS f2,lvri.voucher_f3 AS f3,CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-卡扣-',LVRI.PLAN_LIST) ELSE '收到的租金-卡扣' END AS f5,lv.LOAN_SUBJECT AS f6,CASE WHEN lv.sort_number = '1' THEN lvri.rent ELSE 0.00 END f7,CASE WHEN lv.sort_number = '2' THEN lvri.corpus WHEN lv.sort_number = '3' THEN lvri.interest ELSE 0.00 END f8,'定时任务-每天生成租金实收凭证' AS f12,CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END AS f1,LCI.SUBJECTID AS f49,LCI.SUBJECTNAME AS f50,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS f51,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS f52,LVRI.LRI_ID AS F56,lv.sort_number AS f59,CASE WHEN lv.sort_number = '1' THEN '' ELSE lci.contract_number END AS f60,CASE WHEN lv.sort_number = '1' THEN '汽车C端待查客户' ELSE lvri.cust_name END AS f61,lv.LOAN_SUBJECT AS f62,CASE WHEN lv.sort_number = '1' THEN 'APZL00000000DC' ELSE lvri.cust_id END AS f65,'' AS f73,'' AS f74,'' AS f75,'' AS f76,'已完整' AS v8_status,DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS generate_date,'0' AS v8_flag,lv.modular_number AS module_name,CASE WHEN lv.loan_direction = '1' THEN '1' ELSE '-1' END AS entrydc,'admin' AS inputuserid,lvri.income_id AS f58,lci.leas_form AS f67,LCI.CONTRACT_NUMBER,OI.OWN_NUMBER FROM lv_rent_income2 lvri LEFT JOIN lb_contract_info lci ON lci.id = lvri.contract_id LEFT JOIN lc_calc_condition lcct ON lcct.contract_id = lci.id LEFT JOIN (SELECT OWN_NUMBER,MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN (SELECT lvc.PROJ_TYPE,lvl.id,lvl.LOAN_DIRECTION,lvc.OWNED_COMPANY,lvl.sort_number,lvl.loan_subject,lvc.modular_number,lsc.SUBJECTS_CODE FROM lv_voucher_config lvc LEFT JOIN lv_voucher_loan lvl ON lvl.VOUCHER_ID = lvc.id LEFT JOIN lv_stacts_config lsc ON lsc.id = lvl.LOAN_SUBJECT WHERE lvc.voucher_no IN ('PZ2019070100000009')) lv ON lv.proj_type = lci.leas_form LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56)V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LCI.BUSINESSTYPE = '1' AND LCI.LEAS_FORM = '01' AND V8.F58 IS NULL AND lvri.rent > 0 AND lvri.collect_status IN ('AutoBuckle','TLCollect') AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') ORDER BY lvri.voucher_f3 "; //收到的逾期利息--卡扣-(汽车直租) - String sql_whereqz3 = "INSERT INTO voucher_v8 ( id, evidence_message, periodyear, f15, f2, f3, f5, f6, f7, f8, f12, f1, f49, f50, f51, f52,F56, f59, f60, f61, f62, f65, f73, f74, f75,f76, v8_status, generate_date, v8_flag, module_name, entrydc, inputuserid, f58, f67,F47,F48)SELECT REPLACE (UUID(), '-', '') id,'凭证输出' evidence_message,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) periodyear,lvri.HIRE_DATE AS f15,lv.SUBJECTS_CODE AS f2,lvri.voucher_f3 AS f3,CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的逾期利息-卡扣-',LVRI.PLAN_LIST) ELSE '收到的逾期利息-卡扣' END AS f5,lv.LOAN_SUBJECT AS f6,CASE WHEN lv.sort_number = '1' THEN lvri.penalty ELSE 0.00 END AS f7,CASE WHEN lv.sort_number = '2' THEN ROUND(lvri.penalty / getTax (LCI.LEAS_FORM,'逾期利息',lcct.start_date),2) WHEN lv.sort_number = '3' THEN lvri.penalty - (ROUND(lvri.penalty / getTax (LCI.LEAS_FORM,'逾期利息',lcct.start_date),2)) ELSE 0.00 END AS f8,'定时任务-每天生成租金实收凭证' AS f12,CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END AS f1,LCI.SUBJECTID AS f49,LCI.SUBJECTNAME AS f50,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS f51,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS f52,LVRI.LRI_ID,lv.sort_number AS f59,CASE WHEN lv.sort_number = '2' THEN lci.contract_number ELSE '' END AS f60,CASE WHEN lv.sort_number = '1' THEN '汽车C端待查客户' WHEN lv.sort_number = '3' THEN '' ELSE lvri.cust_name END AS f61,lv.LOAN_SUBJECT AS f62,CASE WHEN lv.sort_number = '1' THEN 'APZL00000000DC' WHEN lv.sort_number = '3' THEN '' ELSE lvri.cust_id END AS f65,CASE WHEN lv.sort_number = '2' THEN '0603' ELSE '' END AS f73,'' AS f74,'' AS f75,CASE WHEN lv.sort_number = '3' THEN (SELECT TAX_CODES FROM tax_code WHERE TAX_NUMBER = ROUND((getTax (lci.LEAS_FORM,'逾期利息',LCCT.START_DATE) - 1) * 100,0)) ELSE '' END AS f76,'已完整' AS v8_status,DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS generate_date,'0' AS v8_flag,lv.modular_number AS module_name,CASE WHEN lv.loan_direction = '1' THEN '1' ELSE '-1' END AS entrydc,'admin' AS inputuserid,lvri.income_id AS f58,lci.leas_form AS f67,LCI.CONTRACT_NUMBER,OI.OWN_NUMBER FROM lv_penalty_income lvri LEFT JOIN lb_contract_info lci ON lci.id = lvri.contract_id LEFT JOIN lc_calc_condition lcct ON lcct.contract_id = lci.id LEFT JOIN (SELECT OWN_NUMBER,MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN (SELECT lvc.PROJ_TYPE,lvl.id,lvl.LOAN_DIRECTION,lvc.OWNED_COMPANY,lvl.sort_number,lvl.loan_subject,lvc.modular_number,lsc.subjects_code FROM lv_voucher_config lvc LEFT JOIN lv_voucher_loan lvl ON lvl.VOUCHER_ID = lvc.id LEFT JOIN lv_stacts_config lsc ON lsc.id = lvl.loan_subject WHERE lvc.voucher_no IN ('PZ2019070100000007')) lv ON lv.proj_type = lci.leas_form LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%收到的逾期利息(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56)V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LCI.BUSINESSTYPE = '1' AND LCI.LEAS_FORM = '01' AND V8.F58 IS NULL AND lvri.penalty > 0 AND lvri.collect_status IN ('AutoBuckle') AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') ORDER BY lvri.voucher_f3 "; + String sql_whereqz3 = "INSERT INTO voucher_v8 ( id, evidence_message, periodyear, f15, f2, f3, f5, f6, f7, f8, f12, f1, f49, f50, f51, f52,F56, f59, f60, f61, f62, f65, f73, f74, f75,f76, v8_status, generate_date, v8_flag, module_name, entrydc, inputuserid, f58, f67,F47,F48)SELECT REPLACE (UUID(), '-', '') id,'凭证输出' evidence_message,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) periodyear,lvri.HIRE_DATE AS f15,lv.SUBJECTS_CODE AS f2,lvri.voucher_f3 AS f3,CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的逾期利息-卡扣-',LVRI.PLAN_LIST) ELSE '收到的逾期利息-卡扣' END AS f5,lv.LOAN_SUBJECT AS f6,CASE WHEN lv.sort_number = '1' THEN lvri.penalty ELSE 0.00 END AS f7,CASE WHEN lv.sort_number = '2' THEN ROUND(lvri.penalty / getTax (LCI.LEAS_FORM,'逾期利息',lcct.start_date),2) WHEN lv.sort_number = '3' THEN lvri.penalty - (ROUND(lvri.penalty / getTax (LCI.LEAS_FORM,'逾期利息',lcct.start_date),2)) ELSE 0.00 END AS f8,'定时任务-每天生成租金实收凭证' AS f12,CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END AS f1,LCI.SUBJECTID AS f49,LCI.SUBJECTNAME AS f50,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS f51,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS f52,LVRI.LRI_ID,lv.sort_number AS f59,CASE WHEN lv.sort_number = '2' THEN lci.contract_number ELSE '' END AS f60,CASE WHEN lv.sort_number = '1' THEN '汽车C端待查客户' WHEN lv.sort_number = '3' THEN '' ELSE lvri.cust_name END AS f61,lv.LOAN_SUBJECT AS f62,CASE WHEN lv.sort_number = '1' THEN 'APZL00000000DC' WHEN lv.sort_number = '3' THEN '' ELSE lvri.cust_id END AS f65,CASE WHEN lv.sort_number = '2' THEN '0603' ELSE '' END AS f73,'' AS f74,'' AS f75,CASE WHEN lv.sort_number = '3' THEN (SELECT TAX_CODES FROM tax_code WHERE TAX_NUMBER = ROUND((getTax (lci.LEAS_FORM,'逾期利息',LCCT.START_DATE) - 1) * 100,0)) ELSE '' END AS f76,'已完整' AS v8_status,DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS generate_date,'0' AS v8_flag,lv.modular_number AS module_name,CASE WHEN lv.loan_direction = '1' THEN '1' ELSE '-1' END AS entrydc,'admin' AS inputuserid,lvri.income_id AS f58,lci.leas_form AS f67,LCI.CONTRACT_NUMBER,OI.OWN_NUMBER FROM lv_penalty_income lvri LEFT JOIN lb_contract_info lci ON lci.id = lvri.contract_id LEFT JOIN lc_calc_condition lcct ON lcct.contract_id = lci.id LEFT JOIN (SELECT OWN_NUMBER,MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN (SELECT lvc.PROJ_TYPE,lvl.id,lvl.LOAN_DIRECTION,lvc.OWNED_COMPANY,lvl.sort_number,lvl.loan_subject,lvc.modular_number,lsc.subjects_code FROM lv_voucher_config lvc LEFT JOIN lv_voucher_loan lvl ON lvl.VOUCHER_ID = lvc.id LEFT JOIN lv_stacts_config lsc ON lsc.id = lvl.loan_subject WHERE lvc.voucher_no IN ('PZ2019070100000007')) lv ON lv.proj_type = lci.leas_form LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%收到的逾期利息(卡扣)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56)V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LCI.BUSINESSTYPE = '1' AND LCI.LEAS_FORM = '01' AND V8.F58 IS NULL AND lvri.penalty > 0 AND lvri.collect_status IN ('AutoBuckle','TLCollect') AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') ORDER BY lvri.voucher_f3 "; /** * 汽车类-回租-微信 */ @@ -250,7 +295,7 @@ public class InsertVoucherRentIncome { String sql_whereWYh2 = "INSERT INTO voucher_v8 (id,evidence_message,periodyear,f15,F2,f3,f5,f6,f7,f8,f12,f1,f49,f50,f51,f52,F56,f59,f60,f61,f62,f65,f73,f74,f75,f76,v8_status,generate_date,v8_flag,module_name,entrydc,inputuserid,f58,f67,F47,F48) SELECT REPLACE (UUID(), '-', '') id,'凭证输出' evidence_message,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE='') THEN DATE_FORMAT(NOW(),'%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) periodyear,lvri.HIRE_DATE f15,lv.SUBJECTS_CODE AS f2,lvri.voucher_f3 AS f3,CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的租金-微信银联-',LVRI.PLAN_LIST) ELSE '收到的租金-微信银联' END AS f5,lv.LOAN_SUBJECT AS f6,CASE WHEN lv.sort_number = '1' THEN lvri.rent ELSE 0.00 END f7,CASE WHEN lv.sort_number = '2' THEN lvri.corpus WHEN lv.sort_number = '3' THEN lvri.interest ELSE 0.00 END f8,'定时任务-每天生成租金实收凭证' AS f12,CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END AS f1,LCI.SUBJECTID AS f49,LCI.SUBJECTNAME AS f50,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS f51,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS f52,LVRI.LRI_ID AS F56,lv.sort_number AS f59,CASE WHEN lv.sort_number = '1' THEN '' ELSE lci.contract_number END AS f60,CASE WHEN lv.sort_number = '1' THEN '汽车C端待查客户' ELSE lvri.cust_name END AS f61,lv.LOAN_SUBJECT AS f62,CASE WHEN lv.sort_number = '1' THEN 'APZL00000000DC' ELSE lvri.cust_id END AS f65,'' AS f73,'' AS f74,'' AS f75,'' AS f76,'已完整' AS v8_status,DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS generate_date,'0' AS v8_flag,lv.modular_number AS module_name,CASE WHEN lv.loan_direction = '1' THEN '1' ELSE '-1' END AS entrydc,'admin' AS inputuserid,lvri.income_id AS f58,lci.leas_form AS f67,LCI.CONTRACT_NUMBER,OI.OWN_NUMBER FROM lv_rent_income2 lvri LEFT JOIN lb_contract_info lci ON lci.id = lvri.contract_id LEFT JOIN lc_calc_condition lcct ON lcct.contract_id = lci.id LEFT JOIN (SELECT OWN_NUMBER,MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN (SELECT lvc.PROJ_TYPE,lvl.id,lvl.LOAN_DIRECTION,lvc.OWNED_COMPANY,lvl.sort_number,lvl.loan_subject,lvc.modular_number,lsc.SUBJECTS_CODE FROM lv_voucher_config lvc LEFT JOIN lv_voucher_loan lvl ON lvl.VOUCHER_ID = lvc.id LEFT JOIN lv_stacts_config lsc ON lsc.id = lvl.LOAN_SUBJECT WHERE lvc.voucher_no IN ('PZ2019120500000154')) lv ON lv.proj_type = lci.leas_form LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%-收到的租金(微信银联)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56)V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LCI.BUSINESSTYPE = '1' AND LCI.LEAS_FORM = '02' AND V8.F58 IS NULL AND lvri.rent > 0 AND lvri.collect_status ='WXUnionPay' AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') ORDER BY lvri.voucher_f3 "; //收到的逾期利息--卡扣-(汽车回租) String sql_whereWYh3 = "INSERT INTO voucher_v8 ( id, evidence_message, periodyear, f15, f2, f3, f5, f6, f7, f8, f12, f1, f49, f50, f51, f52,F56, f59, f60, f61, f62, f65, f73, f74, f75,f76, v8_status, generate_date, v8_flag, module_name, entrydc, inputuserid, f58, f67,F47,F48)SELECT REPLACE (UUID(), '-', '') id,'凭证输出' evidence_message,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) periodyear,lvri.HIRE_DATE AS f15,lv.SUBJECTS_CODE AS f2,lvri.voucher_f3 AS f3,CASE WHEN LVRI.PLAN_LIST IS NOT NULL THEN CONCAT('收到的逾期利息-微信银联-',LVRI.PLAN_LIST) ELSE '收到的逾期利息-微信银联' END AS f5,lv.LOAN_SUBJECT AS f6,CASE WHEN lv.sort_number = '1' THEN lvri.penalty ELSE 0.00 END AS f7,CASE WHEN lv.sort_number = '2' THEN ROUND(lvri.penalty / getTax (LCI.LEAS_FORM,'逾期利息',lcct.start_date),2) WHEN lv.sort_number = '3' THEN lvri.penalty - (ROUND(lvri.penalty / getTax (LCI.LEAS_FORM,'逾期利息',lcct.start_date),2)) ELSE 0.00 END AS f8,'定时任务-每天生成租金实收凭证' AS f12,CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END AS f1,LCI.SUBJECTID AS f49,LCI.SUBJECTNAME AS f50,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,1,4) AS f51,SUBSTR(CASE WHEN (lvri.ACCOUNTING_DATE IS NULL OR lvri.ACCOUNTING_DATE = '') THEN DATE_FORMAT(NOW(), '%Y/%m/%d') ELSE DATE_FORMAT(lvri.ACCOUNTING_DATE,'%Y/%m/%d') END,6,2) AS f52,LVRI.LRI_ID AS F56,lv.sort_number AS f59,CASE WHEN lv.sort_number = '2' THEN lci.contract_number ELSE '' END AS f60,CASE WHEN lv.sort_number = '1' THEN '汽车C端待查客户' WHEN lv.sort_number = '3' THEN '' ELSE lvri.cust_name END AS f61,lv.LOAN_SUBJECT AS f62,CASE WHEN lv.sort_number = '1' THEN 'APZL00000000DC' WHEN lv.sort_number = '3' THEN '' ELSE lvri.cust_id END AS f65,CASE WHEN lv.sort_number = '2' THEN '0603' ELSE '' END AS f73,'' AS f74,'' AS f75,CASE WHEN lv.sort_number = '3' THEN (SELECT TAX_CODES FROM tax_code WHERE TAX_NUMBER = ROUND((getTax (lci.LEAS_FORM,'逾期利息',LCCT.START_DATE) - 1) * 100,0)) ELSE '' END AS f76,'已完整' AS v8_status,DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS generate_date,'0' AS v8_flag,lv.modular_number AS module_name,CASE WHEN lv.loan_direction = '1' THEN '1' ELSE '-1' END AS entrydc,'admin' AS inputuserid,lvri.income_id AS f58,lci.leas_form AS f67,LCI.CONTRACT_NUMBER,OI.OWN_NUMBER FROM lv_penalty_income lvri LEFT JOIN lb_contract_info lci ON lci.id = lvri.contract_id LEFT JOIN lc_calc_condition lcct ON lcct.contract_id = lci.id LEFT JOIN (SELECT OWN_NUMBER,MAX(OWN_NAME) AS OWN_NAME FROM OWN_INFO GROUP BY OWN_NUMBER) OI ON OI.OWN_NAME=LCI.SUBJECTNAME LEFT JOIN (SELECT lvc.PROJ_TYPE,lvl.id,lvl.LOAN_DIRECTION,lvc.OWNED_COMPANY,lvl.sort_number,lvl.loan_subject,lvc.modular_number,lsc.subjects_code FROM lv_voucher_config lvc LEFT JOIN lv_voucher_loan lvl ON lvl.VOUCHER_ID = lvc.id LEFT JOIN lv_stacts_config lsc ON lsc.id = lvl.loan_subject WHERE lvc.voucher_no IN ('PZ2019120500000155')) lv ON lv.proj_type = lci.leas_form LEFT JOIN (SELECT f58,F56 FROM voucher_v8 WHERE module_name LIKE '%收到的逾期利息(微信银联)%' AND f58 IS NOT NULL AND F56 IS NOT NULL GROUP BY F58,F56)V8 ON V8.F58=LVRI.INCOME_ID AND V8.F56=LVRI.LRI_ID WHERE LCI.BUSINESSTYPE = '1' AND LCI.LEAS_FORM = '02' AND V8.F58 IS NULL AND lvri.penalty > 0 AND lvri.collect_status ='WXUnionPay' AND DATE_FORMAT(LVRI.HIRE_DATE, '%Y/%m/%d') >= DATE_FORMAT('2020/05/01', '%Y/%m/%d') ORDER BY lvri.voucher_f3 "; - + /** * 根据查询语句判断, 有值才执行插入SQL */ @@ -269,7 +314,7 @@ public class InsertVoucherRentIncome { SqlObject sqlsqh3 = new SqlObject(sql_whereqh3); Sqlca.executeSQL(sqlsqh3); } - + /** * 汽车直租-卡扣 */ @@ -300,7 +345,7 @@ public class InsertVoucherRentIncome { SqlObject sqlsWh3 = new SqlObject(sql_whereWh3); Sqlca.executeSQL(sqlsWh3); } - + /** * 汽车回租-微信银联 */ @@ -316,13 +361,13 @@ public class InsertVoucherRentIncome { SqlObject sqlsWYh3 = new SqlObject(sql_whereWYh3); Sqlca.executeSQL(sqlsWYh3); } - + Sqlca.commit(); if(Sqlca!=null){ Sqlca.disConnect(); } + System.out.println("*******************merge20210906****************************************"); + System.out.println("**********************租金回笼定时任务执行完成*********************"); System.out.println("***********************************************************"); - System.out.println("**********************租金回笼定时任务执行完成*********************"); - System.out.println("***********************************************************"); } } diff --git a/src_core/com/tenwa/voucher/serviceImp/OverdueRepayPlanVoucherPSBC.java b/src_core/com/tenwa/voucher/serviceImp/OverdueRepayPlanVoucherPSBC.java new file mode 100644 index 000000000..9a4a76e5d --- /dev/null +++ b/src_core/com/tenwa/voucher/serviceImp/OverdueRepayPlanVoucherPSBC.java @@ -0,0 +1,585 @@ +package com.tenwa.voucher.serviceImp; + +import com.alibaba.fastjson.JSONObject; +import com.amarsoft.are.jbo.*; +import com.amarsoft.awe.util.SqlObject; +import com.amarsoft.awe.util.Transaction; +import com.amarsoft.dict.als.cache.CacheLoaderFactory; +import com.amarsoft.dict.als.manage.NameManager; +import com.google.common.collect.Lists; +import com.tenwa.comm.util.jboutil.DataOperatorUtil; +import com.tenwa.flow.util.FlowUtil; +import com.tenwa.reckon.util.DateUtil; +import com.tenwa.reckon.util.UUIDUtil; +import com.tenwa.voucher.service.VoucherInfoService; +import jbo.app.VOUCHER_V8; +import jbo.com.tenwa.entity.comm.own.OWN_INFO; +import jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 经财务确认:在邮储期间逾期,并后期导致回购的订单,对于在邮储时逾期的还款计划,进行执行该方法单独处理 + * 又:20210831:对于在邮储时逾期的还款计划生成凭证时,对于扣除的罚息与回购时,邮储的罚息进行计算核销, + * 当罚息与邮储罚息未抵消完毕时,对所收罚息的凭证为,利息进行记录。 + * + * 回款-收到的租金-邮储逾期-安鹏回购 资方邮储逾期回购-之后,在邮储逾期未还,在安鹏进行还款。 + */ +public class OverdueRepayPlanVoucherPSBC implements VoucherInfoService { + + private static final Logger logger = LoggerFactory.getLogger(OverdueRepayPlanVoucherPSBC.class); + + private static final String VOUCHER_CONFIG_NO = "PZ2021082300000030";//回款-收到的租金-邮储逾期-安鹏回购 凭证编号 + + @Override + public void run() { + Transaction Sqlca =null; + try { + Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource()); + logger.info("在邮储期间逾期,并后期导致回购的订单,对于在邮储时逾期的还款计划,进行执行该方法单独处理【开始】"); + generateListVoucher(Sqlca); + logger.info("在邮储期间逾期,并后期导致回购的订单,对于在邮储时逾期的还款计划,进行执行该方法单独处理【结束】"); + } catch (JBOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + }finally { + try { + if(Sqlca!=null){ + Sqlca.disConnect(); + Sqlca = null; + } + } catch (JBOException e) { + e.printStackTrace(); + try { + Sqlca.rollback(); + } catch (JBOException jboException) { + jboException.printStackTrace(); + } + } + } + } + + /** + * 判断当前流程编号是否为邮储逾期回购的计划id + * @return + * @throws Exception + */ + public boolean findFcPSBCOverduce(String flowUnid) throws Exception { + try { + logger.info("findFcPSBCOverduce 判断当前流程编号是否为邮储逾期回购的计划id【开始】flowUnid=" + flowUnid); + String sql = "select fyrp.* " + + " from fc_yc_overdue_repay_plan fyrp " + + " left join LC_FUND_INCOME_TEMP lfit on lfit.PLAN_ID=fyrp.rent_plan_id " + + " where lfit.FLOWUNID ='" +flowUnid+ "'"; + List> paramList = DataOperatorUtil.getDataBySql(sql); + if(paramList.size()==0){ + logger.warn("false,正常查询数据,不符合。【结束】"); + return false; + } + logger.info("true,在邮储期间逾期,并后期导致回购的订单,对于在邮储时逾期的还款计划,进行执行该方法单独处理【结束】"); + return true; + } catch (Exception e) { + e.printStackTrace(); + logger.error("false,查询数据报错,不符合。【结束】。errorMsg=" + e.getMessage(), e); + } + return false; + } + + /** + * 生成所有凭证 + * @param Sqlca voucher + * @throws Exception + */ + public void generateListVoucher(Transaction Sqlca) throws Exception { + List> incomeList = findRentIncomeList(); + for(Map rentIncomeInfo : incomeList){ + generateVoucher(rentIncomeInfo, Sqlca); + } + } + + + /** + * 生成所有凭证 + * @param Sqlca + * @throws Exception + */ + public void generateVoucher(Map rentIncomeInfo, Transaction Sqlca) throws Exception { + Sqlca.getConnection(); + JBOTransaction tx = Sqlca.getTransaction(); + + /** + * `RENT` decimal(22,2) DEFAULT NULL COMMENT '回笼租金', + * `CORPUS` decimal(22,2) DEFAULT NULL COMMENT '回笼本金', + * `INTEREST` decimal(22,2) DEFAULT NULL COMMENT '回笼租息', + * `PENALTY` decimal(22,2) DEFAULT NULL COMMENT '回笼罚息', + */ + //合同信息 + Map planInfo = findPlanInfo(rentIncomeInfo); + //凭证参数组装 + Map voucherInfo = new HashMap<>(); + String voucherNo ="k" + FlowUtil.getVoucher_Number(tx); + logger.info("OverdueRepurchaseVoucherPSBC20210818 voucherNo=" + voucherNo); + voucherInfo.put("voucherNo", voucherNo); + voucherInfo.put("contractId", planInfo.get("contract_id")); + voucherInfo.put("contractNo", planInfo.get("contract_no")); + voucherInfo.put("createTime", rentIncomeInfo.get("HIRE_DATE")); + String customerNo = findCustomerNoByContractId(planInfo.get("contract_id"), Sqlca); + logger.info("OverdueRepurchaseVoucherPSBC20210818 查找客户编号信息:customerNo=" + customerNo); + voucherInfo.put("customerNo", customerNo); + String customerName = findCustomerName(customerNo, Sqlca); + logger.info("OverdueRepurchaseVoucherPSBC20210818 查找客户编号信息:customerName=" + customerName); + voucherInfo.put("customerName", customerName); + logger.info("OverdueRepurchaseVoucherPSBC20210818 开始收集参数:initFinalParam"); + //获取最终参数 + JSONObject resJson = new JSONObject(); + resJson.put("fc_request_id", planInfo.get("fc_request_id"));//是否需要修改 + resJson.put("updateRepaymentPenaltySts", false);//是否需要修改 + resJson.put("ycNowOverdueRepayAmount", 0);//已还罚息 + List> paramList = initFinalParam(resJson, voucherInfo, VOUCHER_CONFIG_NO, rentIncomeInfo, planInfo, Sqlca); + logger.info("OverdueRepurchaseVoucherPSBC20210818 收集参数完毕:initFinalParam, paramList=" + JSONObject.toJSONString(paramList)); + //生成凭证 + logger.info("OverdueRepurchaseVoucherPSBC20210818 开始生成凭证:createVoucher, voucherNo=" + voucherNo); + createVoucher(paramList, tx); + logger.info("OverdueRepurchaseVoucherPSBC20210818 生成凭证结束:createVoucher, voucherNo=" + voucherNo); + //更新凭证信息状态 + logger.info("OverdueRepurchaseVoucherPSBC20210818 开始更新凭证信息状态:updateVoucherStatus, contractId=" + planInfo.get("contractId")); + updateVoucherStatus(resJson, rentIncomeInfo, Sqlca); + logger.info("OverdueRepurchaseVoucherPSBC20210818 更新凭证信" + + "息状态结束:updateVoucherStatus, overdue_back_id=" + planInfo.get("contractId")); + logger.info(" =============:合同编号为"+planInfo.get("contract_no")+"的逾期还款凭证生成完毕============"); + } + + /** + * 根据客户编号查询客户名称 + * @param customerNo + * @param Sqlca + * @return + * @throws Exception + */ + private String findCustomerName(String customerNo,Transaction Sqlca) throws Exception { + String sql = "select ci.customername from customer_info ci WHERE ci.customer_num='"+customerNo+"'"; + String customerName = Sqlca.getString(sql); + return customerName; + } + + /** + * 生产凭证完成,修改状态 + * @param resJson + * @param rentIncomeInfo + * @param Sqlca + * @throws Exception + */ + private void updateVoucherStatus(JSONObject resJson, Map rentIncomeInfo, Transaction Sqlca) throws Exception { + String sql = "insert into fc_yc_overdue_income_voucher (" + + "id," + + "contract_id," + + "rent_plan_id," + + "voucher_status," + + "create_time," + + "update_time" + + ") values" + + " (" + + "'"+ rentIncomeInfo.get("ID") +"',"+//实还id + "'"+ rentIncomeInfo.get("CONTRACT_ID") +"',"+ + "'"+ rentIncomeInfo.get("PLAN_ID") +"',"+ + "1,"+//已生成凭证 + "'"+ DateUtil.getSystemTimeByFormat("yyyyMMddHHmmss") +"',"+ + "'"+ DateUtil.getSystemTimeByFormat("yyyyMMddHHmmss") +"'"+ + ")" ; + SqlObject sqlObject = new SqlObject(sql); + Sqlca.executeSQL(sqlObject); + if(resJson.getBooleanValue("updateRepaymentPenaltySts")){ + String updateSql = "update fc_buyback_info set repayment_penalty = '" + + resJson.getString("ycNowOverdueRepayAmount") +"' where fc_request_id = '"+resJson.getString("fc_request_id")+"'"; + SqlObject updateSqlObject = new SqlObject(updateSql); + Sqlca.executeSQL(updateSqlObject); + } + } + + /** + * 获取需要生成凭证的实还数据 + * @return + * @throws Exception + */ + public List> findRentIncomeList() throws Exception { + String sql = "select lri.* " + + " from fc_yc_overdue_repay_plan fyrp " + + " left join lc_rent_income lri on lri.PLAN_ID=fyrp.rent_plan_id " + + " left join fc_yc_overdue_income_voucher fv on fv.id=lri.ID " + + " where lri.ID is not null and (lri.charge_way <> 'PSBC' or lri.charge_way is null) and (fv.id is null or fv.voucher_status=0)"; + List> paramList = DataOperatorUtil.getDataBySql(sql); + if(paramList.size()==0){ + logger.warn("获取需要生成凭证的实还数据 未找到符合规则的数据"); + throw new Exception("获取需要生成凭证的实还数据 未找到符合规则的数据"); + } + return paramList; + } + + private Map findPlanInfo(Map rentIncomeInfo) throws Exception { + String sql = "select * " + + " from fc_yc_overdue_repay_plan frp " + + " where frp.rent_plan_id='"+rentIncomeInfo.get("PLAN_ID")+"' "; + List> list = DataOperatorUtil.getDataBySql(sql); + if(CollectionUtils.isEmpty(list) || list.size() > 1){ + logger.warn("rent_plan_id="+ rentIncomeInfo.get("PLAN_ID") + "生成凭证,查询还款信息失败。"); + throw new Exception("rent_plan_id="+ rentIncomeInfo.get("PLAN_ID") + "生成凭证,查询还款信息失败。"); + } + return list.get(0); + } + + /** + * 根据合同id查询客户编号 + * @param contractId + * @param Sqlca + * @return + * @throws Exception + */ + private String findCustomerNoByContractId(String contractId,Transaction Sqlca) throws Exception { + String sql = "select ci.customer_num from customer_info ci left join lb_union_lessee lul on lul.CUSTOMER_ID=ci.customerid and lul.IS_MAIN='Y' where lul.CONTRACT_ID='"+contractId+"'"; + String customerNo = Sqlca.getString(sql); + return customerNo; + } + + /** + * 获取最终的参数 + * @param voucherInfo + * @param voucherConfigNo + * @param rentIncomeInfo + * @return + * @throws Exception + */ + private List> initFinalParam(JSONObject resJson, Map voucherInfo, String voucherConfigNo, Map rentIncomeInfo, Map planInfo, Transaction Sqlca) throws Exception { + List> paramList = findParamOfVoucher(voucherConfigNo); + for(Map param : paramList){ + //将公共参数放到凭证配置参数里 + param.putAll(initCommonParam(voucherInfo)); + //将差别参数放进去 + addRespectiveParam(param, rentIncomeInfo, planInfo, resJson, Sqlca); + //转译的凭证信息 + param.putAll(initConvertParam(param)); + } + return paramList; + } + + //助贷-合同起租 + private static final String ADVANCES_RECEIVED = "2203";//借--【预收账款】-【逾期租金+邮储罚息+安鹏罚息】-【客商】 + private static final String LONG_TERM_RECEIVABLES_LEASEBACK_PRINCIPAL = "1531020101";//贷--【长期应收-回租-汽车-本金】-【逾期本金】-【客商+合同号码】 + private static final String LONG_TERM_LEASEBACK_INTEREST = "1531020102";//贷--【长期应收-回租-汽车-利息】-【逾期利息+邮储罚息】-【客商+合同号码】 + private static final String LONG_TERM_LEASEBACK_INTEREST_PENALTY = "60410201";//贷--【租赁收入/回租/汽车】-【安鹏罚息(不含税)】-【客商+合同号码+0603(主营类型)】 + private static final String LONG_TERM_LEASEBACK_INTEREST_PENALTY_TAX_RATE = "22210105";//贷--【应交税费\应交增值税\销项税额】-【安鹏罚息税金】-【税率】 + + /** + * 每条凭证各自差异数据放到参数List + * @param param + * @param rentIncomeInfo + * @throws Exception + */ + public void addRespectiveParam(Map param, Map rentIncomeInfo, Map planInfo, JSONObject resJson, Transaction Sqlca) throws Exception { + String money = ""; + String subjectsCode = param.get("subjectsCode"); + BigDecimal actualOverdueAmount = new BigDecimal("0");//安鹏实际罚息 + BigDecimal psbcOverdueAmount = new BigDecimal("0");//邮储实际罚息 + String sqlQuery2 = "SELECT * from fc_buyback_info WHERE fc_request_id='"+planInfo.get("fc_request_id") +"'"; + List> paramList2 = DataOperatorUtil.getDataBySql(sqlQuery2); + if(paramList2.size()==0 || paramList2.size()>1){ + logger.warn(rentIncomeInfo.get("contractNo") + ":逾期回购生成凭证之后,查询是否有逾期数据2,或逾期数据大于1。"); + return; + } + /** + * `RENT` decimal(22,2) DEFAULT NULL COMMENT '回笼租金', + * `CORPUS` decimal(22,2) DEFAULT NULL COMMENT '回笼本金', + * `INTEREST` decimal(22,2) DEFAULT NULL COMMENT '回笼租息', + * `PENALTY` decimal(22,2) DEFAULT NULL COMMENT '回笼罚息', + */ + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + "本期 回笼租金:" + rentIncomeInfo.get("RENT")); + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + "本期 回笼本金:" + rentIncomeInfo.get("CORPUS")); + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + "本期 回笼租息:" + rentIncomeInfo.get("INTEREST")); + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + "本期 回笼罚息:" + rentIncomeInfo.get("PENALTY")); + Map overduePlan = paramList2.get(0); + String ycOverdueAmount = overduePlan.get("ALL_REMAIN_PENALTY");//邮储总需还罚息 + String ycOverdueRepayAmount = overduePlan.get("repayment_penalty");//邮储已还罚息 + BigDecimal ycNowOverdueRepayAmount = new BigDecimal(overduePlan.get("repayment_penalty"));//邮储已还罚息+ 本期罚息 + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + "查询 邮储总需还罚息:" + overduePlan.get("ALL_REMAIN_PENALTY")); + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + "查询 邮储已还罚息:" + overduePlan.get("repayment_penalty")); + boolean updateRepaymentPenaltySts = false;//如果需要更新罚息则为true。 + BigDecimal surplusOverdueAmount = new BigDecimal(ycOverdueAmount).subtract(new BigDecimal(ycOverdueRepayAmount));//邮储应还罚息 + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + "计算 邮储应还罚息:" + surplusOverdueAmount.toString()); + if(surplusOverdueAmount.compareTo(new BigDecimal("0")) <= 0) { // 如果邮储应还罚息小于0 或等于0,如果实还中出现罚息,则均为安鹏罚息。 + surplusOverdueAmount = new BigDecimal("0");//邮储应还罚息 + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + + "如果邮储应还罚息小于0 或等于0,如果实还中出现罚息,则均为安鹏罚息。 邮储应还罚息2:" + surplusOverdueAmount.toString()); + }else {// 如果邮储应还罚息大于0,如果实还中出现罚息,则用实际罚息与邮储应还罚息进行比较:安鹏罚息=实还罚息-邮储应还罚息。 + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + + "如果邮储应还罚息大于0,如果实还中出现罚息,则用实际罚息与邮储应还罚息进行比较:安鹏罚息=实还罚息-邮储应还罚息。"); + updateRepaymentPenaltySts = true; + actualOverdueAmount = new BigDecimal(rentIncomeInfo.get("PENALTY")).subtract(surplusOverdueAmount);//安鹏罚息=罚息-邮储罚息 + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + + "安鹏罚息=罚息-邮储罚息。计算 本期 安鹏实际还的罚息:" + actualOverdueAmount.toString()); + if(actualOverdueAmount.compareTo(BigDecimal.ZERO) < 0){//安鹏罚息小于0 + psbcOverdueAmount = new BigDecimal(rentIncomeInfo.get("PENALTY"));//邮储实际罚息 + ycNowOverdueRepayAmount = ycNowOverdueRepayAmount.add(psbcOverdueAmount); + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + + "安鹏罚息小于0。 本期 邮储实际还款的罚息:" + psbcOverdueAmount.toString()); + actualOverdueAmount = BigDecimal.ZERO;//安鹏实际罚息 + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + + "安鹏罚息小于0。 本期 安鹏实际还款的罚息:" + actualOverdueAmount.toString()); + }else { + psbcOverdueAmount = surplusOverdueAmount;//邮储实际罚息 + ycNowOverdueRepayAmount = ycNowOverdueRepayAmount.add(psbcOverdueAmount); + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + + "安鹏罚息大于等于0。 本期 邮储实际还款的罚息:" + psbcOverdueAmount.toString()); + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + + "安鹏罚息大于等于0。 本期 安鹏实际还款的罚息:" + actualOverdueAmount.toString()); + } + } + resJson.put("updateRepaymentPenaltySts", updateRepaymentPenaltySts); + resJson.put("ycNowOverdueRepayAmount", ycNowOverdueRepayAmount); + BigDecimal actualOverdueAmountExcludedTax = new BigDecimal("0");//安鹏罚息(不含税):Tax excluded + BigDecimal actualOverdueAmountTax = new BigDecimal("0");//安鹏实际罚息-税金 + String taxNumber = findTaxNumber(planInfo, Sqlca); + //查询税率编码 + String sqlQueryTaxCode = "SELECT TAX_CODES from TAX_CODE WHERE TAX_NUMBER='"+taxNumber+"'"; + String taxCode = Sqlca.getString(sqlQueryTaxCode); + if(actualOverdueAmount.compareTo(BigDecimal.ZERO) > 0){//如果安鹏实际罚息 大于0 + BigDecimal ratio = new BigDecimal(taxNumber).divide(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP); + ratio = ratio.add(new BigDecimal("1")); + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + + "安鹏实际罚息 大于0。 计算 税率:" + ratio.toString()); + actualOverdueAmountExcludedTax = actualOverdueAmount.divide(ratio,2, BigDecimal.ROUND_HALF_UP); + actualOverdueAmountTax = actualOverdueAmount.subtract(actualOverdueAmountExcludedTax); + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + + "安鹏实际罚息 大于0。 计算本期 罚息相关税款 安鹏罚息(不含税):" + actualOverdueAmountExcludedTax.toString()); + logger.info("addRespectiveParam fc_request_id=" + planInfo.get("fc_request_id") + + "安鹏实际罚息 大于0。 计算本期 罚息相关税款 安鹏实际罚息-税金:" + actualOverdueAmountTax.toString()); + } + + //【预收账款】-【逾期租金+邮储罚息+安鹏罚息】-【客商】 + if(ADVANCES_RECEIVED.equals(subjectsCode)){ + BigDecimal amount = new BigDecimal(rentIncomeInfo.get("RENT")).add(new BigDecimal(rentIncomeInfo.get("PENALTY"))); + money = amount.toString(); + param.put("contractNo",""); + } + + //【长期应收-回租-汽车-本金】-【逾期本金】-【客商+合同号码】 + else if(LONG_TERM_RECEIVABLES_LEASEBACK_PRINCIPAL.equals(subjectsCode)){ + money=rentIncomeInfo.get("CORPUS");//逾期本金 + } + + //【长期应收-回租-汽车-利息】-【逾期利息+邮储罚息】-【客商+合同号码】 + else if(LONG_TERM_LEASEBACK_INTEREST.equals(subjectsCode)){ + BigDecimal amount = new BigDecimal(rentIncomeInfo.get("INTEREST")).add(psbcOverdueAmount); + money = amount.toString(); + } + + //【租赁收入/回租/汽车】-【安鹏罚息(不含税)】-【客商+合同号码+0603(主营类型)】 + else if(LONG_TERM_LEASEBACK_INTEREST_PENALTY.equals(subjectsCode)){ + money = actualOverdueAmountExcludedTax.toString();//安鹏罚息不含税金额 + param.put("BUSINESSTYPE", "0603");// 主营类型 + } + //【应交税费\应交增值税\销项税额】-【安鹏罚息税金】-【税率】 + else if(LONG_TERM_LEASEBACK_INTEREST_PENALTY_TAX_RATE.equals(subjectsCode)){ + money = actualOverdueAmountTax.toString();//安鹏罚息税金 + param.put("taxCode", taxCode);// 税率编码 + param.put("contractNo",""); + param.put("customerNo",""); + param.put("customerName",""); + }else { + logger.warn("生成凭证,当前凭证类型匹配失败。subjectsCode=" + subjectsCode); + throw new Exception("生成凭证,当前凭证类型匹配失败。subjectsCode=" + subjectsCode); + } + if(StringUtils.isEmpty(money)){ + logger.warn("生成凭证,查询凭证相关金额信息失败。"); + throw new Exception("生成凭证,查询凭证相关金额信息失败。"); + } + //debit:借;credit:贷 + if("1".equals(param.get("entrydc"))) { + param.put("debitMoney",money); + param.put("creditMoney","0.00"); + }else{ + param.put("debitMoney","0.00"); + param.put("creditMoney",money); + } + } + + /** + * 根据凭证配置编号获取对应的每条凭证参数 + * @return + * @throws Exception + */ + public String findTaxNumber(Map planInfo,Transaction Sqlca) throws Exception { + //查询产品编号 + String sqlQueryProductId = "SELECT PRODUCT_ID from fc_request WHERE ID='"+planInfo.get("fc_request_id")+"'"; + String productId = Sqlca.getString(sqlQueryProductId); + //查询租赁类型:回租,直租 + String sqlQueryLeasForm = "SELECT LeasForm from PRD_SPECIFIC_LIBRARY where PRODUCTID='"+productId+"'"; + String leasForm = Sqlca.getString(sqlQueryLeasForm); + + String sql = "SELECT CONTRACT_DATE,break_money from TAX_INFO " + + " where LEASE_FORM='"+leasForm+"' ORDER BY CONTRACT_DATE desc "; + List> paramList = DataOperatorUtil.getDataBySql(sql); + if(paramList.size()==0){ + logger.warn(planInfo.get("fc_request_id") + "通过凭证配置编号未找到对应配置信息"); + throw new Exception(planInfo.get("fc_request_id") + "通过凭证配置编号未找到对应配置信息"); + } + return paramList.get(0).get("break_money"); + } + + + /** + * 根据凭证配置编号获取对应的每条凭证参数 + * @return + * @throws Exception + */ + public List> findParamOfVoucher(String voucherConfigNo) throws Exception { + String sql = "select lvl.SORT_NUMBER as sortNumber,lvl.LOAN_SUBJECT as loanSubject, " + + " CASE WHEN lvl.loan_direction = '1' THEN '1' ELSE '-1' END as entrydc, " + + " lvl.VALUE_ABSTRACT as valueAbstract,lsc.SUBJECTS_CODE as subjectsCode, " + + " lsc.SUBJECTS_NAME as subjectsName,lvc.MODULAR_NUMBER as modularName " + + " from lv_voucher_loan lvl " + + " left join LV_STACTS_CONFIG lsc on lvl.LOAN_SUBJECT=lsc.id " + + " left join lv_voucher_config lvc on lvl.VOUCHER_ID=lvc.id " + + " where lvc.VOUCHER_NO='"+voucherConfigNo+"'"; + List> paramList = DataOperatorUtil.getDataBySql(sql); + if(paramList.size()==0){ + logger.warn(voucherConfigNo + "通过凭证配置编号未找到对应配置信息"); + throw new Exception(voucherConfigNo + "通过凭证配置编号未找到对应配置信息"); + } + return paramList; + } + + /** + * 获取生成凭证所需的公共参数(每个合同为单位) + * 在传来值的基础上增添 + * @param voucherInfo + * @return + * @throws Exception + */ + private Map initCommonParam(Map voucherInfo) throws Exception { + + //固定值部分 + String evidenceMessage = "凭证输出";//查看凭证表,发现只有这一个值,目前先设置为固定值 + String easFlag = "0";//导入财务系统状态 默认0 (同上,只有这一个值) + String userId = "administrator";//操作人 + String userName = NameManager.getUserName(userId); + voucherInfo.put("evidenceMessage",evidenceMessage); + voucherInfo.put("easFlag",easFlag); + voucherInfo.put("userId",userId); + voucherInfo.put("userName",userName); + + //日期:【 2021/08/11 17:48:17】 + String createTime = voucherInfo.get("createTime").substring(0,10); + String periodYear = createTime.substring(0,4); + String periodMonth = createTime.substring(5,7); + voucherInfo.put("periodYear",periodYear); + voucherInfo.put("periodMonth",periodMonth); + voucherInfo.put("accountingDate",createTime); + voucherInfo.put("generateDate", DateUtil.getSystemDateDetailTime()); + + //主体信息 + String contractId = voucherInfo.get("contractId"); + voucherInfo.putAll(this.getSubjectInfoByContractId(contractId)); + return voucherInfo; + } + + /** + * 创建凭证 + * @param paramList + * @param tx + * @throws Exception + */ + private void createVoucher(List> paramList, JBOTransaction tx) throws Exception { + BizObjectManager bomV8 = JBOFactory.getBizObjectManager(VOUCHER_V8.CLASS_NAME,tx); + for(Map param :paramList){ + BizObject boV8 = bomV8.newObject(); + boV8.setAttributesValue(param); + bomV8.saveObject(boV8); + } + } + + /** + * 根据contractId获取主体信息 + * @param contractId + * @return + * @throws JBOException + */ + public Map getSubjectInfoByContractId(String contractId) throws JBOException { + Map subject = new HashMap<>(); + BizObjectManager bomLCI = JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.CLASS_NAME); + BizObject boLCI = bomLCI.createQuery("id=:id").setParameter("id",contractId).getSingleResult(false); + String subjectId = boLCI.getAttribute("SUBJECTID").toString(); + String subjectName = boLCI.getAttribute("SUBJECTNAME").toString(); + BizObjectManager bomOI = JBOFactory.getBizObjectManager(OWN_INFO.CLASS_NAME); + BizObject boOI = bomOI.createQuery("OWN_NAME=:subjectName").setParameter("subjectName",subjectName).getSingleResult(false); + String ownNumber = boOI.getAttribute("OWN_NUMBER").toString(); + subject.put("subjectId",subjectId); + subject.put("subjectName",subjectName); + subject.put("ownNumber",ownNumber); + return subject; + } + + /** + * 将最终获取的参数转换为凭证表voucher_v8对应的字段 + * 注意:新增时注意param中字段不可修改 + * @param param + * @return + */ + private Map initConvertParam(Map param){ + Map finalParam = new HashMap<>(); + finalParam.put("evidence_message",param.get("evidenceMessage"));//固定值:凭证输出 + finalParam.put("periodyear",param.get("periodYear")); //年 + finalParam.put("f1",param.get("accountingDate"));//会计日期 + finalParam.put("f2",param.get("subjectsCode"));//科目编码 + finalParam.put("f3",param.get("voucherNo"));//凭证编号 + finalParam.put("f5",param.get("valueAbstract"));//摘要 + finalParam.put("f6",param.get("loanSubject"));//科目表id + finalParam.put("f7",param.get("debitMoney"));//借方金额 + finalParam.put("f8",param.get("creditMoney"));//贷方金额 + finalParam.put("f12",param.get("userName"));//操作人 + finalParam.put("f15",param.get("accountingDate"));//日期(与会计日期相同) + finalParam.put("f47",param.get("contractNo"));//业务合同编号 + finalParam.put("f48",param.get("ownNumber"));//本方信息No + finalParam.put("f49",param.get("subjectId"));//所属公司ID(注意:实际此字段存的是code_library表中codeno='ManySubject' 的 itemno 字段) + finalParam.put("f50",param.get("subjectName"));//所属公司名称 + finalParam.put("f51",param.get("periodYear"));//会计期间-年(与上面 ‘年’ 相同) + finalParam.put("f52",param.get("periodMonth"));//会计期间-月 + finalParam.put("f59",param.get("sortNumber"));//凭证配置中排序号 + finalParam.put("f60",param.get("contractNo"));//业务合同号,与f47相同(尚不明为何重复) + finalParam.put("f61",param.get("customerName"));//客户名称 + finalParam.put("f62",param.get("loanSubject"));//科目表id,与f6相同(尚不明为何重复) + finalParam.put("f65",param.get("customerNo"));//客商编号(取值customer_info表中customer_num字段) + finalParam.put("f73",param.get("BUSINESSTYPE"));//主营类型 + finalParam.put("f76",param.get("taxCode"));//利率编码 + finalParam.put("f74",param.get("cashFlow"));// 现金流项目 + finalParam.put("v8_status","已完整");//凭证状态 : 已完整;未完整 + finalParam.put("generate_date",param.get("generateDate"));//创建时间 + finalParam.put("v8_flag",param.get("easFlag"));//导入财务系统状态 默认0(尚不知有何逻辑,目前整个表中全部为0) + finalParam.put("module_name",param.get("modularName"));//凭证模型名称 + finalParam.put("entrydc",param.get("entrydc"));//借贷:1,借;-1,贷 + finalParam.put("inputuserid",param.get("userId"));//操作人id + return finalParam; + } + + /** + * 当前期还款计划是否为,邮储回购,并在回购之前该期为逾期的。 + * @return + */ + public boolean findYCOverdue(String rentIncomeId, Transaction Sqlca) throws Exception { + String sqlQueryPlanId = "SELECT PLAN_ID from lc_rent_income WHERE rent_plan_id='"+rentIncomeId+"'";//查询还款计划id + String rentPlanId = Sqlca.getString(sqlQueryPlanId); + String sqlCount = "SELECT count(1) from fc_yc_overdue_repay_plan WHERE rent_plan_id='"+rentPlanId+"'";//查询是否在回购之前是否已逾期 + String countNum = Sqlca.getString(sqlCount); + if(StringUtils.isEmpty(countNum) || "0".equals(sqlCount)){ + logger.warn("rentIncomeId="+ rentIncomeId + ",当前实收所对应的还款计划,不符合邮储回购,并在回购之前该期为逾期的。"); + return false; + } + return true; + } +} diff --git a/src_core/com/tenwa/voucher/serviceImp/OverdueRepurchaseVoucherPSBC.java b/src_core/com/tenwa/voucher/serviceImp/OverdueRepurchaseVoucherPSBC.java index d733df03d..473203963 100644 --- a/src_core/com/tenwa/voucher/serviceImp/OverdueRepurchaseVoucherPSBC.java +++ b/src_core/com/tenwa/voucher/serviceImp/OverdueRepurchaseVoucherPSBC.java @@ -126,7 +126,7 @@ public class OverdueRepurchaseVoucherPSBC implements VoucherInfoService { */ private String findOutstandingPrincipal(String contractId, Transaction Sqlca) throws Exception { String sqlPrincipal = "SELECT SUM(CORPUS) from lc_rent_plan WHERE CONTRACT_ID='"+contractId+"'";//总本金 - String sqlRepaymentPrincipal = "SELECT SUM(CORPUS) from lc_rent_income WHERE CONTRACT_ID='"+contractId+"'";//已还本金 + String sqlRepaymentPrincipal = "SELECT SUM(CORPUS) from lc_rent_income WHERE CONTRACT_ID='"+contractId+"' and charge_way = 'PSBC'";//在邮储方的已还本金 String amountPrincipal = Sqlca.getString(sqlPrincipal); String amountRepaymentPrincipal = Sqlca.getString(sqlRepaymentPrincipal); if(StringUtils.isEmpty(amountPrincipal) || StringUtils.isEmpty(amountRepaymentPrincipal)){ @@ -159,7 +159,7 @@ public class OverdueRepurchaseVoucherPSBC implements VoucherInfoService { */ private String findOutstandingInterest(String contractId, Transaction Sqlca) throws Exception { String sqlInterest = "SELECT SUM(INTEREST) from lc_rent_plan WHERE CONTRACT_ID='"+contractId+"'";//总利息 - String sqlRepaymentInterest = "SELECT SUM(INTEREST) from lc_rent_income WHERE CONTRACT_ID='"+contractId+"'";//已还利息 + String sqlRepaymentInterest = "SELECT SUM(INTEREST) from lc_rent_income WHERE CONTRACT_ID='"+contractId+"' and charge_way = 'PSBC' ";//已还利息 String amountInterest = Sqlca.getString(sqlInterest); String amountRepaymentInterest = Sqlca.getString(sqlRepaymentInterest); if(StringUtils.isEmpty(amountInterest) || StringUtils.isEmpty(amountRepaymentInterest)){ @@ -182,7 +182,7 @@ public class OverdueRepurchaseVoucherPSBC implements VoucherInfoService { "from fc_buyback_info frc " + "left join fc_yc_file_repay_result ffr on frc.fc_request_id = ffr.FC_REQUEST_ID " + "left join fc_request fr on frc.fc_request_id = fr.ID " + - "where frc.voucher_status='0' and fr.DEL_FLAG='0' and fr.CHANNEL_NO='"+channelNo+"' and ffr.REPAYMENT_FLAG='3' and ffr.REPAYMENT_SOURCE='1' and ffr.ID is not null "; + "where frc.is_confirm='1' and frc.voucher_status='0' and fr.DEL_FLAG='0' and fr.CHANNEL_NO='"+channelNo+"' and ffr.REPAYMENT_FLAG='3' and ffr.REPAYMENT_SOURCE='1' and ffr.ID is not null "; return DataOperatorUtil.getDataBySql(sql); } @@ -437,37 +437,14 @@ public class OverdueRepurchaseVoucherPSBC implements VoucherInfoService { * @throws Exception */ private void addOverdueRepayPlan(Map loanInfo ,Transaction Sqlca) throws Exception { - String sqlQuery = "SELECT plan_list from report_rent_plan WHERE contract_number='"+loanInfo.get("contractNo") +"' and batch_status='未完成' and over_days > 0"; + String sqlQuery = "SELECT plan_list from report_rent_plan WHERE contract_number='"+loanInfo.get("contractNo") +"' and batch_status='未完成' and over_days > 0 "; List> paramList = DataOperatorUtil.getDataBySql(sqlQuery); if(paramList.size()==0 || paramList.size()>2 ){ logger.warn(loanInfo.get("contractNo") + "逾期回购生成凭证之后,查询是否有逾期数据,或逾期数据大于2。"); return; } - String sqlQuery2 = "SELECT * from fc_buyback_info WHERE fc_request_id='"+loanInfo.get("fc_request_id") +"'"; - List> paramList2 = DataOperatorUtil.getDataBySql(sqlQuery2); - if(paramList2.size()==0 || paramList2.size()>1){ - logger.warn(loanInfo.get("contractNo") + "逾期回购生成凭证之后,查询是否有逾期数据2,或逾期数据大于1。"); - return; - } - Map overduePlan = paramList2.get(0); - String firstOverduePenalty = overduePlan.get("first_overdue_penalty"); - String secondOverduePenalty = overduePlan.get("second_overdue_penalty"); - if(paramList.size()==1){ - paramList.get(0).put("overduePenalty", firstOverduePenalty); - }else if(paramList.size() == 2){ - int firstTerm = Integer.parseInt(paramList.get(0).get("plan_list")); - int secondTerm = Integer.parseInt(paramList.get(1).get("plan_list")); - if(firstTerm < secondTerm){ - paramList.get(0).put("overduePenalty", firstOverduePenalty); - paramList.get(1).put("overduePenalty", secondOverduePenalty); - }else { - paramList.get(0).put("overduePenalty", secondOverduePenalty); - paramList.get(1).put("overduePenalty", firstOverduePenalty); - } - } for(Map planList : paramList){ String term = planList.get("plan_list"); - String overduePenalty = planList.get("overduePenalty"); String sqlRentPlan = "SELECT ID from lc_rent_plan WHERE CONTRACT_ID='"+loanInfo.get("contractId") +"' and PLAN_LIST='"+term+"'";//租金计划id String rentPlanId = Sqlca.getString(sqlRentPlan); @@ -478,8 +455,6 @@ public class OverdueRepurchaseVoucherPSBC implements VoucherInfoService { "contract_no," + "lend_term," + "rent_plan_id," + - "yc_overdue_amount," + - "yc_overdue_repay_amount," + "create_time," + "update_time" + ") values" + @@ -490,8 +465,6 @@ public class OverdueRepurchaseVoucherPSBC implements VoucherInfoService { "'"+ loanInfo.get("contractNo") +"',"+ ""+ term +","+ "'"+ rentPlanId +"',"+ - "'"+ overduePenalty +"',"+ - "'0',"+ "'"+ DateUtil.getSystemTimeByFormat("yyyyMMddHHmmss") +"',"+ "'"+ DateUtil.getSystemTimeByFormat("yyyyMMddHHmmss") +"'"+ ")" ; 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 91fcb6774..8215899cd 100644 --- a/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION.java +++ b/src_jbo/jbo/app/tenwa/calc/LC_CALC_CONDITION.java @@ -617,4 +617,9 @@ public interface LC_CALC_CONDITION{ * 贴息
*/ public static final String DISCOUNT_INTEREST = "DISCOUNT_INTEREST"; + + /** + * 综合利率
+ */ + public static final String COMPREHENSIVE_RATE = "COMPREHENSIVE_RATE"; } \ 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 98a642391..71a6e9af7 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 @@ -617,4 +617,8 @@ public interface LC_CALC_CONDITION_HIS{ * 贴息
*/ public static final String DISCOUNT_INTEREST = "DISCOUNT_INTEREST"; + /** + * 综合利率
+ */ + public static final String COMPREHENSIVE_RATE = "COMPREHENSIVE_RATE"; } \ 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 c1a894f8e..8b018dbe4 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 @@ -617,4 +617,8 @@ public interface LC_CALC_CONDITION_TEMP{ * 贴息
*/ public static final String DISCOUNT_INTEREST = "DISCOUNT_INTEREST"; + /** + * 综合利率
+ */ + public static final String COMPREHENSIVE_RATE = "COMPREHENSIVE_RATE"; } \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/LC_CALC_SUBSECTION_INFO.java b/src_jbo/jbo/app/tenwa/calc/LC_CALC_SUBSECTION_INFO.java new file mode 100644 index 000000000..4957803a7 --- /dev/null +++ b/src_jbo/jbo/app/tenwa/calc/LC_CALC_SUBSECTION_INFO.java @@ -0,0 +1,148 @@ +package jbo.app.tenwa.calc; + +import java.lang.String; + +/** +* - JBO命名常量类

+* Note: This file is generated by ADE tools, dont modify it.
+ +*/ +public interface LC_CALC_SUBSECTION_INFO{ + /** + *

+ * 代表本类映射的BizObjectClass + */ + public static final String CLASS_NAME = "jbo.app.tenwa.calc.LC_CALC_SUBSECTION_INFO"; + /** + * 标识 STRING(32)
+ */ + public static final String ID = "ID"; + /** + * 项目编号 STRING(32)
+ */ + public static final String PROJECT_ID = "PROJECT_ID"; + /** + * 项目方案编号 STRING(32)
+ */ + public static final String PROJECT_PLAN_NUMBER = "PROJECT_PLAN_NUMBER"; + /** + * 合同编号 STRING(32)
+ */ + public static final String CONTRACT_ID = "CONTRACT_ID"; + /** + * 合同方案编号 STRING(32)
+ */ + public static final String CONTRACT_PLAN_NUMBER = "CONTRACT_PLAN_NUMBER"; + /** + * 投放编号 STRING(32)
+ */ + public static final String PAYMENT_NUMBER = "PAYMENT_NUMBER"; + /** + * 分段号 INT(10)
+ */ + public static final String SUBSECTION_NUMBER = "SUBSECTION_NUMBER"; + /** + * 融资额比例 DOUBLE(18)
+ */ + public static final String CLEAN_LEASE_RATIO = "CLEAN_LEASE_RATIO"; + /** + * 融资额 DOUBLE(18)
+ */ + public static final String CLEAN_LEASE_MONEY = "CLEAN_LEASE_MONEY"; + /** + * 标准利率 DOUBLE(18)
+ */ + public static final String RATE = "RATE"; + /** + * 产品利率 DOUBLE(18)
+ */ + public static final String DISCOUNT_RATE = "DISCOUNT_RATE"; + /** + * 融资利率 DOUBLE(18)
+ */ + public static final String FINANCING_RATE = "FINANCING_RATE"; + /** + * 期次 INT(10)
+ */ + public static final String INCOME_NUMBER = "INCOME_NUMBER"; + /** + * 贴息金额 DOUBLE(18)
+ */ + public static final String DISCOUNT = "DISCOUNT"; + /** + * 最大贴息金额 DOUBLE(18)
+ */ + public static final String MAXIMUM_DISCOUNT = "MAXIMUM_DISCOUNT"; + /** + * 贴息回款期次 INT(10)
+ */ + public static final String DISCOUNT_COLLECTION_PERIOD = "DISCOUNT_COLLECTION_PERIOD"; + /** + * 贴息计算方式 STRING(10)
+ */ + public static final String DISCOUNT_CALC_METHOD = "DISCOUNT_CALC_METHOD"; + /** + * 是否差额放款 STRING(10)
+ */ + public static final String IS_BALANCE_LENDING = "IS_BALANCE_LENDING"; + /** + * 录入人 STRING(32)
+ */ + public static final String INPUTUSERID = "INPUTUSERID"; + /** + * 录入部门 STRING(32)
+ */ + public static final String INPUTORGID = "INPUTORGID"; + /** + * 录入时间 STRING(32)
+ */ + public static final String INPUTTIME = "INPUTTIME"; + /** + * 更新人 STRING(32)
+ */ + public static final String UPDATEUSERID = "UPDATEUSERID"; + /** + * 更新部门 STRING(32)
+ */ + public static final String UPDATEORGID = "UPDATEORGID"; + /** + * 更新时间 STRING(32)
+ */ + public static final String UPDATETIME = "UPDATETIME"; + /** + * 期次是否只读 STRING(10)
+ */ + public static final String IS_ONLYREAD_INCOME_NUMBER = "IS_ONLYREAD_INCOME_NUMBER"; + /** + * 贴息金额是否固定金额 STRING(10)
+ */ + public static final String IS_FIXED_DISCOUNT = "IS_FIXED_DISCOUNT"; + /** + * 融资利率是否可修改 STRING(10)
+ */ + public static final String IS_UPDATE_LEASE_MONEY_RATIO = "IS_UPDATE_LEASE_MONEY_RATIO"; + /** + * 融资金额最大值 STRING(32)
+ */ + public static final String MAX_LEASE_MONEY = "MAX_LEASE_MONEY"; + /** + * 最小贴息金额 STRING(10)
+ */ + public static final String MINIMUM_DISCOUNT = "MINIMUM_DISCOUNT"; + /** + * 贴息后利率是否固定 STRING(10)
+ */ + public static final String IS_FIXED_DISCOUNT_RATE = "IS_FIXED_DISCOUNT_RATE"; + /** + * 最大期次 STRING(32)
+ */ + public static final String MAX_INCOME_NUMBER = "MAX_INCOME_NUMBER"; + /** + * 最小期次 STRING(32)
+ */ + public static final String MIN_INCOME_NUMBER = "MIN_INCOME_NUMBER"; + /** + * 融资金额最小值 STRING(10)
+ */ + public static final String MIN_LEASE_MONEY = "MIN_LEASE_MONEY"; +} \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/LC_CALC_SUBSECTION_INFO_HIS.java b/src_jbo/jbo/app/tenwa/calc/LC_CALC_SUBSECTION_INFO_HIS.java new file mode 100644 index 000000000..d834134ed --- /dev/null +++ b/src_jbo/jbo/app/tenwa/calc/LC_CALC_SUBSECTION_INFO_HIS.java @@ -0,0 +1,149 @@ +package jbo.app.tenwa.calc; + +import java.lang.String; + +/** +* - JBO命名常量类

+* Note: This file is generated by ADE tools, dont modify it.
+ +*/ +public interface LC_CALC_SUBSECTION_INFO_HIS{ + /** + *

+ * 代表本类映射的BizObjectClass + */ + public static final String CLASS_NAME = "jbo.app.tenwa.calc.LC_CALC_SUBSECTION_INFO_HIS"; + /** + * 标识 STRING(32)
+ */ + public static final String ID = "ID"; + /** + * 项目编号 STRING(32)
+ */ + public static final String PROJECT_ID = "PROJECT_ID"; + /** + * 项目方案编号 STRING(32)
+ */ + public static final String PROJECT_PLAN_NUMBER = "PROJECT_PLAN_NUMBER"; + /** + * 合同编号 STRING(32)
+ */ + public static final String CONTRACT_ID = "CONTRACT_ID"; + /** + * 合同方案编号 STRING(32)
+ */ + public static final String CONTRACT_PLAN_NUMBER = "CONTRACT_PLAN_NUMBER"; + /** + * 投放编号 STRING(32)
+ */ + public static final String PAYMENT_NUMBER = "PAYMENT_NUMBER"; + /** + * 分段号 INT(10)
+ */ + public static final String SUBSECTION_NUMBER = "SUBSECTION_NUMBER"; + /** + * 融资额比例 DOUBLE(18)
+ */ + public static final String CLEAN_LEASE_RATIO = "CLEAN_LEASE_RATIO"; + /** + * 融资额 DOUBLE(18)
+ */ + public static final String CLEAN_LEASE_MONEY = "CLEAN_LEASE_MONEY"; + /** + * 标准利率 DOUBLE(18)
+ */ + public static final String RATE = "RATE"; + /** + * 产品利率 DOUBLE(18)
+ */ + public static final String DISCOUNT_RATE = "DISCOUNT_RATE"; + /** + * 融资利率 DOUBLE(18)
+ */ + public static final String FINANCING_RATE = "FINANCING_RATE"; + /** + * 期次 INT(10)
+ */ + public static final String INCOME_NUMBER = "INCOME_NUMBER"; + /** + * 贴息金额 DOUBLE(18)
+ */ + public static final String DISCOUNT = "DISCOUNT"; + /** + * 最大贴息金额 DOUBLE(18)
+ */ + public static final String MAXIMUM_DISCOUNT = "MAXIMUM_DISCOUNT"; + /** + * 贴息回款期次 INT(10)
+ */ + public static final String DISCOUNT_COLLECTION_PERIOD = "DISCOUNT_COLLECTION_PERIOD"; + /** + * 贴息计算方式 STRING(10)
+ */ + public static final String DISCOUNT_CALC_METHOD = "DISCOUNT_CALC_METHOD"; + /** + * 是否差额放款 STRING(10)
+ */ + public static final String IS_BALANCE_LENDING = "IS_BALANCE_LENDING"; + /** + * 录入人 STRING(32)
+ */ + public static final String INPUTUSERID = "INPUTUSERID"; + /** + * 录入部门 STRING(32)
+ */ + public static final String INPUTORGID = "INPUTORGID"; + /** + * 录入时间 STRING(32)
+ */ + public static final String INPUTTIME = "INPUTTIME"; + /** + * 更新人 STRING(32)
+ */ + public static final String UPDATEUSERID = "UPDATEUSERID"; + /** + * 更新部门 STRING(32)
+ */ + public static final String UPDATEORGID = "UPDATEORGID"; + /** + * 更新时间 STRING(32)
+ */ + public static final String UPDATETIME = "UPDATETIME"; + /** + * 期次是否只读 STRING(10)
+ */ + public static final String IS_ONLYREAD_INCOME_NUMBER = "IS_ONLYREAD_INCOME_NUMBER"; + /** + * 贴息金额是否固定金额 STRING(10)
+ */ + public static final String IS_FIXED_DISCOUNT = "IS_FIXED_DISCOUNT"; + /** + * 融资利率是否可修改 STRING(10)
+ */ + public static final String IS_UPDATE_LEASE_MONEY_RATIO = "IS_UPDATE_LEASE_MONEY_RATIO"; + /** + * 融资金额最大值 STRING(32)
+ */ + public static final String MAX_LEASE_MONEY = "MAX_LEASE_MONEY"; + /** + * 最小贴息金额 STRING(10)
+ */ + public static final String MINIMUM_DISCOUNT = "MINIMUM_DISCOUNT"; + /** + * 贴息后利率是否固定 STRING(10)
+ */ + public static final String IS_FIXED_DISCOUNT_RATE = "IS_FIXED_DISCOUNT_RATE"; + + /** + * 最大期次 STRING(32)
+ */ + public static final String MAX_INCOME_NUMBER = "MAX_INCOME_NUMBER"; + /** + * 最小期次 STRING(32)
+ */ + public static final String MIN_INCOME_NUMBER = "MIN_INCOME_NUMBER"; + /** + * 融资金额最小值 STRING(32
+ */ + public static final String MIN_LEASE_MONEY = "MIN_LEASE_MONEY"; +} \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/LC_CALC_SUBSECTION_INFO_TEMP.java b/src_jbo/jbo/app/tenwa/calc/LC_CALC_SUBSECTION_INFO_TEMP.java new file mode 100644 index 000000000..794c431a5 --- /dev/null +++ b/src_jbo/jbo/app/tenwa/calc/LC_CALC_SUBSECTION_INFO_TEMP.java @@ -0,0 +1,152 @@ +package jbo.app.tenwa.calc; + +import java.lang.String; + +/** +* - JBO命名常量类

+* Note: This file is generated by ADE tools, dont modify it.
+ +*/ +public interface LC_CALC_SUBSECTION_INFO_TEMP{ + /** + *

+ * 代表本类映射的BizObjectClass + */ + public static final String CLASS_NAME = "jbo.app.tenwa.calc.LC_CALC_SUBSECTION_INFO_TEMP"; + /** + * 标识 STRING(32)
+ */ + public static final String ID = "ID"; + /** + * 项目编号 STRING(32)
+ */ + public static final String PROJECT_ID = "PROJECT_ID"; + /** + * 项目方案编号 STRING(32)
+ */ + public static final String PROJECT_PLAN_NUMBER = "PROJECT_PLAN_NUMBER"; + /** + * 合同编号 STRING(32)
+ */ + public static final String CONTRACT_ID = "CONTRACT_ID"; + /** + * 合同方案编号 STRING(32)
+ */ + public static final String CONTRACT_PLAN_NUMBER = "CONTRACT_PLAN_NUMBER"; + /** + * 投放编号 STRING(32)
+ */ + public static final String PAYMENT_NUMBER = "PAYMENT_NUMBER"; + /** + * 分段号 INT(10)
+ */ + public static final String SUBSECTION_NUMBER = "SUBSECTION_NUMBER"; + /** + * 融资额比例 DOUBLE(18)
+ */ + public static final String CLEAN_LEASE_RATIO = "CLEAN_LEASE_RATIO"; + /** + * 融资额 DOUBLE(18)
+ */ + public static final String CLEAN_LEASE_MONEY = "CLEAN_LEASE_MONEY"; + /** + * 标准利率 DOUBLE(18)
+ */ + public static final String RATE = "RATE"; + /** + * 产品利率 DOUBLE(18)
+ */ + public static final String DISCOUNT_RATE = "DISCOUNT_RATE"; + /** + * 融资利率 DOUBLE(18)
+ */ + public static final String FINANCING_RATE = "FINANCING_RATE"; + /** + * 期次 INT(10)
+ */ + public static final String INCOME_NUMBER = "INCOME_NUMBER"; + /** + * 贴息金额 DOUBLE(18)
+ */ + public static final String DISCOUNT = "DISCOUNT"; + /** + * 最大贴息金额 DOUBLE(18)
+ */ + public static final String MAXIMUM_DISCOUNT = "MAXIMUM_DISCOUNT"; + /** + * 贴息回款期次 INT(10)
+ */ + public static final String DISCOUNT_COLLECTION_PERIOD = "DISCOUNT_COLLECTION_PERIOD"; + /** + * 贴息计算方式 STRING(10)
+ */ + public static final String DISCOUNT_CALC_METHOD = "DISCOUNT_CALC_METHOD"; + /** + * 是否差额放款 STRING(10)
+ */ + public static final String IS_BALANCE_LENDING = "IS_BALANCE_LENDING"; + /** + * 录入人 STRING(32)
+ */ + public static final String INPUTUSERID = "INPUTUSERID"; + /** + * 录入部门 STRING(32)
+ */ + public static final String INPUTORGID = "INPUTORGID"; + /** + * 录入时间 STRING(32)
+ */ + public static final String INPUTTIME = "INPUTTIME"; + /** + * 更新人 STRING(32)
+ */ + public static final String UPDATEUSERID = "UPDATEUSERID"; + /** + * 更新部门 STRING(32)
+ */ + public static final String UPDATEORGID = "UPDATEORGID"; + /** + * 更新时间 STRING(32)
+ */ + public static final String UPDATETIME = "UPDATETIME"; + /** + * 流程标识 STRING(32)
+ */ + public static final String FLOWUNID = "FLOWUNID"; + /** + * 期次是否只读 STRING(10)
+ */ + public static final String IS_ONLYREAD_INCOME_NUMBER = "IS_ONLYREAD_INCOME_NUMBER"; + /** + * 贴息金额是否固定金额 STRING(10)
+ */ + public static final String IS_FIXED_DISCOUNT = "IS_FIXED_DISCOUNT"; + /** + * 融资利率是否可修改 STRING(10)
+ */ + public static final String IS_UPDATE_LEASE_MONEY_RATIO = "IS_UPDATE_LEASE_MONEY_RATIO"; + /** + * 融资金额最大值 STRING(32)
+ */ + public static final String MAX_LEASE_MONEY = "MAX_LEASE_MONEY"; + /** + * 最小贴息金额 STRING(10)
+ */ + public static final String MINIMUM_DISCOUNT = "MINIMUM_DISCOUNT"; + /** + * 贴息后利率是否固定 STRING(10)
+ */ + public static final String IS_FIXED_DISCOUNT_RATE = "IS_FIXED_DISCOUNT_RATE"; + /** + * 最大期次 STRING(32)
+ */ + public static final String MAX_INCOME_NUMBER = "MAX_INCOME_NUMBER"; + /** + * 最小期次 STRING(32)
+ */ + public static final String MIN_INCOME_NUMBER = "MIN_INCOME_NUMBER"; + /** + * 融资金额最小值 STRING(32
+ */ + public static final String MIN_LEASE_MONEY = "MIN_LEASE_MONEY"; +} \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/LC_CONTRACT_SUBSECTION_INFO.java b/src_jbo/jbo/app/tenwa/calc/LC_CONTRACT_SUBSECTION_INFO.java new file mode 100644 index 000000000..95dc01e37 --- /dev/null +++ b/src_jbo/jbo/app/tenwa/calc/LC_CONTRACT_SUBSECTION_INFO.java @@ -0,0 +1,112 @@ +package jbo.app.tenwa.calc; + +import java.lang.String; + +/** +* - JBO命名常量类

+* Note: This file is generated by ADE tools, dont modify it.
+ +*/ +public interface LC_CONTRACT_SUBSECTION_INFO{ + /** + *

+ * 代表本类映射的BizObjectClass + */ + public static final String CLASS_NAME = "jbo.app.tenwa.calc.LC_CONTRACT_SUBSECTION_INFO"; + /** + * 标识 STRING(32)
+ */ + public static final String ID = "ID"; + /** + * 项目编号 STRING(32)
+ */ + public static final String PROJECT_ID = "PROJECT_ID"; + /** + * 项目方案编号 STRING(32)
+ */ + public static final String PROJECT_PLAN_NUMBER = "PROJECT_PLAN_NUMBER"; + /** + * 合同编号 STRING(32)
+ */ + public static final String CONTRACT_ID = "CONTRACT_ID"; + /** + * 合同方案编号 STRING(32)
+ */ + public static final String CONTRACT_PLAN_NUMBER = "CONTRACT_PLAN_NUMBER"; + /** + * 投放编号 STRING(32)
+ */ + public static final String PAYMENT_NUMBER = "PAYMENT_NUMBER"; + /** + * 分段号 INT(10)
+ */ + public static final String SUBSECTION_NUMBER = "SUBSECTION_NUMBER"; + /** + * 融资额比例 DOUBLE(18)
+ */ + public static final String CLEAN_LEASE_RATIO = "CLEAN_LEASE_RATIO"; + /** + * 融资额 DOUBLE(18)
+ */ + public static final String CLEAN_LEASE_MONEY = "CLEAN_LEASE_MONEY"; + /** + * 标准利率 DOUBLE(18)
+ */ + public static final String RATE = "RATE"; + /** + * 产品利率 DOUBLE(18)
+ */ + public static final String DISCOUNT_RATE = "DISCOUNT_RATE"; + /** + * 融资利率 DOUBLE(18)
+ */ + public static final String FINANCING_RATE = "FINANCING_RATE"; + /** + * 期次 INT(10)
+ */ + public static final String INCOME_NUMBER = "INCOME_NUMBER"; + /** + * 贴息金额 DOUBLE(18)
+ */ + public static final String DISCOUNT = "DISCOUNT"; + /** + * 最大贴息金额 DOUBLE(18)
+ */ + public static final String MAXIMUM_DISCOUNT = "MAXIMUM_DISCOUNT"; + /** + * 贴息回款期次 INT(10)
+ */ + public static final String DISCOUNT_COLLECTION_PERIOD = "DISCOUNT_COLLECTION_PERIOD"; + /** + * 贴息计算方式 STRING(10)
+ */ + public static final String DISCOUNT_CALC_METHOD = "DISCOUNT_CALC_METHOD"; + /** + * 是否差额放款 STRING(10)
+ */ + public static final String IS_BALANCE_LENDING = "IS_BALANCE_LENDING"; + /** + * 录入人 STRING(32)
+ */ + public static final String INPUTUSERID = "INPUTUSERID"; + /** + * 录入部门 STRING(32)
+ */ + public static final String INPUTORGID = "INPUTORGID"; + /** + * 录入时间 STRING(32)
+ */ + public static final String INPUTTIME = "INPUTTIME"; + /** + * 更新人 STRING(32)
+ */ + public static final String UPDATEUSERID = "UPDATEUSERID"; + /** + * 更新部门 STRING(32)
+ */ + public static final String UPDATEORGID = "UPDATEORGID"; + /** + * 更新时间 STRING(32)
+ */ + public static final String UPDATETIME = "UPDATETIME"; +} \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/LC_CONTRACT_SUBSECTION_RENT_PLAN.java b/src_jbo/jbo/app/tenwa/calc/LC_CONTRACT_SUBSECTION_RENT_PLAN.java new file mode 100644 index 000000000..ddeecd626 --- /dev/null +++ b/src_jbo/jbo/app/tenwa/calc/LC_CONTRACT_SUBSECTION_RENT_PLAN.java @@ -0,0 +1,144 @@ +package jbo.app.tenwa.calc; + +import java.lang.String; + +/** +* - JBO命名常量类

+* Note: This file is generated by ADE tools, dont modify it.
+ +*/ +public interface LC_CONTRACT_SUBSECTION_RENT_PLAN{ + /** + *

+ * 代表本类映射的BizObjectClass + */ + public static final String CLASS_NAME = "jbo.app.tenwa.calc.LC_CONTRACT_SUBSECTION_RENT_PLAN"; + /** + * 标识 STRING(32)
+ */ + public static final String ID = "ID"; + /** + * 报价编号 STRING(32)
+ */ + public static final String QUOT_ID = "QUOT_ID"; + /** + * 客户编号 STRING(32)
+ */ + public static final String CUST_ID = "CUST_ID"; + /** + * 项目编号 STRING(32)
+ */ + public static final String PROJECT_ID = "PROJECT_ID"; + /** + * 项目方案编号 STRING(32)
+ */ + public static final String PROJECT_PLAN_NUMBER = "PROJECT_PLAN_NUMBER"; + /** + * 合同编号 STRING(32)
+ */ + public static final String CONTRACT_ID = "CONTRACT_ID"; + /** + * 合同方案编号 STRING(32)
+ */ + public static final String CONTRACT_PLAN_NUMBER = "CONTRACT_PLAN_NUMBER"; + /** + * 投放编号 STRING(32)
+ */ + public static final String PAYMENT_NUMBER = "PAYMENT_NUMBER"; + /** + * 期次 INT(10)
+ */ + public static final String PLAN_LIST = "PLAN_LIST"; + /** + * 计划日期 STRING(32)
+ */ + public static final String PLAN_DATE = "PLAN_DATE"; + /** + * 收付状态 STRING(32)
+ */ + public static final String PLAN_STATUS = "PLAN_STATUS"; + /** + * 租金 DOUBLE(18)
+ */ + public static final String RENT = "RENT"; + /** + * 财务本金 DOUBLE(18)
+ */ + public static final String CORPUS = "CORPUS"; + /** + * 财务租息 DOUBLE(18)
+ */ + public static final String INTEREST = "INTEREST"; + /** + * 应收罚息 DOUBLE(18)
+ */ + public static final String PENALTY = "PENALTY"; + /** + * 业务本金 DOUBLE(18)
+ */ + public static final String CORPUS_BUSINESS = "CORPUS_BUSINESS"; + /** + * 业务租息 DOUBLE(18)
+ */ + public static final String INTEREST_BUSINESS = "INTEREST_BUSINESS"; + /** + * 租金调整值 DOUBLE(18)
+ */ + public static final String RENT_ADJUST = "RENT_ADJUST"; + /** + * 本期后本金余额 DOUBLE(18)
+ */ + public static final String ALL_REMAIN_CORPUS = "ALL_REMAIN_CORPUS"; + /** + * 结算方式 STRING(32)
+ */ + public static final String SETTLE_METHOD = "SETTLE_METHOD"; + /** + * 币种 STRING(32)
+ */ + public static final String COIN = "COIN"; + /** + * 年利率 DOUBLE(18)
+ */ + public static final String YEAR_RATE = "YEAR_RATE"; + /** + * 备注 STRING(100)
+ */ + public static final String MEMO = "MEMO"; + /** + * 流程编号 STRING(32)
+ */ + public static final String FLOWUNID = "FLOWUNID"; + /** + * 登记人 STRING(32)
+ */ + public static final String INPUTUSERID = "INPUTUSERID"; + /** + * 登记部门 STRING(32)
+ */ + public static final String INPUTORGID = "INPUTORGID"; + /** + * 登记时间 STRING(32)
+ */ + public static final String INPUTTIME = "INPUTTIME"; + /** + * 更新人 STRING(32)
+ */ + public static final String UPDATEUSERID = "UPDATEUSERID"; + /** + * 更新部门 STRING(32)
+ */ + public static final String UPDATEORGID = "UPDATEORGID"; + /** + * 更新时间 STRING(32)
+ */ + public static final String UPDATETIME = "UPDATETIME"; + /** + * 计息日 STRING(32)
+ */ + public static final String INTEREST_DATE = "INTEREST_DATE"; + /** + * subsection_number INT(10)
+ */ + public static final String subsection_number = "subsection_number"; +} \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/LC_PROJ_SUBSECTION_INFO.java b/src_jbo/jbo/app/tenwa/calc/LC_PROJ_SUBSECTION_INFO.java new file mode 100644 index 000000000..2656ff94b --- /dev/null +++ b/src_jbo/jbo/app/tenwa/calc/LC_PROJ_SUBSECTION_INFO.java @@ -0,0 +1,112 @@ +package jbo.app.tenwa.calc; + +import java.lang.String; + +/** +* - JBO命名常量类

+* Note: This file is generated by ADE tools, dont modify it.
+ +*/ +public interface LC_PROJ_SUBSECTION_INFO{ + /** + *

+ * 代表本类映射的BizObjectClass + */ + public static final String CLASS_NAME = "jbo.app.tenwa.calc.LC_PROJ_SUBSECTION_INFO"; + /** + * 标识 STRING(32)
+ */ + public static final String ID = "ID"; + /** + * 项目编号 STRING(32)
+ */ + public static final String PROJECT_ID = "PROJECT_ID"; + /** + * 项目方案编号 STRING(32)
+ */ + public static final String PROJECT_PLAN_NUMBER = "PROJECT_PLAN_NUMBER"; + /** + * 合同编号 STRING(32)
+ */ + public static final String CONTRACT_ID = "CONTRACT_ID"; + /** + * 合同方案编号 STRING(32)
+ */ + public static final String CONTRACT_PLAN_NUMBER = "CONTRACT_PLAN_NUMBER"; + /** + * 投放编号 STRING(32)
+ */ + public static final String PAYMENT_NUMBER = "PAYMENT_NUMBER"; + /** + * 分段号 INT(10)
+ */ + public static final String SUBSECTION_NUMBER = "SUBSECTION_NUMBER"; + /** + * 融资额比例 DOUBLE(18)
+ */ + public static final String CLEAN_LEASE_RATIO = "CLEAN_LEASE_RATIO"; + /** + * 融资额 DOUBLE(18)
+ */ + public static final String CLEAN_LEASE_MONEY = "CLEAN_LEASE_MONEY"; + /** + * 标准利率 DOUBLE(18)
+ */ + public static final String RATE = "RATE"; + /** + * 产品利率 DOUBLE(18)
+ */ + public static final String DISCOUNT_RATE = "DISCOUNT_RATE"; + /** + * 融资利率 DOUBLE(18)
+ */ + public static final String FINANCING_RATE = "FINANCING_RATE"; + /** + * 期次 INT(10)
+ */ + public static final String INCOME_NUMBER = "INCOME_NUMBER"; + /** + * 贴息金额 DOUBLE(18)
+ */ + public static final String DISCOUNT = "DISCOUNT"; + /** + * 最大贴息金额 DOUBLE(18)
+ */ + public static final String MAXIMUM_DISCOUNT = "MAXIMUM_DISCOUNT"; + /** + * 贴息回款期次 INT(10)
+ */ + public static final String DISCOUNT_COLLECTION_PERIOD = "DISCOUNT_COLLECTION_PERIOD"; + /** + * 贴息计算方式 STRING(10)
+ */ + public static final String DISCOUNT_CALC_METHOD = "DISCOUNT_CALC_METHOD"; + /** + * 是否差额放款 STRING(10)
+ */ + public static final String IS_BALANCE_LENDING = "IS_BALANCE_LENDING"; + /** + * 录入人 STRING(32)
+ */ + public static final String INPUTUSERID = "INPUTUSERID"; + /** + * 录入部门 STRING(32)
+ */ + public static final String INPUTORGID = "INPUTORGID"; + /** + * 录入时间 STRING(32)
+ */ + public static final String INPUTTIME = "INPUTTIME"; + /** + * 更新人 STRING(32)
+ */ + public static final String UPDATEUSERID = "UPDATEUSERID"; + /** + * 更新部门 STRING(32)
+ */ + public static final String UPDATEORGID = "UPDATEORGID"; + /** + * 更新时间 STRING(32)
+ */ + public static final String UPDATETIME = "UPDATETIME"; +} \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/LC_PROJ_SUBSECTION_RENT_PLAN.java b/src_jbo/jbo/app/tenwa/calc/LC_PROJ_SUBSECTION_RENT_PLAN.java new file mode 100644 index 000000000..175781b13 --- /dev/null +++ b/src_jbo/jbo/app/tenwa/calc/LC_PROJ_SUBSECTION_RENT_PLAN.java @@ -0,0 +1,144 @@ +package jbo.app.tenwa.calc; + +import java.lang.String; + +/** +* - JBO命名常量类

+* Note: This file is generated by ADE tools, dont modify it.
+ +*/ +public interface LC_PROJ_SUBSECTION_RENT_PLAN{ + /** + *

+ * 代表本类映射的BizObjectClass + */ + public static final String CLASS_NAME = "jbo.app.tenwa.calc.LC_PROJ_SUBSECTION_RENT_PLAN"; + /** + * 标识 STRING(32)
+ */ + public static final String ID = "ID"; + /** + * 报价编号 STRING(32)
+ */ + public static final String QUOT_ID = "QUOT_ID"; + /** + * 客户编号 STRING(32)
+ */ + public static final String CUST_ID = "CUST_ID"; + /** + * 项目编号 STRING(32)
+ */ + public static final String PROJECT_ID = "PROJECT_ID"; + /** + * 项目方案编号 STRING(32)
+ */ + public static final String PROJECT_PLAN_NUMBER = "PROJECT_PLAN_NUMBER"; + /** + * 合同编号 STRING(32)
+ */ + public static final String CONTRACT_ID = "CONTRACT_ID"; + /** + * 合同方案编号 STRING(32)
+ */ + public static final String CONTRACT_PLAN_NUMBER = "CONTRACT_PLAN_NUMBER"; + /** + * 投放编号 STRING(32)
+ */ + public static final String PAYMENT_NUMBER = "PAYMENT_NUMBER"; + /** + * 期次 INT(10)
+ */ + public static final String PLAN_LIST = "PLAN_LIST"; + /** + * 计划日期 STRING(32)
+ */ + public static final String PLAN_DATE = "PLAN_DATE"; + /** + * 收付状态 STRING(32)
+ */ + public static final String PLAN_STATUS = "PLAN_STATUS"; + /** + * 租金 DOUBLE(18)
+ */ + public static final String RENT = "RENT"; + /** + * 财务本金 DOUBLE(18)
+ */ + public static final String CORPUS = "CORPUS"; + /** + * 财务租息 DOUBLE(18)
+ */ + public static final String INTEREST = "INTEREST"; + /** + * 应收罚息 DOUBLE(18)
+ */ + public static final String PENALTY = "PENALTY"; + /** + * 业务本金 DOUBLE(18)
+ */ + public static final String CORPUS_BUSINESS = "CORPUS_BUSINESS"; + /** + * 业务租息 DOUBLE(18)
+ */ + public static final String INTEREST_BUSINESS = "INTEREST_BUSINESS"; + /** + * 租金调整值 DOUBLE(18)
+ */ + public static final String RENT_ADJUST = "RENT_ADJUST"; + /** + * 本期后本金余额 DOUBLE(18)
+ */ + public static final String ALL_REMAIN_CORPUS = "ALL_REMAIN_CORPUS"; + /** + * 结算方式 STRING(32)
+ */ + public static final String SETTLE_METHOD = "SETTLE_METHOD"; + /** + * 币种 STRING(32)
+ */ + public static final String COIN = "COIN"; + /** + * 年利率 DOUBLE(18)
+ */ + public static final String YEAR_RATE = "YEAR_RATE"; + /** + * 备注 STRING(100)
+ */ + public static final String MEMO = "MEMO"; + /** + * 流程编号 STRING(32)
+ */ + public static final String FLOWUNID = "FLOWUNID"; + /** + * 登记人 STRING(32)
+ */ + public static final String INPUTUSERID = "INPUTUSERID"; + /** + * 登记部门 STRING(32)
+ */ + public static final String INPUTORGID = "INPUTORGID"; + /** + * 登记时间 STRING(32)
+ */ + public static final String INPUTTIME = "INPUTTIME"; + /** + * 更新人 STRING(32)
+ */ + public static final String UPDATEUSERID = "UPDATEUSERID"; + /** + * 更新部门 STRING(32)
+ */ + public static final String UPDATEORGID = "UPDATEORGID"; + /** + * 更新时间 STRING(32)
+ */ + public static final String UPDATETIME = "UPDATETIME"; + /** + * 计息日 STRING(32)
+ */ + public static final String INTEREST_DATE = "INTEREST_DATE"; + /** + * subsection_number INT(10)
+ */ + public static final String subsection_number = "subsection_number"; +} \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/LC_SUBSECTION_RENT_PLAN.java b/src_jbo/jbo/app/tenwa/calc/LC_SUBSECTION_RENT_PLAN.java new file mode 100644 index 000000000..06534e98b --- /dev/null +++ b/src_jbo/jbo/app/tenwa/calc/LC_SUBSECTION_RENT_PLAN.java @@ -0,0 +1,196 @@ +package jbo.app.tenwa.calc; + +import java.lang.String; + +/** +* - JBO命名常量类

+* Note: This file is generated by ADE tools, dont modify it.
+ +*/ +public interface LC_SUBSECTION_RENT_PLAN{ + /** + *

+ * 代表本类映射的BizObjectClass + */ + public static final String CLASS_NAME = "jbo.app.tenwa.calc.LC_SUBSECTION_RENT_PLAN"; + /** + * 标识 STRING(32)
+ */ + public static final String ID = "ID"; + /** + * 报价编号 STRING(32)
+ */ + public static final String QUOT_ID = "QUOT_ID"; + /** + * 客户编号 STRING(32)
+ */ + public static final String CUST_ID = "CUST_ID"; + /** + * 项目编号 STRING(32)
+ */ + public static final String PROJECT_ID = "PROJECT_ID"; + /** + * 项目方案编号 STRING(32)
+ */ + public static final String PROJECT_PLAN_NUMBER = "PROJECT_PLAN_NUMBER"; + /** + * 合同编号 STRING(32)
+ */ + public static final String CONTRACT_ID = "CONTRACT_ID"; + /** + * 合同方案编号 STRING(32)
+ */ + public static final String CONTRACT_PLAN_NUMBER = "CONTRACT_PLAN_NUMBER"; + /** + * 投放编号 STRING(32)
+ */ + public static final String PAYMENT_NUMBER = "PAYMENT_NUMBER"; + /** + * 期次 INT(10)
+ */ + public static final String PLAN_LIST = "PLAN_LIST"; + /** + * 计划日期 STRING(32)
+ */ + public static final String PLAN_DATE = "PLAN_DATE"; + /** + * 收付状态 STRING(32)
+ */ + public static final String PLAN_STATUS = "PLAN_STATUS"; + /** + * 租金 DOUBLE(18)
+ */ + public static final String RENT = "RENT"; + /** + * 财务本金 DOUBLE(18)
+ */ + public static final String CORPUS = "CORPUS"; + /** + * 财务租息 DOUBLE(18)
+ */ + public static final String INTEREST = "INTEREST"; + /** + * 应收罚息 DOUBLE(18)
+ */ + public static final String PENALTY = "PENALTY"; + /** + * 业务本金 DOUBLE(18)
+ */ + public static final String CORPUS_BUSINESS = "CORPUS_BUSINESS"; + /** + * 业务租息 DOUBLE(18)
+ */ + public static final String INTEREST_BUSINESS = "INTEREST_BUSINESS"; + /** + * 租金调整值 DOUBLE(18)
+ */ + public static final String RENT_ADJUST = "RENT_ADJUST"; + /** + * 本期后本金余额 DOUBLE(18)
+ */ + public static final String ALL_REMAIN_CORPUS = "ALL_REMAIN_CORPUS"; + /** + * 结算方式 STRING(32)
+ */ + public static final String SETTLE_METHOD = "SETTLE_METHOD"; + /** + * 币种 STRING(32)
+ */ + public static final String COIN = "COIN"; + /** + * 年利率 DOUBLE(18)
+ */ + public static final String YEAR_RATE = "YEAR_RATE"; + /** + * 备注 STRING(100)
+ */ + public static final String MEMO = "MEMO"; + /** + * 流程编号 STRING(32)
+ */ + public static final String FLOWUNID = "FLOWUNID"; + /** + * 登记人 STRING(32)
+ */ + public static final String INPUTUSERID = "INPUTUSERID"; + /** + * 登记部门 STRING(32)
+ */ + public static final String INPUTORGID = "INPUTORGID"; + /** + * 登记时间 STRING(32)
+ */ + public static final String INPUTTIME = "INPUTTIME"; + /** + * 更新人 STRING(32)
+ */ + public static final String UPDATEUSERID = "UPDATEUSERID"; + /** + * 更新部门 STRING(32)
+ */ + public static final String UPDATEORGID = "UPDATEORGID"; + /** + * 更新时间 STRING(32)
+ */ + public static final String UPDATETIME = "UPDATETIME"; + /** + * 计息日 STRING(32)
+ */ + public static final String INTEREST_DATE = "INTEREST_DATE"; + /** + * 代收审计状态 STRING(32)
+ */ + public static final String AUDIT_STATE = "AUDIT_STATE"; + /** + * 收款状态 STRING(32)
+ */ + public static final String COLLECT_STATUS = "COLLECT_STATUS"; + /** + * 收款描述 STRING(200)
+ */ + public static final String COLLECT_MSG = "COLLECT_MSG"; + /** + * 失败时间 STRING(200)
+ */ + public static final String FAILURE_TIME = "FAILURE_TIME"; + /** + * 失败原因 STRING(200)
+ */ + public static final String FAILURE_REASON = "FAILURE_REASON"; + /** + * 批量交易流水号,若拆分,以,分割 STRING(200)
+ */ + public static final String BATCH_NO = "BATCH_NO"; + /** + * 批量处理状态 STRING(200)
+ */ + public static final String BATCH_STATUS = "BATCH_STATUS"; + /** + * batch_sn STRING(200)
+ */ + public static final String batch_sn = "batch_sn"; + /** + * SPARE_BATCH_NO STRING(32)
+ */ + public static final String SPARE_BATCH_NO = "SPARE_BATCH_NO"; + /** + * CORPUS_SP DOUBLE(18)
+ */ + public static final String CORPUS_SP = "CORPUS_SP"; + /** + * INTEREST_sp DOUBLE(18)
+ */ + public static final String INTEREST_sp = "INTEREST_sp"; + /** + * splitting_status STRING(2)
+ */ + public static final String splitting_status = "splitting_status"; + /** + * charge_way STRING(10)
+ */ + public static final String charge_way = "charge_way"; + /** + * subsection_number INT(10)
+ */ + public static final String subsection_number = "subsection_number"; +} \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/LC_SUBSECTION_RENT_PLAN_HIS.java b/src_jbo/jbo/app/tenwa/calc/LC_SUBSECTION_RENT_PLAN_HIS.java new file mode 100644 index 000000000..4ca77dfc0 --- /dev/null +++ b/src_jbo/jbo/app/tenwa/calc/LC_SUBSECTION_RENT_PLAN_HIS.java @@ -0,0 +1,196 @@ +package jbo.app.tenwa.calc; + +import java.lang.String; + +/** +* - JBO命名常量类

+* Note: This file is generated by ADE tools, dont modify it.
+ +*/ +public interface LC_SUBSECTION_RENT_PLAN_HIS{ + /** + *

+ * 代表本类映射的BizObjectClass + */ + public static final String CLASS_NAME = "jbo.app.tenwa.calc.LC_SUBSECTION_RENT_PLAN_HIS"; + /** + * 标识 STRING(32)
+ */ + public static final String ID = "ID"; + /** + * 报价编号 STRING(32)
+ */ + public static final String QUOT_ID = "QUOT_ID"; + /** + * 客户编号 STRING(32)
+ */ + public static final String CUST_ID = "CUST_ID"; + /** + * 项目编号 STRING(32)
+ */ + public static final String PROJECT_ID = "PROJECT_ID"; + /** + * 项目方案编号 STRING(32)
+ */ + public static final String PROJECT_PLAN_NUMBER = "PROJECT_PLAN_NUMBER"; + /** + * 合同编号 STRING(32)
+ */ + public static final String CONTRACT_ID = "CONTRACT_ID"; + /** + * 合同方案编号 STRING(32)
+ */ + public static final String CONTRACT_PLAN_NUMBER = "CONTRACT_PLAN_NUMBER"; + /** + * 投放编号 STRING(32)
+ */ + public static final String PAYMENT_NUMBER = "PAYMENT_NUMBER"; + /** + * 期次 INT(10)
+ */ + public static final String PLAN_LIST = "PLAN_LIST"; + /** + * 计划日期 STRING(32)
+ */ + public static final String PLAN_DATE = "PLAN_DATE"; + /** + * 收付状态 STRING(32)
+ */ + public static final String PLAN_STATUS = "PLAN_STATUS"; + /** + * 租金 DOUBLE(18)
+ */ + public static final String RENT = "RENT"; + /** + * 财务本金 DOUBLE(18)
+ */ + public static final String CORPUS = "CORPUS"; + /** + * 财务租息 DOUBLE(18)
+ */ + public static final String INTEREST = "INTEREST"; + /** + * 应收罚息 DOUBLE(18)
+ */ + public static final String PENALTY = "PENALTY"; + /** + * 业务本金 DOUBLE(18)
+ */ + public static final String CORPUS_BUSINESS = "CORPUS_BUSINESS"; + /** + * 业务租息 DOUBLE(18)
+ */ + public static final String INTEREST_BUSINESS = "INTEREST_BUSINESS"; + /** + * 租金调整值 DOUBLE(18)
+ */ + public static final String RENT_ADJUST = "RENT_ADJUST"; + /** + * 本期后本金余额 DOUBLE(18)
+ */ + public static final String ALL_REMAIN_CORPUS = "ALL_REMAIN_CORPUS"; + /** + * 结算方式 STRING(32)
+ */ + public static final String SETTLE_METHOD = "SETTLE_METHOD"; + /** + * 币种 STRING(32)
+ */ + public static final String COIN = "COIN"; + /** + * 年利率 DOUBLE(18)
+ */ + public static final String YEAR_RATE = "YEAR_RATE"; + /** + * 备注 STRING(100)
+ */ + public static final String MEMO = "MEMO"; + /** + * 流程编号 STRING(32)
+ */ + public static final String FLOWUNID = "FLOWUNID"; + /** + * 登记人 STRING(32)
+ */ + public static final String INPUTUSERID = "INPUTUSERID"; + /** + * 登记部门 STRING(32)
+ */ + public static final String INPUTORGID = "INPUTORGID"; + /** + * 登记时间 STRING(32)
+ */ + public static final String INPUTTIME = "INPUTTIME"; + /** + * 更新人 STRING(32)
+ */ + public static final String UPDATEUSERID = "UPDATEUSERID"; + /** + * 更新部门 STRING(32)
+ */ + public static final String UPDATEORGID = "UPDATEORGID"; + /** + * 更新时间 STRING(32)
+ */ + public static final String UPDATETIME = "UPDATETIME"; + /** + * 计息日 STRING(32)
+ */ + public static final String INTEREST_DATE = "INTEREST_DATE"; + /** + * 代收审计状态 STRING(32)
+ */ + public static final String AUDIT_STATE = "AUDIT_STATE"; + /** + * 收款状态 STRING(32)
+ */ + public static final String COLLECT_STATUS = "COLLECT_STATUS"; + /** + * 收款描述 STRING(200)
+ */ + public static final String COLLECT_MSG = "COLLECT_MSG"; + /** + * 失败时间 STRING(200)
+ */ + public static final String FAILURE_TIME = "FAILURE_TIME"; + /** + * 失败原因 STRING(200)
+ */ + public static final String FAILURE_REASON = "FAILURE_REASON"; + /** + * 批量交易流水号,若拆分,以,分割 STRING(200)
+ */ + public static final String BATCH_NO = "BATCH_NO"; + /** + * 批量处理状态 STRING(200)
+ */ + public static final String BATCH_STATUS = "BATCH_STATUS"; + /** + * 一笔批量交易流水内项数SN STRING(200)
+ */ + public static final String BATCH_SN = "BATCH_SN"; + /** + * SPARE_BATCH_NO STRING(32)
+ */ + public static final String SPARE_BATCH_NO = "SPARE_BATCH_NO"; + /** + * CORPUS_SP DOUBLE(18)
+ */ + public static final String CORPUS_SP = "CORPUS_SP"; + /** + * INTEREST_sp DOUBLE(18)
+ */ + public static final String INTEREST_sp = "INTEREST_sp"; + /** + * splitting_status STRING(2)
+ */ + public static final String splitting_status = "splitting_status"; + /** + * charge_way STRING(10)
+ */ + public static final String charge_way = "charge_way"; + /** + * subsection_number INT(10)
+ */ + public static final String subsection_number = "subsection_number"; +} \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/LC_SUBSECTION_RENT_PLAN_TEMP.java b/src_jbo/jbo/app/tenwa/calc/LC_SUBSECTION_RENT_PLAN_TEMP.java new file mode 100644 index 000000000..e530bc3aa --- /dev/null +++ b/src_jbo/jbo/app/tenwa/calc/LC_SUBSECTION_RENT_PLAN_TEMP.java @@ -0,0 +1,196 @@ +package jbo.app.tenwa.calc; + +import java.lang.String; + +/** +* - JBO命名常量类

+* Note: This file is generated by ADE tools, dont modify it.
+ +*/ +public interface LC_SUBSECTION_RENT_PLAN_TEMP{ + /** + *

+ * 代表本类映射的BizObjectClass + */ + public static final String CLASS_NAME = "jbo.app.tenwa.calc.LC_SUBSECTION_RENT_PLAN_TEMP"; + /** + * 标识 STRING(32)
+ */ + public static final String ID = "ID"; + /** + * 报价编号 STRING(32)
+ */ + public static final String QUOT_ID = "QUOT_ID"; + /** + * 客户编号 STRING(32)
+ */ + public static final String CUST_ID = "CUST_ID"; + /** + * 项目编号 STRING(32)
+ */ + public static final String PROJECT_ID = "PROJECT_ID"; + /** + * 项目方案编号 STRING(32)
+ */ + public static final String PROJECT_PLAN_NUMBER = "PROJECT_PLAN_NUMBER"; + /** + * 合同编号 STRING(32)
+ */ + public static final String CONTRACT_ID = "CONTRACT_ID"; + /** + * 合同方案编号 STRING(32)
+ */ + public static final String CONTRACT_PLAN_NUMBER = "CONTRACT_PLAN_NUMBER"; + /** + * 投放编号 STRING(32)
+ */ + public static final String PAYMENT_NUMBER = "PAYMENT_NUMBER"; + /** + * 期次 INT(10)
+ */ + public static final String PLAN_LIST = "PLAN_LIST"; + /** + * 计划日期 STRING(32)
+ */ + public static final String PLAN_DATE = "PLAN_DATE"; + /** + * 收付状态 STRING(32)
+ */ + public static final String PLAN_STATUS = "PLAN_STATUS"; + /** + * 租金 DOUBLE(18)
+ */ + public static final String RENT = "RENT"; + /** + * 财务本金 DOUBLE(18)
+ */ + public static final String CORPUS = "CORPUS"; + /** + * 财务租息 DOUBLE(18)
+ */ + public static final String INTEREST = "INTEREST"; + /** + * 应收罚息 DOUBLE(18)
+ */ + public static final String PENALTY = "PENALTY"; + /** + * 业务本金 DOUBLE(18)
+ */ + public static final String CORPUS_BUSINESS = "CORPUS_BUSINESS"; + /** + * 业务租息 DOUBLE(18)
+ */ + public static final String INTEREST_BUSINESS = "INTEREST_BUSINESS"; + /** + * 租金调整值 DOUBLE(18)
+ */ + public static final String RENT_ADJUST = "RENT_ADJUST"; + /** + * 本期后本金余额 DOUBLE(18)
+ */ + public static final String ALL_REMAIN_CORPUS = "ALL_REMAIN_CORPUS"; + /** + * 结算方式 STRING(32)
+ */ + public static final String SETTLE_METHOD = "SETTLE_METHOD"; + /** + * 币种 STRING(32)
+ */ + public static final String COIN = "COIN"; + /** + * 年利率 DOUBLE(18)
+ */ + public static final String YEAR_RATE = "YEAR_RATE"; + /** + * 备注 STRING(100)
+ */ + public static final String MEMO = "MEMO"; + /** + * 流程编号 STRING(32)
+ */ + public static final String FLOWUNID = "FLOWUNID"; + /** + * 登记人 STRING(32)
+ */ + public static final String INPUTUSERID = "INPUTUSERID"; + /** + * 登记部门 STRING(32)
+ */ + public static final String INPUTORGID = "INPUTORGID"; + /** + * 登记时间 STRING(32)
+ */ + public static final String INPUTTIME = "INPUTTIME"; + /** + * 更新人 STRING(32)
+ */ + public static final String UPDATEUSERID = "UPDATEUSERID"; + /** + * 更新部门 STRING(32)
+ */ + public static final String UPDATEORGID = "UPDATEORGID"; + /** + * 更新时间 STRING(32)
+ */ + public static final String UPDATETIME = "UPDATETIME"; + /** + * 计息日 STRING(32)
+ */ + public static final String INTEREST_DATE = "INTEREST_DATE"; + /** + * 代收审计状态 STRING(32)
+ */ + public static final String AUDIT_STATE = "AUDIT_STATE"; + /** + * 收款状态 STRING(32)
+ */ + public static final String COLLECT_STATUS = "COLLECT_STATUS"; + /** + * 收款描述 STRING(200)
+ */ + public static final String COLLECT_MSG = "COLLECT_MSG"; + /** + * 失败时间 STRING(200)
+ */ + public static final String FAILURE_TIME = "FAILURE_TIME"; + /** + * 失败原因 STRING(200)
+ */ + public static final String FAILURE_REASON = "FAILURE_REASON"; + /** + * 交易流水号,若拆分,以,分割 STRING(200)
+ */ + public static final String BATCH_NO = "BATCH_NO"; + /** + * 批量处理状态 STRING(200)
+ */ + public static final String BATCH_STATUS = "BATCH_STATUS"; + /** + * 一笔批量交易流水内项数SN STRING(200)
+ */ + public static final String BATCH_SN = "BATCH_SN"; + /** + * SPARE_BATCH_NO STRING(32)
+ */ + public static final String SPARE_BATCH_NO = "SPARE_BATCH_NO"; + /** + * CORPUS_SP DOUBLE(18)
+ */ + public static final String CORPUS_SP = "CORPUS_SP"; + /** + * INTEREST_sp DOUBLE(18)
+ */ + public static final String INTEREST_sp = "INTEREST_sp"; + /** + * splitting_status STRING(2)
+ */ + public static final String splitting_status = "splitting_status"; + /** + * charge_way STRING(10)
+ */ + public static final String charge_way = "charge_way"; + /** + * subsection_number INT(10)
+ */ + public static final String subsection_number = "subsection_number"; +} \ No newline at end of file diff --git a/src_jbo/jbo/app/tenwa/calc/VI_LC_RENT_PLAN.java b/src_jbo/jbo/app/tenwa/calc/VI_LC_RENT_PLAN.java index a07dc40d2..8ecedbae2 100644 --- a/src_jbo/jbo/app/tenwa/calc/VI_LC_RENT_PLAN.java +++ b/src_jbo/jbo/app/tenwa/calc/VI_LC_RENT_PLAN.java @@ -125,4 +125,9 @@ public interface VI_LC_RENT_PLAN{ * 回笼状态 STRING(20)
*/ public static final String planstatus = "planstatus"; + + /** + * 项目id STRING(20)
+ */ + public static final String project_id = "project_id"; } \ No newline at end of file diff --git a/src_sql/棰勬姇SQL/v20210831/maliang20210831.sql b/src_sql/棰勬姇SQL/v20210831/maliang20210831.sql new file mode 100644 index 000000000..bc8dde4e1 --- /dev/null +++ b/src_sql/棰勬姇SQL/v20210831/maliang20210831.sql @@ -0,0 +1,96 @@ +一合同多车发票相关调整 +1)LB_INVOICE_INFO_TEMP 添加字段equipment_id +2)新增两个对应form表单配置 +SELECT * FROM `apzl`.`awe_do_catalog` WHERE dono='LbInvoiceTemp'; +SELECT * FROM `apzl`.`awe_do_library` WHERE dono='LbInvoiceTemp'; + +SELECT * FROM `apzl`.`awe_do_catalog` WHERE dono='LBInvoiceList'; +SELECT * FROM `apzl`.`awe_do_library` WHERE dono='LBInvoiceList'; + + +ALTER TABLE `apzl`.`lb_invoice_info_temp` ADD COLUMN `equipment_id` varchar(32) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL COMMENT '车辆信息id' AFTER `Invoice_money_total`; +ALTER TABLE `apzl`.`lb_invoice_info` ADD COLUMN `equipment_id` varchar(32) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NULL COMMENT '车辆信息id' AFTER `Invoice_money_total`; + +INSERT INTO `apzl`.`awe_do_catalog`(`dono`, `doname`, `dodescribe`, `dotype`, `doclass`, `isinuse`, `colcount`, `modeid`, `jboclass`, `jbofrom`, `jbowhere`, `jbogroup`, `jboorder`, `businessprocess`, `exportflag`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `remark`, `isvalidate`, `parent`) VALUES ('LbInvoiceTemp', '发票信息临时表2', NULL, '30', NULL, '1', '2', 'default', 'jbo.com.tenwa.entity.comm.invoice.LB_INVOICE_INFO_TEMP', 'O left join jbo.com.tenwa.lease.comm.LB_EQUIPMENT_CAR lec on O.contract_id=lec.contract_id and lec.id=O.equipment_id', 'O.contract_id=:id and O.equipment_id=:equipment_id', '', '', 'com.amarsoft.awe.dw.handler.impl.CommonHandler', '', 'SYS_Designer', '2020/03/16 11:42:16', 'SYS_Designer', '2020/03/16 18:07:11', '', '1', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1000', '1000', '1', 'O', 'id', 'id', 'String', '', '唯一标识', '', '1', 'Text', '1', '1', '', '', '', '32', '0', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '0', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1005', '1005', '1', 'lec', 'FRAME_NUMBER', 'FRAME_NUMBER', 'String', '', '车架号', '', '1', 'Text', '1', '1', '', '', '', '100', '1', '1', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/09/11 10:00:58', '8009011U00000032', '2021/06/23 13:49:13', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1006', '1006', '1', 'lec', 'ENGINE_NUMBER', 'ENGINE_NUMBER', 'String', '', '发动机号', '', '1', 'Text', '1', '1', '', '', '', '100', '1', '1', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/09/11 10:00:58', '8009011U00000032', '2021/06/23 13:49:13', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1010', '1010', '1', 'O', 'project_id', 'project_id', 'String', '', '项目id', '', '1', 'Text', '1', '1', '', '', '', '32', '0', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1020', '1020', '1', 'O', 'contract_id', 'contract_id', 'String', '', '合同id', '', '1', 'Text', '1', '1', '', '', '', '32', '0', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1025', '1025', '1', 'O', 'equipment_id', 'equipment_id', 'String', '', '车辆信息id', '', '1', 'Text', '1', '1', '', '', '', '32', '0', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1030', '1030', '1', 'O', 'Invoice_code', 'Invoice_code', 'String', '', '发票代码', '', '1', 'Text', '1', '1', '', '', '', '32', '1', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '0', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1040', '1040', '1', 'O', 'Invoice_number', 'Invoice_number', 'String', '', '发票号码', '', '1', 'Text', '1', '1', '', '', '', '32', '1', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '0', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1050', '1050', '1', 'O', 'Invoice_date', 'Invoice_date', 'String', '', '开票日期', '', '1', 'Date', '3', '2', '', '', '', '100', '1', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '0', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1060', '1060', '1', 'O', 'Invoice_money', 'Invoice_money', 'String', '', '开票金额', '', '1', 'Text', '2', '1', '', '', '', '20', '1', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '0', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1065', '1065', '1', 'O', 'tax_rate', 'tax_rate', 'Number', '13', '税率', '', '1', 'Text', '2', '1', '', '', '', '20', '1', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '0', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1070', '1070', '1', 'O', 'tax_due', 'tax_due', 'String', '', '税金', '', '1', 'Text', '2', '1', '', '', '', '20', '1', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '0', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1080', '1080', '1', 'O', 'flow_unid', 'flow_unid', 'String', '', '流程id', '', '1', 'Text', '1', '1', '', '', '', '32', '0', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1110', '1110', '1', 'O', 'inputuserid', 'inputuserid', 'String', '', '登记人', '', '1', 'Text', '1', '1', '', '', '', '100', '0', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1120', '1120', '1', 'O', 'inputorgid', 'inputorgid', 'String', '', '登记部门', '', '1', 'Text', '1', '1', '', '', '', '100', '0', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1130', '1130', '1', 'O', 'inputtime', 'inputtime', 'String', '', '登记时间', '', '1', 'Date', '3', '2', '', '', '', '100', '0', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1140', '1140', '1', 'O', 'updateuserid', 'updateuserid', 'String', '', '更新人', '', '1', 'Text', '1', '1', '', '', '', '100', '0', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1150', '1150', '1', 'O', 'updateorgid', 'updateorgid', 'String', '', '更新部门', '', '1', 'Text', '1', '1', '', '', '', '100', '0', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LbInvoiceTemp', '1160', '1160', '1', 'O', 'updatetime', 'updatetime', 'String', '', '更新时间', '', '1', 'Date', '3', '2', '', '', '', '100', '0', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', '8009011U00000032', '2021/06/23 13:49:13', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_catalog`(`dono`, `doname`, `dodescribe`, `dotype`, `doclass`, `isinuse`, `colcount`, `modeid`, `jboclass`, `jbofrom`, `jbowhere`, `jbogroup`, `jboorder`, `businessprocess`, `exportflag`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `remark`, `isvalidate`, `parent`) VALUES ('LBInvoiceList', '发票信息列表', NULL, '30', NULL, '1', '1', 'default', 'jbo.com.tenwa.lease.comm.LB_EQUIPMENT_CAR', 'O left join jbo.com.tenwa.entity.comm.invoice.LB_INVOICE_INFO_TEMP lec on O.contract_id=lec.contract_id and O.id=lec.equipment_id', 'O.contract_id=:contractId ', '', 'inputtime', '', '', 'SYS_Designer', '2020/09/11 10:00:58', 'SYS_Designer', '2021/06/15 11:08:12', '', '1', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LBInvoiceList', '1040', '1040', '1', '', '\'\'', 'opinion', 'String', '', '操作', '', '1', 'Text', '1', '1', '', '', '', '32', '1', '0', '0', '1', '0', 0, '', '', '', 'SYS_Designer', '2019/07/15 17:05:47', 'SYS_Designer', '2021/06/15 11:08:12', '0', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LBInvoiceList', '1050', '1050', '1', 'O', 'BRAND', 'BRAND', 'String', '', '品牌', '', '1', 'Text', '1', '1', '', '', '', '30', '1', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/09/11 10:00:58', 'SYS_Designer', '2021/06/15 11:08:12', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LBInvoiceList', '1055', '1055', '1', 'O', 'car_series', 'car_series', 'String', '', '车系', '', '1', 'Text', '1', '1', '', '', '', '80', '1', '0', '0', '1', '0', 0, '', '', '', 'SYS_Designer', '2020/09/11 10:37:42', 'SYS_Designer', '2021/06/15 11:08:12', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LBInvoiceList', '1060', '1060', '1', 'O', 'MODEL', 'MODEL', 'String', '', '型号及配置', '', '1', 'Text', '1', '1', '', '', '', '200', '1', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/09/11 10:00:58', 'SYS_Designer', '2021/06/15 11:08:12', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LBInvoiceList', '1065', '1065', '1', 'O', 'FRAME_NUMBER', 'FRAME_NUMBER', 'String', '', '车架号', '', '1', 'Text', '1', '1', '', '', '', '100', '1', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/09/11 10:00:58', 'SYS_Designer', '2021/06/15 11:08:12', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LBInvoiceList', '1070', '1070', '1', 'O', 'ENGINE_NUMBER', 'ENGINE_NUMBER', 'String', '', '发动机号', '', '1', 'Text', '1', '1', '', '', '', '100', '1', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/09/11 10:00:58', 'SYS_Designer', '2021/06/15 11:08:12', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LBInvoiceList', '1071', '1071', '1', 'O', 'EQUIP_PRICE', 'EQUIP_PRICE', 'String', '', '车辆交易价格', '', '1', 'Text', '1', '1', '', '', '', '100', '1', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/09/11 10:00:58', 'SYS_Designer', '2021/06/15 11:08:12', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LBInvoiceList', '1075', '1075', '1', 'lec', 'Invoice_code', 'Invoice_code', 'String', '', '发票代码', '', '1', 'Text', '1', '1', '', '', '', '32', '1', '0', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', 'SYS_Designer', '2021/06/15 11:08:12', '0', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LBInvoiceList', '1080', '1080', '1', 'lec', 'INVOICE_MONEY', 'INVOICE_MONEY', 'Number', '', '开票金额', '', '2', 'Text', '2', '3', '', '', '', '20', '1', '0', '0', '1', '1', 0, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', 'SYS_Designer', '2021/06/15 15:21:57', '0', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LBInvoiceList', '1085', '1085', '1', 'lec', 'tax_due', 'tax_due', 'Number', '', '税金', '', '2', 'Text', '2', '3', '', '', '', NULL, '1', '1', '0', '1', '0', 0, '', '', '', 'SYS_Designer', '2018/08/15 14:15:59', 'SYS_Designer', '2021/06/15 11:08:12', '0', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LBInvoiceList', '1090', '1090', '1', 'lec', 'equipment_id', 'equipment_id', 'String', '', '车辆信息id', '', '1', 'Text', '1', '1', '', '', '', '20', '0', '1', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/03/16 11:42:17', 'SYS_Designer', '2021/06/15 11:08:12', '0', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LBInvoiceList', '1110', '1110', '1', 'O', 'id', 'id', 'String', '', '车辆信息id', '', '1', 'Text', '1', '1', '', '', '', '30', '0', '1', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/09/11 10:00:58', 'SYS_Designer', '2021/06/15 11:08:12', '', '', '1', '', '', '', ''); +INSERT INTO `apzl`.`awe_do_library`(`dono`, `colindex`, `sortno`, `isinuse`, `coltablename`, `colactualname`, `colname`, `coltype`, `coldefaultvalue`, `colheader`, `colunit`, `colcolumntype`, `coleditstyle`, `colcheckformat`, `colalign`, `coleditsourcetype`, `coleditsource`, `colhtmlstyle`, `collimit`, `colvisible`, `colreadonly`, `colrequired`, `colsortable`, `isfilter`, `colspan`, `isautocomplete`, `groupid`, `colfilterrefid`, `inputuser`, `inputtime`, `updateuser`, `updatetime`, `isaudit`, `colfilterattrs`, `isupdate`, `parentcolindex`, `tips`, `colinnerbtevent`, `colfilteroptions`) VALUES ('LBInvoiceList', '1130', '1130', '1', 'O', 'contract_id', 'contract_id', 'String', '', '发票信息id', '', '1', 'Text', '1', '1', '', '', '', '30', '0', '1', '0', '1', '1', 1, '0', '', '', 'SYS_DESIGNER', '2020/09/11 10:00:58', 'SYS_Designer', '2021/06/15 11:24:09', '0', '', '1', '', '', '', ''); + + +2.一合同多车合同模板调整 + +select * from BF_LABLECONFIG where tagname like '%zc_%'; + +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3005', 'zc005', 'zc_carinfo1', '中车车辆信息序号1', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 0,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3006', 'zc006', 'zc_carinfo2', '中车车辆信息序号2', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 1,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3007', 'zc007', 'zc_carinfo3', '中车车辆信息序号3', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 2,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3008', 'zc008', 'zc_carinfo4', '中车车辆信息序号4', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 3,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3009', 'zc009', 'zc_carinfo5', '中车车辆信息序号5', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 4,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3010', 'zc010', 'zc_carinfo6', '中车车辆信息序号6', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 5,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3011', 'zc011', 'zc_carinfo7', '中车车辆信息序号7', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 6,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3012', 'zc012', 'zc_carinfo8', '中车车辆信息序号8', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 7,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3013', 'zc013', 'zc_carinfo9', '中车车辆信息序号9', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 8,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3014', 'zc014', 'zc_carinfo10', '中车车辆信息序号10', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 9,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3015', 'zc015', 'zc_carinfo11', '中车车辆信息序号11', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 10,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3016', 'zc016', 'zc_carinfo12', '中车车辆信息序号12', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 11,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3017', 'zc017', 'zc_carinfo13', '中车车辆信息序号13', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 12,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3018', 'zc018', 'zc_carinfo14', '中车车辆信息序号14', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 13,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3019', 'zc019', 'zc_carinfo15', '中车车辆信息序号15', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 14,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3020', 'zc020', 'zc_carinfo16', '中车车辆信息序号16', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 15,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3021', 'zc021', 'zc_carinfo17', '中车车辆信息序号17', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 16,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3022', 'zc022', 'zc_carinfo18', '中车车辆信息序号18', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 17,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3023', 'zc023', 'zc_carinfo19', '中车车辆信息序号19', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 18,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); +INSERT INTO `apzl`.`bf_lableconfig`(`ID`, `TAGNUMBER`, `TAGNAME`, `TITLE`, `TAGTYPE`, `VALUETYPE`, `VALUEFIELD`, `VALUEMETHOD`, `THOUSANDSFIELD`, `ISSHOEINDEX`, `REMARK`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`, `OPERATORCLASS`) VALUES ('6466f88f96b6e93442587d3024', 'zc024', 'zc_carinfo20', '中车车辆信息序号20', 'tag_type2', 'value_type3', 'MODEL,FRAME_NUMBER,EQUIP_PRICE,DEVICE_TYPE2,MODEL2,PLATE_NUMBER2,FRAME_NUMBER2', 'SELECT \r\n MODEL,\r\n FRAME_NUMBER,\r\n EQUIP_PRICE,\r\n \r\n DEVICE_TYPE DEVICE_TYPE2,\r\n MODEL MODEL2,\r\n LICENSE_PLATE_NUMBER PLATE_NUMBER2,\r\n FRAME_NUMBER FRAME_NUMBER2\r\nFROM\r\n LB_EQUIPMENT_CAR_TEMP lec\r\nWHERE lec.FlowUnid =:{FLOW_UNID} limit 19,1', '', 'N', '', '', '', '', '', '', '', 'word_default_class'); + +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('1f876eec2d5341d494065fabc3fc456e', '6466f88f96b6e93442587d3005', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('9c0f29bee1a7442d93bda25d003579f6', '6466f88f96b6e93442587d3006', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('21128a024d824d2fac7aa6af5555e120', '6466f88f96b6e93442587d3007', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('423451ab76e04afbaf1eda7e3caefdab', '6466f88f96b6e93442587d3008', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('5f785f593ddb4091b996fe2c9498e754', '6466f88f96b6e93442587d3009', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('eb62e3afd76f4e379c60bdd56b118029', '6466f88f96b6e93442587d3010', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('209d60c0fb1b43b8a0a16dc6383b33cd', '6466f88f96b6e93442587d3011', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('40f93a4d187f4431a90c4d5abf131839', '6466f88f96b6e93442587d3012', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('123ce3b6aea44a24ae77dc83cc1fb4b7', '6466f88f96b6e93442587d3013', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('996d23d8fe21413abed181154ab6db02', '6466f88f96b6e93442587d3014', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('09eea7aa47424b978ef2e1abf7dd6830', '6466f88f96b6e93442587d3015', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('fa1985f7d08940fcaa8be408e37edae2', '6466f88f96b6e93442587d3016', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('643f45aa39cc410cbe8c72aaaa615339', '6466f88f96b6e93442587d3017', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('1d76e8aef07f4a32b13d188e13f88d1e', '6466f88f96b6e93442587d3018', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('80c41dd4488a44438fe2746d57843e67', '6466f88f96b6e93442587d3019', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('78ce98a4bd114e34a6250a529af30b6c', '6466f88f96b6e93442587d3020', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('2d84d577e216405f820f57e92ab167f8', '6466f88f96b6e93442587d3021', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('647d987a44c945638d9cf8e1c9b43358', '6466f88f96b6e93442587d3022', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('d791b1564fb94b3e9010f3d21a352c8b', '6466f88f96b6e93442587d3023', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `apzl`.`bf_templatelable`(`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `INPUTORGID`, `UPDATEUSERID`, `UPDATEORGID`, `INPUTTIME`, `UPDATETIME`) VALUES ('79fbf1ffbb5b4955806da4c24fe41048', '6466f88f96b6e93442587d3024', 'a37a3bc1919c4ba39d8ba6348fb1962e', NULL, NULL, NULL, NULL, NULL, NULL); + + diff --git a/src_sql/棰勬姇SQL/v20210831/yjf20210831.sql b/src_sql/棰勬姇SQL/v20210831/yjf20210831.sql new file mode 100644 index 000000000..5ad7f860e --- /dev/null +++ b/src_sql/棰勬姇SQL/v20210831/yjf20210831.sql @@ -0,0 +1,65 @@ + +-- 添加字段 +alter table LB_ACTUAL_PAYMENT_INFO_TEMP add column pay_mode VARCHAR(10) DEFAULT 'cgb' comment '付款方式' ; +alter table LB_ACTUAL_PAYMENT_INFO_TEMP add bank varchar(200) comment '本方银行'; +alter table LB_ACTUAL_PAYMENT_INFO_TEMP add account varchar(200) comment '本方账户'; +alter table LB_ACTUAL_PAYMENT_INFO_TEMP add acc_number varchar(200) comment '本方帐号'; + +alter table LB_ACTUAL_PAYMENT_INFO add column pay_mode VARCHAR(10) comment '付款方式' ; +alter table LB_ACTUAL_PAYMENT_INFO add bank varchar(200) comment '本方银行'; +alter table LB_ACTUAL_PAYMENT_INFO add account varchar(200) comment '本方账户'; +alter table LB_ACTUAL_PAYMENT_INFO add acc_number varchar(200) comment '本方帐号'; + +-- 修改字段长度 +alter table lc_fund_income_callback_detail_temp modify column SQRNBR varchar(50); +alter table lc_fund_income_callback_detail modify column SQRNBR varchar(50); + +-- 本次付款明细过滤条件修改 +update awe_do_library set isfilter = '0' where dono = 'ActualPaymentCarTempList'; +update awe_do_library set isfilter = '1',colfilteroptions ='Like' where dono = 'ActualPaymentCarTempList' and colactualname in ('CUSTOMER_NAME','CONTRACT_NUMBER','REQSTS','ERRTXT'); +-- 付款计划 +update awe_do_library set isfilter ='0' where dono='VIActualFundPlan'; +update awe_do_library set isfilter ='1',colfilteroptions ='Like' where dono='VIActualFundPlan' and colname in ('contract_number','customer_name'); + +-- 添加状态码字典 +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', '104', '操作员错误', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', '106', '操作员密码错误', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', '199', '网银其它错误', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', '218', '重复的流水号', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', '242', '无符合条件的交易记录', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', '407', '取证书故障', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', '419', '签名数据出错', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', '616', '存在重复的客户批次子流水号', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', '888', '没有收到主机返回数据', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', '889', '交易失败', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', 'A01', '企业客户号不能为空', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', 'A02', '企业财务系统流水号不能为空,且长度不能大于20', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', 'A03', '上送账号格式不正确', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', 'A04', '被查询或转出账号未加挂银企直联', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', 'A05', '操作员不能为空,且长度不能大于大于12', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', 'A06', '操作员密码不能为空', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', 'C99', '主机业务处理异常', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', 'D46', '没有使用该接口的权限', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', 'E01', '证书有效期已过', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', 'E02', '该用户没有绑定相关证书', '1', 'system', '2021/07/26 17:20:31'); +INSERT INTO `apzl`.`code_library` (`codeno`, `itemno`, `itemname`, `isinuse`, `inputuser`, `inputtime`) VALUES ('cgb_describe', 'E03', '验签失败', '1', 'system', '2021/07/26 17:20:31'); + +-- 添加选择框 +INSERT INTO `apzl`.`select_catalog` (`selname`, `seltype`, `seldescribe`, `seltablename`, `selprimarykey`, `selbrowsemode`, `selargs`, `selhidefield`, `selcode`, `selfieldname`, `selfielddisp`, `selreturnvalue`, `selfilterfield`, `isinuse`, `mutilorsingle`, `attribute1`, `attribute2`, `attribute3`, `attribute4`, `attribute5`, `inputuser`, `inputorg`, `inputtime`, `updateuser`, `updatetime`, `remark`) VALUES ('SelectOwnAccountPay', 'Sql', '查询本方账户', '', '', 'Grid', 'String accName', '', 'SELECT acc_number,acc_bank,acc_name FROM own_account WHERE state_=\'0010\' AND acc_type=\'0010\' AND (account_type=\'out_account\' OR account_type=\'inAndOut_account\') and acc_name = \'#accName\'', '开户帐号,开户银行,开户户名', 'acc_number@style={width:200px;}@acc_name@style={width:400px;}', 'acc_number@acc_bank@acc_name', '', '1', 'Single', '', '', '', '', '', 'SYS_Designer', '', '2021/07/23 09:38:25', 'SYS_Designer', '2021/07/23 09:42:57', ''); + + +-- 添加广发银企日志 +CREATE TABLE `lb_cgb_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `type` varchar(10) DEFAULT NULL COMMENT '类型 pay:转账,query:查询', + `flow_unid` varchar(50) DEFAULT NULL COMMENT '流程id', + `batch_no` varchar(50) DEFAULT NULL COMMENT '批次号', + `req_msg` mediumtext, + `ret_msg` text, + `req_time` varchar(50) DEFAULT NULL COMMENT '发起时间', + `ret_time` varchar(50) DEFAULT NULL COMMENT '返回时间', + `serial_num` varchar(50) DEFAULT NULL COMMENT '序号', + PRIMARY KEY (`id`), + KEY `idx_no_num` (`batch_no`,`serial_num`) +); + diff --git a/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCache.java b/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCache.java index f02ad38be..76a562fb8 100644 --- a/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCache.java +++ b/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCache.java @@ -1,5 +1,36 @@ package com.tenwa.collectaudit.cache; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.amarsoft.app.awe.config.InitCollectConfig; +import com.amarsoft.app.util.StringUtil; +import com.amarsoft.are.jbo.*; +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.gnete.security.crypt.Crypt; +import com.gnete.security.crypt.CryptException; +import com.tenwa.comm.util.date.DateAssistant; +import com.tenwa.comm.util.jboutil.DataOperatorUtil; +import com.tenwa.lease.app.allinpay.service.impl.AllinpayPaymentDo; +import com.tenwa.quartz.DateUtil; +import jbo.app.tenwa.calc.LC_COLLECT_MANUAL_INFO; +import jbo.app.tenwa.calc.LC_RENT_INCOME; +import jbo.app.tenwa.calc.LC_RENT_PLAN; +import jbo.app.tenwa.customer.CUSTOMER_ACCOUNT; +import jbo.app.tenwa.customer.DISTRIBUTOR_INFO; +import jbo.com.tenwa.entity.comm.flow.D_DEPOSITCHARGE_INFO; +import jbo.com.tenwa.entity.comm.flow.D_DEPOSITRETURN_INFO; +import jbo.com.tenwa.lease.comm.*; +import jbo.sys.CODE_LIBRARY; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.quartz.JobExecutionContext; +import org.quartz.Scheduler; +import org.quartz.SchedulerException; +import org.quartz.impl.StdSchedulerFactory; + import java.io.File; import java.math.BigDecimal; import java.sql.SQLException; @@ -10,47 +41,9 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.quartz.JobExecutionContext; -import org.quartz.Scheduler; -import org.quartz.SchedulerException; -import org.quartz.impl.StdSchedulerFactory; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.amarsoft.app.awe.config.InitCollectConfig; -import com.amarsoft.app.util.StringUtil; -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.jbo.JBOTransaction; -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.gnete.security.crypt.Crypt; -import com.gnete.security.crypt.CryptException; -import com.tenwa.comm.util.date.DateAssistant; -import com.tenwa.comm.util.jboutil.DataOperatorUtil; -import com.tenwa.lease.app.allinpay.service.impl.AllinpayPaymentDo; -import com.tenwa.quartz.DateUtil; - -import jbo.app.tenwa.calc.LC_COLLECT_MANUAL_INFO; -import jbo.app.tenwa.calc.LC_RENT_INCOME; -import jbo.app.tenwa.calc.LC_RENT_PLAN; -import jbo.app.tenwa.customer.CUSTOMER_ACCOUNT; -import jbo.app.tenwa.customer.DISTRIBUTOR_INFO; -import jbo.com.tenwa.entity.comm.flow.D_DEPOSITCHARGE_INFO; -import jbo.com.tenwa.entity.comm.flow.D_DEPOSITRETURN_INFO; -import jbo.com.tenwa.lease.comm.LB_BUCKLE_LOG; -import jbo.com.tenwa.lease.comm.LB_CLEAR_FILE_RECORD; -import jbo.com.tenwa.lease.comm.LB_INTFACE_FILE_RECORD; -import jbo.com.tenwa.lease.comm.VI_BOND_COMPENSATORY; -import jbo.com.tenwa.lease.comm.VI_LC_AUDIT_RENT_PLAN; -import jbo.loan.VI_RENT_COLLECT; -import jbo.sys.CODE_LIBRARY; - public class CollectAuditInfoCache { + + private static Log log = LogFactory.getLog(CollectAuditInfoCache.class); private String id; private String fileSavePath = "d:/tmp/als/InterFace"; @@ -812,13 +805,12 @@ public class CollectAuditInfoCache { } /** - * 批量代收-发送请求 + * 批量代收-发送请求(定时任务--银联卡扣) * @param tx * @return * @throws Exception */ public String batchCollectManage(JBOTransaction tx) throws Exception{ - int i = 0,j = 0; String[] ids = id.split("@"); StringBuffer parms = new StringBuffer(); for (String str : ids) { @@ -829,10 +821,9 @@ public class CollectAuditInfoCache { } } BizObjectManager bm = JBOFactory.getFactory().getManager(VI_LC_AUDIT_RENT_PLAN.CLASS_NAME); - BizObjectManager bc = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME); //这里对天津与深圳的数据进行拆分 - List bolist = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.BANK_NAME,O.rent from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where O.contract_id=ca.contract_id and ca.acc_type = 'Debit' and O.id in ("+parms.toString()+")").getResultList(false); - if (bolist.size() != 0) { + List bolist = bm.createQuery("select distinct O.contract_id,O.plan_date,O.id,ca.ACC_NUMBER,ca.ACCOUNT,ca.BANK_NAME,O.rent from O , jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca where O.contract_id=ca.contract_id and ca.acc_type = 'Debit' and O.id in (" + parms.toString() + ")").getResultList(false); + if (bolist.size() > 0) { singleBatchCollectMoeny(tx, bolist); } return "系统正在处理中,请稍后"; @@ -1008,8 +999,11 @@ public class CollectAuditInfoCache { } for (int i = 1; i <= snArray.length; i++) { - + log.warn("ShenZhen counteroffer batch_no:"+query_sn+" batch_sn:"+snArray[(i-1)]+" rentid:"+bo.getAttribute("id").toString()); Map map = querySingleBatchCollect(tx, bo, query_sn, snArray[(i-1)]); + if(map == null ) { + continue; + } if (snArray.length == 1) { if (map.containsKey("RET_CODE") && "0000".equals(map.get("RET_CODE"))) { //核销 @@ -1222,6 +1216,9 @@ public class CollectAuditInfoCache { // queryBatchXML(req_sn, query_sn, sn); //响应报文 String strResp = cp.CollectAuditPayReq(strbuff,file.getAbsolutePath(), batch_title); + if(strResp==null || strResp.isEmpty()) { + return null; + } Map map = getRetAndCode(strResp); //生成存盘、回盘文件 savaFile(tx, strResp,batch_title,bo); @@ -1331,7 +1328,7 @@ public class CollectAuditInfoCache { return strbuff; } /** - * 批量代收-发送请求 + * 批量代收-发送请求(报文组装,调用银联100001接口,更新租金计划batch_status状态) * @param tx * @param bc * @param bo @@ -1346,37 +1343,46 @@ public class CollectAuditInfoCache { String currentYear = currentDateTime.substring(0,4); String month = currentDateTime.substring(5,7); String day = currentDateTime.substring(8,10); - String merchantNumber = InitCollectConfig.MERCHANTID; - String flag = InitCollectConfig.FLAG; - String version = InitCollectConfig.C_VERSION; + String merchantNumber = InitCollectConfig.MERCHANTID;//银联商户号 + String flag = InitCollectConfig.FLAG;//银联接口--代收标识 + String version = InitCollectConfig.C_VERSION;//接口版本号 String date = currentYear+month+day;//提交日期 - String batch_title = ""; - int i = 0,j = 0; - //创建文件路径 - String rootDir = this.fileSavePath; - File file = new File(rootDir + File.separator + currentYear - + File.separator + month + File.separator + //创建卡扣文件路径 + File file = new File( this.fileSavePath+ File.separator + currentYear + File.separator + month + File.separator + day); - System.out.println(file.getAbsolutePath()); - if(!file.exists()){//目录不存在则直接创建 - file.mkdirs(); - } - String req_sn = System.currentTimeMillis()+"";//当日批次号 - batch_title = merchantNumber+"_"+flag+version+date+"_"+req_sn; + //目录不存在则直接创建 + if(!file.exists()) file.mkdirs(); + + String req_sn = System.currentTimeMillis()+"";//卡扣批次号 REQ_SN + //卡扣文件名称 + String batch_title = merchantNumber+"_"+flag+version+date+"_"+req_sn; + //卡扣报文 StringBuffer strbuff = collectBatch(req_sn,list); - //响应报文 - String strResp = cp.CollectAuditPayReq(strbuff,file.getAbsolutePath(), batch_title); - for (BizObject bo : list) { - //生成存盘、回盘文件 - savaFile(tx, strResp,batch_title,bo); + //接口调用,返回响应报文 + String strResp = ""; + try { + strResp = cp.CollectAuditPayReq(strbuff,file.getAbsolutePath(), batch_title); + }catch (Exception e){ + JBOTransaction jboTransaction = null; + try { + String rentIds = getRentIds(list); + jboTransaction = JBOFactory.createJBOTransaction(); + Transaction.createTransaction(jboTransaction).executeSQL("update lc_rent_plan set batch_sn=null where id in ('" + rentIds + "')"); + jboTransaction.commit(); + }catch (Exception e1){ + if (jboTransaction != null) jboTransaction.rollback(); + e1.printStackTrace(); + } + throw new RuntimeException("深圳银联接口调用异常:", e); } + //生成存盘、回盘文件(批量卡扣,日志表LB_INTFACE_FILE_RECORD.RELA_ID 存储卡扣批次号) + BizObject bo = new BizObject("jbo.app.tenwa.calc.LC_RENT_PLAN"); + bo.setAttributeValue("id",req_sn); + savaFile(tx, strResp,batch_title,bo); + //解析银联响应报文 Map map = getRetAndCodeByBatch(strResp); if (map.containsKey("RET_CODE")) {//清空批量代收状态 - StringBuilder updateIds = new StringBuilder(); - for (BizObject biz : list) { - updateIds.append(biz.getAttribute("id").toString()).append("','"); - } - String updateIdsStr = updateIds.delete(updateIds.length() - 3, updateIds.length()).toString(); + String updateIdsStr = getRentIds(list); //清空批量处理状态 BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME); bm.createQuery("update O set O.BATCH_STATUS=null,O.BATCH_NO=:BATCH_NO,O.BATCH_SN=null where O.id in ('" + updateIdsStr + "')") @@ -1392,31 +1398,37 @@ public class CollectAuditInfoCache { JBOTransaction trans = null; try { trans = JBOFactory.createJBOTransaction(); - BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME, trans); - BizObject bo0 = bm.createQuery("O.BATCH_NO=:BATCH_NO and O.BATCH_SN like '%" + map.get("SN" + k) + "%'").setParameter("BATCH_NO", map.get("REQ_SN")).getSingleResult(true); - if (bo0 != null && "process".equals(bo0.getAttribute("BATCH_STATUS").getString())) { - continue; - } - //响应成功 - if (map.containsKey("REQ_SN") && map.containsKey("RET_CODE" + k) && "0000".equals(map.get("RET_CODE" + k))) { - bo0.setAttributeValue("BATCH_STATUS", "process"); - } else {//响应异常 - bo0.setAttributeValue("BATCH_STATUS", null); - bo0.setAttributeValue("BATCH_NO", null); - bo0.setAttributeValue("BATCH_SN", null); - } - bm.saveObject(bo0); + Transaction sqlCa = Transaction.createTransaction(trans); + SqlObject sqlObject = new SqlObject("update lc_rent_plan lrp join lb_union_middle lum on lrp.id = lum.rent_id set lrp.batch_status = 'process' " + + " where lum.batch_no =:batchNo and lum.batch_sn =:batchSn") + .setParameter("batchNo",map.get("REQ_SN")).setParameter("batchSn", map.get("SN" + k)); + sqlCa.executeSQL(sqlObject); } catch (Exception e) { - e.printStackTrace(); + log.error("ShenZhenBuckle process status update exception ",e); if (trans != null) trans.rollback(); } finally { + log.warn("ShenZhenBuckle process status update -- batch_no:"+map.get("REQ_SN")+" batch_sn:"+map.get("SN" + k)); if (trans != null) trans.commit(); } } } return map; } - + + /** + * 获取租金计划ids + * @param list + * @return + * @throws JBOException + */ + private String getRentIds(List list) throws JBOException { + StringBuilder updateIds = new StringBuilder(); + for (BizObject biz : list) { + updateIds.append(biz.getAttribute("id").toString()).append("','"); + } + return updateIds.delete(updateIds.length() - 3, updateIds.length()).toString(); + } + /** * 批量代收--报文拼接 * @param rent @@ -1428,7 +1440,6 @@ public class CollectAuditInfoCache { */ public StringBuffer collectBatch(String req_sn,List list) throws JBOException{ //拼接XML报文 - //String req = System.currentTimeMillis()+""; StringBuffer strbuff = new StringBuffer(); strbuff.append(""); strbuff.append(""); @@ -1446,32 +1457,32 @@ public class CollectAuditInfoCache { strbuff.append(""); strbuff.append(""); strbuff.append(""); - BigDecimal mutly = new BigDecimal("0"); + BigDecimal mutly = new BigDecimal("0");//卡扣总金额 int i = 0; + //查询银行限额 itemname<银行名称> itemdescribe<限额设置> + List codelist = JBOFactory.getFactory().getBizObjectManager(CODE_LIBRARY.CLASS_NAME).createQuery("O.codeno = 'bankType' and O.itemdescribe is not null ").getResultList(false); + //计算卡扣总金额,卡扣总数量 for (BizObject bo : list) { String single = bo.getAttribute("rent").toString(); BigDecimal m = new BigDecimal(single); mutly = mutly.add(m); String bank_name = bo.getAttribute("BANK_NAME").toString(); - List codelist = JBOFactory.getFactory().getBizObjectManager(CODE_LIBRARY.CLASS_NAME).createQuery("O.codeno = 'bankType' and O.itemdescribe is not null ").getResultList(false); - //数据字典中的itemdescribe字段代表银行单笔限 - double itemdescribe = 0; + + BigDecimal itemdescribe = new BigDecimal("0"); boolean flag = false; for (BizObject code : codelist) { String itemnameTmp = code.getAttribute("itemname").toString().trim(); - double itemdescribeTmp = code.getAttribute("itemdescribe").getDouble(); String itemdescribeTmp1 = code.getAttribute("itemdescribe").toString(); if (bank_name.indexOf(itemnameTmp) != -1 && itemdescribeTmp1 != null && !"".equals(itemdescribeTmp1)) { - itemdescribe = new BigDecimal(itemdescribeTmp).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + itemdescribe = new BigDecimal(itemdescribeTmp1).setScale(2, BigDecimal.ROUND_HALF_UP); flag = true; break; } } - - if (flag == true && Double.parseDouble(bo.getAttribute("rent").toString()) > itemdescribe) { + if (flag == true && m.compareTo(itemdescribe) == 1) { BigDecimal mi = new BigDecimal(bo.getAttribute("rent").toString()); int singlerent = mi.multiply(new BigDecimal(100)).intValue(); - int singleitem = new BigDecimal(itemdescribe).multiply(new BigDecimal(100)).intValue(); + int singleitem = itemdescribe.multiply(new BigDecimal(100)).intValue(); int k = (int) Math.floor(singlerent/singleitem); int l = (int) Math.ceil(singlerent%singleitem); for (int j = 0; j < k; j++) { @@ -1483,8 +1494,8 @@ public class CollectAuditInfoCache { }else{ i++; } - } + String totalSum = String.valueOf(mutly.multiply(new BigDecimal(100)).longValue()); String totalItem = String.valueOf(i); Trans_Sum trans_sum = new Trans_Sum(); @@ -1504,27 +1515,23 @@ public class CollectAuditInfoCache { String account = biz.getAttribute("account").toString(); String bank_name = biz.getAttribute("BANK_NAME").toString(); String planId = biz.getAttribute("id").toString(); - List codelist = JBOFactory.getFactory().getBizObjectManager(CODE_LIBRARY.CLASS_NAME).createQuery("O.codeno = 'bankType' and O.itemdescribe is not null ").getResultList(false); - double itemdescribe = 0; + BigDecimal itemdescribe = new BigDecimal("0"); boolean flag = false; for (BizObject code : codelist) { String itemnameTmp = code.getAttribute("itemname").toString().trim(); - double itemdescribeTmp = code.getAttribute("itemdescribe").getDouble(); String itemdescribeTmp1 = code.getAttribute("itemdescribe").toString(); if (bank_name.indexOf(itemnameTmp) != -1 && itemdescribeTmp1 != null && !"".equals(itemdescribeTmp1)) { - itemdescribe = new BigDecimal(itemdescribeTmp).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + itemdescribe = new BigDecimal(itemdescribeTmp1).setScale(2, BigDecimal.ROUND_HALF_UP); flag = true; break; } } - - if (flag == true && Double.parseDouble(biz.getAttribute("rent").toString()) > itemdescribe) { + if (flag == true && m.compareTo(itemdescribe) == 1) { BigDecimal mi = new BigDecimal(biz.getAttribute("rent").toString()); int singlerent = mi.multiply(new BigDecimal(100)).intValue(); - int singleitem = new BigDecimal(itemdescribe).multiply(new BigDecimal(100)).intValue(); + int singleitem = itemdescribe.multiply(new BigDecimal(100)).intValue(); int k = (int) Math.floor(singlerent/singleitem); int l = (int) Math.ceil(singlerent%singleitem); - for (int k2 = 1; k2 <= k; k2++) { Trans_Detail trans_detail = new Trans_Detail(); String sn = ""; @@ -1535,48 +1542,7 @@ public class CollectAuditInfoCache { }else{ sn = "0000"+ (++item); } - //追加批量处理状态 - JBOTransaction trans = JBOFactory.createJBOTransaction(); - BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME); - BizObject bo = bm.createQuery("O.id=:id").setParameter("id", planId).getSingleResult(false); - String itemsn0 = ""; - if (bo !=null) { - String itemsn = bo.getAttribute("batch_sn").toString(); - if (itemsn.length() == 0) { - itemsn0 += sn; - }else{ - itemsn0 += itemsn+","+sn; - } - } - bm.createQuery("update O set O.BATCH_STATUS=:BATCH_STATUS,O.BATCH_NO=:BATCH_NO,O.BATCH_SN=:BATCH_SN where O.id=:id") - .setParameter("BATCH_STATUS", "")//处理状态-为空 - .setParameter("BATCH_NO", req_sn) - .setParameter("BATCH_SN", itemsn0) - .setParameter("id", planId).executeUpdate(); - //手动的添加到手动表 - if("manual".equals(collectStyle)){ - JBOTransaction transj = JBOFactory.createJBOTransaction(); - BizObjectManager bmlcmi = JBOFactory.getFactory().getManager(LC_COLLECT_MANUAL_INFO.CLASS_NAME,transj); - if(k2==1){ - BizObject bolmci = bmlcmi.newObject(); - bolmci.setAttributeValue("contract_id",biz.getAttribute("contract_id").toString()); - bolmci.setAttributeValue("plan_id",planId); - bolmci.setAttributeValue("BATCH_NO",req_sn); - bolmci.setAttributeValue("BATCH_SN",itemsn0); - bolmci.setAttributeValue("money",biz.getAttribute("rent").toString()); - bolmci.setAttributeValue("hire_date",DateUtil.getSystemTimeByFormat("yyyy/MM/dd")); - bmlcmi.saveObject(bolmci); - transj.commit(); - }else{ - bmlcmi.createQuery("update O set O.BATCH_SN=:BATCH_SN where O.plan_id=:id and O.BATCH_NO=:BATCH_NO") - .setParameter("BATCH_SN", itemsn0) - .setParameter("BATCH_NO", req_sn) - .setParameter("id", planId).executeUpdate(); - transj.commit(); - } - - } - trans.commit(); + rentPlanHandle(planId,req_sn,sn,biz,k2,String.valueOf(singleitem));//追加批量处理状态 trans_detail.setSN(sn); trans_detail.setACCOUNT_TYPE(""); trans_detail.setACCOUNT_NO(acc_number); @@ -1588,8 +1554,7 @@ public class CollectAuditInfoCache { strbuff.append(EntityTransform.toXmlByBatchCollect(trans_detail)); } if (l != 0) { - String surprent = String.format("%.2f", biz.getAttribute("rent").getDouble() - k*itemdescribe); - BigDecimal mj = new BigDecimal(surprent); + BigDecimal mj = mi.subtract(itemdescribe.multiply(new BigDecimal(k))).setScale(2, BigDecimal.ROUND_HALF_UP); String singlerent0 = String.valueOf(mj.multiply(new BigDecimal(100)).longValue()); Trans_Detail trans_detail = new Trans_Detail(); String sn = ""; @@ -1600,35 +1565,7 @@ public class CollectAuditInfoCache { }else{ sn = "0000"+ (++item); } - //追加批量处理状态 - JBOTransaction trans = JBOFactory.createJBOTransaction(); - BizObjectManager bmlcmi = JBOFactory.getFactory().getManager(LC_COLLECT_MANUAL_INFO.CLASS_NAME,trans); - BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME,trans); - BizObject bo = bm.createQuery("O.id=:id").setParameter("id", planId).getSingleResult(false); - String itemsn0 = ""; - if (bo !=null) { - String itemsn = bo.getAttribute("batch_sn").toString(); - if (itemsn.length() == 0) { - itemsn0 += sn; - }else{ - itemsn0 += itemsn+","+sn; - } - } - bm.createQuery("update O set O.BATCH_STATUS=:BATCH_STATUS,O.BATCH_NO=:BATCH_NO,O.BATCH_SN=:BATCH_SN where O.id=:id") - .setParameter("BATCH_STATUS", "")//处理状态-为空 - .setParameter("BATCH_NO", req_sn) - .setParameter("BATCH_SN", itemsn0) - .setParameter("id", planId).executeUpdate(); - //添加到手动表 - if("manual".equals(collectStyle)){ - JBOTransaction transj = JBOFactory.createJBOTransaction(); - bmlcmi.createQuery("update O set O.BATCH_SN=:BATCH_SN where O.plan_id=:id and O.BATCH_NO=:BATCH_NO") - .setParameter("BATCH_SN", itemsn0) - .setParameter("BATCH_NO", req_sn) - .setParameter("id", planId).executeUpdate(); - transj.commit(); - } - trans.commit(); + rentPlanHandle(planId,req_sn,sn,biz,99,singlerent0);//追加批量处理状态 trans_detail.setSN(sn); trans_detail.setACCOUNT_TYPE(""); trans_detail.setACCOUNT_NO(acc_number); @@ -1650,27 +1587,7 @@ public class CollectAuditInfoCache { }else{ sn = "0000"+ (++item); } - //追加批量处理状态 - JBOTransaction trans = JBOFactory.createJBOTransaction(); - BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME,trans); - bm.createQuery("update O set O.BATCH_STATUS=:BATCH_STATUS,O.BATCH_NO=:BATCH_NO,O.BATCH_SN=:BATCH_SN where O.id=:id") - .setParameter("BATCH_STATUS", "")//处理状态-为空 - .setParameter("BATCH_NO", req_sn) - .setParameter("BATCH_SN", sn) - .setParameter("id", planId).executeUpdate(); - //手动的添加到手动表 - if("manual".equals(collectStyle)){ - BizObjectManager bmlcmi = JBOFactory.getFactory().getManager(LC_COLLECT_MANUAL_INFO.CLASS_NAME,trans); - BizObject bolmci = bmlcmi.newObject(); - bolmci.setAttributeValue("contract_id",biz.getAttribute("contract_id").toString()); - bolmci.setAttributeValue("plan_id",planId); - bolmci.setAttributeValue("BATCH_NO",req_sn); - bolmci.setAttributeValue("BATCH_SN",sn); - bolmci.setAttributeValue("money",biz.getAttribute("rent").toString()); - bolmci.setAttributeValue("hire_date",DateUtil.getSystemTimeByFormat("yyyy/MM/dd")); - bmlcmi.saveObject(bolmci); - } - trans.commit(); + rentPlanHandle(planId,req_sn,sn,biz,1,rent);//追加批量处理状态 trans_detail.setSN(sn); trans_detail.setACCOUNT_TYPE(""); trans_detail.setACCOUNT_NO(acc_number); @@ -1687,9 +1604,72 @@ public class CollectAuditInfoCache { strbuff.append(""); strbuff.append(""); collectStyle=null; - return strbuff; } + + + /** + * 更新租金计划表 batch_no batch_sn ,手工卡扣的,添加手工卡扣记录 + * @param planId 租金计划id + * @param req_sn 批次号 + * @param sn 序号 + * @param biz + * @param k2 k2==1 手工卡扣插入新数据,其余更新手工卡扣表数据 + * @throws Exception + */ + private void rentPlanHandle(String planId,String req_sn,String sn,BizObject biz,int k2,String amount) throws JBOException{ + //追加批量处理状态 + JBOTransaction trans = null; + try{ + trans = JBOFactory.createJBOTransaction(); + Transaction transaction = Transaction.createTransaction(trans); + BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME); + BizObject bo = bm.createQuery("O.id=:id").setParameter("id", planId).getSingleResult(false); + String itemsn0 = ""; + if (bo !=null) { + String itemsn = bo.getAttribute("batch_sn").toString(); + if (itemsn.length() == 0) { + itemsn0 += sn; + }else{ + itemsn0 += itemsn+","+sn; + } + } + //更新租金批次号 序号 + bm.createQuery("update O set O.BATCH_STATUS=:BATCH_STATUS,O.BATCH_NO=:BATCH_NO,O.BATCH_SN=:BATCH_SN where O.id=:id") + .setParameter("BATCH_STATUS", "")//处理状态-为空 + .setParameter("BATCH_NO", req_sn) + .setParameter("BATCH_SN", itemsn0) + .setParameter("id", planId).executeUpdate(); + //记录中间表 lb_union_middle + SqlObject sqlObject = new SqlObject("insert into lb_union_middle (id,batch_no,batch_sn,rent_id,amount,input_time) values (replace(uuid(),'-',''),:batchNo,:batchSn,:rentId,:amount,SYSDATE()) ") + .setParameter("batchNo", req_sn).setParameter("batchSn", sn) + .setParameter("rentId", planId).setParameter("amount",amount); + transaction.executeSQL(sqlObject); + //手动卡扣添加到手动表 + if("manual".equals(collectStyle)){ + BizObjectManager bmlcmi = JBOFactory.getFactory().getManager(LC_COLLECT_MANUAL_INFO.CLASS_NAME,trans); + if(k2==1){ + BizObject bolmci = bmlcmi.newObject(); + bolmci.setAttributeValue("contract_id",biz.getAttribute("contract_id").toString()); + bolmci.setAttributeValue("plan_id",planId); + bolmci.setAttributeValue("BATCH_NO",req_sn); + bolmci.setAttributeValue("BATCH_SN",itemsn0); + bolmci.setAttributeValue("money",biz.getAttribute("rent").toString()); + bolmci.setAttributeValue("hire_date",DateUtil.getSystemTimeByFormat("yyyy/MM/dd")); + bmlcmi.saveObject(bolmci); + }else{ + bmlcmi.createQuery("update O set O.BATCH_SN=:BATCH_SN where O.plan_id=:id and O.BATCH_NO=:BATCH_NO") + .setParameter("BATCH_SN", itemsn0) + .setParameter("BATCH_NO", req_sn) + .setParameter("id", planId).executeUpdate(); + } + } + trans.commit(); + }catch (Exception e){ + if (trans != null) trans.rollback(); + throw new JBOException(e.getMessage()); + } + } /** * 保存存盘、回盘文件 @@ -1706,13 +1686,9 @@ public class CollectAuditInfoCache { String day = currentDateTime.substring(8,10); //创建文件路径 String rootDir = this.fileSavePath; - File file = new File(rootDir + File.separator + currentYear - + File.separator + month + File.separator - + day); - System.out.println(file.getAbsolutePath()); - if(!file.exists()){//目录不存在则直接创建 - file.mkdirs(); - } + File file = new File(rootDir + File.separator + currentYear + File.separator + month + File.separator + day); + //目录不存在则直接创建 + if(!file.exists())file.mkdirs(); //保存存盘文件 BizObjectManager bm = JBOFactory.getFactory().getManager(LB_INTFACE_FILE_RECORD.CLASS_NAME); BizObject send = bm.newObject(); @@ -1725,9 +1701,9 @@ public class CollectAuditInfoCache { send.setAttributeValue("inputorgid", this.inputorgid); send.setAttributeValue("inputtime", currentDateTime); bm.saveObject(send); + //筛选响应信息 Map map = getRetAndCode(strResp); - //getMsgAndCode(strResp); //保存回盘文件 BizObject reply = bm.newObject(); @@ -1789,7 +1765,6 @@ public class CollectAuditInfoCache { public Map getRetAndCodeByBatch(String strXML){ Map map = new HashMap(); Map res = new HashMap(); - System.out.println(1); int iStart = strXML.indexOf(""); if (iStart != -1) { int end = strXML.indexOf(""); diff --git a/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCacheTj.java b/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCacheTj.java index 6f6d317c3..9811957a5 100644 --- a/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCacheTj.java +++ b/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditInfoCacheTj.java @@ -1,5 +1,34 @@ package com.tenwa.collectaudit.cache; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.amarsoft.app.awe.config.InitCollectConfigTj; +import com.amarsoft.are.jbo.*; +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.gnete.security.crypt.CryptException; +import com.tenwa.comm.util.date.DateAssistant; +import com.tenwa.lease.app.allinpay.service.impl.AllinpayPaymentDo; +import com.tenwa.quartz.DateUtil; +import jbo.app.tenwa.calc.LC_COLLECT_MANUAL_INFO; +import jbo.app.tenwa.calc.LC_RENT_INCOME; +import jbo.app.tenwa.calc.LC_RENT_PLAN; +import jbo.app.tenwa.customer.DISTRIBUTOR_INFO; +import jbo.com.tenwa.entity.comm.flow.D_DEPOSITCHARGE_INFO; +import jbo.com.tenwa.entity.comm.flow.D_DEPOSITRETURN_INFO; +import jbo.com.tenwa.lease.comm.LB_BUCKLE_LOG; +import jbo.com.tenwa.lease.comm.LB_INTFACE_FILE_RECORD; +import jbo.com.tenwa.lease.comm.VI_LC_AUDIT_RENT_PLAN; +import jbo.sys.CODE_LIBRARY; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.quartz.JobExecutionContext; +import org.quartz.Scheduler; +import org.quartz.SchedulerException; +import org.quartz.impl.StdSchedulerFactory; + import java.io.File; import java.math.BigDecimal; import java.sql.SQLException; @@ -10,46 +39,10 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.quartz.JobExecutionContext; -import org.quartz.Scheduler; -import org.quartz.SchedulerException; -import org.quartz.impl.StdSchedulerFactory; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.amarsoft.app.awe.config.InitCollectConfigTj; -import com.amarsoft.app.util.StringUtil; -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.jbo.JBOTransaction; -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.gnete.security.crypt.Crypt; -import com.gnete.security.crypt.CryptException; -import com.tenwa.comm.util.date.DateAssistant; -import com.tenwa.comm.util.jboutil.DataOperatorUtil; -import com.tenwa.lease.app.allinpay.service.impl.AllinpayPaymentDo; -import com.tenwa.quartz.DateUtil; - -import jbo.app.tenwa.calc.LC_COLLECT_MANUAL_INFO; -import jbo.app.tenwa.calc.LC_RENT_INCOME; -import jbo.app.tenwa.calc.LC_RENT_PLAN; -import jbo.app.tenwa.customer.CUSTOMER_ACCOUNT; -import jbo.app.tenwa.customer.DISTRIBUTOR_INFO; -import jbo.com.tenwa.entity.comm.flow.D_DEPOSITCHARGE_INFO; -import jbo.com.tenwa.entity.comm.flow.D_DEPOSITRETURN_INFO; -import jbo.com.tenwa.lease.comm.LB_BUCKLE_LOG; -import jbo.com.tenwa.lease.comm.LB_CLEAR_FILE_RECORD; -import jbo.com.tenwa.lease.comm.LB_INTFACE_FILE_RECORD; -import jbo.com.tenwa.lease.comm.VI_LC_AUDIT_RENT_PLAN; -import jbo.sys.CODE_LIBRARY; - public class CollectAuditInfoCacheTj { - + + private static Log log = LogFactory.getLog(CollectAuditInfoCacheTj.class); + private String id; private String fileSavePath = "d:/tmp/als/InterFace"; private String inputuserid; @@ -1006,8 +999,11 @@ public class CollectAuditInfoCacheTj { } for (int i = 1; i <= snArray.length; i++) { - + log.warn("TianJin counteroffer batch_no:"+query_sn+" batch_sn:"+snArray[(i-1)]+" rentid:"+bo.getAttribute("id").toString()); Map map = querySingleBatchCollect(tx, bo, query_sn, snArray[(i-1)]); + if(map == null ) { + continue; + } if (snArray.length == 1) { if (map.containsKey("RET_CODE") && "0000".equals(map.get("RET_CODE"))) { //核销 @@ -1220,6 +1216,9 @@ public class CollectAuditInfoCacheTj { // queryBatchXML(req_sn, query_sn, sn); //响应报文 String strResp = cp.CollectAuditPayReq(strbuff,file.getAbsolutePath(), batch_title); + if(strResp==null || strResp.isEmpty()) { + return null; + } Map map = getRetAndCode(strResp); //生成存盘、回盘文件 savaFile(tx, strResp,batch_title,bo); @@ -1344,39 +1343,45 @@ public class CollectAuditInfoCacheTj { String currentYear = currentDateTime.substring(0,4); String month = currentDateTime.substring(5,7); String day = currentDateTime.substring(8,10); - String merchantNumber = InitCollectConfigTj.MERCHANTID; - String flag = InitCollectConfigTj.FLAG; - String version = InitCollectConfigTj.C_VERSION; + String merchantNumber = InitCollectConfigTj.MERCHANTID;//银联商户号 + String flag = InitCollectConfigTj.FLAG;//银联接口--代收标识 + String version = InitCollectConfigTj.C_VERSION;//接口版本号 String date = currentYear+month+day;//提交日期 - String batch_title = ""; - int i = 0,j = 0; //创建文件路径 - String rootDir = this.fileSavePath; - File file = new File(rootDir + File.separator + currentYear - + File.separator + month + File.separator - + day); - System.out.println(file.getAbsolutePath()); - if(!file.exists()){//目录不存在则直接创建 - file.mkdirs(); - } - String req_sn = System.currentTimeMillis()+"";//当日批次号 - batch_title = merchantNumber+"_"+flag+version+date+"_"+req_sn; - //请求报文(限额处理) + File file = new File(this.fileSavePath + File.separator + currentYear + File.separator + month + File.separator + day); + //目录不存在则直接创建 + if (!file.exists()) file.mkdirs(); + String req_sn = System.currentTimeMillis()+""; //卡扣批次号 REQ_SN + //卡扣文件名称 + String batch_title = merchantNumber+"_"+flag+version+date+"_"+req_sn; + //卡扣报文 StringBuffer strbuff = collectBatch(req_sn,list); - //响应报文 - String strResp = cp.CollectAuditPayReq(strbuff,file.getAbsolutePath(), batch_title); - for (BizObject bo : list) { - //生成存盘、回盘文件 - savaFile(tx, strResp,batch_title,bo); + //接口调用,返回响应报文 + String strResp = ""; + try { + strResp = cp.CollectAuditPayReq(strbuff,file.getAbsolutePath(), batch_title); + }catch (Exception e){ + JBOTransaction jboTransaction = null; + try { + String rentIds = getRentIds(list); + jboTransaction = JBOFactory.createJBOTransaction(); + Transaction.createTransaction(jboTransaction).executeSQL("update lc_rent_plan set batch_sn=null where id in ('" + rentIds + "')"); + jboTransaction.commit(); + }catch (Exception e1){ + if (jboTransaction != null) jboTransaction.rollback(); + e1.printStackTrace(); + } + throw new RuntimeException("天津银联接口调用异常:", e); } + //生成存盘、回盘文件(批量卡扣,日志表LB_INTFACE_FILE_RECORD.RELA_ID 存储卡扣批次号) + BizObject bo = new BizObject("jbo.app.tenwa.calc.LC_RENT_PLAN"); + bo.setAttributeValue("id",req_sn); + savaFile(tx, strResp,batch_title,bo); + //解析银联响应报文 Map map = getRetAndCodeByBatch(strResp); //包含RET_CODE说明响应没有成功 if (map.containsKey("RET_CODE")) {//清空批量代收状态 - StringBuilder updateIds = new StringBuilder(); - for (BizObject biz : list) { - updateIds.append(biz.getAttribute("id").toString()).append("','"); - } - String updateIdsStr = updateIds.delete(updateIds.length() - 3, updateIds.length()).toString(); + String updateIdsStr = getRentIds(list); //清空批量处理状态 BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME); bm.createQuery("update O set O.BATCH_STATUS=null,O.BATCH_NO=:BATCH_NO,O.BATCH_SN=null where O.id in ('" + updateIdsStr + "')") @@ -1389,34 +1394,40 @@ public class CollectAuditInfoCacheTj { m++; } } - for (int k = 1; k <= m; k++) { - JBOTransaction trans = null; - try { - trans = JBOFactory.createJBOTransaction(); - BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME, trans); - BizObject bo0 = bm.createQuery("O.BATCH_NO=:BATCH_NO and O.BATCH_SN like '%" + map.get("SN" + k) + "%'").setParameter("BATCH_NO", map.get("REQ_SN")).getSingleResult(true); - if (bo0 != null && "process".equals(bo0.getAttribute("BATCH_STATUS").getString())) { - continue; - } - //响应成功 - if (map.containsKey("REQ_SN") && map.containsKey("RET_CODE" + k) && "0000".equals(map.get("RET_CODE" + k))) { - bo0.setAttributeValue("BATCH_STATUS", "process"); - } else {//响应异常 - bo0.setAttributeValue("BATCH_STATUS", null); - bo0.setAttributeValue("BATCH_NO", null); - bo0.setAttributeValue("BATCH_SN", null); - } - bm.saveObject(bo0); - } catch (Exception e) { - e.printStackTrace(); - if (trans != null) trans.rollback(); - } finally { - if (trans != null) trans.commit(); - } - } + for (int k = 1; k <= m; k++) { + JBOTransaction trans = null; + try { + trans = JBOFactory.createJBOTransaction(); + Transaction sqlCa = Transaction.createTransaction(trans); + SqlObject sqlObject = new SqlObject("update lc_rent_plan lrp join lb_union_middle lum on lrp.id = lum.rent_id set lrp.batch_status = 'process' " + + " where lum.batch_no =:batchNo and lum.batch_sn =:batchSn") + .setParameter("batchNo", map.get("REQ_SN")).setParameter("batchSn", map.get("SN" + k)); + sqlCa.executeSQL(sqlObject); + } catch (Exception e) { + log.error("TianjinBuckle process status update exception ", e); + if (trans != null) trans.rollback(); + } finally { + log.warn("TianjinBuckle process status update -- batch_no:" + map.get("REQ_SN") + " batch_sn:" + map.get("SN" + k)); + if (trans != null) trans.commit(); + } + } } return map; } + + /** + * 获取租金计划ids + * @param list + * @return + * @throws JBOException + */ + private String getRentIds(List list) throws JBOException { + StringBuilder updateIds = new StringBuilder(); + for (BizObject biz : list) { + updateIds.append(biz.getAttribute("id").toString()).append("','"); + } + return updateIds.delete(updateIds.length() - 3, updateIds.length()).toString(); + } /** * 批量代收--报文拼接 @@ -1429,7 +1440,6 @@ public class CollectAuditInfoCacheTj { */ public StringBuffer collectBatch(String req_sn,List list) throws JBOException{ //拼接XML报文 - //String req = System.currentTimeMillis()+""; StringBuffer strbuff = new StringBuffer(); strbuff.append(""); strbuff.append(""); @@ -1447,17 +1457,17 @@ public class CollectAuditInfoCacheTj { strbuff.append(""); strbuff.append(""); strbuff.append(""); - //总金额 - BigDecimal mutly = new BigDecimal("0"); - //总条数 - int i = 0; + BigDecimal mutly = new BigDecimal("0");//卡扣总金额 + int i = 0;//总条数 + //查询银行限额 itemname<银行名称> itemdescribe<限额设置> + List codelist = JBOFactory.getFactory().getBizObjectManager(CODE_LIBRARY.CLASS_NAME).createQuery("O.codeno = 'TjbankType' and O.itemdescribe is not null ").getResultList(false); + //计算卡扣总金额,卡扣总数量 for (BizObject bo : list) { String single_s = bo.getAttribute("rent").toString(); BigDecimal m_s = new BigDecimal(single_s); mutly = mutly.add(m_s); String bank_name = bo.getAttribute("BANK_NAME").toString(); - List codelist = JBOFactory.getFactory().getBizObjectManager(CODE_LIBRARY.CLASS_NAME).createQuery("O.codeno = 'TjbankType' and O.itemdescribe is not null ").getResultList(false); - //数据字典中的itemdescribe字段代表银行单笔限 + //数据字典中的itemdescribe字段代表银行单笔限 BigDecimal itemdescribe = new BigDecimal("0"); boolean flag = false; for (BizObject code : codelist) { @@ -1469,9 +1479,8 @@ public class CollectAuditInfoCacheTj { break; } } - if (flag == true && m_s.compareTo(itemdescribe)==1) { - BigDecimal mi_s = m_s; - int singlerent = mi_s.multiply(new BigDecimal(100)).intValue(); + if (flag == true && m_s.compareTo(itemdescribe) == 1) { + int singlerent = m_s.multiply(new BigDecimal(100)).intValue(); int singleitem = itemdescribe.multiply(new BigDecimal(100)).intValue(); int k = singlerent/singleitem; int l = singlerent%singleitem; @@ -1484,7 +1493,6 @@ public class CollectAuditInfoCacheTj { }else{ i++; } - } String totalSum = String.valueOf(mutly.multiply(new BigDecimal(100)).longValue()); String totalItem = String.valueOf(i); @@ -1505,7 +1513,6 @@ public class CollectAuditInfoCacheTj { String account = biz.getAttribute("account").toString(); String bank_name = biz.getAttribute("BANK_NAME").toString(); String planId = biz.getAttribute("id").toString(); - List codelist = JBOFactory.getFactory().getBizObjectManager(CODE_LIBRARY.CLASS_NAME).createQuery("O.codeno = 'TjbankType' and O.itemdescribe is not null ").getResultList(false); BigDecimal itemdescribe = new BigDecimal("0"); boolean flag = false; for (BizObject code : codelist) { @@ -1518,8 +1525,7 @@ public class CollectAuditInfoCacheTj { } } if (flag == true && m.compareTo(itemdescribe)==1) { - BigDecimal mi = m; - int singlerent = mi.multiply(new BigDecimal(100)).intValue(); + int singlerent = m.multiply(new BigDecimal(100)).intValue(); int singleitem = itemdescribe.multiply(new BigDecimal(100)).intValue(); int k = singlerent/singleitem; int l = singlerent%singleitem; @@ -1537,48 +1543,7 @@ public class CollectAuditInfoCacheTj { }else{ sn = "" + (++item); } - //追加批量处理状态 - JBOTransaction trans = JBOFactory.createJBOTransaction(); - BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME,trans); - BizObject bo = bm.createQuery("O.id=:id").setParameter("id", biz.getAttribute("id").toString()).getSingleResult(false); - String itemsn0 = ""; - if (bo !=null) { - String itemsn = bo.getAttribute("batch_sn").toString(); - if (itemsn.length() == 0) { - itemsn0 += sn; - }else{ - itemsn0 += itemsn+","+sn; - } - } - bm.createQuery("update O set O.BATCH_STATUS=:BATCH_STATUS,O.BATCH_NO=:BATCH_NO,O.BATCH_SN=:BATCH_SN where O.id=:id") - .setParameter("BATCH_STATUS", "")//处理状态-为空 - .setParameter("BATCH_NO", req_sn) - .setParameter("BATCH_SN", itemsn0) - .setParameter("id", biz.getAttribute("id").toString()).executeUpdate(); - //手动的添加到手动表 - if("manual".equals(collectStyle)){ - JBOTransaction transj = JBOFactory.createJBOTransaction(); - BizObjectManager bmlcmi = JBOFactory.getFactory().getManager(LC_COLLECT_MANUAL_INFO.CLASS_NAME,transj); - if(k2==1){ - BizObject bolmci = bmlcmi.newObject(); - bolmci.setAttributeValue("contract_id",biz.getAttribute("contract_id").toString()); - bolmci.setAttributeValue("plan_id",planId); - bolmci.setAttributeValue("BATCH_NO",req_sn); - bolmci.setAttributeValue("BATCH_SN",itemsn0); - bolmci.setAttributeValue("money",biz.getAttribute("rent").toString()); - bolmci.setAttributeValue("hire_date",DateUtil.getSystemTimeByFormat("yyyy/MM/dd")); - bmlcmi.saveObject(bolmci); - transj.commit(); - }else{ - bmlcmi.createQuery("update O set O.BATCH_SN=:BATCH_SN where O.plan_id=:id and O.BATCH_NO=:BATCH_NO") - .setParameter("BATCH_SN", itemsn0) - .setParameter("BATCH_NO", req_sn) - .setParameter("id", planId).executeUpdate(); - transj.commit(); - } - - } - trans.commit(); + rentPlanHandle(planId,req_sn,sn,biz,k2,String.valueOf(singleitem));//追加批量处理状态 trans_detail.setSN(sn); trans_detail.setACCOUNT_TYPE(""); trans_detail.setACCOUNT_NO(acc_number); @@ -1590,7 +1555,7 @@ public class CollectAuditInfoCacheTj { strbuff.append(EntityTransform.toXmlByBatchCollect(trans_detail)); } if (l != 0) { - BigDecimal mj = mi.subtract(itemdescribe.multiply(new BigDecimal(k))).setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal mj = m.subtract(itemdescribe.multiply(new BigDecimal(k))).setScale(2, BigDecimal.ROUND_HALF_UP); String singlerent0 = String.valueOf(mj.multiply(new BigDecimal(100)).longValue()); Trans_Detail trans_detail = new Trans_Detail(); String sn = ""; @@ -1605,35 +1570,7 @@ public class CollectAuditInfoCacheTj { }else{ sn = "" + (++item); } - //追加批量处理状态 - JBOTransaction trans = JBOFactory.createJBOTransaction(); - BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME,trans); - BizObject bo = bm.createQuery("O.id=:id").setParameter("id", biz.getAttribute("id").toString()).getSingleResult(false); - String itemsn0 = ""; - if (bo !=null) { - String itemsn = bo.getAttribute("batch_sn").toString(); - if (itemsn.length() == 0) { - itemsn0 += sn; - }else{ - itemsn0 += itemsn+","+sn; - } - } - bm.createQuery("update O set O.BATCH_STATUS=:BATCH_STATUS,O.BATCH_NO=:BATCH_NO,O.BATCH_SN=:BATCH_SN where O.id=:id") - .setParameter("BATCH_STATUS", "")//处理状态-为空 - .setParameter("BATCH_NO", req_sn) - .setParameter("BATCH_SN", itemsn0) - .setParameter("id", biz.getAttribute("id").toString()).executeUpdate(); - //手动的添加到手动表 - if("manual".equals(collectStyle)){ - JBOTransaction transj = JBOFactory.createJBOTransaction(); - BizObjectManager bmlcmi = JBOFactory.getFactory().getManager(LC_COLLECT_MANUAL_INFO.CLASS_NAME,transj); - bmlcmi.createQuery("update O set O.BATCH_SN=:BATCH_SN where O.plan_id=:id and O.BATCH_NO=:BATCH_NO") - .setParameter("BATCH_SN", itemsn0) - .setParameter("BATCH_NO", req_sn) - .setParameter("id", planId).executeUpdate(); - transj.commit(); - } - trans.commit(); + rentPlanHandle(planId,req_sn,sn,biz,99,singlerent0);//追加批量处理状态 trans_detail.setSN(sn); trans_detail.setACCOUNT_TYPE(""); trans_detail.setACCOUNT_NO(acc_number); @@ -1658,27 +1595,7 @@ public class CollectAuditInfoCacheTj { }else{ sn = "" + (++item); } - //追加批量处理状态 - JBOTransaction trans = JBOFactory.createJBOTransaction(); - BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME,trans); - bm.createQuery("update O set O.BATCH_STATUS=:BATCH_STATUS,O.BATCH_NO=:BATCH_NO,O.BATCH_SN=:BATCH_SN where O.id=:id") - .setParameter("BATCH_STATUS", "")//处理状态-为空 - .setParameter("BATCH_NO", req_sn) - .setParameter("BATCH_SN", sn) - .setParameter("id", biz.getAttribute("id").toString()).executeUpdate(); - //手动的添加到手动表 - if("manual".equals(collectStyle)){ - BizObjectManager bmlcmi = JBOFactory.getFactory().getManager(LC_COLLECT_MANUAL_INFO.CLASS_NAME,trans); - BizObject bolmci = bmlcmi.newObject(); - bolmci.setAttributeValue("contract_id",biz.getAttribute("contract_id").toString()); - bolmci.setAttributeValue("plan_id",planId); - bolmci.setAttributeValue("BATCH_NO",req_sn); - bolmci.setAttributeValue("BATCH_SN",sn); - bolmci.setAttributeValue("money",biz.getAttribute("rent").toString()); - bolmci.setAttributeValue("hire_date",DateUtil.getSystemTimeByFormat("yyyy/MM/dd")); - bmlcmi.saveObject(bolmci); - } - trans.commit(); + rentPlanHandle(planId,req_sn,sn,biz,1,rent);//追加批量处理状态 trans_detail.setSN(sn); trans_detail.setACCOUNT_TYPE(""); trans_detail.setACCOUNT_NO(acc_number); @@ -1698,7 +1615,70 @@ public class CollectAuditInfoCacheTj { return strbuff; } - + + /** + * 更新租金计划表 batch_no batch_sn ,手工卡扣的,添加手工卡扣记录 + * @param planId 租金计划id + * @param req_sn 批次号 + * @param sn 序号 + * @param biz + * @param k2 k2==1 手工卡扣插入新数据,其余更新手工卡扣表数据 + * @throws Exception + */ + private void rentPlanHandle(String planId,String req_sn,String sn,BizObject biz,int k2,String amount) throws JBOException{ + //追加批量处理状态 + JBOTransaction trans = null; + try{ + trans = JBOFactory.createJBOTransaction(); + Transaction transaction = Transaction.createTransaction(trans); + BizObjectManager bm = JBOFactory.getFactory().getManager(LC_RENT_PLAN.CLASS_NAME); + BizObject bo = bm.createQuery("O.id=:id").setParameter("id", planId).getSingleResult(false); + String itemsn0 = ""; + if (bo !=null) { + String itemsn = bo.getAttribute("batch_sn").toString(); + if (itemsn.length() == 0) { + itemsn0 += sn; + }else{ + itemsn0 += itemsn+","+sn; + } + } + //更新租金批次号 序号 + bm.createQuery("update O set O.BATCH_STATUS=:BATCH_STATUS,O.BATCH_NO=:BATCH_NO,O.BATCH_SN=:BATCH_SN where O.id=:id") + .setParameter("BATCH_STATUS", "")//处理状态-为空 + .setParameter("BATCH_NO", req_sn) + .setParameter("BATCH_SN", itemsn0) + .setParameter("id", planId).executeUpdate(); + //记录中间表 lb_union_middle + SqlObject sqlObject = new SqlObject("insert into lb_union_middle (id,batch_no,batch_sn,rent_id,amount,input_time) values (replace(uuid(),'-',''),:batchNo,:batchSn,:rentId,:amount,SYSDATE()) ") + .setParameter("batchNo", req_sn).setParameter("batchSn", sn) + .setParameter("rentId", planId).setParameter("amount",amount); + transaction.executeSQL(sqlObject); + //手动卡扣添加到手动表 + if("manual".equals(collectStyle)){ + BizObjectManager bmlcmi = JBOFactory.getFactory().getManager(LC_COLLECT_MANUAL_INFO.CLASS_NAME,trans); + if(k2==1){ + BizObject bolmci = bmlcmi.newObject(); + bolmci.setAttributeValue("contract_id",biz.getAttribute("contract_id").toString()); + bolmci.setAttributeValue("plan_id",planId); + bolmci.setAttributeValue("BATCH_NO",req_sn); + bolmci.setAttributeValue("BATCH_SN",itemsn0); + bolmci.setAttributeValue("money",biz.getAttribute("rent").toString()); + bolmci.setAttributeValue("hire_date",DateUtil.getSystemTimeByFormat("yyyy/MM/dd")); + bmlcmi.saveObject(bolmci); + }else{ + bmlcmi.createQuery("update O set O.BATCH_SN=:BATCH_SN where O.plan_id=:id and O.BATCH_NO=:BATCH_NO") + .setParameter("BATCH_SN", itemsn0) + .setParameter("BATCH_NO", req_sn) + .setParameter("id", planId).executeUpdate(); + } + } + trans.commit(); + }catch (Exception e){ + if (trans != null) trans.rollback(); + throw new JBOException(e.getMessage()); + } + } + /** * 保存存盘、回盘文件 * @param tx @@ -1714,13 +1694,10 @@ public class CollectAuditInfoCacheTj { String day = currentDateTime.substring(8,10); //创建文件路径 String rootDir = this.fileSavePath; - File file = new File(rootDir + File.separator + currentYear - + File.separator + month + File.separator + File file = new File(rootDir + File.separator + currentYear + File.separator + month + File.separator + day); - System.out.println(file.getAbsolutePath()); - if(!file.exists()){//目录不存在则直接创建 - file.mkdirs(); - } + if (!file.exists()) file.mkdirs();//目录不存在则直接创建 + //保存存盘文件 BizObjectManager bm = JBOFactory.getFactory().getManager(LB_INTFACE_FILE_RECORD.CLASS_NAME); BizObject send = bm.newObject(); @@ -1735,7 +1712,6 @@ public class CollectAuditInfoCacheTj { bm.saveObject(send); //筛选响应信息 Map map = getRetAndCode(strResp); - //getMsgAndCode(strResp); //保存回盘文件 BizObject reply = bm.newObject(); @@ -1797,7 +1773,6 @@ public class CollectAuditInfoCacheTj { public Map getRetAndCodeByBatch(String strXML){ Map map = new HashMap(); Map res = new HashMap(); - System.out.println(1); int iStart = strXML.indexOf(""); if (iStart != -1) { int end = strXML.indexOf(""); diff --git a/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditProcess.java b/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditProcess.java index 250c133ad..1e179d798 100644 --- a/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditProcess.java +++ b/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditProcess.java @@ -1,18 +1,19 @@ package com.tenwa.collectaudit.cache; -import java.io.IOException; +import com.amarsoft.app.awe.config.InitCollectConfig; +import com.gnete.security.crypt.Crypt; +import com.gnete.security.crypt.CryptException; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.params.HttpMethodParams; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.commons.httpclient.protocol.Protocol; import org.apache.commons.httpclient.protocol.ProtocolSocketFactory; -import com.amarsoft.app.awe.config.InitCollectConfig; -import com.gnete.security.crypt.Crypt; -import com.gnete.security.crypt.CryptException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.io.IOException; /** @@ -94,8 +95,7 @@ public class CollectAuditProcess { protected String CollectAuditPayReq(StringBuffer sendXml,String fileSavePath,String fileName) throws CryptException { String strSendData = sendXml.toString(); HttpClient httpClient = new HttpClient( ); - PostMethod postMethod = - new PostMethod(InitCollectConfig.C_SERVERURL); + PostMethod postMethod = new PostMethod(InitCollectConfig.C_SERVERURL); //设置编码 httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"GBK"); @@ -105,19 +105,17 @@ public class CollectAuditProcess { Protocol.registerProtocol("https", new Protocol("https", fcty, 443)); strSendData = this.signMsg(strSendData); - log.info(strSendData); - System.out.println("发送报文:"+strSendData); + log.info("发送报文:"+strSendData); InterFaceFileCreate.sendDiscFileCreate(strSendData, fileSavePath, fileName); postMethod.setRequestBody(strSendData); try { long start = System.currentTimeMillis(); //执行getMethod int statusCode = httpClient.executeMethod(postMethod); - System.out.println("cost:"+(System.currentTimeMillis()-start)); + System.out.println("ShenZhen interface ["+fileName+"] call cost time:" + (System.currentTimeMillis() - start)); //失败 if (statusCode != HttpStatus.SC_OK) { - log.error( - "Method failed: " + postMethod.getStatusLine()); + log.error("Method failed: " + postMethod.getStatusLine()); //读取内容 byte[] responseBody = postMethod.getResponseBody(); //处理内容 @@ -131,7 +129,6 @@ public class CollectAuditProcess { String strResp = new String(responseBody, "GBK"); log.info("服务器返回:" + strResp); InterFaceFileCreate.replyDiscFileCreate(strResp, fileSavePath, fileName); - System.out.println("服务器返回:" + strResp); //验签 if (this.verifySign(strResp)) { log.info("验签正确,处理服务器返回的报文"); diff --git a/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditProcessTj.java b/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditProcessTj.java index 2f0d80f72..dd8a31dd1 100644 --- a/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditProcessTj.java +++ b/src_tenwa/com/tenwa/collectaudit/cache/CollectAuditProcessTj.java @@ -106,19 +106,17 @@ public class CollectAuditProcessTj { Protocol.registerProtocol("https", new Protocol("https", fcty, 443)); strSendData = this.signMsg(strSendData); - log.info(strSendData); - System.out.println("发送报文:"+strSendData); + log.info("发送报文:"+strSendData); InterFaceFileCreate.sendDiscFileCreate(strSendData, fileSavePath, fileName); postMethod.setRequestBody(strSendData); try { long start = System.currentTimeMillis(); //执行getMethod int statusCode = httpClient.executeMethod(postMethod); - System.out.println("cost:"+(System.currentTimeMillis()-start)); + System.out.println("TianJin interface ["+fileName+"] call cost time:" + (System.currentTimeMillis() - start)); //失败 if (statusCode != HttpStatus.SC_OK) { - log.error( - "Method failed: " + postMethod.getStatusLine()); + log.error("Method failed: " + postMethod.getStatusLine()); //读取内容 byte[] responseBody = postMethod.getResponseBody(); //处理内容 @@ -132,7 +130,6 @@ public class CollectAuditProcessTj { String strResp = new String(responseBody, "GBK"); log.info("服务器返回:" + strResp); InterFaceFileCreate.replyDiscFileCreate(strResp, fileSavePath, fileName); - System.out.println("服务器返回:" + strResp); //验签 if (this.verifySign(strResp)) { log.info("验签正确,处理服务器返回的报文"); diff --git a/src_tenwa/com/tenwa/collectaudit/cache/InterFaceFileCreate.java b/src_tenwa/com/tenwa/collectaudit/cache/InterFaceFileCreate.java index a629eadb9..a51d3f4fd 100644 --- a/src_tenwa/com/tenwa/collectaudit/cache/InterFaceFileCreate.java +++ b/src_tenwa/com/tenwa/collectaudit/cache/InterFaceFileCreate.java @@ -1,80 +1,58 @@ package com.tenwa.collectaudit.cache; -import java.io.BufferedReader; import java.io.File; -import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.Scanner; public class InterFaceFileCreate { - - /** - * 生成送盘文件 - * @param sendData - * @param fileSavePath - * @param fileName - */ - public static void sendDiscFileCreate(String sendData,String fileSavePath,String fileName) { - try { - File file = new File(fileSavePath); - System.out.println(file.getAbsolutePath()); - if(!file.exists()){//目录不存在则直接创建 - file.mkdirs(); - } - String filePath = file.getAbsolutePath(); - FileWriter fileWriter = new FileWriter(filePath+"/"+fileName+".txt"); + + /** + * 生成送盘文件 + * + * @param sendData + * @param fileSavePath + * @param fileName + */ + public static void sendDiscFileCreate(String sendData, String fileSavePath, String fileName) { + try { + File file = new File(fileSavePath); + if (!file.exists()) {//目录不存在则直接创建 + file.mkdirs(); + } + String filePath = file.getAbsolutePath(); + FileWriter fileWriter = new FileWriter(filePath + "/" + fileName + ".txt"); String ss = sendData; - fileWriter.write(ss); + fileWriter.write(ss); fileWriter.flush(); fileWriter.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } - FileReader fileReader = new FileReader(filePath+"/"+fileName+".txt"); - BufferedReader br = new BufferedReader(fileReader); - String s; - while ((s = br.readLine()) != null) { - System.out.println(s); + /** + * 生成回盘文件 + * + * @param replyData + * @param fileSavePath + * @param fileName + */ + public static void replyDiscFileCreate(String replyData, String fileSavePath, String fileName) { + try { + File file = new File(fileSavePath); + if (!file.exists()) {//目录不存在则直接创建 + file.mkdirs(); } - fileReader.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - /** - * 生成回盘文件 - * @param replyData - * @param fileSavePath - * @param fileName - */ - public static void replyDiscFileCreate(String replyData,String fileSavePath,String fileName) { - try { - File file = new File(fileSavePath); - System.out.println(file.getAbsolutePath()); - if(!file.exists()){//目录不存在则直接创建 - file.mkdirs(); - } - String filePath = file.getAbsolutePath(); - FileWriter fileWriter = new FileWriter(filePath+"/"+fileName+".rnt"); - String ss = replyData; - fileWriter.write(ss); - fileWriter.flush(); - fileWriter.close(); - - FileReader fileReader = new FileReader(filePath+"/"+fileName+".rnt"); - BufferedReader br = new BufferedReader(fileReader); - String s; - while ((s = br.readLine()) != null) { - System.out.println(s); - } - fileReader.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } + String filePath = file.getAbsolutePath(); + FileWriter fileWriter = new FileWriter(filePath + "/" + fileName + ".rnt"); + String ss = replyData; + fileWriter.write(ss); + fileWriter.flush(); + fileWriter.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } } \ No newline at end of file diff --git a/src_tenwa/com/tenwa/flow/comm/handler/CommercialVehicleHandler.java b/src_tenwa/com/tenwa/flow/comm/handler/CommercialVehicleHandler.java new file mode 100644 index 000000000..825dcc43c --- /dev/null +++ b/src_tenwa/com/tenwa/flow/comm/handler/CommercialVehicleHandler.java @@ -0,0 +1,26 @@ +package com.tenwa.flow.comm.handler; + +import com.amarsoft.are.jbo.BizObject; +import com.amarsoft.are.jbo.BizObjectManager; +import com.amarsoft.are.jbo.JBOFactory; +import com.amarsoft.are.jbo.JBOTransaction; +import com.amarsoft.awe.dw.handler.impl.CommonHandler; +import jbo.com.tenwa.lease.carbrand.LB_CARDATA_MODEL; + +import java.math.BigDecimal; + +public class CommercialVehicleHandler extends CommonHandler { + @Override + protected void beforeUpdate(JBOTransaction tx, BizObject bo) throws Exception { + BizObjectManager lcmManage= JBOFactory.getBizObjectManager(LB_CARDATA_MODEL.CLASS_NAME, tx); + BizObject lcm = lcmManage.createQuery("brandname=:brandname AND seriesname=:seriesname AND modelname=:modelname ") + .setParameter("brandname", bo.getAttribute("BRAND").toString()) + .setParameter("seriesname", bo.getAttribute("CARS").toString()) + .setParameter("modelname", bo.getAttribute("MODELS").toString()).getSingleResult(true); + if(lcm != null){ + lcm.setAttributeValue("price" , new BigDecimal( bo.getAttribute("THE_GUIDED").toString()).divide(new BigDecimal("10000"))); + lcmManage.saveObject(lcm); + } + super.beforeUpdate(tx, bo); + } +} diff --git a/src_tenwa/com/tenwa/flow/comm/handler/PassengerCarHandler.java b/src_tenwa/com/tenwa/flow/comm/handler/PassengerCarHandler.java new file mode 100644 index 000000000..0a3f2bed7 --- /dev/null +++ b/src_tenwa/com/tenwa/flow/comm/handler/PassengerCarHandler.java @@ -0,0 +1,26 @@ +package com.tenwa.flow.comm.handler; + +import com.amarsoft.are.jbo.BizObject; +import com.amarsoft.are.jbo.BizObjectManager; +import com.amarsoft.are.jbo.JBOFactory; +import com.amarsoft.are.jbo.JBOTransaction; +import com.amarsoft.awe.dw.handler.impl.CommonHandler; +import jbo.app.tenwa.customer.LB_CARDATA_COMMERCIAL_MODEL; + +import java.math.BigDecimal; + +public class PassengerCarHandler extends CommonHandler { + @Override + protected void beforeUpdate(JBOTransaction tx, BizObject bo) throws Exception { + BizObjectManager lccmManage= JBOFactory.getBizObjectManager(LB_CARDATA_COMMERCIAL_MODEL.CLASS_NAME, tx); + BizObject lccm = lccmManage.createQuery(" brand_name=:brand_name AND series_name=:series_name AND model_name=:model_name ") + .setParameter("brand_name", bo.getAttribute("BRAND").toString()) + .setParameter("series_name", bo.getAttribute("CARS").toString()) + .setParameter("model_name", bo.getAttribute("MODELS").toString()).getSingleResult(true); + if(lccm != null){ + lccm.setAttributeValue("price" , new BigDecimal( bo.getAttribute("THE_GUIDED").toString()).divide(new BigDecimal("10000"))); + lccmManage.saveObject(lccm); + } + super.beforeUpdate(tx, bo); + } +} diff --git a/src_tenwa/com/tenwa/flow/fund/fundcollection/FundIncomeMethod.java b/src_tenwa/com/tenwa/flow/fund/fundcollection/FundIncomeMethod.java index bfb537804..8bda14ba3 100644 --- a/src_tenwa/com/tenwa/flow/fund/fundcollection/FundIncomeMethod.java +++ b/src_tenwa/com/tenwa/flow/fund/fundcollection/FundIncomeMethod.java @@ -1,5 +1,18 @@ package com.tenwa.flow.fund.fundcollection; +import com.amarsoft.are.jbo.*; +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.tenwa.comm.util.jboutil.DataOperatorUtil; +import com.tenwa.flow.bussinessapprove.BussinessStatusAndDetailAction; +import com.tenwa.util.MultiSubjectUtil; +import jbo.app.tenwa.calc.*; +import jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + import java.math.BigDecimal; import java.sql.SQLException; import java.util.HashMap; @@ -7,31 +20,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import com.amarsoft.app.base.businessobject.BusinessObject; -import net.sf.json.*; -import jbo.app.tenwa.calc.LB_PAYMENTRETURN_LOG; -import jbo.app.tenwa.calc.LC_EBANK_PROCESS; -import jbo.app.tenwa.calc.LC_EBANK_TEMP; -import jbo.app.tenwa.calc.LC_FUND_INCOME; -import jbo.app.tenwa.calc.LC_FUND_INCOME_TEMP; -import jbo.app.tenwa.calc.LC_FUND_PLAN; -import jbo.app.tenwa.calc.VI_LC_FUND_PLAN; -import jbo.com.tenwa.entity.comm.own.OWN_ACCOUNT; -import jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO; - -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.jbo.JBOTransaction; -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.tenwa.comm.util.jboutil.DataOperatorUtil; -import com.tenwa.flow.bussinessapprove.BussinessStatusAndDetailAction; -import com.tenwa.reckon.util.Conn; - public class FundIncomeMethod { private String planIDs; @@ -453,12 +441,6 @@ public String getContactId(JBOTransaction tx) throws SQLException, Exception{ } public String createActualPayment(JBOTransaction tx) throws JBOException{ try{ - //获取深圳本方账户 - BizObject boOAS = JBOFactory.getBizObjectManager(OWN_ACCOUNT.CLASS_NAME,tx) - .createQuery("account_purpose='default' and state_='0010' and FbSdk='Y' and own_id='807001002001' ").getSingleResult(false); - //获取天津本方账户 - BizObject boOAT = JBOFactory.getBizObjectManager(OWN_ACCOUNT.CLASS_NAME,tx) - .createQuery("account_purpose='default' and state_='0010' and FbSdk='Y' and own_id='807001003' ").getSingleResult(false); for(String contractId : contractIds.split("@")){ @SuppressWarnings("unchecked") List bos = JBOFactory.getBizObjectManager(LC_FUND_INCOME.CLASS_NAME) @@ -479,17 +461,6 @@ public String getContactId(JBOTransaction tx) throws SQLException, Exception{ otherProperty.put("FlowUnid", flowunid); otherProperty.put("IS_FLOWING", "0"); otherProperty.put("ACCOUNTING_DATE", StringFunction.getTodayNow().split(" ")[0]); - if("aa740e4111c111eaaa0000163e0e11e6".equals(lci.getAttribute("SUBJECTID").toString())){ - otherProperty.put("BANK", boOAS.getAttribute("ACC_BANK").getString()); - otherProperty.put("ACCOUNT", boOAS.getAttribute("ACC_NAME").getString()); - otherProperty.put("ACC_NUMBER", boOAS.getAttribute("ACC_NUMBER").getString()); - }else if("d989246c11c111eaaa0000163e0e11e6".equals(lci.getAttribute("SUBJECTID").toString())){ - otherProperty.put("BANK", boOAT.getAttribute("ACC_BANK").getString()); - otherProperty.put("ACCOUNT", boOAT.getAttribute("ACC_NAME").getString()); - otherProperty.put("ACC_NUMBER", boOAT.getAttribute("ACC_NUMBER").getString()); - }else{ - throw new RuntimeException("未查询到对应的主体信息!"); - } otherProperty.put("INCOME_ID", bo.getAttribute("ID").getString()); otherProperty.put(LC_FUND_INCOME.EBANK_STATUS, "03"); if("0020".equals(payType)||"0030".equals(payType)){ @@ -634,6 +605,24 @@ public String getContactId(JBOTransaction tx) throws SQLException, Exception{ }else{ meaage="已生成的本次付款明细中和已选合同主体不符!!!"; } + //付款基本信息默认本方账户 + if ("true".equals(meaage)) { + String subjectName = ""; + if (MultiSubjectUtil.SZSUBJECTID.equals(subjectuid)) { + subjectName = MultiSubjectUtil.SZSUBJECTNAME; + } else if (MultiSubjectUtil.TJSUBJECTID.equals(subjectuid)) { + subjectName = MultiSubjectUtil.TJSUBJECTNAME; + } + BizObjectManager bm_own = JBOFactory.getBizObjectManager("jbo.com.tenwa.entity.comm.own.OWN_ACCOUNT", tx); + BizObject bo_own = bm_own.createQuery("acc_name =:accName and account_purpose = 'default' and account_type = 'out_account' and state_ = '0010'") + .setParameter("accName", subjectName).getSingleResult(false); + JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LB_ACTUAL_PAYMENT_INFO_TEMP","update o set bank=:bank,account=:account,acc_number=:acc_number where flowunid = :flowunid ") + .setParameter("bank",bo_own.getAttribute("acc_bank").getString()) + .setParameter("account",bo_own.getAttribute("acc_name").getString()) + .setParameter("acc_number",bo_own.getAttribute("acc_number").getString()) + .setParameter("flowunid",flowunid) + .executeUpdate(); + } }else{ meaage="所选合同涉及多个主体,请检查!"; } diff --git a/src_tenwa/com/tenwa/lease/app/quartzmession/AutoRefresh.java b/src_tenwa/com/tenwa/lease/app/quartzmession/AutoRefresh.java index 523f17652..b288a4639 100644 --- a/src_tenwa/com/tenwa/lease/app/quartzmession/AutoRefresh.java +++ b/src_tenwa/com/tenwa/lease/app/quartzmession/AutoRefresh.java @@ -1,15 +1,6 @@ package com.tenwa.lease.app.quartzmession; -import java.util.List; - -import jbo.com.tenwa.lease.comm.VI_LC_AUDIT_RENT_PLAN; - -import org.quartz.Job; -import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; - import com.amarsoft.are.jbo.BizObject; -import com.amarsoft.are.jbo.JBOException; import com.amarsoft.are.jbo.JBOFactory; import com.amarsoft.are.jbo.JBOTransaction; import com.amarsoft.awe.Configure; @@ -21,65 +12,80 @@ import com.tenwa.collectaudit.cache.CollectAuditInfoCache; import com.tenwa.collectaudit.cache.CollectAuditInfoCacheTj; import com.tenwa.comm.util.date.DateAssistant; import com.tenwa.lease.app.allinpay.service.impl.AllinpayPaymentQueryRun; +import jbo.com.tenwa.lease.comm.VI_LC_AUDIT_RENT_PLAN; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; -public class AutoRefresh implements Job{ +import java.util.List; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; - @Override - public void execute(JobExecutionContext arg0) throws JobExecutionException { - CollectAuditInfoCache ca = new CollectAuditInfoCache(); - JBOTransaction tx = null; - String plan_date = DateAssistant.getToday(); - Object userId = arg0.getTrigger().getJobDataMap().get("CurUserId"); - String curUserId = userId == null? "system" : userId.toString(); - try { - tx = JBOFactory.createJBOTransaction(); - Transaction Sqlca = Transaction.createTransaction(tx); - String sSql = "SELECT STATUS FROM lb_card_buckle_status WHERE STATUS='Y' "; - SqlObject asql = new SqlObject(sSql); - ASResultSet rs = Sqlca.getASResultSet(asql); - if(rs.next()) { - return ; - } - List bos = JBOFactory.getBizObjectManager(VI_LC_AUDIT_RENT_PLAN.CLASS_NAME, tx).createQuery("O.COLLECT_STATUS IN ('未收款', '部分收款','代偿') and O.SUBJECTID='aa740e4111c111eaaa0000163e0e11e6' and O.collect_type='YLcollect' and O.BATCH_STATUS='process' and O.PLAN_DATE <= '"+plan_date+"'").getResultList(true); - StringBuffer ids = new StringBuffer(); - if(bos!=null && bos.size()>0){ - for (BizObject bo : bos) { - ids.append(bo.getAttribute("id").getString()+"@"); - } - ca.setId(ids.toString().substring(0, ids.toString().length()-1)); - Configure CurConfig = Configure.getInstance(); - ca.setFileSavePath(CurConfig.getConfigure("InterfaceFileSavePath")); - ca.setInputuserid("system"); - ca.setInputorgid("system"); - ca.queryBatchCollectStatus(tx); - } - //天津自动回盘 - CollectAuditInfoCacheTj caTj = new CollectAuditInfoCacheTj(); - List bosTj = JBOFactory.getBizObjectManager(VI_LC_AUDIT_RENT_PLAN.CLASS_NAME, tx).createQuery("O.COLLECT_STATUS IN ('未收款', '部分收款','代偿') and O.SUBJECTID='d989246c11c111eaaa0000163e0e11e6' and O.collect_type='YLcollect' and O.BATCH_STATUS='process' and O.PLAN_DATE <= '"+plan_date+"'").getResultList(true); - StringBuffer idsTj = new StringBuffer(); - if(bosTj!=null && bosTj.size()>0){ - for (BizObject bo : bosTj) { - idsTj.append(bo.getAttribute("id").getString()+"@"); - } - caTj.setId(idsTj.toString().substring(0, idsTj.toString().length()-1)); - Configure CurConfig = Configure.getInstance(); - caTj.setFileSavePath(CurConfig.getConfigure("InterfaceFileSavePath")); - caTj.setInputuserid("system"); - caTj.setInputorgid("system"); - caTj.queryBatchCollectStatus(tx); - } - QuartzUtil.insertLog(plan_date,"com.tenwa.lease.app.quartzmession.AutoRefresh", "success", "成功",curUserId); - } catch (Exception e) { - e.printStackTrace(); - QuartzUtil.insertLog(plan_date,"com.tenwa.lease.app.quartzmession.AutoRefresh", "error", "失败",curUserId); - }finally{ - try { - tx.commit(); - } catch (JBOException e) { - e.printStackTrace(); - } - } - AllinpayPaymentQueryRun run = new AllinpayPaymentQueryRun(); - new Thread(run).start(); - } +public class AutoRefresh implements Job { + + private static final Lock lock = new ReentrantLock(); + + @Override + public void execute(JobExecutionContext arg0) throws JobExecutionException { + String plan_date = DateAssistant.getToday(); + Object userId = arg0.getTrigger().getJobDataMap().get("CurUserId"); + String curUserId = userId == null ? "system" : userId.toString(); + boolean lockHoldStatus = lock.tryLock(); + try { + if (lockHoldStatus) { + CollectAuditInfoCache ca = new CollectAuditInfoCache(); + JBOTransaction tx = null; + try { + tx = JBOFactory.createJBOTransaction(); + Transaction Sqlca = Transaction.createTransaction(tx); + String sSql = "SELECT STATUS FROM lb_card_buckle_status WHERE STATUS='Y' "; + SqlObject asql = new SqlObject(sSql); + ASResultSet rs = Sqlca.getASResultSet(asql); + if (rs.next()) { + return; + } + List bos = JBOFactory.getBizObjectManager(VI_LC_AUDIT_RENT_PLAN.CLASS_NAME, tx).createQuery("O.COLLECT_STATUS IN ('未收款', '部分收款','代偿') and O.SUBJECTID='aa740e4111c111eaaa0000163e0e11e6' and O.collect_type='YLcollect' and O.BATCH_STATUS='process' and O.PLAN_DATE <= '" + plan_date + "'").getResultList(true); + StringBuilder ids = new StringBuilder(); + if (bos != null && bos.size() > 0) { + for (BizObject bo : bos) { + ids.append(bo.getAttribute("id").getString()).append("@"); + } + ca.setId(ids.toString().substring(0, ids.toString().length() - 1)); + ca.setFileSavePath(Configure.getInstance().getConfigure("InterfaceFileSavePath")); + ca.setInputuserid("system"); + ca.setInputorgid("system"); + ca.queryBatchCollectStatus(tx); + } + //天津自动回盘 + CollectAuditInfoCacheTj caTj = new CollectAuditInfoCacheTj(); + List bosTj = JBOFactory.getBizObjectManager(VI_LC_AUDIT_RENT_PLAN.CLASS_NAME, tx).createQuery("O.COLLECT_STATUS IN ('未收款', '部分收款','代偿') and O.SUBJECTID='d989246c11c111eaaa0000163e0e11e6' and O.collect_type='YLcollect' and O.BATCH_STATUS='process' and O.PLAN_DATE <= '" + plan_date + "'").getResultList(true); + StringBuilder idsTj = new StringBuilder(); + if (bosTj != null && bosTj.size() > 0) { + for (BizObject bo : bosTj) { + idsTj.append(bo.getAttribute("id").getString()).append("@"); + } + caTj.setId(idsTj.toString().substring(0, idsTj.toString().length() - 1)); + caTj.setFileSavePath(Configure.getInstance().getConfigure("InterfaceFileSavePath")); + caTj.setInputuserid("system"); + caTj.setInputorgid("system"); + caTj.queryBatchCollectStatus(tx); + } + tx.commit(); + //通联卡扣回盘 + new AllinpayPaymentQueryRun().allinpayPaymentQuerySt(); + QuartzUtil.insertLog(plan_date, "com.tenwa.lease.app.quartzmession.AutoRefresh", "success", "成功", curUserId); + } catch (Exception e) { + if (tx != null) tx.rollback(); + e.printStackTrace(); + QuartzUtil.insertLog(plan_date, "com.tenwa.lease.app.quartzmession.AutoRefresh", "error", "失败", curUserId); + } + } else { + QuartzUtil.insertLog(plan_date, "com.tenwa.lease.app.quartzmession.AutoRefresh", "lockerror", "获取锁失败", curUserId); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (lockHoldStatus) lock.unlock(); + } + } } diff --git a/src_tenwa/com/tenwa/lease/app/quartzmession/CorpusSourceOverdueRepurchaseCreateVoucherJob.java b/src_tenwa/com/tenwa/lease/app/quartzmession/CorpusSourceOverdueRepurchaseCreateVoucherJob.java index aa265bedd..4e22f3fe6 100644 --- a/src_tenwa/com/tenwa/lease/app/quartzmession/CorpusSourceOverdueRepurchaseCreateVoucherJob.java +++ b/src_tenwa/com/tenwa/lease/app/quartzmession/CorpusSourceOverdueRepurchaseCreateVoucherJob.java @@ -3,10 +3,13 @@ import com.amarsoft.are.util.StringFunction; import com.base.util.QuartzUtil; import com.tenwa.voucher.service.VoucherInfoService; import com.tenwa.voucher.serviceImp.FundIncomeVoucherPSBC; +import com.tenwa.voucher.serviceImp.OverdueRepayPlanVoucherPSBC; import com.tenwa.voucher.serviceImp.OverdueRepurchaseVoucherPSBC; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * 逾期回购生成凭证-定时任务 @@ -14,6 +17,8 @@ import org.quartz.JobExecutionException; */ public class CorpusSourceOverdueRepurchaseCreateVoucherJob implements Job { + private static final Logger logger = LoggerFactory.getLogger(CorpusSourceOverdueRepurchaseCreateVoucherJob.class); + @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { String startime = StringFunction.getTodayNow(); @@ -22,6 +27,8 @@ public class CorpusSourceOverdueRepurchaseCreateVoucherJob implements Job { try{ VoucherInfoService voucher = new OverdueRepurchaseVoucherPSBC(); voucher.run(); + VoucherInfoService voucher2 = new OverdueRepayPlanVoucherPSBC(); + voucher2.run(); QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.CorpusSourceOverdueRepurchaseCreateVoucherJob", "success", "成功", curUserId); } catch (Exception e) { QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.CorpusSourceOverdueRepurchaseCreateVoucherJob", "error", "失败", curUserId); diff --git a/src_tenwa/com/tenwa/lease/app/quartzmession/MarginDeduction.java b/src_tenwa/com/tenwa/lease/app/quartzmession/MarginDeduction.java new file mode 100644 index 000000000..d81751f19 --- /dev/null +++ b/src_tenwa/com/tenwa/lease/app/quartzmession/MarginDeduction.java @@ -0,0 +1,174 @@ +package com.tenwa.lease.app.quartzmession; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import com.base.util.DateUtil; +import com.tenwa.comm.util.jboutil.DataOperatorUtil; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +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.jbo.JBOTransaction; +import com.amarsoft.are.util.StringFunction; +import com.amarsoft.awe.util.Transaction; +import com.base.util.QuartzUtil; + +/**保证金抵扣租金*/ +public class MarginDeduction implements Job{ + @Override + public void execute(JobExecutionContext arg0) throws JobExecutionException{ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + String startime = StringFunction.getTodayNow(); + Object userId = arg0.getTrigger().getJobDataMap().get("CurUserId"); + JBOTransaction tx = null; + Transaction Sqlca = null; + try { + tx = JBOFactory.createJBOTransaction(); + Sqlca = Transaction.createTransaction(tx); + BizObjectManager lrpBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_RENT_PLAN",Sqlca); + BizObjectManager lriBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_RENT_INCOME",Sqlca); + BizObjectManager lfiBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_FUND_INCOME",Sqlca); + BizObjectManager lfpBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_FUND_PLAN",Sqlca); + BizObjectManager vlrpBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.VI_LC_RENT_PLAN",Sqlca); + List> listData = DataOperatorUtil.getDataBySql("select cast(lfp.PLAN_MONEY as decimal(18,2))-cast(ifnull(lfit.fact_money,'0') as decimal(18,2))-cast(IfNULL(lfi.fact_money,'0') as decimal(18,2)) as fact_money,lci.id as contractId " + + "from lc_fund_plan lfp left join lb_contract_info lci on lci.id=lfp.CONTRACT_ID " + + " left join (select sum(fact_money) fact_money,PAYMENT_NUMBER from lc_fund_income_temp where FEE_TYPE='feetype16' and is_flowing='0' and ROLL_BACK='0' group by PAYMENT_NUMBER) lfit on lfp.PAYMENT_NUMBER=lfit.PAYMENT_NUMBER " + + " LEFT JOIN (SELECT SUM(fact_money) fact_money,PAYMENT_NUMBER FROM lc_fund_income WHERE FEE_TYPE='feetype16' AND ROLL_BACK='0' group by PAYMENT_NUMBER) lfi on lfp.PAYMENT_NUMBER=lfi.PAYMENT_NUMBER " + + "where lci.BUSINESSTYPE='1' and lci.CONTRACT_STATUS='31' and lfp.FEE_TYPE='feetype16' and lfp.SETTLE_METHOD is not null "); + if(listData!=null && listData.size() > 0 ){ + for (int i = 0; i < listData.size(); i++) { + String contractId = listData.get(i).get("contractId"); + BigDecimal fact_money = new BigDecimal( listData.get(i).get("fact_money").toString() ); + BigDecimal money = new BigDecimal( listData.get(i).get("fact_money").toString() ); + BizObject vlrpBo = null ; + List vlrpBoList = vlrpBm.createQuery("rent_over>0 and contract_id =:contract_id order by plan_list desc ").setParameter("contract_id",contractId).getResultList(false); + if( vlrpBoList!=null && vlrpBoList.size() > 0){ + BigDecimal rent = BigDecimal.ZERO ; + int j = 0 ; + for ( ; j < vlrpBoList.size() ; j++ ) { + BigDecimal plistRent = new BigDecimal( vlrpBoList.get(j).getAttribute("rent_over").toString() ); + rent = rent.add( plistRent ) ; + if(rent.compareTo(fact_money) > -1 || (vlrpBoList.size()-1) == j ){ + vlrpBo = vlrpBoList.get(j); + break; + } + money = money.subtract(plistRent); + } + if(j == vlrpBoList.size()-1 ){//循环的数据等于集合的值,说明抵扣前的金额已经还完 + String plan_date = vlrpBo.getAttribute("plan_date").toString(); + String nowDate = DateUtil.getSystemTimeByFormat("yyyy/MM/dd"); + if(nowDate.compareTo(plan_date)>-1){ + BizObject lriBo = lriBm.newObject(); + BigDecimal interestOver = new BigDecimal(vlrpBo.getAttribute("interest_over").toString()); + if(interestOver.compareTo(money)>-1) { + lriBo.setAttributeValue("INTEREST",money); + money=BigDecimal.ZERO; + }else { + lriBo.setAttributeValue("INTEREST",interestOver); + money=money.subtract(interestOver); + } + + BigDecimal corpusOver = new BigDecimal(vlrpBo.getAttribute("corpus_over").toString()); + if(corpusOver.compareTo(money)>-1) { + lriBo.setAttributeValue("CORPUS",money); + money=BigDecimal.ZERO; + }else { + lriBo.setAttributeValue("CORPUS",corpusOver); + money=money.subtract(corpusOver); + } + BizObject lrp = lrpBm.createQuery(" id=:id ").setParameter("id",vlrpBo.getAttribute("ID").toString()).getSingleResult(true); + BigDecimal drent = new BigDecimal(lriBo.getAttribute("CORPUS").toString()).add( new BigDecimal( lriBo.getAttribute("INTEREST").toString() ) ); + BigDecimal rentOver = new BigDecimal(vlrpBo.getAttribute("rent_over").toString()); + + String fundIncomeId = UUID.randomUUID().toString().replaceAll("-",""); + lriBo.setAttributeValue("PROJECT_ID",vlrpBo.getAttribute("PROJECT_ID")); + lriBo.setAttributeValue("PROJECT_PLAN_NUMBER",lrp.getAttribute("PROJECT_PLAN_NUMBER")); + lriBo.setAttributeValue("CONTRACT_ID",vlrpBo.getAttribute("CONTRACT_ID")); + lriBo.setAttributeValue("CONTRACT_PLAN_NUMBER",lrp.getAttribute("CONTRACT_PLAN_NUMBER")); + lriBo.setAttributeValue("PAYMENT_NUMBER",vlrpBo.getAttribute("PAYMENT_NUMBER")); + lriBo.setAttributeValue("PLAN_ID",vlrpBo.getAttribute("ID")); + lriBo.setAttributeValue("PLAN_LIST",vlrpBo.getAttribute("PLAN_LIST")); + double hireList = Sqlca.getDouble("select max(HIRE_LIST) from lc_rent_income where PAYMENT_NUMBER='"+vlrpBo.getAttribute("PAYMENT_NUMBER")+"' and PLAN_LIST='"+vlrpBo.getAttribute("PLAN_LIST")+"'"); + lriBo.setAttributeValue("HIRE_LIST",hireList+1); + lriBo.setAttributeValue("HIRE_DATE",vlrpBo.getAttribute("PLAN_DATE")); + lriBo.setAttributeValue("RENT",drent); + lriBo.setAttributeValue("PENALTY","0.00"); + lriBo.setAttributeValue("CORPUS_ADJUST","0.00"); + lriBo.setAttributeValue("INTEREST_ADJUST","0.00"); + lriBo.setAttributeValue("PENALTY_ADJUST","0.00"); + lriBo.setAttributeValue("SETTLE_METHOD","settlemethod7"); + lriBo.setAttributeValue("DEDUCTION_ID",fundIncomeId); + lriBo.setAttributeValue("ACCOUNTING_DATE",vlrpBo.getAttribute("PLAN_DATE")); + lriBo.setAttributeValue("MEMO","保证金抵扣定时任务"); + lriBo.setAttributeValue("ROLL_BACK","0"); + lriBo.setAttributeValue("INPUTTIME",sdf.format(new Date())); + lriBm.saveObject(lriBo); + + BizObject lfpBo = lfpBm.createQuery("PAYMENT_NUMBER='"+vlrpBo.getAttribute("PAYMENT_NUMBER")+"'").getSingleResult(false); + BizObject lfiBo = lfiBm.newObject(); + lfiBo.setAttributeValue("ID", fundIncomeId); + //lfiBo.setAttributeValue("RELATIVE_ID", lfpBo.getAttribute("RELATIVE_ID")); + lfiBo.setAttributeValue("PROJECT_ID", lfpBo.getAttribute("PROJECT_ID")); + lfiBo.setAttributeValue("PROJECT_PLAN_NUMBER", lfpBo.getAttribute("PROJECT_PLAN_NUMBER")); + lfiBo.setAttributeValue("CONTRACT_ID", lfpBo.getAttribute("CONTRACT_ID")); + lfiBo.setAttributeValue("CONTRACT_PLAN_NUMBER", lfpBo.getAttribute("CONTRACT_PLAN_NUMBER")); + lfiBo.setAttributeValue("PAYMENT_NUMBER", lfpBo.getAttribute("PAYMENT_NUMBER")); + lfiBo.setAttributeValue("PLAN_ID", vlrpBo.getAttribute("ID")); + lfiBo.setAttributeValue("PLAN_LIST", lfpBo.getAttribute("PLAN_LIST")); + lfiBo.setAttributeValue("PAY_TYPE", lfpBo.getAttribute("PAY_TYPE")); + lfiBo.setAttributeValue("FEE_TYPE", lfpBo.getAttribute("FEE_TYPE")); + lfiBo.setAttributeValue("SETTLE_METHOD","settlemethod7"); + double chargeList = Sqlca.getDouble("select max(CHARGE_LIST) from lc_fund_income where PAYMENT_NUMBER='"+lfpBo.getAttribute("PAYMENT_NUMBER")+"' and PLAN_LIST='"+lfpBo.getAttribute("PLAN_LIST")+"'"); + lfiBo.setAttributeValue("CHARGE_LIST",chargeList+1); + lfiBo.setAttributeValue("FACT_DATE",vlrpBo.getAttribute("PLAN_DATE")); + lfiBo.setAttributeValue("FACT_MONEY",drent); + lfiBo.setAttributeValue("FEE_ADJUST","0.00"); + lfiBo.setAttributeValue("ACCOUNTING_DATE",vlrpBo.getAttribute("PLAN_DATE")); + lfiBo.setAttributeValue("APPLYPAY_DATE",vlrpBo.getAttribute("PLAN_DATE")); + lfiBo.setAttributeValue("MEMO","保证金抵扣定时任务"); + lfiBo.setAttributeValue("ROLL_BACK","0"); + lfiBo.setAttributeValue("INPUTTIME",sdf.format(new Date())); + lfiBm.saveObject(lfiBo); + + if( drent.compareTo(rentOver) == 0 ){//如果租金等于应该租金,修改租金计划表中的状态 + lrp.setAttributeValue("COLLECT_STATUS","保证金抵扣"); + lrp.setAttributeValue("COLLECT_MSG","保证金抵扣"); + lrpBm.saveObject(lrp); + } + } + + } + } + + } + + } + QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.MarginDeduction", "success", "成功", userId == null? "system" : userId.toString()); + } catch (Exception e1) { + try { + Sqlca.rollback(); + tx.rollback(); + } catch (JBOException e) { + e.printStackTrace(); + } + e1.printStackTrace(); + QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.MarginDeduction", "error", "失败", userId == null? "system" : userId.toString()); + + }finally { + try { + Sqlca.commit(); + tx.commit(); + } catch (JBOException e) { + e.printStackTrace(); + } + } + } +}