From 74b5a56b21cfc1be04dbf278d5d820dd35b69445 Mon Sep 17 00:00:00 2001 From: xiezhiwen Date: Mon, 25 Mar 2019 11:51:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=AD=E8=AF=81=E7=9B=B8=E5=85=B3-=E7=BD=91?= =?UTF-8?q?=E9=93=B6=E5=9B=9E=E6=AC=BE=E7=A7=9F=E9=87=91=E5=87=AD=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IncomeVoucher.java | 9 +- .../CreateVoucherRentIncome.java | 86 ++++++++++++------- .../serviceImp/CreateVoucherServiceImpl.java | 12 ++- 3 files changed, 73 insertions(+), 34 deletions(-) diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/IncomeVoucher.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/IncomeVoucher.java index 6a4330444..b9365b191 100644 --- a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/IncomeVoucher.java +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/IncomeVoucher.java @@ -3,6 +3,7 @@ package com.tenwa.voucher.CreateVoucherProcess.CreateVoucherMethodSettle; import com.amarsoft.awe.util.Transaction; import com.tenwa.flow.baseBussion.BaseBussiness; import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherCustCautionMoneyIncome; +import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherRentIncome; /** * 网银收款流程结束后生成相应的凭证 * @author xiezhiwen @@ -35,9 +36,11 @@ public class IncomeVoucher extends BaseBussiness { //cvci.CreateVoucher(FlowUnid, "PZ2018080400000103", "feetype27");//确认贴息收入--直租 - //CreateVoucherRentIncome cvri=new CreateVoucherRentIncome(); - //cvri.CreateVoucher(FlowUnid,"PZ2018081600000120");//网银收款转预收--回租 - //cvri.CreateVoucher(FlowUnid,"PZ2018081600000121");//网银收款转预收--直租 + CreateVoucherRentIncome cvri=new CreateVoucherRentIncome(); + cvri.CreateVoucher(FlowUnid,"PZ2018072100000024",userid);//回款-收到的租金(网银)--当月(回租) + cvri.CreateVoucher(FlowUnid,"PZ2018080400000081",userid);//回款-收到的租金(网银)--跨月(回租) + + cvri.CreateVoucher(FlowUnid,"PZ2018072100000025",userid);//回款-收到的逾期利息(网银)--(回租) return "true"; } diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherRentIncome.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherRentIncome.java index 211b17a95..3b02292c2 100644 --- a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherRentIncome.java +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherRentIncome.java @@ -5,9 +5,11 @@ import java.util.List; import java.util.Map; import jbo.voucher.LV_VOUCHER_CONFIG; +import jbo.voucher.TAX_CODE; import com.amarsoft.are.jbo.BizObject; import com.amarsoft.are.jbo.JBOException; +import com.amarsoft.are.jbo.JBOFactory; import com.amarsoft.awe.util.Transaction; import com.amarsoft.dict.als.cache.CacheLoaderFactory; import com.tenwa.comm.util.jboutil.DataOperatorUtil; @@ -15,8 +17,7 @@ import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl; public class CreateVoucherRentIncome { - public void CreateVoucher(String flowunid,String VOUCHERNO){ - + public void CreateVoucher(String flowunid,String VOUCHERNO,String userid){ Transaction Sqlca =null; try{ Map map=new HashMap(); @@ -25,6 +26,9 @@ public class CreateVoucherRentIncome { String MONEY=null; String MONEYNOTAX=null; String MONEYTAX=null; + String RENTMONEY=null; + String CORPUS=null; + String INTEREST=null; String ACCOUNT_DATE=null; String FACT_DATE=null; String CONTRACT_ID=null; @@ -33,29 +37,38 @@ public class CreateVoucherRentIncome { String leas_form=null; String DISTRIBUTOR_ID=null; String DISTRIBUTOR_NAME=null; - String CARID=null; - String CARMODEL=null; String CUSTID=null; String CUSTNAME=null; String CUSTOMERTYPE=null; String BUSINESSTYPE=null; - String ACC_NUM=null; + String TAX_NUM=null; + String sql=""; param.clear(); + map.clear(); + map.put("FLOWUNID", flowunid); - if("PZ2018081600000120".equals(VOUCHERNO)||"PZ2018081600000121".equals(VOUCHERNO)){ - sql= "SELECT lr.MONEY , DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE,Lr.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,Lr.FLOWUNID,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,lr.own_number FROM (SELECT rent+penalty-INTEREST_ADJUST AS money ,contract_id,flowunid,own_number FROM LC_rent_INCOME_temp UNION ALL SELECT fact_money,contract_id,flowunid,acc_number FROM LC_fund_INCOME_temp) lr LEFT JOIN LB_CONTRACT_INFO LCI ON Lr.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN LB_EQUIPMENT_CAR LEC ON LEC.CONTRACT_ID=LCI.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 LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE Lr.FLOWUNID=:FLOWUNID"; + // 回款-收到的租金(网银)--当月(回租) + if("PZ2018072100000024".equals(VOUCHERNO)){ + sql= "SELECT ROUND((getTax (lci.LEAS_FORM,'租金',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LRIT.INTEREST, 0) AS MONEY,ROUND(IFNULL(LRIT.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(LRIT.INTEREST, 0) - ROUND(IFNULL(LRIT.INTEREST, 0) /getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS MONEYTAX,IFNULL(LRIT.RENT,0) AS RENTMONEY,IFNULL(LRIT.CORPUS,0) AS CORPUS,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LCCT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,DI.F_I_TYPE,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = LRIT.CONTRACT_ID AND lrp.plan_list = lrit.plan_list LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRIT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_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 LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND LUL.IS_MAIN='Y' AND DATE_FORMAT(NOW(), '%Y-%m') = DATE_FORMAT(lrp.plan_date, '%Y-%m') AND LRIT.FLOWUNID = :FLOWUNID "; + // 回款-收到的租金(网银)--跨月(回租) + }else if("PZ2018080400000081".equals(VOUCHERNO)){ + sql= "SELECT ROUND((getTax (lci.LEAS_FORM,'租金',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LRIT.INTEREST, 0) AS MONEY,ROUND(IFNULL(LRIT.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(LRIT.INTEREST, 0) - ROUND(IFNULL(LRIT.INTEREST, 0) /getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS MONEYTAX,IFNULL(LRIT.RENT,0) AS RENTMONEY,IFNULL(LRIT.CORPUS,0) AS CORPUS,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LCCT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,DI.F_I_TYPE,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = LRIT.CONTRACT_ID AND lrp.plan_list = lrit.plan_list LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRIT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_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 LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND LUL.IS_MAIN='Y' AND DATE_FORMAT(NOW(), '%Y-%m') > DATE_FORMAT(lrp.plan_date, '%Y-%m') AND LRIT.FLOWUNID = :FLOWUNID "; + // 回款-收到的逾期利息(网银)--(回租) + }else if("PZ2018072100000025".equals(VOUCHERNO)) { + sql= "SELECT ROUND((getTax (lci.LEAS_FORM,'逾期利息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LRIT.PENALTY, 0) AS MONEY,ROUND(IFNULL(LRIT.PENALTY, 0) / getTax (LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(LRIT.PENALTY, 0) - ROUND(IFNULL(LRIT.PENALTY, 0) / getTax (LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LCCT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,DI.F_I_TYPE,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRIT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_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 LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND LUL.IS_MAIN='Y' AND LRIT.FLOWUNID = :FLOWUNID "; } List> dataList=DataOperatorUtil.getDataBySql(Sqlca, sql, map); CreateVoucherServiceImpl vs=new CreateVoucherServiceImpl(); String VOUCHER_TYPE="1";// 凭证分类 金蝶 - String userid ="admin"; + for (int i=0;i0){ + MONEYNOTAX=dataList.get(i).get("MONEYNOTAX").toString(); + MONEYTAX=dataList.get(i).get("MONEYTAX").toString(); + RENTMONEY=dataList.get(i).get("RENTMONEY").toString(); + CORPUS=dataList.get(i).get("CORPUS").toString(); ACCOUNT_DATE=dataList.get(i).get("ACCOUNT_DATE").toString(); FACT_DATE =dataList.get(i).get("FACT_DATE").toString(); CONTRACT_ID=dataList.get(i).get("CONTRACT_ID").toString(); @@ -64,15 +77,22 @@ public class CreateVoucherRentIncome { leas_form=dataList.get(i).get("LEAS_FORM").toString(); DISTRIBUTOR_ID=dataList.get(i).get("DISTRIBUTOR_ID"); DISTRIBUTOR_NAME=dataList.get(i).get("DISTRIBUTOR_NAME"); - CARID=dataList.get(i).get("CARID"); - CARMODEL=dataList.get(i).get("MODEL"); CUSTID=dataList.get(i).get("CUSTOMERID"); CUSTNAME=dataList.get(i).get("CUSTOMERNAME"); CUSTOMERTYPE=dataList.get(i).get("CUSTOMERTYPE"); BUSINESSTYPE=dataList.get(i).get("BUSINESSTYPE"); - ACC_NUM=dataList.get(i).get("OWN_NUMBER"); - + TAX_NUM=dataList.get(i).get("TAX_NUM"); + // 通过税率获取编码 + BizObject TAX_CODES=null; + if(TAX_NUM!=null && !"".equals(TAX_NUM)) { + TAX_CODES=JBOFactory.createBizObjectQuery(TAX_CODE.CLASS_NAME,"TAX_NUMBER='"+TAX_NUM+"'").getSingleResult(false); + } + param.put("FACT_MONEY",MONEY); + param.put("INTERESTNOTAX",MONEYNOTAX); + param.put("TAX",MONEYTAX); + param.put("RENTMONEY",RENTMONEY); + param.put("CORPUS",CORPUS); param.put("ACCOUNT_DATE",ACCOUNT_DATE); param.put("FACT_DATE",FACT_DATE); param.put("CONTRACT_ID",CONTRACT_ID); @@ -81,25 +101,25 @@ public class CreateVoucherRentIncome { param.put("LEAS_FORM",leas_form); param.put("DISTRIBUTOR_ID",DISTRIBUTOR_ID); param.put("DISTRIBUTOR_NAME",DISTRIBUTOR_NAME); - param.put("CARID",CARID); - param.put("CARMODEL",CARMODEL); param.put("CUSTID",CUSTID); param.put("CUSTNAME",CUSTNAME); param.put("CUSTOMERTYPE",CUSTOMERTYPE); param.put("BUSINESSTYPE",BUSINESSTYPE); - param.put("ACC_NUMBER",ACC_NUM); - + param.put("VOUCHERNO",VOUCHERNO); + if(TAX_CODES!=null) { + param.put("TAX_CODE",TAX_CODES.getAttribute("TAX_CODES").getString()); + } + if("1".equals(BUSINESSTYPE)){ - param.put("LEASFORMASSET", "04"); // 融资租赁资产 - param.put("DEPT", "02"); // 部门 - if("03".equals(CUSTOMERTYPE)){ // 如果是个人业务 - param.put("LEASINCOMEFORM", "02"); // C端 - }else if("01".equals(CUSTOMERTYPE)){ - param.put("LEASINCOMEFORM", "01"); // B端 - } + if("PZ2018072100000024".equals(VOUCHERNO)) { + param.put("BUSINESSTYPE", "0604");// 主营类型 + } + // 收到的逾期利息 + if("PZ2018072100000025".equals(VOUCHERNO)) { + param.put("BUSINESSTYPE", "0603");// 主营类型 + } + param.put("CASHFLOW", "");// 现金流项目 } - //param.put("FUNDTYPE", ""); // 主营类型 - param.put("BUSINESSTYPE", "06"); map.clear(); map.put("PROJ_TYPE", leas_form); @@ -108,14 +128,20 @@ public class CreateVoucherRentIncome { if(vouch!=null){ vs.createVoucher(vouch.getAttribute("id").getString(),vouch.getAttribute("MODULAR_NUMBER").getString(), vouch.getAttribute("OWNED_COMPANY").getString(), leas_form, VOUCHER_TYPE, userid,param, Sqlca); - }} - } + } + } + if(Sqlca!=null){ Sqlca.commit(); } }catch (Exception e){ + try { + Sqlca.rollback(); + } catch (JBOException e1) { + e1.printStackTrace(); + } e.printStackTrace(); }finally{ if(Sqlca!=null){ diff --git a/src_core/com/tenwa/voucher/serviceImp/CreateVoucherServiceImpl.java b/src_core/com/tenwa/voucher/serviceImp/CreateVoucherServiceImpl.java index ac5f79f54..40e4ef709 100644 --- a/src_core/com/tenwa/voucher/serviceImp/CreateVoucherServiceImpl.java +++ b/src_core/com/tenwa/voucher/serviceImp/CreateVoucherServiceImpl.java @@ -360,7 +360,7 @@ public class CreateVoucherServiceImpl { }else if("PZ2018081700000134".equals(VOUCHERNO) || "PZ2018081700000138".equals(VOUCHERNO) || "PZ2018072100000047".equals(VOUCHERNO) || "PZ2018081700000132".equals(VOUCHERNO) || "PZ2018081700000130".equals(VOUCHERNO) || "PZ2018081700000128".equals(VOUCHERNO)){ subData.put("CUSTID","APZL00000000DC");//虚拟客户 subData.put("CUSTNAME","汽车C端待查客户");//虚拟客户 - }else if("PZ2018072100000038".equals(VOUCHERNO) || "PZ2018072100000039".equals(VOUCHERNO) || "PZ2018072100000043".equals(VOUCHERNO)) { + }else if("PZ2018072100000038".equals(VOUCHERNO) || "PZ2018072100000039".equals(VOUCHERNO) || "PZ2018072100000043".equals(VOUCHERNO) || "PZ2018072100000025".equals(VOUCHERNO) || "PZ2018080400000081".equals(VOUCHERNO)) { subData.put("CUSTID","APZL00000000DC");//虚拟客户 subData.put("CUSTNAME","汽车C端待查客户");//虚拟客户 // 起租前网银回款 @@ -467,6 +467,16 @@ public class CreateVoucherServiceImpl { } } + /** + * 网银回款收到的租金, 当月的设置默认客户信息 + */ + if("PZ2018072100000024".equals(VOUCHERNO)) { + if("1".equals(SORT_NUMBER)) { + subData.put("CUSTID","APZL00000000DC");//虚拟账户 + subData.put("CUSTNAME","汽车C端待查客户");//虚拟账户 + } + } + subData.put("SORT_NUMBER", SORT_NUMBER); list.add(subData); }