diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherEbankMoney.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherEbankMoney.java new file mode 100644 index 000000000..896f18614 --- /dev/null +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherEbankMoney.java @@ -0,0 +1,87 @@ +package com.tenwa.voucher.CreateVoucherProcess; + +import java.util.HashMap; +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.ASResultSet; +import com.amarsoft.awe.util.Transaction; +import com.amarsoft.dict.als.cache.CacheLoaderFactory; +import com.tenwa.comm.util.jboutil.DataOperatorUtil; +import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl; + +/** + * 汽车多雨还款分解 + */ +public class CreateVoucherEbankMoney { + public void CreateVoucher(String flowunid,String VOUCHERNO,String userid,Transaction Sqlca) throws Exception{ + Transaction Sqlca1 =null; + Map map=new HashMap(); + Map param=new HashMap(); + Sqlca1 = Transaction.createTransaction(CacheLoaderFactory.getDataSource()); + ASResultSet rs=null; + CreateVoucherServiceImpl vs=new CreateVoucherServiceImpl(); + String VOUCHER_TYPE="1";// 凭证分类 金蝶 + String MONEY=null; + String ACCOUNT_DATE=null; + String FACT_DATE=null; + String CONTRACT_ID=null; + String CONTRACT_NUMBER=null; + String leas_form=null; + String CUSTID=null; + String CUSTNAME=null; + + String sql=""; + param.clear(); + map.clear(); + + map.put("FLOWUNID", flowunid); + // 回款-多余回款分解 + if("PZ2019070100000018".equals(VOUCHERNO)){ + sql= "SELECT IFNULL(LE.MAYOPE_MONEY, 0) AS MONEY,DATE_FORMAT(NOW(),'%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(NOW(),'%Y/%m/%d') AS FACT_DATE,LCCT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,LPI.BUSINESSTYPE FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_INCOME LRI ON LRI.CONTRACT_ID=LRIT.CONTRACT_ID AND LRI.PLAN_LIST=LRIT.PLAN_LIST AND LRI.HIRE_DATE=LRIT.HIRE_DATE LEFT JOIN LC_EBANK LE ON LE.EBANK_SN = LRI.EBANK_NUMBER LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRI.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 IFNULL(LE.MAYOPE_MONEY, 0) > 0 AND LRIT.FLOWUNID = :FLOWUNID "; + }else if("PZ2019070100000024".equals(VOUCHERNO)){ + sql= "SELECT -IFNULL(LE.MAYOPE_MONEY, 0) AS MONEY,DATE_FORMAT(NOW(),'%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(NOW(),'%Y/%m/%d') AS FACT_DATE,LCCT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,LPI.BUSINESSTYPE FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_INCOME LRI ON LRI.CONTRACT_ID=LRIT.CONTRACT_ID AND LRI.PLAN_LIST=LRIT.PLAN_LIST AND LRI.HIRE_DATE=LRIT.HIRE_DATE LEFT JOIN LC_EBANK LE ON LE.EBANK_SN = LRI.EBANK_NUMBER LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRI.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 IFNULL(LE.MAYOPE_MONEY, 0) > 0 AND LRIT.FLOWUNID = :FLOWUNID "; + } + rs=Sqlca.getASResultSet(sql); + + while(rs.next()){ + MONEY=rs.getString("MONEY"); + ACCOUNT_DATE=rs.getString("ACCOUNT_DATE"); + FACT_DATE =rs.getString("FACT_DATE"); + CONTRACT_ID=rs.getString("CONTRACT_ID"); + CONTRACT_NUMBER=rs.getString("CONTRACT_NUMBER"); + leas_form="01"; + CUSTID=rs.getString("CUSTOMERID"); + CUSTNAME=rs.getString("CUSTOMERNAME"); + + param.put("FACT_MONEY",MONEY); + param.put("ACCOUNT_DATE",ACCOUNT_DATE); + param.put("FACT_DATE",FACT_DATE); + param.put("CONTRACT_ID",CONTRACT_ID); + param.put("CONTRACT_NUMBER",CONTRACT_NUMBER); + param.put("LEAS_FORM",leas_form); + param.put("CUSTID",CUSTID); + param.put("CUSTNAME",CUSTNAME); + param.put("VOUCHERNO",VOUCHERNO); + + map.clear(); + map.put("PROJ_TYPE", leas_form); + map.put("VOUCHER_NO", VOUCHERNO); + BizObject vouch=DataOperatorUtil.getSingleJBO(LV_VOUCHER_CONFIG.CLASS_NAME, map, Sqlca); + + 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, Sqlca1); + } + } + if(Sqlca1!=null){ + rs.close(); + Sqlca1.commit(); + } + } +} diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherLoan/ContractCorpusAddInterestTaxMoney.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherLoan/ContractCorpusAddInterestTaxMoney.java new file mode 100644 index 000000000..112c4a149 --- /dev/null +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherLoan/ContractCorpusAddInterestTaxMoney.java @@ -0,0 +1,22 @@ +package com.tenwa.voucher.CreateVoucherProcess.CreateVoucherLoan; +/*** + * 获取本金 + */ +import java.util.HashMap; +import java.util.Map; + +import com.amarsoft.are.jbo.JBOTransaction; +import com.tenwa.comm.exception.BusinessException; +import com.tenwa.voucher.service.VoucherJavaParamService; + +public class ContractCorpusAddInterestTaxMoney implements VoucherJavaParamService{ + + @Override + public Map getJavaParam(JBOTransaction tx,Map param,Map subData) throws BusinessException { + MapreturnValue=new HashMap(); + returnValue.putAll(param); + returnValue.put("MONEY",param.get("CORPUS_ADD_INTEREST_TAX")); + return returnValue; + } + +} diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherLoan/ContractCorpusTaxMoney.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherLoan/ContractCorpusTaxMoney.java new file mode 100644 index 000000000..8fc8f7181 --- /dev/null +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherLoan/ContractCorpusTaxMoney.java @@ -0,0 +1,22 @@ +package com.tenwa.voucher.CreateVoucherProcess.CreateVoucherLoan; +/*** + * 获取本金 + */ +import java.util.HashMap; +import java.util.Map; + +import com.amarsoft.are.jbo.JBOTransaction; +import com.tenwa.comm.exception.BusinessException; +import com.tenwa.voucher.service.VoucherJavaParamService; + +public class ContractCorpusTaxMoney implements VoucherJavaParamService{ + + @Override + public Map getJavaParam(JBOTransaction tx,Map param,Map subData) throws BusinessException { + MapreturnValue=new HashMap(); + returnValue.putAll(param); + returnValue.put("MONEY",param.get("CORPUS_TAX")); + return returnValue; + } + +} diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherLoanDistributor.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherLoanDistributor.java index 860cc45e9..6134af46f 100644 --- a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherLoanDistributor.java +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherLoanDistributor.java @@ -56,50 +56,53 @@ public class CreateVoucherLoanDistributor { param.clear(); map.put("FlowUnid", FlowUnid); - // 确认GPS收入 - if("PZ2018073100000061".equals(VOUCHERNO)||"PZ2018080300000068".equals(VOUCHERNO)){ + // 确认GPS收入-回租/直租 + if("PZ2018073100000061".equals(VOUCHERNO) || "PZ2019070100000001".equals(VOUCHERNO)){ moneyDataSource="LCCT.GPS_FEE"; TAX_TYPE="GPS"; } - //收取首付款 - if("PZ2018070900000003".equals(VOUCHERNO)||"PZ2018080200000065".equals(VOUCHERNO)){ + // 收取首付款-回租/直租 + if("PZ2018070900000003".equals(VOUCHERNO) || "PZ2019070100000002".equals(VOUCHERNO)){ moneyDataSource="LCCT.FIRST_PAYMENT"; TAX_TYPE="本金"; } - //收取客户保证金 - if("PZ2018071000000004".equals(VOUCHERNO)||"PZ2018080300000070".equals(VOUCHERNO)){ + // 收取客户保证金-回租 + if("PZ2018071000000004".equals(VOUCHERNO)){ moneyDataSource="LCCT.CAUTION_MONEY"; TAX_TYPE="本金"; } - //收取客户手续费(一次性确认收入)/按月分摊 - if("PZ2018071000000007".equals(VOUCHERNO)||"PZ2018080300000072".equals(VOUCHERNO) || "PZ2018071000000009".equals(VOUCHERNO)||"PZ2018080300000073".equals(VOUCHERNO)){ + // 收取客户手续费(一次性确认收入)/按月分摊-回租 + if("PZ2018071000000007".equals(VOUCHERNO) || "PZ2018071000000009".equals(VOUCHERNO) || "PZ2019070100000005".equals(VOUCHERNO) || "PZ2019070100000006".equals(VOUCHERNO) ){ moneyDataSource="LCCT.HANDLING_CHARGE_MONEY"; TAX_TYPE="手续费"; } - if("PZ2018072400000060".equals(VOUCHERNO) || "PZ2018071000000005".equals(VOUCHERNO)||"PZ2018080300000069".equals(VOUCHERNO) || "PZ2018071000000006".equals(VOUCHERNO)||"PZ2018080300000071".equals(VOUCHERNO)) { - sql="SELECT IFNULL(LCCT.GPS_FEE, 0) AS GPS_FEE_FINANCE,IFNULL(LCCT.CAUTION_MONEY, 0) AS CAUTION_MONEY,IFNULL(LRPT.INTEREST, 0) AS INTEREST,IFNULL(LCCT.FIRST_PAYMENT, 0) + IFNULL(LCCT.CLEAN_LEASE_MONEY, 0) AS FIRST_ADD_FINANCING,IFNULL(LCCT.CLEAN_LEASE_MONEY, 0) - IFNULL(LCCT.HANDLING_CHARGE_MONEY, 0) - IFNULL(LCCT.CAUTION_MONEY, 0) - IFNULL(LCCT.GPS_FEE, 0) AS FINANCING_SUB_OTHERS,IFNULL(LCCT.FIRST_PAYMENT, 0) + IFNULL(LCCT.HANDLING_CHARGE_MONEY, 0) AS FIRST_ADD_HANDLING,IFNULL(LRPT.INTEREST, 0) + IFNULL(LCCT.HANDLING_CHARGE_MONEY/getTax(LCI.LEAS_FORM,'手续费',LCCT.START_DATE),0) AS INTEREST_ADD_HANDLING,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,LFIT.ACC_NUMBER,LPI.PRODUCT_ID FROM LC_CALC_CONDITION LCCT LEFT JOIN (SELECT LFIT.FLOWUNID,LFIT.CONTRACT_ID,MIN(LFIT.ACC_NUMBER) ACC_NUMBER,MIN(LFIT.EBANK_STATUS) AS EBANK_STATUS FROM LC_FUND_INCOME_TEMP LFIT WHERE lfit.FEE_TYPE = 'feetype10' AND LFIT.EBANK_STATUS = '05' GROUP BY FLOWUNID,CONTRACT_ID) LFIT ON LFIT.CONTRACT_ID = LCCT.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,SUM(INTEREST) AS INTEREST FROM lc_pay_rent_plan GROUP BY CONTRACT_ID)LRPT ON LRPT.CONTRACT_ID = LFIT.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = lfit.CONTRACT_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 LFIT.EBANK_STATUS = '05' AND LFIT.FLOWUNID = :FLOWUNID "; - // 普通购置融资租赁产 + + // 合同起租(一次性确认收入)-回租&&合同起租(按月分摊收入)--回租 + if("PZ2018071000000005".equals(VOUCHERNO) || "PZ2018071000000006".equals(VOUCHERNO)) { + sql="SELECT IFNULL(LCCT.GPS_FEE, 0) AS GPS_FEE_FINANCE,IFNULL(LCCT.CAUTION_MONEY, 0) AS CAUTION_MONEY,IFNULL(LRPT.INTEREST, 0) AS INTEREST,IFNULL(LCCT.FIRST_PAYMENT, 0) AS FIRST_ADD_FINANCING,IFNULL(LCCT.CLEAN_LEASE_MONEY, 0) - IFNULL(LCCT.HANDLING_CHARGE_MONEY, 0) - IFNULL(LCCT.CAUTION_MONEY, 0) - IFNULL(LCCT.GPS_FEE, 0) AS FINANCING_SUB_OTHERS,IFNULL(LCCT.FIRST_PAYMENT, 0) + IFNULL(LCCT.HANDLING_CHARGE_MONEY, 0) AS FIRST_ADD_HANDLING,IFNULL(LRPT.INTEREST, 0) + IFNULL(LCCT.HANDLING_CHARGE_MONEY/getTax(LCI.LEAS_FORM,'手续费',LCCT.START_DATE),0) AS INTEREST_ADD_HANDLING,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,LFIT.ACC_NUMBER,LPI.PRODUCT_ID FROM LC_CALC_CONDITION LCCT LEFT JOIN (SELECT LFIT.FLOWUNID,LFIT.CONTRACT_ID,MIN(LFIT.ACC_NUMBER) ACC_NUMBER,MIN(LFIT.EBANK_STATUS) AS EBANK_STATUS FROM LC_FUND_INCOME_TEMP LFIT WHERE lfit.FEE_TYPE = 'feetype10' AND LFIT.EBANK_STATUS = '05' GROUP BY FLOWUNID,CONTRACT_ID) LFIT ON LFIT.CONTRACT_ID = LCCT.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,SUM(INTEREST) AS INTEREST FROM lc_pay_rent_plan GROUP BY CONTRACT_ID)LRPT ON LRPT.CONTRACT_ID = LFIT.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = lfit.CONTRACT_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 LFIT.EBANK_STATUS = '05' AND LFIT.FLOWUNID = :FLOWUNID "; + // 合同起租-直租 + }else if("PZ2019070100000004".equals(VOUCHERNO)) { + sql="SELECT (IFNULL(LCCT.EQUIP_AMT, 0)-IFNULL(LCCT.FIRST_PAYMENT, 0)) AS MONEY,ROUND((IFNULL(LCCT.EQUIP_AMT, 0)-IFNULL(LCCT.FIRST_PAYMENT, 0))/getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS MONEYNOTAX,((IFNULL(LCCT.EQUIP_AMT, 0)-IFNULL(LCCT.FIRST_PAYMENT, 0))-ROUND((IFNULL(LCCT.EQUIP_AMT, 0)-IFNULL(LCCT.FIRST_PAYMENT, 0))/getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS MONEYTAX,IFNULL(LRPT.INTEREST, 0) AS INTEREST,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,LFIT.ACC_NUMBER,LPI.PRODUCT_ID FROM LC_CALC_CONDITION LCCT LEFT JOIN (SELECT LFIT.FLOWUNID,LFIT.CONTRACT_ID,MIN(LFIT.ACC_NUMBER) ACC_NUMBER,MIN(LFIT.EBANK_STATUS) AS EBANK_STATUS FROM LC_FUND_INCOME_TEMP LFIT WHERE lfit.FEE_TYPE = 'feetype10' AND LFIT.EBANK_STATUS = '05' GROUP BY FLOWUNID,CONTRACT_ID) LFIT ON LFIT.CONTRACT_ID = LCCT.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,SUM(INTEREST) AS INTEREST FROM lc_pay_rent_plan GROUP BY CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = LFIT.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = lfit.CONTRACT_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 LFIT.EBANK_STATUS = '05' AND LFIT.FLOWUNID = :FLOWUNID "; + // 购置融资租赁产-回租 }else if("PZ2018070900000002".equals(VOUCHERNO)) { sql="SELECT IFNULL(LCCT.GPS_FEE, 0) AS GPS_FEE_FINANCE,IFNULL(LCCT.CAUTION_MONEY, 0) AS CAUTION_MONEY,IFNULL(LCCT.FIRST_PAYMENT, 0) + IFNULL(LCCT.CLEAN_LEASE_MONEY, 0) AS FIRST_ADD_FINANCING,IFNULL(LCCT.CLEAN_LEASE_MONEY, 0) - IFNULL(LCCT.HANDLING_CHARGE_MONEY, 0) - IFNULL(LCCT.CAUTION_MONEY, 0) - IFNULL(LCCT.GPS_FEE, 0) AS FINANCING_SUB_OTHERS,IFNULL(LCCT.FIRST_PAYMENT, 0) + IFNULL(LCCT.HANDLING_CHARGE_MONEY, 0) AS FIRST_ADD_HANDLING,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,LFIT.ACC_NUMBER,LFIT.REQNBR,LPI.PRODUCT_ID,PSL.payType FROM LC_CALC_CONDITION LCCT LEFT JOIN (SELECT LFIT.FLOWUNID,LFIT.CONTRACT_ID,MIN(LFIT.ACC_NUMBER) ACC_NUMBER,MIN(LFICDT.REQNBR) AS REQNBR,MIN(LFIT.EBANK_STATUS) AS EBANK_STATUS FROM LC_FUND_INCOME_TEMP LFIT LEFT JOIN lc_fund_income_callback_detail_temp LFICDT ON LFICDT.cmb_pay_no = LFIT.CMB_PAY_NO AND LFIT.CONTRACT_ID=LFICDT.CONTRACT_ID WHERE lfit.FEE_TYPE = 'feetype10' GROUP BY CONTRACT_ID,FLOWUNID) LFIT ON LFIT.CONTRACT_ID = LCCT.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = lfit.CONTRACT_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 LEFT JOIN PRD_SPECIFIC_LIBRARY PSL ON PSL.PRODUCTID=LPI.PRODUCT_ID WHERE LPI.BUSINESSTYPE = '1' AND LFIT.EBANK_STATUS = '05' AND (PSL.operationType <>'DYCD' OR PSL.operationType IS NULL) AND LFIT.FLOWUNID = :FLOWUNID "; - //sql="SELECT IFNULL(LCCT.GPS_FEE, 0) AS GPS_FEE_FINANCE,IFNULL(LCCT.CAUTION_MONEY, 0) AS CAUTION_MONEY,IFNULL(LCCT.FIRST_PAYMENT, 0) + IFNULL(LCCT.CLEAN_LEASE_MONEY, 0) AS FIRST_ADD_FINANCING,IFNULL(LCCT.CLEAN_LEASE_MONEY, 0) - IFNULL(LCCT.HANDLING_CHARGE_MONEY, 0) - IFNULL(LCCT.CAUTION_MONEY, 0) - IFNULL(LCCT.GPS_FEE, 0) AS FINANCING_SUB_OTHERS,IFNULL(LCCT.FIRST_PAYMENT, 0) + IFNULL(LCCT.HANDLING_CHARGE_MONEY, 0) AS FIRST_ADD_HANDLING,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,LFIT.ACC_NUMBER,LFIT.REQNBR,LPI.PRODUCT_ID FROM LC_CALC_CONDITION LCCT LEFT JOIN (SELECT LFIT.FLOWUNID,LFIT.CONTRACT_ID,MIN(LFIT.ACC_NUMBER) ACC_NUMBER,MIN(LFICDT.REQNBR) AS REQNBR,MIN(LFIT.EBANK_STATUS) AS EBANK_STATUS FROM LC_FUND_INCOME_TEMP LFIT LEFT JOIN lc_fund_income_callback_detail_temp LFICDT ON LFICDT.cmb_pay_no = LFIT.CMB_PAY_NO WHERE lfit.FEE_TYPE = 'feetype10' GROUP BY CONTRACT_ID,FLOWUNID) LFIT ON LFIT.CONTRACT_ID = LCCT.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = lfit.CONTRACT_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 LEFT JOIN PRD_SPECIFIC_LIBRARY PSL ON PSL.PRODUCTID=LPI.PRODUCT_ID WHERE LPI.BUSINESSTYPE = '1' AND LFIT.EBANK_STATUS = '05' AND LFIT.FLOWUNID = :FLOWUNID "; - // 第一车贷购置融资租赁资产 + // 购置融资租赁产-直租 + }else if("PZ2019070100000003".equals(VOUCHERNO)) { + sql="SELECT ROUND(IFNULL(LCCT.EQUIP_AMT, 0)/getTax(lci.LEAS_FORM,'本金',LCCT.START_DATE),2) AS MONEY,(IFNULL(LCCT.EQUIP_AMT, 0)-ROUND(IFNULL(LCCT.EQUIP_AMT, 0)/getTax(lci.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS MONEYTAX,IFNULL(LCCT.CLEAN_LEASE_MONEY, 0) - IFNULL(LCCT.HANDLING_CHARGE_MONEY, 0) - IFNULL(LCCT.CAUTION_MONEY, 0) - IFNULL(LCCT.GPS_FEE, 0) AS FINANCING_SUB_OTHERS,IFNULL(LCCT.FIRST_PAYMENT, 0) + IFNULL(LCCT.HANDLING_CHARGE_MONEY, 0) AS FIRST_ADD_HANDLING,IFNULL(LCCT.GPS_FEE, 0) AS GPS_FEE_FINANCE,IFNULL(LCCT.CAUTION_MONEY, 0) AS CAUTION_MONEY,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,LFIT.ACC_NUMBER,LFIT.REQNBR,LPI.PRODUCT_ID,PSL.payType FROM LC_CALC_CONDITION LCCT LEFT JOIN (SELECT LFIT.FLOWUNID,LFIT.CONTRACT_ID,MIN(LFIT.ACC_NUMBER) ACC_NUMBER,MIN(LFICDT.REQNBR) AS REQNBR,MIN(LFIT.EBANK_STATUS) AS EBANK_STATUS FROM LC_FUND_INCOME_TEMP LFIT LEFT JOIN lc_fund_income_callback_detail_temp LFICDT ON LFICDT.cmb_pay_no = LFIT.CMB_PAY_NO AND LFIT.CONTRACT_ID = LFICDT.CONTRACT_ID WHERE lfit.FEE_TYPE = 'feetype10' GROUP BY CONTRACT_ID,FLOWUNID) LFIT ON LFIT.CONTRACT_ID = LCCT.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = lfit.CONTRACT_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 LEFT JOIN PRD_SPECIFIC_LIBRARY PSL ON PSL.PRODUCTID = LPI.PRODUCT_ID WHERE LPI.BUSINESSTYPE = '1' AND LFIT.EBANK_STATUS = '05' AND LFIT.FLOWUNID = :FLOWUNID "; + // 第一车贷购置融资租赁资产-回租 }else if("PZ2018073100000062".equals(VOUCHERNO)){ sql="SELECT IFNULL(LCCT.FIRST_PAYMENT, 0) + IFNULL(LCCT.CLEAN_LEASE_MONEY, 0) AS MONEY,IFNULL(LCCT.FIRST_PAYMENT, 0) AS MONEYNOTAX,IFNULL(LCCT.CLEAN_LEASE_MONEY, 0) 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,LFIT.ACC_NUMBER,LFIT.REQNBR,LPI.PRODUCT_ID,PSL.payType FROM LC_CALC_CONDITION LCCT LEFT JOIN (SELECT LFIT.FLOWUNID,LFIT.CONTRACT_ID,MIN(LFIT.ACC_NUMBER) ACC_NUMBER,MIN(LFICDT.REQNBR) AS REQNBR,MIN(LFIT.EBANK_STATUS) AS EBANK_STATUS FROM LC_FUND_INCOME_TEMP LFIT LEFT JOIN lc_fund_income_callback_detail_temp LFICDT ON LFICDT.cmb_pay_no = LFIT.CMB_PAY_NO WHERE lfit.FEE_TYPE = 'feetype10' GROUP BY CONTRACT_ID,FLOWUNID) LFIT ON LFIT.CONTRACT_ID = LCCT.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = lfit.CONTRACT_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 LEFT JOIN PRD_SPECIFIC_LIBRARY PSL ON PSL.PRODUCTID = LPI.PRODUCT_ID WHERE LPI.BUSINESSTYPE = '1' AND LFIT.EBANK_STATUS = '05' AND PSL.operationType = 'DYCD' AND LFIT.FLOWUNID = :FLOWUNID "; - //sql="SELECT IFNULL(LCCT.FIRST_PAYMENT, 0) + IFNULL(LCCT.CLEAN_LEASE_MONEY, 0) AS MONEY,IFNULL(LCCT.FIRST_PAYMENT, 0) AS MONEYNOTAX,IFNULL(LCCT.CLEAN_LEASE_MONEY, 0) 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,LFIT.ACC_NUMBER,LFIT.REQNBR,LPI.PRODUCT_ID FROM LC_CALC_CONDITION LCCT LEFT JOIN (SELECT LFIT.FLOWUNID,LFIT.CONTRACT_ID,MIN(LFIT.ACC_NUMBER) ACC_NUMBER,MIN(LFICDT.REQNBR) AS REQNBR,MIN(LFIT.EBANK_STATUS) AS EBANK_STATUS FROM LC_FUND_INCOME_TEMP LFIT LEFT JOIN lc_fund_income_callback_detail_temp LFICDT ON LFICDT.cmb_pay_no = LFIT.CMB_PAY_NO WHERE lfit.FEE_TYPE = 'feetype10' GROUP BY CONTRACT_ID,FLOWUNID) LFIT ON LFIT.CONTRACT_ID = LCCT.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = lfit.CONTRACT_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 LEFT JOIN PRD_SPECIFIC_LIBRARY PSL ON PSL.PRODUCTID=LPI.PRODUCT_ID WHERE LPI.BUSINESSTYPE = '1' AND LFIT.EBANK_STATUS = '05' AND LFIT.FLOWUNID = :FLOWUNID "; }else { sql="SELECT ROUND((getTax(lci.LEAS_FORM,'"+TAX_TYPE+"',LCCT.START_DATE)-1)*100,0) AS TAX_NUM,IFNULL("+moneyDataSource+", 0) AS MONEY,IFNULL(ROUND("+moneyDataSource+"/getTax (lci.LEAS_FORM,'"+TAX_TYPE+"',LCCT.START_DATE),2),0) AS MONEYNOTAX,IFNULL("+moneyDataSource+" - ROUND("+moneyDataSource+" / getTax (lci.LEAS_FORM,'"+TAX_TYPE+"',LCCT.START_DATE),2),0) 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,LFIT.ACC_NUMBER FROM LC_CALC_CONDITION LCCT LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,MIN(ACC_NUMBER) ACC_NUMBER,MIN(EBANK_STATUS) AS EBANK_STATUS FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype10' GROUP BY CONTRACT_ID,FLOWUNID) LFIT ON LFIT.CONTRACT_ID = LCCT.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = lfit.CONTRACT_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 LFIT.EBANK_STATUS= '05' AND lfit.FLOWUNID = :FLOWUNID "; } - //else if("PZ2018122000000010".equals(VOUCHERNO)){ - // sql="SELECT IFNULL(LCCT.GPS_FEE, 0) AS GPS_FEE_FINANCE,IFNULL(LCCT.CAUTION_MONEY, 0) AS CAUTION_MONEY,IFNULL(LRPT.INTEREST, 0) AS INTEREST,IFNULL(LCCT.FIRST_PAYMENT, 0) + IFNULL(LCCT.CLEAN_LEASE_MONEY, 0) AS FIRST_ADD_FINANCING,IFNULL(LCCT.CLEAN_LEASE_MONEY, 0) - IFNULL(LCCT.HANDLING_CHARGE_MONEY, 0) - IFNULL(LCCT.CAUTION_MONEY, 0) - IFNULL(LCCT.GPS_FEE, 0)+IFNULL(LFIT2.T_FIRST_MONEY,0) AS FINANCING_SUB_OTHERS,IFNULL(LCCT.FIRST_PAYMENT, 0) + IFNULL(LCCT.HANDLING_CHARGE_MONEY, 0)-IFNULL(LFIT2.T_FIRST_MONEY,0) AS FIRST_ADD_HANDLING,IFNULL(LRPT.INTEREST, 0) + IFNULL(LCCT.HANDLING_CHARGE_MONEY / getTax (LCI.LEAS_FORM,'手续费',LCCT.START_DATE),0) AS INTEREST_ADD_HANDLING,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,LFIT.ACC_NUMBER,LFIT.REQNBR,LPI.PRODUCT_ID FROM LC_CALC_CONDITION LCCT LEFT JOIN (SELECT LFIT.FLOWUNID,LFIT.CONTRACT_ID,MIN(LFIT.ACC_NUMBER) ACC_NUMBER,MIN(LFICDT.REQNBR) AS REQNBR FROM LC_FUND_INCOME_TEMP LFIT LEFT JOIN lc_fund_income_callback_detail_temp LFICDT ON LFICDT.cmb_pay_no = LFIT.CMB_PAY_NO WHERE lfit.FEE_TYPE = 'feetype10' GROUP BY CONTRACT_ID,FLOWUNID) LFIT ON LFIT.CONTRACT_ID = LCCT.CONTRACT_ID LEFT JOIN (SELECT MAX(LFIT.FACT_MONEY) T_FIRST_MONEY,LFIT.CONTRACT_ID FROM LC_FUND_INCOME_TEMP LFIT WHERE LFIT.FEE_TYPE='feetype27' GROUP BY LFIT.CONTRACT_ID)LFIT2 ON LFIT2.CONTRACT_ID=LFIT.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,SUM(INTEREST) AS INTEREST FROM LC_RENT_PLAN GROUP BY CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = LFIT.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = lfit.CONTRACT_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 LFIT.FLOWUNID = :FLOWUNID "; - //} // 手续费收入(一次性确认收入) - if("PZ2018071000000007".equals(VOUCHERNO)||"PZ2018080300000072".equals(VOUCHERNO) || "PZ2018071000000005".equals(VOUCHERNO)||"PZ2018080300000069".equals(VOUCHERNO)){ + if("PZ2018071000000007".equals(VOUCHERNO) || "PZ2018071000000005".equals(VOUCHERNO) || "PZ2019070100000005".equals(VOUCHERNO)){ sql+=" AND (lcct.HANDLING_CHARGE_MONEY_TYPE='0010' OR lcct.HANDLING_CHARGE_MONEY_TYPE IS NULL OR lcct.HANDLING_CHARGE_MONEY_TYPE='')"; } // 收到手续费(按月分摊收入) - if("PZ2018071000000009".equals(VOUCHERNO)||"PZ2018080300000073".equals(VOUCHERNO) || "PZ2018071000000006".equals(VOUCHERNO)||"PZ2018080300000071".equals(VOUCHERNO)){ + if("PZ2018071000000009".equals(VOUCHERNO) || "PZ2018071000000006".equals(VOUCHERNO) || "PZ2019070100000006".equals(VOUCHERNO)){ sql+=" AND lcct.HANDLING_CHARGE_MONEY_TYPE='0020' "; } @@ -155,25 +158,13 @@ public class CreateVoucherLoanDistributor { // 通过客户名称获取客户编码维护里面的数据, 如果有数据说明是集团内, 如果没有数据说明是集团外 BizObject cust_list1=JBOFactory.createBizObjectQuery(CUSTOMER_LIST.CLASS_NAME, "CUST_ID='"+DISTRIBUTOR_ID+"'").getSingleResult(false); BizObject cust_list2=JBOFactory.createBizObjectQuery(CUSTOMER_LIST.CLASS_NAME, "CUST_ID='"+CUSTID+"'").getSingleResult(false); - if("1".equals(BUSINESSTYPE)){ - if("PZ2018073100000061".equals(VOUCHERNO)||"PZ2018080300000068".equals(VOUCHERNO)){// 确认GPS收入 - param.put("CASHFLOW", "");// 现金流项目 - param.put("BUSINESSTYPE", "0601");// 主营类型 - }else if("PZ2018071000000007".equals(VOUCHERNO)||"PZ2018080300000072".equals(VOUCHERNO)){// 收取客户手续费 - param.put("CASHFLOW", "");// 现金流项目 - param.put("BUSINESSTYPE", "0604"); - }else if("PZ2018070900000002".equals(VOUCHERNO)||"PZ2018072400000060".equals(VOUCHERNO) || "PZ2018073100000062".equals(VOUCHERNO)){// 购置融资租赁资产 - if(cust_list1 != null || cust_list2 !=null) {// 集团内 - param.put("CASHFLOW", "11212");// 现金流项目 - }else {// 集团外 - param.put("CASHFLOW", "11213");// 现金流项目 - } - param.put("BUSINESSTYPE", ""); - }else { - param.put("CASHFLOW", "");// 现金流项目 - param.put("BUSINESSTYPE", "");// 主营类型 - } - } + + if(cust_list1 != null || cust_list2 !=null) {// 集团内 + param.put("CASHFLOW", "11212");// 现金流项目 + }else {// 集团外 + param.put("CASHFLOW", "11213");// 现金流项目 + } + param.put("BUSINESSTYPE", ""); param.put("FlowUnid", FlowUnid); map.clear(); @@ -258,13 +249,13 @@ public class CreateVoucherLoanDistributor { BizObject cust_list1=JBOFactory.createBizObjectQuery(CUSTOMER_LIST.CLASS_NAME, "CUST_ID='"+DISTRIBUTOR_ID+"'").getSingleResult(false); BizObject cust_list2=JBOFactory.createBizObjectQuery(CUSTOMER_LIST.CLASS_NAME, "CUST_ID='"+CUSTID+"'").getSingleResult(false); if("1".equals(BUSINESSTYPE)){ - if("PZ2018073100000061".equals(VOUCHERNO)||"PZ2018080300000068".equals(VOUCHERNO)){// 确认GPS收入 + if("PZ2018073100000061".equals(VOUCHERNO) || "PZ2019070100000001".equals(VOUCHERNO)){// 确认GPS收入 param.put("CASHFLOW", "");// 现金流项目 param.put("BUSINESSTYPE", "0601");// 主营类型 - }else if("PZ2018071000000007".equals(VOUCHERNO)||"PZ2018080300000072".equals(VOUCHERNO)){// 收取客户手续费 + }else if("PZ2018071000000007".equals(VOUCHERNO) || "PZ2019070100000005".equals(VOUCHERNO)){// 收取客户手续费 param.put("CASHFLOW", "");// 现金流项目 param.put("BUSINESSTYPE", "0604"); - }else if("PZ2018070900000002".equals(VOUCHERNO)||"PZ2018072400000060".equals(VOUCHERNO) || "PZ2018073100000062".equals(VOUCHERNO)){// 购置融资租赁资产 + }else if("PZ2018070900000002".equals(VOUCHERNO) || "PZ2019070100000003".equals(VOUCHERNO)){// 购置融资租赁资产 if(cust_list1 != null || cust_list2 !=null) {// 集团内 param.put("CASHFLOW", "11212");// 现金流项目 }else {// 集团外 @@ -289,7 +280,6 @@ public class CreateVoucherLoanDistributor { } } } - if(Sqlca!=null){ Sqlca.commit(); diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherRedCompensatory.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherRedCompensatory.java new file mode 100644 index 000000000..08f2e6a55 --- /dev/null +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherRedCompensatory.java @@ -0,0 +1,88 @@ +package com.tenwa.voucher.CreateVoucherProcess; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import jbo.voucher.LV_VOUCHER_CONFIG; +import com.amarsoft.are.jbo.BizObject; +import com.amarsoft.awe.util.Transaction; +import com.amarsoft.dict.als.cache.CacheLoaderFactory; +import com.tenwa.comm.util.jboutil.DataOperatorUtil; +import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl; +/** + * 生成代偿反冲凭证 + */ +public class CreateVoucherRedCompensatory { + + public void CreateVoucher(String VOUCHERNO,String userid,String LRP_ID) throws Exception{ + Transaction Sqlca =null; + Map map=new HashMap(); + Map param=new HashMap(); + Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource()); + String MONEY=null; + String ACCOUNT_DATE=null; + String FACT_DATE=null; + String CONTRACT_ID=null; + String leas_form=null; + String DISTRIBUTOR_ID=null; + String DISTRIBUTOR_NAME=null; + String BUSINESSTYPE=null; + String PLAN_LIST=null; + String F58=null; + + String sql=""; + param.clear(); + map.clear(); + + // 代偿反冲-收到的租金 + if("PZ2019071500000030".equals(VOUCHERNO)){ + sql="SELECT -V8.MONEY AS MONEY,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LRP.CONTRACT_ID,V8.DISTRIBUTOR_CODING AS DISTRIBUTOR_ID,V8.DISTRIBUTOR_NAME,LRP.PLAN_LIST,LRP.ID AS F58 FROM (SELECT SUM(F7) AS MONEY,MAX(F58) AS F58,MAX(F65) AS DISTRIBUTOR_CODING,MAX(F61) AS DISTRIBUTOR_NAME FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%收到代偿的租金%' AND F58='"+LRP_ID+"' AND F59=1 GROUP BY F3)V8 LEFT JOIN LC_RENT_PLAN LRP ON LRP.ID=V8.F58 LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID WHERE LCI.BUSINESSTYPE='1' AND IFNULL(V8.MONEY,0)>0 AND V8.F58 NOT IN(SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿反冲-收到的租金%' GROUP BY F58) "; + // 代偿反冲-收到的逾期利息 + }else if("PZ2019071500000031".equals(VOUCHERNO)){ + sql="SELECT -V8.MONEY AS MONEY,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LRP.CONTRACT_ID,V8.DISTRIBUTOR_CODING,V8.DISTRIBUTOR_NAME,LRP.PLAN_LIST,LRP.ID AS F58 FROM (SELECT SUM(F7) AS MONEY,MAX(F58) AS F58,MAX(F65) AS DISTRIBUTOR_CODING,MAX(F61) AS DISTRIBUTOR_NAME FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿逾期利息%' AND F58='"+LRP_ID+"' AND F59=1 GROUP BY F3)V8 LEFT JOIN LC_RENT_PLAN LRP ON LRP.ID=V8.F58 LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID WHERE LCI.BUSINESSTYPE='1' AND IFNULL(V8.MONEY,0)>0 AND V8.F58 NOT IN(SELECT F58 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%代偿反冲-收到的逾期利息%' GROUP BY F58) "; + } + + List> dataList=DataOperatorUtil.getDataBySql(Sqlca, sql, null); + + CreateVoucherServiceImpl vs=new CreateVoucherServiceImpl(); + String VOUCHER_TYPE="1";// 凭证分类 金蝶 + + for (int i=0;i '"+batch+"' AND XML_TYPE= '"+type+"'").getSingleResult(false); - if(old_record ==null) { - failed_count++; - }*/ } // 判断集合为否为null, 不为空遍历集合, 获取旧数据的批次号 @@ -618,6 +609,9 @@ public class VoucherToNCforAssistContract implements Job{ logger.info("导入成功"); // count不等于0说明有新数据, 否则就只有旧的错误数据, 不需要新增 if(count != 0 ) { + // 传输成功后将本批次数据变更为传输成功! + updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='1',ERR_DESCRIBE='传输成功 !' WHERE XML_TYPE= '"+type+"' AND BATCH='"+batch+"'"; + Sqlca.executeSQL(updateSql); // 将本次导入信息记录入记录总表 String insertSql1="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','0','导入成功 !','"+formatter2.format(new Date())+"')"; Sqlca.executeSQL(insertSql1); @@ -626,18 +620,9 @@ public class VoucherToNCforAssistContract implements Job{ if(batchList != null) { // 定义当前批次, 错误记录数 for (String old_batch : batchList) { - int con=0; - // 查询集合, 获取旧批次的失败总数 - String selectSql="SELECT BATCH,COUNT(BILLID) CON FROM ncxml_detail_records WHERE flag !=1 AND xml_type='"+type+"' AND BATCH='"+old_batch+"' GROUP BY BATCH;"; - List> dataList=DataOperatorUtil.getDataBySql(Sqlca, selectSql,null); - if(dataList!=null && dataList.size()>0) { - con=Integer.valueOf(dataList.get(0).get("CON")); - } - if(con==0) { - updateSql="UPDATE NCXML_TOTAL_RECORDS SET FLAG_='Y',FAILED_COUNT='0',ERR_DESCRIBE='"+resultdescription+"',CREATETIME='"+formatter2.format(new Date())+"' WHERE XML_TYPE='"+type+"' AND BATCH='"+old_batch+"'"; - }else { - updateSql="UPDATE NCXML_TOTAL_RECORDS SET FAILED_COUNT='"+con+"',ERR_DESCRIBE='"+resultdescription+"',CREATETIME='"+formatter2.format(new Date())+"' WHERE XML_TYPE='"+type+"' AND BATCH='"+old_batch+"'"; - } + updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='1',ERR_DESCRIBE='传输成功 !' WHERE XML_TYPE= '"+type+"' AND BATCH='"+old_batch+"'"; + Sqlca.executeSQL(updateSql); + updateSql="UPDATE NCXML_TOTAL_RECORDS SET FLAG_='Y',FAILED_COUNT='0',ERR_DESCRIBE='"+resultdescription+"',CREATETIME='"+formatter2.format(new Date())+"' WHERE XML_TYPE='"+type+"' AND BATCH='"+old_batch+"'"; Sqlca.executeSQL(updateSql); } } diff --git a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforCustomer.java b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforCustomer.java index 6c4ce9f01..62508a3cf 100644 --- a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforCustomer.java +++ b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforCustomer.java @@ -258,10 +258,13 @@ public class VoucherToNCforCustomer implements Job{ logger.info("客户记录语句: "+insertSql); count++; }else { - /*String updSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='1',ERR_DESCRIBE=null,CREATE_TIME='"+year_month_days+"' WHERE BILLID='"+uuid+"' AND XML_TYPE= '"+type+"'"; - Sqlca.executeSQL(updSql);*/ + // 统计旧批次 String batch1= record.getAttribute("BATCH").getString(); + // 初始化将就数据描述信息变更为: 传输失败 , 请联系管理员 + String updSql="UPDATE NCXML_DETAIL_RECORDS SET FLAG='2',ERR_DESCRIBE='传输失败 , 请联系管理员 !',CREATE_TIME='"+year_month_days+"' WHERE BILLID='"+uuid+"' AND XML_TYPE= '"+type+"' AND BATCH='"+batch1+"'"; + Sqlca1.executeSQL(updSql); logger.info("旧批次号记录: "+batch1); + logger.info("变更旧批次数据: "+updSql); if(batchList.indexOf(batch1) == -1) { batchList.add(batch1); } @@ -283,8 +286,6 @@ public class VoucherToNCforCustomer implements Job{ Sqlca.rollback(); if(batch!=null || !"".equals(batch)){ logger.debug("客户xml传输失败"); - /*String updateSql="UPDATE NCXML_DETAIL_RECORDS SET FLAG='2',ERR_DESCRIBE='传输过程中遇到异常, 请联系管理员 !' WHERE BATCH='"+batch+"'"; - Sqlca1.executeSQL(updateSql);*/ String insertSql="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','N','"+count+"','"+count+"','传输失败, 请联系管理员 !','"+year_month_days+"')"; Sqlca1.executeSQL(insertSql); Sqlca1.commit(); @@ -512,10 +513,13 @@ public class VoucherToNCforCustomer implements Job{ logger.info("客户记录语句: "+insertSql); count++; }else { - /*String updSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='1',ERR_DESCRIBE=null,CREATE_TIME='"+year_month_days+"' WHERE BILLID='"+uuid+"' AND XML_TYPE= '"+type+"'"; - Sqlca.executeSQL(updSql);*/ + // 统计旧批次 String batch1= record.getAttribute("BATCH").getString(); + // 初始化将就数据描述信息变更为: 传输失败 , 请联系管理员 + String updSql="UPDATE NCXML_DETAIL_RECORDS SET FLAG='2',ERR_DESCRIBE='传输失败 , 请联系管理员 !',CREATE_TIME='"+year_month_days+"' WHERE BILLID='"+uuid+"' AND XML_TYPE= '"+type+"' AND BATCH='"+batch1+"'"; + Sqlca1.executeSQL(updSql); logger.info("旧批次号记录: "+batch1); + logger.info("变更旧批次数据: "+updSql); if(batchList.indexOf(batch1) == -1) { batchList.add(batch1); } @@ -537,8 +541,6 @@ public class VoucherToNCforCustomer implements Job{ Sqlca.rollback(); if(batch!=null || !"".equals(batch)){ logger.debug("客户xml传输失败"); - /*String updateSql="UPDATE NCXML_DETAIL_RECORDS SET FLAG='2',ERR_DESCRIBE='传输过程中遇到异常, 请联系管理员 !' WHERE BATCH='"+batch+"'"; - Sqlca1.executeSQL(updateSql);*/ String insertSql="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','N','"+count+"','"+count+"','传输失败, 请联系管理员 !','"+year_month_days+"')"; Sqlca1.executeSQL(insertSql); Sqlca1.commit(); @@ -684,25 +686,15 @@ public class VoucherToNCforCustomer implements Job{ } } - /*// 查询不是本批次号的bdocid, 如果有值说明是之前传输错误的数据 - BizObject old_record=JBOFactory.createBizObjectQuery(NCXML_DETAIL_RECORDS.CLASS_NAME, "BILLID='"+bdocid+"' AND BATCH !='"+batch+"' AND XML_TYPE= '"+type+"'").getSingleResult(false); - if(old_record !=null || !"".equals(old_record)) { - // 如果状态为1, 说明已经变更, 传输成功. 执行upddate操作, 变更记录状态 - if(resultcode=="1" || "1".equals(resultcode)) { - updSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='"+resultcode+"',ERR_DESCRIBE=null,CREATE_TIME='"+formatter2+"' WHERE BILLID='"+bdocid+"' AND XML_TYPE= '"+type+"'"; - } - }*/ - /** * 根据回执信息, 变更明细表记录 */ + if("1".equals(resultcode)){ + resultdescription="传输成功 !"; + } updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='"+resultcode+"',ERR_DESCRIBE='"+resultdescription+"' WHERE BILLID='"+bdocid+"' AND XML_TYPE= '"+type+"'"; Sqlca.executeSQL(updateSql); logger.info("根据回执信息, 变更明细表数据记录"+updateSql); - /*BizObject old_record=JBOFactory.createBizObjectQuery(NCXML_DETAIL_RECORDS.CLASS_NAME, "BILLID='"+bdocid+"' AND BATCH <> '"+batch+"' AND XML_TYPE= '"+type+"'").getSingleResult(false); - if(old_record ==null) { - failed_count++; - }*/ } // 判断集合为否为null, 不为空遍历集合, 获取旧数据的批次号 @@ -752,6 +744,9 @@ public class VoucherToNCforCustomer implements Job{ logger.info("导入成功"); // count不等于0说明有新数据, 否则就只有旧的错误数据, 不需要新增 if(count != 0 ) { + // 传输成功后将本批次数据变更为传输成功! + updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='1',ERR_DESCRIBE='传输成功 !' WHERE XML_TYPE= '"+type+"' AND BATCH='"+batch+"'"; + Sqlca.executeSQL(updateSql); // 将本次导入信息记录入记录总表 String insertSql1="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','0','导入成功 !','"+formatter2.format(new Date())+"')"; Sqlca.executeSQL(insertSql1); @@ -760,18 +755,9 @@ public class VoucherToNCforCustomer implements Job{ if(batchList != null) { // 定义当前批次, 错误记录数 for (String old_batch : batchList) { - int con=0; - // 查询集合, 获取旧批次的失败总数 - String selectSql="SELECT BATCH,COUNT(BILLID) CON FROM ncxml_detail_records WHERE flag !=1 AND xml_type='"+type+"' AND BATCH='"+old_batch+"' GROUP BY BATCH;"; - List> dataList=DataOperatorUtil.getDataBySql(Sqlca, selectSql,null); - if(dataList!=null && dataList.size()>0) { - con=Integer.valueOf(dataList.get(0).get("CON")); - } - if(con==0) { - updateSql="UPDATE NCXML_TOTAL_RECORDS SET FLAG_='Y',FAILED_COUNT='0',ERR_DESCRIBE='"+resultdescription+"',CREATETIME='"+formatter2.format(new Date())+"' WHERE XML_TYPE='"+type+"' AND BATCH='"+old_batch+"'"; - }else { - updateSql="UPDATE NCXML_TOTAL_RECORDS SET FAILED_COUNT='"+con+"',ERR_DESCRIBE='"+resultdescription+"',CREATETIME='"+formatter2.format(new Date())+"' WHERE XML_TYPE='"+type+"' AND BATCH='"+old_batch+"'"; - } + updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='1',ERR_DESCRIBE='传输成功 !' WHERE XML_TYPE= '"+type+"' AND BATCH='"+old_batch+"'"; + Sqlca.executeSQL(updateSql); + updateSql="UPDATE NCXML_TOTAL_RECORDS SET FLAG_='Y',FAILED_COUNT='0',ERR_DESCRIBE='"+resultdescription+"',CREATETIME='"+formatter2.format(new Date())+"' WHERE XML_TYPE='"+type+"' AND BATCH='"+old_batch+"'"; Sqlca.executeSQL(updateSql); } } diff --git a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforDistributor.java b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforDistributor.java index 54fe6c595..0de70310b 100644 --- a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforDistributor.java +++ b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforDistributor.java @@ -330,10 +330,13 @@ public class VoucherToNCforDistributor implements Job{ logger.info("经销商记录语句: "+ insertSql); count++; }else { - /*String updSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='1',ERR_DESCRIBE=null,CREATE_TIME='"+year_month_days+"' WHERE BILLID='"+uuid+"' AND XML_TYPE= '"+type+"'"; - Sqlca.executeSQL(updSql);*/ + // 统计旧批次 String batch1= record.getAttribute("BATCH").getString(); + // 初始化将就数据描述信息变更为: 传输失败 , 请联系管理员 + String updSql="UPDATE NCXML_DETAIL_RECORDS SET FLAG='2',ERR_DESCRIBE='传输失败 , 请联系管理员 !',CREATE_TIME='"+year_month_days+"' WHERE BILLID='"+uuid+"' AND XML_TYPE= '"+type+"' AND BATCH='"+batch1+"'"; + Sqlca1.executeSQL(updSql); logger.info("旧批次号记录: "+batch1); + logger.info("变更旧批次数据: "+updSql); if(batchList.indexOf(batch1) == -1) { batchList.add(batch1); } @@ -355,8 +358,6 @@ public class VoucherToNCforDistributor implements Job{ Sqlca.rollback(); if(batch!=null || !"".equals(batch)){ logger.debug("经销商xml传输失败"); - /*String updateSql="UPDATE NCXML_DETAIL_RECORDS SET FLAG='2',ERR_DESCRIBE='传输过程中遇到异常, 请联系管理员 !' WHERE BATCH='"+batch+"'"; - Sqlca1.executeSQL(updateSql);*/ String insertSql="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','N','"+count+"','"+count+"','传输失败, 请联系管理员 !','"+year_month_days+"')"; Sqlca1.executeSQL(insertSql); Sqlca1.commit(); @@ -656,10 +657,13 @@ public class VoucherToNCforDistributor implements Job{ logger.info("经销商记录语句: "+ insertSql); count++; }else { - /*String updSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='1',ERR_DESCRIBE=null,CREATE_TIME='"+year_month_days+"' WHERE BILLID='"+uuid+"' AND XML_TYPE= '"+type+"'"; - Sqlca.executeSQL(updSql);*/ + // 统计旧批次 String batch1= record.getAttribute("BATCH").getString(); + // 初始化将就数据描述信息变更为: 传输失败 , 请联系管理员 + String updSql="UPDATE NCXML_DETAIL_RECORDS SET FLAG='2',ERR_DESCRIBE='传输失败 , 请联系管理员 !',CREATE_TIME='"+year_month_days+"' WHERE BILLID='"+uuid+"' AND XML_TYPE= '"+type+"' AND BATCH='"+batch1+"'"; + Sqlca1.executeSQL(updSql); logger.info("旧批次号记录: "+batch1); + logger.info("变更旧批次数据: "+updSql); if(batchList.indexOf(batch1) == -1) { batchList.add(batch1); } @@ -681,8 +685,6 @@ public class VoucherToNCforDistributor implements Job{ Sqlca.rollback(); if(batch!=null || !"".equals(batch)){ logger.debug("经销商xml传输失败"); - /*String updateSql="UPDATE NCXML_DETAIL_RECORDS SET FLAG='2',ERR_DESCRIBE='传输过程中遇到异常, 请联系管理员 !' WHERE BATCH='"+batch+"'"; - Sqlca1.executeSQL(updateSql);*/ String insertSql="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','N','"+count+"','"+count+"','传输失败, 请联系管理员 !','"+year_month_days+"')"; Sqlca1.executeSQL(insertSql); Sqlca1.commit(); @@ -827,25 +829,15 @@ public class VoucherToNCforDistributor implements Job{ } } - /*// 查询不是本批次号的bdocid, 如果有值说明是之前传输错误的数据 - BizObject old_record=JBOFactory.createBizObjectQuery(NCXML_DETAIL_RECORDS.CLASS_NAME, "BILLID='"+bdocid+"' AND BATCH !='"+batch+"' AND XML_TYPE= '"+type+"'").getSingleResult(false); - if(old_record !=null || !"".equals(old_record)) { - // 如果状态为1, 说明已经变更, 传输成功. 执行upddate操作, 变更记录状态 - if(resultcode=="1" || "1".equals(resultcode)) { - updSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='"+resultcode+"',ERR_DESCRIBE=null,CREATE_TIME='"+formatter2+"' WHERE BILLID='"+bdocid+"' AND XML_TYPE= '"+type+"'"; - } - }*/ - /** * 根据回执信息, 变更明细表记录 */ + if("1".equals(resultcode)){ + resultdescription="传输成功 !"; + } updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='"+resultcode+"',ERR_DESCRIBE='"+resultdescription+"' WHERE BILLID='"+bdocid+"' AND XML_TYPE= '"+type+"'"; Sqlca.executeSQL(updateSql); logger.info("根据回执信息, 变更明细表数据记录"+updateSql); - /*BizObject old_record=JBOFactory.createBizObjectQuery(NCXML_DETAIL_RECORDS.CLASS_NAME, "BILLID='"+bdocid+"' AND BATCH <> '"+batch+"' AND XML_TYPE= '"+type+"'").getSingleResult(false); - if(old_record ==null) { - failed_count++; - }*/ } // 判断集合为否为null, 不为空遍历集合, 获取旧数据的批次号 @@ -895,6 +887,9 @@ public class VoucherToNCforDistributor implements Job{ logger.info("导入成功"); // count不等于0说明有新数据, 否则就只有旧的错误数据, 不需要新增 if(count != 0 ) { + // 传输成功后将本批次数据变更为传输成功! + updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='1',ERR_DESCRIBE='传输成功 !' WHERE XML_TYPE= '"+type+"' AND BATCH='"+batch+"'"; + Sqlca.executeSQL(updateSql); // 将本次导入信息记录入记录总表 String insertSql1="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','0','导入成功 !','"+formatter2.format(new Date())+"')"; Sqlca.executeSQL(insertSql1); @@ -903,18 +898,9 @@ public class VoucherToNCforDistributor implements Job{ if(batchList != null) { // 定义当前批次, 错误记录数 for (String old_batch : batchList) { - int con=0; - // 查询集合, 获取旧批次的失败总数 - String selectSql="SELECT BATCH,COUNT(BILLID) CON FROM ncxml_detail_records WHERE flag !=1 AND xml_type='"+type+"' AND BATCH='"+old_batch+"' GROUP BY BATCH;"; - List> dataList=DataOperatorUtil.getDataBySql(Sqlca, selectSql,null); - if(dataList!=null && dataList.size()>0) { - con=Integer.valueOf(dataList.get(0).get("CON")); - } - if(con==0) { - updateSql="UPDATE NCXML_TOTAL_RECORDS SET FLAG_='Y',FAILED_COUNT='0',ERR_DESCRIBE='"+resultdescription+"',CREATETIME='"+formatter2.format(new Date())+"' WHERE XML_TYPE='"+type+"' AND BATCH='"+old_batch+"'"; - }else { - updateSql="UPDATE NCXML_TOTAL_RECORDS SET FAILED_COUNT='"+con+"',ERR_DESCRIBE='"+resultdescription+"',CREATETIME='"+formatter2.format(new Date())+"' WHERE XML_TYPE='"+type+"' AND BATCH='"+old_batch+"'"; - } + updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='1',ERR_DESCRIBE='传输成功 !' WHERE XML_TYPE= '"+type+"' AND BATCH='"+old_batch+"'"; + Sqlca.executeSQL(updateSql); + updateSql="UPDATE NCXML_TOTAL_RECORDS SET FLAG_='Y',FAILED_COUNT='0',ERR_DESCRIBE='"+resultdescription+"',CREATETIME='"+formatter2.format(new Date())+"' WHERE XML_TYPE='"+type+"' AND BATCH='"+old_batch+"'"; Sqlca.executeSQL(updateSql); } } diff --git a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforVoucherPZ.java b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforVoucherPZ.java index b5537f8c2..fd3fb7022 100644 --- a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforVoucherPZ.java +++ b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforVoucherPZ.java @@ -534,7 +534,11 @@ public class VoucherToNCforVoucherPZ implements Job{ }else { // 统计旧批次 String batch1= record.getAttribute("BATCH").getString(); - logger.info("记录旧批次: "+batch1); + // 初始化将就数据描述信息变更为: 传输失败 , 请联系管理员 + String updSql="UPDATE NCXML_DETAIL_RECORDS SET FLAG='2',ERR_DESCRIBE='传输失败 , 请联系管理员 !',CREATE_TIME='"+year_month_days+"' WHERE BILLID='"+uuid+"' AND XML_TYPE= '"+type+"' AND BATCH='"+batch1+"'"; + Sqlca1.executeSQL(updSql); + logger.info("旧批次号记录: "+batch1); + logger.info("变更旧批次数据: "+updSql); if(batchList.indexOf(batch1) == -1) { batchList.add(batch1); } @@ -559,8 +563,6 @@ public class VoucherToNCforVoucherPZ implements Job{ Sqlca.rollback(); if(batch!=null || !"".equals(batch)){ logger.debug("凭证xml传输失败"); - /*String updateSql="UPDATE NCXML_DETAIL_RECORDS SET FLAG='2',ERR_DESCRIBE='传输过程中遇到异常, 请联系管理员 !' WHERE BATCH='"+batch+"'"; - Sqlca1.executeSQL(updateSql);*/ String insertSql="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','N','"+count+"','"+count+"','传输失败, 请联系管理员 !','"+year_month_days+"')"; Sqlca1.executeSQL(insertSql); Sqlca1.commit(); @@ -707,25 +709,15 @@ public class VoucherToNCforVoucherPZ implements Job{ } } - /*// 查询不是本批次号的bdocid, 如果有值说明是之前传输错误的数据 - BizObject old_record=JBOFactory.createBizObjectQuery(NCXML_DETAIL_RECORDS.CLASS_NAME, "BILLID='"+bdocid+"' AND BATCH !='"+batch+"' AND XML_TYPE= '"+type+"'").getSingleResult(false); - if(old_record !=null || !"".equals(old_record)) { - // 如果状态为1, 说明已经变更, 传输成功. 执行upddate操作, 变更记录状态 - if(resultcode=="1" || "1".equals(resultcode)) { - updSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='"+resultcode+"',ERR_DESCRIBE=null,CREATE_TIME='"+formatter2+"' WHERE BILLID='"+bdocid+"' AND XML_TYPE= '"+type+"'"; - } - }*/ - /** * 根据回执信息, 变更明细表记录 */ + if("1".equals(resultcode)){ + resultdescription="传输成功 !"; + } updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='"+resultcode+"',ERR_DESCRIBE='"+resultdescription+"' WHERE BILLID='"+bdocid+"' AND XML_TYPE= '"+type+"'"; Sqlca.executeSQL(updateSql); logger.info("根据回执信息, 变更明细表数据记录"+updateSql); - /*BizObject old_record=JBOFactory.createBizObjectQuery(NCXML_DETAIL_RECORDS.CLASS_NAME, "BILLID='"+bdocid+"' AND BATCH <> '"+batch+"' AND XML_TYPE= '"+type+"'").getSingleResult(false); - if(old_record ==null) { - failed_count++; - }*/ } // 判断集合为否为null, 不为空遍历集合, 获取旧数据的批次号 @@ -775,6 +767,9 @@ public class VoucherToNCforVoucherPZ implements Job{ logger.info("导入成功"); // count不等于0说明有新数据, 否则就只有旧的错误数据, 不需要新增 if(count != 0 ) { + // 传输成功后将本批次数据变更为传输成功! + updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='1',ERR_DESCRIBE='传输成功 !' WHERE XML_TYPE= '"+type+"' AND BATCH='"+batch+"'"; + Sqlca.executeSQL(updateSql); // 将本次导入信息记录入记录总表 String insertSql1="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','0','导入成功 !','"+formatter2.format(new Date())+"')"; Sqlca.executeSQL(insertSql1); @@ -783,18 +778,9 @@ public class VoucherToNCforVoucherPZ implements Job{ if(batchList != null) { // 定义当前批次, 错误记录数 for (String old_batch : batchList) { - int con=0; - // 查询集合, 获取旧批次的失败总数 - String selectSql="SELECT BATCH,COUNT(BILLID) CON FROM ncxml_detail_records WHERE flag !=1 AND xml_type='"+type+"' AND BATCH='"+old_batch+"' GROUP BY BATCH;"; - List> dataList=DataOperatorUtil.getDataBySql(Sqlca, selectSql,null); - if(dataList!=null && dataList.size()>0) { - con=Integer.valueOf(dataList.get(0).get("CON")); - } - if(con==0) { - updateSql="UPDATE NCXML_TOTAL_RECORDS SET FLAG_='Y',FAILED_COUNT='0',ERR_DESCRIBE='"+resultdescription+"',CREATETIME='"+formatter2.format(new Date())+"' WHERE XML_TYPE='"+type+"' AND BATCH='"+old_batch+"'"; - }else { - updateSql="UPDATE NCXML_TOTAL_RECORDS SET FAILED_COUNT='"+con+"',ERR_DESCRIBE='"+resultdescription+"',CREATETIME='"+formatter2.format(new Date())+"' WHERE XML_TYPE='"+type+"' AND BATCH='"+old_batch+"'"; - } + updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='1',ERR_DESCRIBE='传输成功 !' WHERE XML_TYPE= '"+type+"' AND BATCH='"+old_batch+"'"; + Sqlca.executeSQL(updateSql); + updateSql="UPDATE NCXML_TOTAL_RECORDS SET FLAG_='Y',FAILED_COUNT='0',ERR_DESCRIBE='"+resultdescription+"',CREATETIME='"+formatter2.format(new Date())+"' WHERE XML_TYPE='"+type+"' AND BATCH='"+old_batch+"'"; Sqlca.executeSQL(updateSql); } }