三期相关代码

This commit is contained in:
xiezhiwen 2019-12-24 17:28:52 +08:00
parent 57e30374af
commit 2a974fa3b8
33 changed files with 1254 additions and 791 deletions

View File

@ -4,17 +4,19 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jbo.app.tenwa.customer.CUSTOMER_LIST;
import jbo.voucher.LV_VOUCHER_CONFIG;
import jbo.voucher.TAX_CODE;
import com.amarsoft.app.util.ProductParamUtil;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.dict.als.cache.CacheLoaderFactory;
import com.itextpdf.text.log.SysoCounter;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.flow.baseBussion.BaseBussiness;
import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl;
import jbo.app.tenwa.customer.CUSTOMER_LIST;
import jbo.voucher.LV_VOUCHER_CONFIG;
import jbo.voucher.TAX_CODE;
/**
* 传统实际付款后生成凭证
* @author xiezhiwen
@ -44,6 +46,7 @@ public class CreateVoucherActualPaymentTradition extends BaseBussiness{
String HANDLING_CHARGE_MONEY_NOTAX=null;// 手续费(不含税)
String HANDLING_CHARGE_MONEY_TAX=null; // 手续费(税金)
String OTHERS_MATH=null; // 设备款+其他-首付款-保证金-手续费
String GPS_FEE=null; // GPS费用
String ACCOUNT_DATE=null; // 记账日期
String FACT_DATE=null; // 实际付款日期
String CONTRACT_ID=null; // 合同id
@ -60,23 +63,25 @@ public class CreateVoucherActualPaymentTradition extends BaseBussiness{
String TAX_NUM=null; // 银行账号
String sql="";
if (("PZ2018092500000159".equals(VOUCHERNO)) || ("PZ2018092500000162".equals(VOUCHERNO))
|| ("PZ2018092500000164".equals(VOUCHERNO)) || ("PZ2018092500000166".equals(VOUCHERNO))
|| ("PZ2018092500000169".equals(VOUCHERNO)) || ("PZ2019071800000036".equals(VOUCHERNO))
|| ("PZ2019071800000038".equals(VOUCHERNO)) || ("PZ2019071800000039".equals(VOUCHERNO))
|| ("PZ2019071800000040".equals(VOUCHERNO)) || ("PZ2019071800000041".equals(VOUCHERNO))
|| ("PZ2019071800000037".equals(VOUCHERNO))) {
sql = "SELECT ROUND((getTax(lci.LEAS_FORM,'本金',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LFIT1.EQUIP, 0) AS EQUIP,ROUND(IFNULL(LFIT1.EQUIP, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS EQUIPNOTAX,(IFNULL(LFIT1.EQUIP, 0) - ROUND(IFNULL(LFIT1.EQUIP, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS EQUIPTAX,ROUND((ROUND(IFNULL(LFIT1.EQUIP, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)+IFNULL(LFIT2.OTHER_MONEY, 0)),2) AS EQUIPNOTAX_OTHER,IFNULL(LFIT1.EQUIP, 0) + IFNULL(LFIT2.OTHER_MONEY, 0) AS EQUIP_OTHER,IFNULL(LFIT3.FIRST_PAYMENT, 0) AS FIRST_PAYMENT,ROUND(IFNULL(LFIT3.FIRST_PAYMENT, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS FIRST_PAYMENT_NOTAX,(IFNULL(LFIT3.FIRST_PAYMENT, 0) - ROUND(IFNULL(LFIT3.FIRST_PAYMENT, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS FIRST_PAYMENT_TAX,IFNULL(LFIT4.GUARANTY, 0) AS GUARANTY,IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) AS HANDLING_CHARGE_MONEY,ROUND(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS HANDLING_CHARGE_MONEY_NOTAX,(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) - ROUND(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS HANDLING_CHARGE_MONEY_TAX,(IFNULL(LFIT1.EQUIP, 0) + IFNULL(LFIT2.OTHER_MONEY, 0) - IFNULL(LFIT3.FIRST_PAYMENT, 0) - IFNULL(LFIT4.GUARANTY, 0) - IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0)) AS OTHERS_MATH,CASE WHEN DATE_FORMAT(NOW(), '%Y/%m') > DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m') THEN DATE_FORMAT(LFIT1.ACCOUNTING_DATE,'%Y/%m/%d') ELSE DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m/%d') END AS ACCOUNT_DATE,DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m/%d') AS FACT_DATE,LFIT1.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT1.ACC_NUMBER AS ACC_NUMBER FROM (SELECT FLOWUNID,CONTRACT_ID,MAX(FACT_DATE) AS FACT_DATE,MAX(ACCOUNTING_DATE) AS ACCOUNTING_DATE,MAX(ACC_NUMBER) AS ACC_NUMBER,SUM(FACT_MONEY) AS EQUIP FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype10' GROUP BY FLOWUNID,CONTRACT_ID) LFIT1 LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS OTHER_MONEY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype29' GROUP BY FLOWUNID,CONTRACT_ID) LFIT2 ON LFIT2.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS FIRST_PAYMENT FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype5' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT3 ON LFIT3.FLOWUNID = LFIT1.FLOWUNID AND LFIT3.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS GUARANTY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype2' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT4 ON LFIT4.FLOWUNID = LFIT1.FLOWUNID AND LFIT4.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS HANDLING_CHARGE_MONEY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype1' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT5 ON LFIT5.FLOWUNID = LFIT1.FLOWUNID AND LFIT5.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT1.CONTRACT_ID = LCI.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 = '2' AND LUL.IS_MAIN = 'Y' AND LFIT1.FLOWUNID = :FLOWUNID ";
} else if (("PZ2019072000000077".equals(VOUCHERNO)) || ("PZ2019072000000078".equals(VOUCHERNO))
|| ("PZ2019072000000079".equals(VOUCHERNO)) || ("PZ2019072000000080".equals(VOUCHERNO))
|| ("PZ2019072000000081".equals(VOUCHERNO)) || ("PZ2019072200000112".equals(VOUCHERNO))
|| ("PZ2019072200000113".equals(VOUCHERNO)) || ("PZ2019072200000114".equals(VOUCHERNO))
|| ("PZ2019072200000115".equals(VOUCHERNO)) || ("PZ2019072200000116".equals(VOUCHERNO))
|| ("PZ2019072200000117".equals(VOUCHERNO))) {
sql = "SELECT ROUND((getTax (lci.LEAS_FORM,'本金',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LFIT1.EQUIP, 0) AS EQUIP,ROUND(IFNULL(LFIT1.EQUIP, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS EQUIPNOTAX,(IFNULL(LFIT1.EQUIP, 0) - ROUND(IFNULL(LFIT1.EQUIP, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS EQUIPTAX,IFNULL(LFIT1.EQUIP, 0) + IFNULL(LFIT2.OTHER_MONEY, 0) AS EQUIP_OTHER,IFNULL(LFIT3.FIRST_PAYMENT, 0) AS FIRST_PAYMENT,ROUND(IFNULL(LFIT3.FIRST_PAYMENT, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS FIRST_PAYMENT_NOTAX,(IFNULL(LFIT3.FIRST_PAYMENT, 0) - ROUND(IFNULL(LFIT3.FIRST_PAYMENT, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS FIRST_PAYMENT_TAX,IFNULL(LFIT4.GUARANTY, 0) AS GUARANTY,IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) AS HANDLING_CHARGE_MONEY,ROUND(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS HANDLING_CHARGE_MONEY_NOTAX,(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) - ROUND(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS HANDLING_CHARGE_MONEY_TAX,(IFNULL(LFIT1.EQUIP, 0) + IFNULL(LFIT2.OTHER_MONEY, 0) - IFNULL(LFIT3.FIRST_PAYMENT, 0) - IFNULL(LFIT4.GUARANTY, 0) - IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0)) AS OTHERS_MATH,CASE WHEN DATE_FORMAT(NOW(), '%Y/%m') > DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m') THEN DATE_FORMAT(LFIT1.ACCOUNTING_DATE,'%Y/%m/%d') ELSE DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m/%d') END AS ACCOUNT_DATE,DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m/%d') AS FACT_DATE,LFIT1.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT1.ACC_NUMBER AS ACC_NUMBER FROM (SELECT FLOWUNID,CONTRACT_ID,MAX(FACT_DATE) AS FACT_DATE,MAX(ACCOUNTING_DATE) AS ACCOUNTING_DATE,MAX(ACC_NUMBER) AS ACC_NUMBER,SUM(FACT_MONEY) AS EQUIP FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype10' GROUP BY FLOWUNID,CONTRACT_ID) LFIT1 LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS OTHER_MONEY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype29' GROUP BY FLOWUNID,CONTRACT_ID) LFIT2 ON LFIT2.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS FIRST_PAYMENT FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype5' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT3 ON LFIT3.FLOWUNID = LFIT1.FLOWUNID AND LFIT3.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS GUARANTY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype2' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT4 ON LFIT4.FLOWUNID = LFIT1.FLOWUNID AND LFIT4.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS HANDLING_CHARGE_MONEY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype1' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT5 ON LFIT5.FLOWUNID = LFIT1.FLOWUNID AND LFIT5.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT1.CONTRACT_ID = LCI.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 = '3' AND LUL.IS_MAIN = 'Y' AND LFIT1.FLOWUNID = :FLOWUNID ";
// 传统回租
if("PZ2018092500000159".equals(VOUCHERNO) || "PZ2018092500000162".equals(VOUCHERNO) || "PZ2018092500000164".equals(VOUCHERNO) || "PZ2018092500000166".equals(VOUCHERNO) || "PZ2019122300000165".equals(VOUCHERNO) || "PZ2018092500000169".equals(VOUCHERNO)){
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'本金',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LFIT1.EQUIP, 0) AS EQUIP,ROUND(IFNULL(LFIT1.EQUIP, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS EQUIPNOTAX,(IFNULL(LFIT1.EQUIP, 0) - ROUND(IFNULL(LFIT1.EQUIP, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS EQUIPTAX,ROUND((ROUND(IFNULL(LFIT1.EQUIP, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)+IFNULL(LFIT2.OTHER_MONEY, 0)),2) AS EQUIPNOTAX_OTHER,IFNULL(LFIT1.EQUIP, 0) + IFNULL(LFIT2.OTHER_MONEY, 0) AS EQUIP_OTHER,IFNULL(LFIT3.FIRST_PAYMENT, 0) AS FIRST_PAYMENT,ROUND(IFNULL(LFIT3.FIRST_PAYMENT, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS FIRST_PAYMENT_NOTAX,(IFNULL(LFIT3.FIRST_PAYMENT, 0) - ROUND(IFNULL(LFIT3.FIRST_PAYMENT, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS FIRST_PAYMENT_TAX,IFNULL(LFIT4.GUARANTY, 0) AS GUARANTY,IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) AS HANDLING_CHARGE_MONEY,ROUND(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS HANDLING_CHARGE_MONEY_NOTAX,(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) - ROUND(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS HANDLING_CHARGE_MONEY_TAX,(IFNULL(LFIT1.EQUIP, 0) + IFNULL(LFIT2.OTHER_MONEY, 0) - IFNULL(LFIT3.FIRST_PAYMENT, 0) - IFNULL(LFIT4.GUARANTY, 0) - IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0)) AS OTHERS_MATH,CASE WHEN DATE_FORMAT(NOW(), '%Y/%m') > DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m') THEN DATE_FORMAT(LFIT1.ACCOUNTING_DATE,'%Y/%m/%d') ELSE DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m/%d') END AS ACCOUNT_DATE,DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m/%d') AS FACT_DATE,LFIT1.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT1.ACC_NUMBER AS ACC_NUMBER FROM (SELECT FLOWUNID,CONTRACT_ID,MAX(FACT_DATE) AS FACT_DATE,MAX(ACCOUNTING_DATE) AS ACCOUNTING_DATE,MAX(ACC_NUMBER) AS ACC_NUMBER,SUM(FACT_MONEY) AS EQUIP FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype10' GROUP BY FLOWUNID,CONTRACT_ID) LFIT1 LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS OTHER_MONEY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype29' GROUP BY FLOWUNID,CONTRACT_ID) LFIT2 ON LFIT2.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS FIRST_PAYMENT FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype5' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT3 ON LFIT3.FLOWUNID = LFIT1.FLOWUNID AND LFIT3.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS GUARANTY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype2' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT4 ON LFIT4.FLOWUNID = LFIT1.FLOWUNID AND LFIT4.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS HANDLING_CHARGE_MONEY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype1' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT5 ON LFIT5.FLOWUNID = LFIT1.FLOWUNID AND LFIT5.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT1.CONTRACT_ID = LCI.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 = '2' AND LUL.IS_MAIN = 'Y' AND LCI.LEAS_FORM='02' AND LFIT1.FLOWUNID = :FLOWUNID ";
// 传统直租
}else if("PZ2019071800000036".equals(VOUCHERNO) || "PZ2019071800000038".equals(VOUCHERNO) || "PZ2019071800000039".equals(VOUCHERNO) || "PZ2019071800000040".equals(VOUCHERNO) || "PZ2019071800000041".equals(VOUCHERNO) || "PZ2019071800000037".equals(VOUCHERNO)){
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'本金',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LFIT1.EQUIP, 0) AS EQUIP,ROUND(IFNULL(LFIT1.EQUIP, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS EQUIPNOTAX,(IFNULL(LFIT1.EQUIP, 0) - ROUND(IFNULL(LFIT1.EQUIP, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS EQUIPTAX,ROUND((ROUND(IFNULL(LFIT1.EQUIP, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)+IFNULL(LFIT2.OTHER_MONEY, 0)),2) AS EQUIPNOTAX_OTHER,IFNULL(LFIT1.EQUIP, 0) + IFNULL(LFIT2.OTHER_MONEY, 0) AS EQUIP_OTHER,IFNULL(LFIT3.FIRST_PAYMENT, 0) AS FIRST_PAYMENT,ROUND(IFNULL(LFIT3.FIRST_PAYMENT, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS FIRST_PAYMENT_NOTAX,(IFNULL(LFIT3.FIRST_PAYMENT, 0) - ROUND(IFNULL(LFIT3.FIRST_PAYMENT, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS FIRST_PAYMENT_TAX,IFNULL(LFIT4.GUARANTY, 0) AS GUARANTY,IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) AS HANDLING_CHARGE_MONEY,ROUND(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS HANDLING_CHARGE_MONEY_NOTAX,(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) - ROUND(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS HANDLING_CHARGE_MONEY_TAX,(IFNULL(LFIT1.EQUIP, 0) + IFNULL(LFIT2.OTHER_MONEY, 0) - IFNULL(LFIT3.FIRST_PAYMENT, 0) - IFNULL(LFIT4.GUARANTY, 0) - IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0)) AS OTHERS_MATH,CASE WHEN DATE_FORMAT(NOW(), '%Y/%m') > DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m') THEN DATE_FORMAT(LFIT1.ACCOUNTING_DATE,'%Y/%m/%d') ELSE DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m/%d') END AS ACCOUNT_DATE,DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m/%d') AS FACT_DATE,LFIT1.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT1.ACC_NUMBER AS ACC_NUMBER FROM (SELECT FLOWUNID,CONTRACT_ID,MAX(FACT_DATE) AS FACT_DATE,MAX(ACCOUNTING_DATE) AS ACCOUNTING_DATE,MAX(ACC_NUMBER) AS ACC_NUMBER,SUM(FACT_MONEY) AS EQUIP FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype10' GROUP BY FLOWUNID,CONTRACT_ID) LFIT1 LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS OTHER_MONEY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype29' GROUP BY FLOWUNID,CONTRACT_ID) LFIT2 ON LFIT2.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS FIRST_PAYMENT FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype5' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT3 ON LFIT3.FLOWUNID = LFIT1.FLOWUNID AND LFIT3.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS GUARANTY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype2' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT4 ON LFIT4.FLOWUNID = LFIT1.FLOWUNID AND LFIT4.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS HANDLING_CHARGE_MONEY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype1' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT5 ON LFIT5.FLOWUNID = LFIT1.FLOWUNID AND LFIT5.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT1.CONTRACT_ID = LCI.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 = '2' AND LUL.IS_MAIN = 'Y' AND LCI.LEAS_FORM='01' AND LFIT1.FLOWUNID = :FLOWUNID ";
// 汽车类传统-回租
}else if("PZ2019072000000078".equals(VOUCHERNO) || "PZ2019072000000079".equals(VOUCHERNO) || "PZ2019072000000080".equals(VOUCHERNO) || "PZ2019122300000166".equals(VOUCHERNO) || "PZ2019072000000081".equals(VOUCHERNO)){
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'本金',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LCCT.CLEAN_LEASE_MONEY,0) AS MONEY,CASE WHEN IFNULL(LFIT6.CONTRIBUTIVE_MONEY,0)=0 THEN IFNULL(LCCT.unite_money,0) ELSE 0 END AS INTERESTNOTAX,IFNULL(LFIT3.FIRST_PAYMENT, 0) AS FIRST_PAYMENT,ROUND(IFNULL(LFIT3.FIRST_PAYMENT, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS FIRST_PAYMENT_NOTAX,(IFNULL(LFIT3.FIRST_PAYMENT, 0) - ROUND(IFNULL(LFIT3.FIRST_PAYMENT, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS FIRST_PAYMENT_TAX,IFNULL(LFIT4.GUARANTY, 0) AS GUARANTY,IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) AS HANDLING_CHARGE_MONEY,ROUND(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS HANDLING_CHARGE_MONEY_NOTAX,(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) - ROUND(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS HANDLING_CHARGE_MONEY_TAX,(IFNULL(LCCT.CLEAN_LEASE_MONEY,0) + CASE WHEN IFNULL(LFIT6.CONTRIBUTIVE_MONEY,0)=0 THEN IFNULL(LCCT.unite_money,0) ELSE 0 END - IFNULL(LFIT3.FIRST_PAYMENT, 0) - IFNULL(LFIT4.GUARANTY, 0) - IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0)-IFNULL(LCCT.GPS_FEE,0)) AS OTHERS_MATH,IFNULL(LCCT.GPS_FEE,0) AS GPS_FEE,CASE WHEN DATE_FORMAT(NOW(), '%Y/%m') > DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m') THEN DATE_FORMAT(LFIT1.ACCOUNTING_DATE,'%Y/%m/%d') ELSE DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m/%d') END AS ACCOUNT_DATE,DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m/%d') AS FACT_DATE,LFIT1.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT1.ACC_NUMBER AS ACC_NUMBER FROM (SELECT FLOWUNID,CONTRACT_ID,MAX(FACT_DATE) AS FACT_DATE,MAX(ACCOUNTING_DATE) AS ACCOUNTING_DATE,MAX(ACC_NUMBER) AS ACC_NUMBER,SUM(FACT_MONEY) AS EQUIP FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype10' GROUP BY FLOWUNID,CONTRACT_ID) LFIT1 LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS OTHER_MONEY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype29' GROUP BY FLOWUNID,CONTRACT_ID) LFIT2 ON LFIT2.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS FIRST_PAYMENT FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype5' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT3 ON LFIT3.FLOWUNID = LFIT1.FLOWUNID AND LFIT3.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS GUARANTY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype2' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT4 ON LFIT4.FLOWUNID = LFIT1.FLOWUNID AND LFIT4.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS HANDLING_CHARGE_MONEY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype1' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT5 ON LFIT5.FLOWUNID = LFIT1.FLOWUNID AND LFIT5.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS CONTRIBUTIVE_MONEY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype32' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT6 ON LFIT6.FLOWUNID = LFIT1.FLOWUNID AND LFIT6.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT1.CONTRACT_ID = LCI.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 = '3' AND LUL.IS_MAIN = 'Y' AND LCI.LEAS_FORM='02' AND LFIT1.FLOWUNID = :FLOWUNID ";
// 汽车类传统-直租
}else if("PZ2019072200000112".equals(VOUCHERNO) || "PZ2019072200000113".equals(VOUCHERNO) || "PZ2019072200000114".equals(VOUCHERNO) || "PZ2019072200000115".equals(VOUCHERNO) || "PZ2019072200000116".equals(VOUCHERNO) || "PZ2019072200000117".equals(VOUCHERNO)){
sql="SELECT ROUND((getTax (lci.LEAS_FORM,'本金',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LFIT1.EQUIP, 0) AS EQUIP,ROUND(IFNULL(LFIT1.EQUIP, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS EQUIPNOTAX,(IFNULL(LFIT1.EQUIP, 0) - ROUND(IFNULL(LFIT1.EQUIP, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS EQUIPTAX,IFNULL(LFIT1.EQUIP, 0) + IFNULL(LFIT2.OTHER_MONEY, 0) AS EQUIP_OTHER,IFNULL(LFIT3.FIRST_PAYMENT, 0) AS FIRST_PAYMENT,ROUND(IFNULL(LFIT3.FIRST_PAYMENT, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS FIRST_PAYMENT_NOTAX,(IFNULL(LFIT3.FIRST_PAYMENT, 0) - ROUND(IFNULL(LFIT3.FIRST_PAYMENT, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS FIRST_PAYMENT_TAX,IFNULL(LFIT4.GUARANTY, 0) AS GUARANTY,IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) AS HANDLING_CHARGE_MONEY,ROUND(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS HANDLING_CHARGE_MONEY_NOTAX,(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) - ROUND(IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS HANDLING_CHARGE_MONEY_TAX,(IFNULL(LFIT1.EQUIP, 0) + IFNULL(LFIT2.OTHER_MONEY, 0) - IFNULL(LFIT3.FIRST_PAYMENT, 0) - IFNULL(LFIT4.GUARANTY, 0) - IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0)) AS OTHERS_MATH,CASE WHEN DATE_FORMAT(NOW(), '%Y/%m') > DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m') THEN DATE_FORMAT(LFIT1.ACCOUNTING_DATE,'%Y/%m/%d') ELSE DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m/%d') END AS ACCOUNT_DATE,DATE_FORMAT(LFIT1.FACT_DATE, '%Y/%m/%d') AS FACT_DATE,LFIT1.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT1.ACC_NUMBER AS ACC_NUMBER FROM (SELECT FLOWUNID,CONTRACT_ID,MAX(FACT_DATE) AS FACT_DATE,MAX(ACCOUNTING_DATE) AS ACCOUNTING_DATE,MAX(ACC_NUMBER) AS ACC_NUMBER,SUM(FACT_MONEY) AS EQUIP FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype10' GROUP BY FLOWUNID,CONTRACT_ID) LFIT1 LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS OTHER_MONEY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype29' GROUP BY FLOWUNID,CONTRACT_ID) LFIT2 ON LFIT2.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS FIRST_PAYMENT FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype5' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT3 ON LFIT3.FLOWUNID = LFIT1.FLOWUNID AND LFIT3.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS GUARANTY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype2' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT4 ON LFIT4.FLOWUNID = LFIT1.FLOWUNID AND LFIT4.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,SUM(FACT_MONEY) AS HANDLING_CHARGE_MONEY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype1' AND SETTLE_METHOD = 'settlemethod11' GROUP BY FLOWUNID,CONTRACT_ID) LFIT5 ON LFIT5.FLOWUNID = LFIT1.FLOWUNID AND LFIT5.CONTRACT_ID = LFIT1.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT1.CONTRACT_ID = LCI.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 = '3' AND LUL.IS_MAIN = 'Y' AND LCI.LEAS_FORM='01' AND LFIT1.FLOWUNID = :FLOWUNID ";
// 放款-确认GPS收入-汽车类传统回租
}else if("PZ2019090500000004".equals(VOUCHERNO)){
sql="SELECT ROUND((getTax (lci.LEAS_FORM,'GPS',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LCCT.GPS_FEE,0) AS MONEY,ROUND(IFNULL(LCCT.GPS_FEE,0)/getTax(LCI.LEAS_FORM,'GPS',LCCT.START_DATE),2) AS INTERESTNOTAX,(IFNULL(LCCT.GPS_FEE,0)-ROUND(IFNULL(LCCT.GPS_FEE,0)/getTax(LCI.LEAS_FORM,'GPS',LCCT.START_DATE),2)) AS TAX,CASE WHEN DATE_FORMAT(NOW(), '%Y/%m') > DATE_FORMAT(LFIT.FACT_DATE, '%Y/%m') THEN DATE_FORMAT(LFIT.ACCOUNTING_DATE,'%Y/%m/%d') ELSE DATE_FORMAT(LFIT.FACT_DATE, '%Y/%m/%d') END AS ACCOUNT_DATE,DATE_FORMAT(LFIT.FACT_DATE, '%Y/%m/%d') AS FACT_DATE,LFIT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT.ACC_NUMBER AS ACC_NUMBER FROM (SELECT FLOWUNID,CONTRACT_ID,MAX(FACT_DATE) AS FACT_DATE,MAX(ACCOUNTING_DATE) AS ACCOUNTING_DATE,MAX(ACC_NUMBER) AS ACC_NUMBER,SUM(FACT_MONEY) AS EQUIP FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype10' GROUP BY FLOWUNID,CONTRACT_ID) LFIT LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT.CONTRACT_ID = LCI.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 = '3' AND LUL.IS_MAIN = 'Y' AND LCI.LEAS_FORM='02' AND IFNULL(LCCT.GPS_FEE,0)>0 AND LFIT.FLOWUNID = :FLOWUNID ";
}
// 非差额放款
if (("PZ2018092500000159".equals(VOUCHERNO)) || ("PZ2019071800000036".equals(VOUCHERNO)) || ("PZ2019072000000077".equals(VOUCHERNO)) || ("PZ2019072200000112".equals(VOUCHERNO))) {
if("PZ2018092500000159".equals(VOUCHERNO) || "PZ2019071800000036".equals(VOUCHERNO) || "PZ2019072200000112".equals(VOUCHERNO)){
sql+=" AND (IFNULL(LFIT3.FIRST_PAYMENT,0) = 0 AND IFNULL(LFIT4.GUARANTY,0) =0 AND IFNULL(LFIT5.HANDLING_CHARGE_MONEY ,0) = 0)";
// 差额-经销商支付的预付款(首付)
}else if("PZ2018092500000162".equals(VOUCHERNO) || "PZ2019071800000038".equals(VOUCHERNO) || "PZ2019072000000078".equals(VOUCHERNO) || "PZ2019072200000113".equals(VOUCHERNO)) {
@ -85,19 +90,19 @@ public class CreateVoucherActualPaymentTradition extends BaseBussiness{
}else if("PZ2018092500000164".equals(VOUCHERNO) || "PZ2019071800000039".equals(VOUCHERNO) || "PZ2019072000000079".equals(VOUCHERNO) || "PZ2019072200000114".equals(VOUCHERNO)) {
sql+=" AND IFNULL(LFIT4.GUARANTY,0) <> 0 ";
// 收到客户手续费
}else if("PZ2018092500000166".equals(VOUCHERNO) || "PZ2019071800000040".equals(VOUCHERNO) || "PZ2019071800000041".equals(VOUCHERNO) || "PZ2019072000000080".equals(VOUCHERNO) || "PZ2019072200000115".equals(VOUCHERNO) || "PZ2019072200000116".equals(VOUCHERNO)) {
}else if("PZ2018092500000166".equals(VOUCHERNO) || "PZ2019122300000165".equals(VOUCHERNO) || "PZ2019071800000040".equals(VOUCHERNO) || "PZ2019071800000041".equals(VOUCHERNO) || "PZ2019072000000080".equals(VOUCHERNO) || "PZ2019122300000166".equals(VOUCHERNO) || "PZ2019072200000115".equals(VOUCHERNO) || "PZ2019072200000116".equals(VOUCHERNO)) {
sql+=" AND IFNULL(LFIT5.HANDLING_CHARGE_MONEY ,0) <> 0 ";
// 给经销商放款-差额放款
} else if (("PZ2018092500000169".equals(VOUCHERNO)) || ("PZ2019072000000081".equals(VOUCHERNO)) || ("PZ2019072200000117".equals(VOUCHERNO))) {
}else if("PZ2018092500000169".equals(VOUCHERNO) || "PZ2019072200000117".equals(VOUCHERNO)) {
sql+=" AND (IFNULL(LFIT3.FIRST_PAYMENT,0) <> 0 OR IFNULL(LFIT4.GUARANTY,0) <> 0 OR IFNULL(LFIT5.HANDLING_CHARGE_MONEY ,0) <> 0)";
}
// 手续费收入一次性确认收入
if("PZ2019071800000040".equals(VOUCHERNO) || "PZ2019072200000115".equals(VOUCHERNO)){
if("PZ2019071800000040".equals(VOUCHERNO) || "PZ2019072200000115".equals(VOUCHERNO) || "PZ2018092500000166".equals(VOUCHERNO) || "PZ2019072000000080".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("PZ2019071800000041".equals(VOUCHERNO) || "PZ2019072200000116".equals(VOUCHERNO)){
if("PZ2019071800000041".equals(VOUCHERNO) || "PZ2019072200000116".equals(VOUCHERNO) || "PZ2019122300000165".equals(VOUCHERNO) || "PZ2019122300000166".equals(VOUCHERNO)){
sql+=" AND lcct.HANDLING_CHARGE_MONEY_TYPE='0020' ";
}
@ -129,6 +134,7 @@ public class CreateVoucherActualPaymentTradition extends BaseBussiness{
HANDLING_CHARGE_MONEY_NOTAX=dataList.get(i).get("HANDLING_CHARGE_MONEY_NOTAX");// 不含税手续费
HANDLING_CHARGE_MONEY_TAX=dataList.get(i).get("HANDLING_CHARGE_MONEY_TAX");// 手续费税金
OTHERS_MATH=dataList.get(i).get("OTHERS_MATH");// 设备款+其他-首付款-保证金-手续费
GPS_FEE=dataList.get(i).get("GPS_FEE"); // GPS费用
ACCOUNT_DATE=dataList.get(i).get("ACCOUNT_DATE");// 会计日期
FACT_DATE=dataList.get(i).get("FACT_DATE");// 实际付款日期
CONTRACT_ID=dataList.get(i).get("CONTRACT_ID");// 合同id
@ -166,6 +172,7 @@ public class CreateVoucherActualPaymentTradition extends BaseBussiness{
param.put("HANDLING_CHARGE_MONEY_NOTAX",HANDLING_CHARGE_MONEY_NOTAX);
param.put("HANDLING_CHARGE_MONEY_TAX",HANDLING_CHARGE_MONEY_TAX);
param.put("OTHERS_MATH",OTHERS_MATH);
param.put("GPS_FEE_FINANCE",GPS_FEE);
param.put("ACCOUNT_DATE",ACCOUNT_DATE);
param.put("FACT_DATE",FACT_DATE);
param.put("CONTRACT_ID",CONTRACT_ID);
@ -187,9 +194,11 @@ public class CreateVoucherActualPaymentTradition extends BaseBussiness{
// 通过客户名称获取客户编码维护里面的数据, 如果有数据说明是集团内, 如果没有数据说明是集团外
BizObject cust_list=JBOFactory.createBizObjectQuery(CUSTOMER_LIST.CLASS_NAME, "CUST_ID='"+CUSTOMERID+"'").getSingleResult(false);
// 收到客户手续费
if("PZ2018092500000166".equals(VOUCHERNO) || "PZ2019071800000040".equals(VOUCHERNO) || "PZ2019071800000041".equals(VOUCHERNO) || "PZ2019072000000080".equals(VOUCHERNO) || "PZ2019072200000115".equals(VOUCHERNO) || "PZ2019072200000116".equals(VOUCHERNO)){
if("PZ2018092500000166".equals(VOUCHERNO) || "PZ2019122300000165".equals(VOUCHERNO) || "PZ2019071800000040".equals(VOUCHERNO) || "PZ2019071800000041".equals(VOUCHERNO) || "PZ2019072000000080".equals(VOUCHERNO) || "PZ2019122300000166".equals(VOUCHERNO) || "PZ2019072200000115".equals(VOUCHERNO) || "PZ2019072200000116".equals(VOUCHERNO)){
param.put("CASHFLOW", "");// 现金流项目
param.put("BUSINESSTYPE", "0604");// 主营类型
}else if("PZ2019090500000004".equals(VOUCHERNO)){
param.put("BUSINESSTYPE", "0601");// 主营类型
}
// 给供应商放款-非差额放款/给经销商放款-差额放款, 用来判断集团内外的现金流辅助项

View File

@ -51,8 +51,14 @@ public class CreateVoucherCustCautionMoneyIncome extends BaseBussiness {
map.put("FlowUnid", FlowUnid);
map.put("FEE_TYPE", FeeType);
sql = "SELECT ROUND((getTax (lci.LEAS_FORM,'Áô¹º¼Û',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LFIT.FACT_MONEY, 0) AS MONEY,IFNULL(ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'Áô¹º¼Û',lcct.start_date),2),0) AS MONEYNOTAX,IFNULL((LFIT.FACT_MONEY - ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'Áô¹º¼Û',lcct.start_date),2)),0) AS MONEYTAX,DATE_FORMAT(CASE WHEN (LFIT.ACCOUNTING_DATE IS NOT NULL OR LFIT.ACCOUNTING_DATE != '') THEN LFIT.ACCOUNTING_DATE ELSE NOW() END,'%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(CASE WHEN (LFIT.FACT_DATE IS NOT NULL OR LFIT.FACT_DATE != '') THEN LFIT.FACT_DATE ELSE NOW() END,'%Y/%m/%d') AS FACT_DATE,LFIT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT.ACC_NUMBER FROM LC_FUND_INCOME_TEMP LFIT LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT.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 LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID WHERE LPI.BUSINESSTYPE = '1' AND LUL.IS_MAIN = 'Y' AND LFIT.FEE_TYPE = :FEE_TYPE AND LFIT.FLOWUNID = :FLOWUNID ";
sql = "SELECT ROUND((getTax (lci.LEAS_FORM,'手续费',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LFIT.FACT_MONEY, 0) AS MONEY,IFNULL(ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'留购价',lcct.start_date),2),0) AS MONEYNOTAX,IFNULL((LFIT.FACT_MONEY - ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'留购价',lcct.start_date),2)),0) AS MONEYTAX,DATE_FORMAT(CASE WHEN (LFIT.ACCOUNTING_DATE IS NOT NULL OR LFIT.ACCOUNTING_DATE != '') THEN LFIT.ACCOUNTING_DATE ELSE NOW() END,'%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(CASE WHEN (LFIT.FACT_DATE IS NOT NULL OR LFIT.FACT_DATE != '') THEN LFIT.FACT_DATE ELSE NOW() END,'%Y/%m/%d') AS FACT_DATE,LFIT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT.ACC_NUMBER FROM LC_FUND_INCOME_TEMP LFIT LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT.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 LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID WHERE LPI.BUSINESSTYPE = '1' AND LUL.IS_MAIN = 'Y' AND LFIT.FEE_TYPE = :FEE_TYPE AND LFIT.FLOWUNID = :FLOWUNID ";
// 区分手续费是一次性还是按月分摊
if("PZ2019121600000163".equals(VOUCHERNO)) {
sql+=" AND (lcct.HANDLING_CHARGE_MONEY_TYPE='0010' OR lcct.HANDLING_CHARGE_MONEY_TYPE IS NULL OR lcct.HANDLING_CHARGE_MONEY_TYPE='')";
// 按月
}else if("PZ2019121700000164".equals(VOUCHERNO)) {
sql+=" AND lcct.HANDLING_CHARGE_MONEY_TYPE='0020' ";
}
// 查询sql, 将结果集封装到list集合中
List<Map<String, String>> dataList = DataOperatorUtil.getDataBySql(Sqlca, sql, map);
CreateVoucherServiceImpl vs = new CreateVoucherServiceImpl();
@ -116,6 +122,8 @@ public class CreateVoucherCustCautionMoneyIncome extends BaseBussiness {
param.put("BUSINESSTYPE", "0602");// 主营类型
}else if("PZ2018072100000031".equals(VOUCHERNO) || "PZ2019070100000019".equals(VOUCHERNO)) {
param.put("BUSINESSTYPE", "0605");// 主营类型
}else if("PZ2019121600000163".equals(VOUCHERNO)) {
param.put("BUSINESSTYPE", "0604");// 主营类型
}
// param.put("FUNDTYPE", ""); // 主营类型
param.put("FlowUnid", FlowUnid);

View File

@ -45,8 +45,8 @@ public class CreateVoucherEbankMoney {
map.put("FLOWUNID", flowunid);
// 回款-多余回款分解
if("PZ2019070100000018".equals(VOUCHERNO) || "PZ2019073000000146".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,CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) ELSE CIF.CUSTOMER_NUM END AS CUSTOMERID,CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) ELSE CIF.CUSTOMERNAME END AS CUSTOMERNAME,LPI.BUSINESSTYPE,LE.EBANK_SN FROM (SELECT LRI.EBANK_NUMBER,MAX(LRI.CONTRACT_ID) AS CONTRACT_ID,MAX(LRIT.FLOWUNID) AS FLOWUNID FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_INCOME_TEMP LRIT ON LRIT.CONTRACT_ID=LRI.CONTRACT_ID AND LRIT.PLAN_LIST=LRI.PLAN_LIST AND LRIT.HIRE_LIST=LRI.HIRE_LIST WHERE LRI.RENT > 0 GROUP BY LRI.EBANK_NUMBER)LRIT LEFT JOIN LC_EBANK LE ON LE.ID = LRIT.EBANK_NUMBER 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 LUL.IS_MAIN = 'Y' AND IFNULL(LE.MAYOPE_MONEY, 0) > 0 AND LE.EBANK_SN NOT IN (SELECT MAX(F57) AS F57 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%回款-多余回款分解%' GROUP BY F3) AND LRIT.FLOWUNID = '"+flowunid+"'";
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,CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) ELSE CIF.CUSTOMER_NUM END AS CUSTOMERID,CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) ELSE CIF.CUSTOMERNAME END AS CUSTOMERNAME,LPI.BUSINESSTYPE,LE.EBANK_SN FROM (SELECT MAX(CONTRACT_ID) AS CONTRACT_ID,EBANK_NUMBER FROM LC_RENT_INCOME WHERE RENT > 0 GROUP BY EBANK_NUMBER) LRI LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID FROM LC_RENT_INCOME_TEMP GROUP BY FLOWUNID,CONTRACT_ID) LRIT ON LRIT.CONTRACT_ID = LRI.CONTRACT_ID LEFT JOIN LC_EBANK LE ON LE.ID = 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 LUL.IS_MAIN = 'Y' AND IFNULL(LE.MAYOPE_MONEY, 0) > 0 AND LE.EBANK_SN NOT IN (SELECT MAX(F57) AS F57 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%回款-多余回款分解%' GROUP BY F3) AND LRIT.FLOWUNID = '"+flowunid+"' ";
//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,CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) ELSE CIF.CUSTOMER_NUM END AS CUSTOMERID,CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) ELSE CIF.CUSTOMERNAME END AS CUSTOMERNAME,LPI.BUSINESSTYPE,LE.EBANK_SN FROM (SELECT MAX(CONTRACT_ID) AS CONTRACT_ID,EBANK_NUMBER FROM LC_RENT_INCOME WHERE RENT > 0 GROUP BY EBANK_NUMBER) LRI LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID FROM LC_RENT_INCOME_TEMP GROUP BY FLOWUNID,CONTRACT_ID) LRIT ON LRIT.CONTRACT_ID = LRI.CONTRACT_ID LEFT JOIN LC_EBANK LE ON LE.ID = 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 LUL.IS_MAIN = 'Y' AND IFNULL(LE.MAYOPE_MONEY, 0) > 0 AND LE.EBANK_SN NOT IN (SELECT MAX(F57) AS F57 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%回款-多余回款分解%' GROUP BY F3) AND LRIT.FLOWUNID = '"+flowunid+"' ";
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,CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) ELSE CIF.CUSTOMER_NUM END AS CUSTOMERID,CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) ELSE CIF.CUSTOMERNAME END AS CUSTOMERNAME,LPI.BUSINESSTYPE,LE.EBANK_SN FROM (SELECT FLOWUNID,MAX(CONTRACT_ID) AS CONTRACT_ID,EBANK_NUMBER FROM LC_RENT_INCOME_TEMP GROUP BY FLOWUNID,EBANK_NUMBER) LRIT LEFT JOIN LC_EBANK LE ON LE.ID = LRIT.EBANK_NUMBER 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 LUL.IS_MAIN = 'Y' AND IFNULL(LE.MAYOPE_MONEY, 0) > 0 AND LE.EBANK_SN NOT IN (SELECT MAX(F57) AS F57 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%回款-多余回款分解%' GROUP BY F3) AND LRIT.FLOWUNID = '"+flowunid+"' ";
}else if("PZ2019070100000024".equals(VOUCHERNO) || "PZ2019073000000147".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,CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) ELSE CIF.CUSTOMER_NUM END AS CUSTOMERID,CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) ELSE CIF.CUSTOMERNAME END AS CUSTOMERNAME,LPI.BUSINESSTYPE,LE.EBANK_SN FROM (SELECT LRI.EBANK_NUMBER,MAX(LRI.CONTRACT_ID) AS CONTRACT_ID,MAX(LRIT.FLOWUNID) AS FLOWUNID FROM LC_RENT_INCOME LRI LEFT JOIN LC_RENT_INCOME_TEMP LRIT ON LRIT.CONTRACT_ID=LRI.CONTRACT_ID AND LRIT.PLAN_LIST=LRI.PLAN_LIST AND LRIT.HIRE_LIST=LRI.HIRE_LIST WHERE LRI.RENT < 0 GROUP BY LRI.EBANK_NUMBER)LRIT LEFT JOIN LC_EBANK LE ON LE.ID = LRIT.EBANK_NUMBER 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 LUL.IS_MAIN = 'Y' AND IFNULL(LE.MAYOPE_MONEY, 0) > 0 AND LE.EBANK_SN NOT IN (SELECT MAX(F57) AS F57 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%回款反冲-多余回款分解%' GROUP BY F3) AND LRIT.FLOWUNID = '"+flowunid+"' ";
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,CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) ELSE CIF.CUSTOMER_NUM END AS CUSTOMERID,CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID=LE.CUSTOMER_ID) ELSE CIF.CUSTOMERNAME END AS CUSTOMERNAME,LPI.BUSINESSTYPE,LE.EBANK_SN,LRIT.FLOWUNID FROM (SELECT FLOWUNID,EBANK_NUMBER,MAX(CONTRACT_ID) AS CONTRACT_ID FROM LC_RENT_INCOME_TEMP GROUP BY FLOWUNID,EBANK_NUMBER) LRIT LEFT JOIN LC_EBANK LE ON LE.ID = LRIT.EBANK_NUMBER 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 LUL.IS_MAIN = 'Y' AND IFNULL(LE.MAYOPE_MONEY, 0) > 0 AND LE.EBANK_SN NOT IN (SELECT MAX(F57) AS F57 FROM VOUCHER_V8 WHERE MODULE_NAME LIKE '%回款反冲-多余回款分解%' GROUP BY F3) AND LRIT.FLOWUNID = '"+flowunid+"' ";

View File

@ -0,0 +1,98 @@
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 CreateVoucherForOtherPay {
public String CreateVoucher(String FlowUnid,String VOUCHERNO,String userid) throws Exception {
Transaction Sqlca =null;
Map<String,String> map=new HashMap<String, String>();
Map<String,String> param=new HashMap<String, String>();
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
String MONEY=null;
String MONEYNOTAX=null;
String MONEYTAX=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 BUSINESSTYPE=null;
String ACC_NUMBER=null;
String sql="";
param.clear();
map.put("FlowUnid", FlowUnid);
// 客户多余还款退回
if("PZ2018072100000051".equals(VOUCHERNO)) {
sql="SELECT IFNULL(LE.RETURN_MONEY,0) AS MONEY,'0.00' AS MONEYNOTAX,'0.00' 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,CASE WHEN LCI.LEAS_FORM IS NULL THEN '02' ELSE LCI.LEAS_FORM END AS LEAS_FORM,CASE WHEN CI.CUSTOMER_NUM IS NOT NULL THEN CI.CUSTOMER_NUM WHEN CI2.CUSTOMER_NUM IS NOT NULL THEN CI2.CUSTOMER_NUM ELSE 'APZL00000000DC' END AS CUSTOMERID,CASE WHEN CI.CUSTOMERNAME IS NOT NULL THEN CI.CUSTOMERNAME WHEN CI2.CUSTOMERNAME IS NOT NULL THEN CI2.CUSTOMERNAME ELSE 'APZL00000000DC' END AS CUSTOMERNAME,LCI.BUSINESSTYPE,LE.OWNACC_NUMBER FROM LC_EBANK_TEMP LE LEFT JOIN (SELECT EBANK_NUMBER,MAX(CONTRACT_ID) AS CONTRACT_ID FROM LC_RENT_INCOME GROUP BY EBANK_NUMBER )LRI ON LRI.EBANK_NUMBER=LE.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 LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID=LCI.ID AND LUL.IS_MAIN='Y' LEFT JOIN CUSTOMER_INFO CI ON CI.CUSTOMERID=LUL.CUSTOMER_ID LEFT JOIN CUSTOMER_INFO CI2 ON CI2.CUSTOMERID=LE.CUSTOMER_ID WHERE LE.FLOWUNID=:FLOWUNID";
}
List<Map<String,String>> dataList=DataOperatorUtil.getDataBySql(Sqlca, sql, map);
CreateVoucherServiceImpl vs=new CreateVoucherServiceImpl();
String VOUCHER_TYPE="1";// 凭证分类 金蝶
for (int i=0;i<dataList.size();i++){
MONEY=dataList.get(i).get("MONEY");
if("".equals(MONEY)||MONEY==null) MONEY="0.00";
double mon=Double.parseDouble(MONEY);
if(mon>0){
MONEYNOTAX=dataList.get(i).get("MONEYNOTAX");
MONEYTAX=dataList.get(i).get("MONEYTAX");
ACCOUNT_DATE=dataList.get(i).get("ACCOUNT_DATE");
FACT_DATE =dataList.get(i).get("FACT_DATE");
CONTRACT_ID=dataList.get(i).get("CONTRACT_ID");
CONTRACT_NUMBER=dataList.get(i).get("CONTRACT_NUMBER");
leas_form="02";
CUSTID=dataList.get(i).get("CUSTOMERID");
CUSTNAME=dataList.get(i).get("CUSTOMERNAME");
BUSINESSTYPE=dataList.get(i).get("BUSINESSTYPE");
ACC_NUMBER=dataList.get(i).get("OWNACC_NUMBER");
param.put("FACT_MONEY",MONEY);
param.put("INTERESTNOTAX",MONEYNOTAX);
param.put("TAX",MONEYTAX);
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("BUSINESSTYPE",BUSINESSTYPE);
param.put("ACC_NUMBER",ACC_NUMBER);
param.put("VOUCHERNO",VOUCHERNO);
param.put("CASHFLOW", "11113");// 现金流项目
param.put("FlowUnid", FlowUnid);
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, Sqlca);
}
}
}
if(Sqlca!=null){
Sqlca.commit();
}
String sMessage="true";
return sMessage;
}
}

View File

@ -29,6 +29,7 @@ public class CreateVoucherLoanDistributor {
String MONEYTAX=null;
String GPS_FEE_FINANCE=null;
String CAUTION_MONEY=null;
String HANDLING_CHARGE_MONEY=null;
String INTEREST=null;
String FIRST_ADD_FINANCING=null;//首付款+融资额
String FINANCING_SUB_OTHERS=null;//首付款+融资额-首付款-手续费-保证金-GPS
@ -79,7 +80,7 @@ public class CreateVoucherLoanDistributor {
sql="SELECT (IFNULL(LCCT.EQUIP_AMT, 0) - IFNULL(LCCT.FIRST_PAYMENT, 0) + IFNULL(LCCT.GPS_FEE, 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,IFNULL(LCCT.GPS_FEE, 0) AS GPS_FEE_FINANCE,IFNULL(LCCT.PURCHASE_TAX, 0) AS PURCHASE_TAX,ROUND(IFNULL(LCCT.PURCHASE_TAX, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS PURCHASE_TAX_NOTAX,(IFNULL(LCCT.PURCHASE_TAX, 0)-ROUND(IFNULL(LCCT.PURCHASE_TAX, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS PURCHASE_TAX_TAX,IFNULL(LCCT.INSURANCE_PREMIUM, 0) AS INSURANCE_PREMIUM,ROUND(IFNULL(LCCT.INSURANCE_PREMIUM, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2) AS INSURANCE_PREMIUM_NOTAX,(IFNULL(LCCT.INSURANCE_PREMIUM, 0)-ROUND(IFNULL(LCCT.INSURANCE_PREMIUM, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS INSURANCE_PREMIUM_TAX,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,IFNULL(LCCT.HANDLING_CHARGE_MONEY,0) AS HANDLING_CHARGE_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 (PSL.operationType <>'DYCD' OR PSL.operationType IS NULL) 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.EQUIP_AMT, 0) - IFNULL(LCCT.FIRST_PAYMENT, 0)-IFNULL(LCCT.HANDLING_CHARGE_MONEY, 0) - IFNULL(LCCT.CAUTION_MONEY, 0) AS FINANCING_SUB_OTHERS,IFNULL(LCCT.FIRST_PAYMENT, 0) + IFNULL(LCCT.HANDLING_CHARGE_MONEY, 0) AS FIRST_ADD_HANDLING,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 ";
@ -172,19 +173,33 @@ public class CreateVoucherLoanDistributor {
}
}
}else {
PRODUCT_ID=dataList.get(i).get("PRODUCT_ID");// 产品编号
// 判断购置税是否参融
String FINAN1 = ProductParamUtil.getProductParameterValue(PRODUCT_ID, "PRD0315", "PURCHASE_TAX","FINAN");
// 判断保险费是否参融
String FINAN2 = ProductParamUtil.getProductParameterValue(PRODUCT_ID, "PRD0315", "INSURANCE_PREMIUM","FINAN");
// 判断保证金是否差额
String isBalance1 = ProductParamUtil.getProductParameterValue(PRODUCT_ID, "PRD0315", "HANDLING_CHARGE_MONEY","isBalance");
// 判断手续费是否差额
String isBalance2 = ProductParamUtil.getProductParameterValue(PRODUCT_ID, "PRD0315", "CAUTION_MONEY","isBalance");
MONEY=dataList.get(i).get("MONEY");
if("PZ2018070900000002".equals(VOUCHERNO) || "PZ2018071000000005".equals(VOUCHERNO) || "PZ2018071000000006".equals(VOUCHERNO)){
MONEY=dataList.get(i).get("FIRST_ADD_FINANCING");
}else{
MONEY=dataList.get(i).get("MONEY");
}else if("PZ2018071000000007".equals(VOUCHERNO) || "PZ2018071000000009".equals(VOUCHERNO)) {
// 如果手续费是非差额放款 购置融资租赁资产手续费取值为0去除手续费
if("no".equals(isBalance1)) {
MONEY="0.00";
}
}
if("".equals(MONEY)||MONEY==null) MONEY="0.00";
double mon=Double.parseDouble(MONEY);
if(mon>0){
PRODUCT_ID=dataList.get(i).get("PRODUCT_ID");// 产品编号
// 判断购置税是否参融
String FINAN1 = ProductParamUtil.getProductParameterValue(PRODUCT_ID, "PRD0315", "PURCHASE_TAX","FINAN");
// 判断保险费是否参融
String FINAN2 = ProductParamUtil.getProductParameterValue(PRODUCT_ID, "PRD0315", "INSURANCE_PREMIUM","FINAN");
MONEYTAX=dataList.get(i).get("MONEYTAX");
MONEYNOTAX=dataList.get(i).get("MONEYNOTAX");
HANDLING_CHARGE_MONEY=dataList.get(i).get("HANDLING_CHARGE_MONEY");
CAUTION_MONEY=dataList.get(i).get("CAUTION_MONEY");
FINANCING_SUB_OTHERS=dataList.get(i).get("FINANCING_SUB_OTHERS");
FIRST_ADD_HANDLING=dataList.get(i).get("FIRST_ADD_HANDLING");
// 直租合同起租
if("PZ2019070100000004".equals(VOUCHERNO)){
double PURCHASE_TAX=0.00;//购置税
@ -214,17 +229,25 @@ public class CreateVoucherLoanDistributor {
}
// 如果参融 获取上边的对应金额 如果不参融+0 不影响
MONEY=(mon+PURCHASE_TAX+INSURANCE_PREMIUM)+"";
}else{
// 不是直租购置融资租赁资产/合同起租 正常取值
MONEYTAX=dataList.get(i).get("MONEYTAX");
}
MONEYNOTAX=dataList.get(i).get("MONEYNOTAX");
// 购置融资租赁资产配置差额, 非差额
if("PZ2018070900000002".equals(VOUCHERNO)){
// 如果手续费是非差额放款 购置融资租赁资产手续费取值为0去除手续费
if("no".equals(isBalance1)) {
FINANCING_SUB_OTHERS=Double.parseDouble(FINANCING_SUB_OTHERS)+Double.parseDouble(HANDLING_CHARGE_MONEY)+"";
FIRST_ADD_HANDLING=Double.parseDouble(FIRST_ADD_HANDLING)-Double.parseDouble(HANDLING_CHARGE_MONEY)+"";
}
// 如果保证金是非差额放款 购置融资租赁资产手续费取值为0去除手续费
if("no".equals(isBalance2)) {
FINANCING_SUB_OTHERS=Double.parseDouble(FINANCING_SUB_OTHERS)+Double.parseDouble(CAUTION_MONEY)+"";
CAUTION_MONEY="0.00";
}
}
GPS_FEE_FINANCE=dataList.get(i).get("GPS_FEE_FINANCE");
CAUTION_MONEY=dataList.get(i).get("CAUTION_MONEY");
INTEREST=dataList.get(i).get("INTEREST");
FIRST_ADD_HANDLING=dataList.get(i).get("FIRST_ADD_HANDLING");
FIRST_ADD_FINANCING=dataList.get(i).get("FIRST_ADD_FINANCING");
FINANCING_SUB_OTHERS=dataList.get(i).get("FINANCING_SUB_OTHERS");
INTEREST_ADD_HANDLING=dataList.get(i).get("INTEREST_ADD_HANDLING");
ACCOUNT_DATE=dataList.get(i).get("ACCOUNT_DATE");
FACT_DATE =dataList.get(i).get("FACT_DATE");

View File

@ -22,7 +22,8 @@ public class ContractActualPaymentTraditionVoucher extends BaseBussiness {
cvap.CreateVoucher(FlowUnid, "PZ2018092500000159",userid); // 放款-购置融资租赁资产(传统)-非差额
cvap.CreateVoucher(FlowUnid, "PZ2018092500000162",userid); // 放款-经销商支付的预付款(传统)
cvap.CreateVoucher(FlowUnid, "PZ2018092500000164",userid); // 放款-客户记录保证金(传统)
cvap.CreateVoucher(FlowUnid, "PZ2018092500000166",userid); // 放款-收到客户手续费(传统)
cvap.CreateVoucher(FlowUnid, "PZ2018092500000166",userid); // 放款-收到客户手续费(传统)-一次性
cvap.CreateVoucher(FlowUnid, "PZ2019122300000165",userid); // 放款-收到客户手续费(传统)-按月分摊
cvap.CreateVoucher(FlowUnid, "PZ2018092500000169",userid); // 放款-购置融资租赁资产(传统)-差额放款
/**
@ -39,10 +40,11 @@ public class ContractActualPaymentTraditionVoucher extends BaseBussiness {
* 汽车类传统-回租
*/
//cvap.CreateVoucher(FlowUnid, "PZ2019072000000077",userid); // 放款-购置融资租赁资产(汽车类传统)-非差额
cvap.CreateVoucher(FlowUnid, "PZ2019072000000077", userid); // 放款-确认GPS收入
cvap.CreateVoucher(FlowUnid, "PZ2019090500000004",userid); // 放款-确认GPS收入
cvap.CreateVoucher(FlowUnid, "PZ2019072000000078",userid); // 放款-经销商支付的预付款(汽车类传统)
cvap.CreateVoucher(FlowUnid, "PZ2019072000000079",userid); // 放款-客户记录保证金(汽车类传统)
cvap.CreateVoucher(FlowUnid, "PZ2019072000000080",userid); // 放款-收到客户手续费(汽车类传统)
cvap.CreateVoucher(FlowUnid, "PZ2019072000000080",userid); // 放款-收到客户手续费(汽车类传统)-一次性
cvap.CreateVoucher(FlowUnid, "PZ2019122300000166",userid); // 放款-收到客户手续费(汽车类传统)-按月分摊
cvap.CreateVoucher(FlowUnid, "PZ2019072000000081",userid); // 放款-购置融资租赁资产(汽车类传统)-差额放款
/**
@ -54,6 +56,7 @@ public class ContractActualPaymentTraditionVoucher extends BaseBussiness {
cvap.CreateVoucher(FlowUnid, "PZ2019072200000115",userid); // 放款-收到客户手续费(汽车类传统)(一次性)
cvap.CreateVoucher(FlowUnid, "PZ2019072200000116",userid); // 放款-收到客户手续费(汽车类传统)(按月)
cvap.CreateVoucher(FlowUnid, "PZ2019072200000117",userid); // 放款-购置融资租赁资产(汽车类传统)-差额放款
return "true";
}
}

View File

@ -20,6 +20,7 @@ public class ContractBeforeOnhireToVoucher extends BaseBussiness {
*/
cvbo.CreateVoucher(FlowUnid, "PZ2018092500000156","feetype2",userid); // 回款-收到客户保证金(传统)
cvbo.CreateVoucher(FlowUnid, "PZ2018092500000157","feetype1",userid); // 回款-收到客户手续费(传统)-一次性
cvbo.CreateVoucher(FlowUnid, "PZ2019120400000149","feetype1",userid); // 回款-收到客户手续费(传统)-按月
cvbo.CreateVoucher(FlowUnid, "PZ2018092500000158","feetype5",userid); // 回款-收到客户预付款(传统)
/**
@ -35,6 +36,7 @@ public class ContractBeforeOnhireToVoucher extends BaseBussiness {
*/
cvbo.CreateVoucher(FlowUnid, "PZ2019072000000074","feetype2",userid); // 回款-收到客户保证金(汽车类传统)
cvbo.CreateVoucher(FlowUnid, "PZ2019072000000075","feetype1",userid); // 回款-收到客户手续费(汽车类传统)-一次性
cvbo.CreateVoucher(FlowUnid, "PZ2019120400000150","feetype1",userid); // 回款-收到客户手续费(汽车类传统)-按月
cvbo.CreateVoucher(FlowUnid, "PZ2019072000000076","feetype5",userid); // 回款-收到客户预付款(汽车类传统)
/**

View File

@ -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.CreateVoucherEbankMoney;
import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherRedCompensatory;
import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherRentIncome;
/**
@ -24,6 +25,9 @@ public class IncomeVoucher extends BaseBussiness {
// 汽车回租
cvci.CreateVoucher(FlowUnid, "PZ2018072100000026", "feetype30",userid);//收到的违约金/罚款 --回租
cvci.CreateVoucher(FlowUnid, "PZ2018072100000031", "feetype4",userid); //收到名义货价 --回租
cvci.CreateVoucher(FlowUnid, "PZ2019121600000162", "feetype2",userid); //回款-收到客户保证金 --回租
cvci.CreateVoucher(FlowUnid, "PZ2019121600000163", "feetype1",userid); //回款-收到客户手续费(一次性)--回租
cvci.CreateVoucher(FlowUnid, "PZ2019121700000164", "feetype1",userid); //回款-收到客户手续费(按月) --回租
// 汽车直租
cvci.CreateVoucher(FlowUnid, "PZ2019070100000015", "feetype30",userid);//收到的违约金/罚款 --回租
@ -50,6 +54,9 @@ public class IncomeVoucher extends BaseBussiness {
cvrcs.CreateVoucher(FlowUnid,"PZ2019071500000030",userid,Sqlca);//代偿租金
cvrcs.CreateVoucher(FlowUnid,"PZ2019071500000031",userid,Sqlca);//代偿逾期利息
CreateVoucherEbankMoney cvem = new CreateVoucherEbankMoney();
cvem.CreateVoucher(FlowUnid, "PZ2019070100000018", userid,Sqlca);// 回款-多余回款分解
return "true";
}

View File

@ -0,0 +1,24 @@
package com.tenwa.voucher.CreateVoucherProcess.CreateVoucherMethodSettle;
import com.amarsoft.awe.util.Transaction;
import com.tenwa.flow.baseBussion.BaseBussiness;
import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherForOtherPay;
/**
* 1: 客户多余还款退回
* @author xiezhiwen
*/
public class OtherPayMoneyVoucher extends BaseBussiness {
@Override
public Object run(Transaction Sqlca) throws Exception {
this.initBussinessParam(Sqlca);
String FlowUnid=this.getAttribute("FlowUnid").toString();
String userid = this.getAttribute("CurUserID").toString();
// 其他支付,客户多余还款退回
CreateVoucherForOtherPay CVFOP = new CreateVoucherForOtherPay();
CVFOP.CreateVoucher(FlowUnid, "PZ2018072100000051", userid);
return "true";
}
}

View File

@ -27,117 +27,166 @@ public class CreateVoucherMonthSettlementForTradition {
public void CreateVoucher(String voucherNo)throws Exception {
Transaction Sqlca = null;
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
Map<String, String> map = new HashMap<String, String>();
Map<String, String> param = new HashMap<String, String>();
// 定义全局变量
String MONEY = null;
String MONEYNOTAX = null;
String TAX = null;
String CORPUS_TAX = null;
String CORPUS_ADD_INTEREST_TAX = null;
String ACCOUNT_DATE = null;
String FACT_DATE = null;
String CONTRACT_ID = null;
String CONTRACT_NUMBER = null;
String PROJECT_NAME = null;
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 F58 = null;
String TAX_NUM = null;
String sql = "";
if (("PZ2018092500000183".equals(voucherNo)) || ("PZ2019071800000069".equals(voucherNo))) {
sql = "SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,CASE WHEN (CL.CUST_NAME IS NOT NULL OR CL.CUST_NAME != '') THEN CRM.INTEREST_TAX WHEN (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CAST(CRM.RENT_LIST AS SIGNED) - CAST(IFNULL(LRI2.PLAN_LIST, 0) AS SIGNED)) <= 2 THEN CRM.INTEREST_TAX ELSE 0 END AS MONEY,ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(CRM.INTEREST_TAX - ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS TAX,(IFNULL(LRP.CORPUS,0)-ROUND(IFNULL(LRP.CORPUS,0)/getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS CORPUS_TAX,((IFNULL(LRP.CORPUS,0)-ROUND(IFNULL(LRP.CORPUS,0)/getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2))+(IFNULL(CRM.INTEREST_TAX,0)-ROUND(IFNULL(CRM.INTEREST_TAX,0)/getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2))) AS CORPUS_ADD_INTEREST_TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.rent_list LEFT JOIN LC_RENT_INCOME LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,MAX(PLAN_LIST) AS PLAN_LIST FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.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 LEFT JOIN CUSTOMER_LIST CL ON (CL.CUST_NAME = DI.DISTRIBUTOR_CODING OR CL.CUST_NAME = CIF.CUSTOMER_NUM) WHERE LPI.BUSINESSTYPE = '2' AND lul.IS_MAIN = 'Y' AND LCCT.INCOME_NUMBER_YEAR = 'income_1' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND (IFNULL(LRP.INTEREST, 0) - IFNULL(LRI.INTEREST, 0)) <> 0 AND CRM.ID NOT IN (SELECT f58 AS ID FROM voucher_v8 WHERE module_name LIKE '%确认未实现利息收入-月付%') ";
} else if (("PZ2018092500000184".equals(voucherNo)) || ("PZ2019071800000070".equals(voucherNo))) {
sql = "SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,CASE WHEN (CL.CUST_NAME IS NOT NULL OR CL.CUST_NAME != '') THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST = 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST - LRI2.PLAN_LIST = 1) AND ((TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 1) OR (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 0)) THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST - LRI2.PLAN_LIST = 1) AND (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 2) AND (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 2) THEN ROUND(CRM.INTEREST_TAX * 2, 2) WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST-LRI2.PLAN_LIST<=1) AND ((TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 3) OR (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 0)) THEN CRM.INTEREST_TAX ELSE 0 END AS MONEY,ROUND(CRM.INTEREST_TAX / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(CRM.INTEREST_TAX - ROUND(CRM.INTEREST_TAX / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.rent_list LEFT JOIN LC_RENT_INCOME LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,MAX(PLAN_LIST) AS PLAN_LIST,MAX(HIRE_DATE) AS HIRE_DATE FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.CONTRACT_ID = lci.id LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) AS PLAN_DATE FROM LC_RENT_PLAN GROUP BY CONTRACT_ID,PLAN_LIST) LRP2 ON LRP2.CONTRACT_ID = LRI2.CONTRACT_ID AND LRP2.PLAN_LIST = LRI2.PLAN_LIST 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 LEFT JOIN CUSTOMER_LIST CL ON (CL.CUST_ID = DI.DISTRIBUTOR_CODING OR CL.CUST_ID = CIF.CUSTOMER_NUM) WHERE LPI.BUSINESSTYPE = '2' AND lul.IS_MAIN = 'Y' AND LCCT.INCOME_NUMBER_YEAR = 'income_3' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND CRM.ID NOT IN (SELECT f58 AS ID FROM voucher_v8 WHERE module_name LIKE '%确认未实现利息收入-季付%');";
}
if (("PZ2019072200000106".equals(voucherNo)) || ("PZ2019072300000144".equals(voucherNo))) {
sql = "SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,CASE WHEN (CL.CUST_NAME IS NOT NULL OR CL.CUST_NAME != '') THEN CRM.INTEREST_TAX WHEN (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CAST(CRM.RENT_LIST AS SIGNED) - CAST(IFNULL(LRI2.PLAN_LIST, 0) AS SIGNED)) <= 2 THEN CRM.INTEREST_TAX ELSE 0 END AS MONEY,ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(CRM.INTEREST_TAX - ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS TAX,(IFNULL(LRP.CORPUS,0)-ROUND(IFNULL(LRP.CORPUS,0)/getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS CORPUS_TAX,((IFNULL(LRP.CORPUS,0)-ROUND(IFNULL(LRP.CORPUS,0)/getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2))+(IFNULL(CRM.INTEREST_TAX,0)-ROUND(IFNULL(CRM.INTEREST_TAX,0)/getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2))) AS CORPUS_ADD_INTEREST_TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.rent_list LEFT JOIN LC_RENT_INCOME LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,MAX(PLAN_LIST) AS PLAN_LIST FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.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 LEFT JOIN CUSTOMER_LIST CL ON (CL.CUST_NAME = DI.DISTRIBUTOR_CODING OR CL.CUST_NAME = CIF.CUSTOMER_NUM) WHERE LPI.BUSINESSTYPE = '3' AND lul.IS_MAIN = 'Y' AND LCCT.INCOME_NUMBER_YEAR = 'income_1' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND (IFNULL(LRP.INTEREST, 0) - IFNULL(LRI.INTEREST, 0)) <> 0 AND CRM.ID NOT IN (SELECT f58 AS ID FROM voucher_v8 WHERE module_name LIKE '%确认未实现利息收入-月付%') ";
} else if (("PZ2019072200000107".equals(voucherNo)) || ("PZ2019072300000145".equals(voucherNo))) {
sql = "SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,CASE WHEN (CL.CUST_NAME IS NOT NULL OR CL.CUST_NAME != '') THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST = 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST - LRI2.PLAN_LIST = 1) AND ((TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 1) OR (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 0)) THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST - LRI2.PLAN_LIST = 1) AND (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 2) AND (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 2) THEN ROUND(CRM.INTEREST_TAX * 2, 2) WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST-LRI2.PLAN_LIST<=1) AND ((TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 3) OR (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 0)) THEN CRM.INTEREST_TAX ELSE 0 END AS MONEY,ROUND(CRM.INTEREST_TAX / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(CRM.INTEREST_TAX - ROUND(CRM.INTEREST_TAX / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.rent_list LEFT JOIN LC_RENT_INCOME LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,MAX(PLAN_LIST) AS PLAN_LIST,MAX(HIRE_DATE) AS HIRE_DATE FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.CONTRACT_ID = lci.id LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) AS PLAN_DATE FROM LC_RENT_PLAN GROUP BY CONTRACT_ID,PLAN_LIST) LRP2 ON LRP2.CONTRACT_ID = LRI2.CONTRACT_ID AND LRP2.PLAN_LIST = LRI2.PLAN_LIST 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 LEFT JOIN CUSTOMER_LIST CL ON (CL.CUST_ID = DI.DISTRIBUTOR_CODING OR CL.CUST_ID = CIF.CUSTOMER_NUM) WHERE LPI.BUSINESSTYPE = '3' AND lul.IS_MAIN = 'Y' AND LCCT.INCOME_NUMBER_YEAR = 'income_3' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND CRM.ID NOT IN (SELECT f58 AS ID FROM voucher_v8 WHERE module_name LIKE '%确认未实现利息收入-季付%');";
}
List<Map<String, String>> dataList = DataOperatorUtil.getDataBySql(Sqlca, sql, map);
CreateVoucherServiceImpl vs = new CreateVoucherServiceImpl();
String VOUCHER_TYPE = "1";// 凭证分类 金蝶
String userid = "yuejie";
for (int i = 0; i < dataList.size(); i++) {
try {
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
Map<String, String> map = new HashMap<String, String>();
Map<String, String> param = new HashMap<String, String>();
// 定义全局变量
String MONEY = null;
String MONEYNOTAX = null;
String TAX = null;
String CORPUS_TAX = null;
String CORPUS_ADD_INTEREST_TAX = null;
String ACCOUNT_DATE = null;
String FACT_DATE = null;
String CONTRACT_ID = null;
String CONTRACT_NUMBER = null;
String PROJECT_NAME = null;
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 F58 = null;
String TAX_NUM = null;
String sql = "";
/**
* 传统-回租
*/
// 月结--确认未实现利息收入-月付(传统)
if ("PZ2018092500000183".equals(voucherNo)) {
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,CASE WHEN (CL.CUST_NAME IS NOT NULL OR CL.CUST_NAME != '') THEN CRM.INTEREST_TAX WHEN (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CAST(CRM.RENT_LIST AS SIGNED) - CAST(IFNULL(LRI2.PLAN_LIST, 0) AS SIGNED)) <= 2 THEN CRM.INTEREST_TAX ELSE 0 END AS MONEY,ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(CRM.INTEREST_TAX - ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS TAX,(IFNULL(LRP.CORPUS, 0) - ROUND(IFNULL(LRP.CORPUS, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS CORPUS_TAX,((IFNULL(LRP.CORPUS, 0) - ROUND(IFNULL(LRP.CORPUS, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) + (IFNULL(CRM.INTEREST_TAX, 0) - ROUND(IFNULL(CRM.INTEREST_TAX, 0) / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2))) AS CORPUS_ADD_INTEREST_TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.rent_list LEFT JOIN LC_RENT_INCOME LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,MAX(PLAN_LIST) AS PLAN_LIST FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.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 LEFT JOIN CUSTOMER_LIST CL ON (CL.CUST_NAME = DI.DISTRIBUTOR_CODING OR CL.CUST_NAME = CIF.CUSTOMER_NUM) LEFT JOIN (SELECT f58 FROM voucher_v8 WHERE module_name LIKE '%确认未实现利息收入-月付%' GROUP BY F58)V8 ON V8.F58=CRM.ID WHERE LPI.BUSINESSTYPE = '2' AND lul.IS_MAIN = 'Y' AND LCI.LEAS_FORM='02' AND LCCT.INCOME_NUMBER_YEAR = 'income_1' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND (IFNULL(LRP.INTEREST, 0) - IFNULL(LRI.INTEREST, 0)) <> 0 AND V8.F58 IS NULL ";
// 月结--确认未实现利息收入-季付(传统)
}else if ("PZ2018092500000184".equals(voucherNo)) {
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,CASE WHEN (CL.CUST_NAME IS NOT NULL OR CL.CUST_NAME != '') THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST = 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST - LRI2.PLAN_LIST = 1) AND ((TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 1) OR (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 0)) THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST - LRI2.PLAN_LIST = 1) AND (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 2) AND (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 2) THEN ROUND(CRM.INTEREST_TAX * 2, 2) WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST-LRI2.PLAN_LIST<=1) AND ((TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 3) OR (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 0)) THEN CRM.INTEREST_TAX ELSE 0 END AS MONEY,ROUND(CRM.INTEREST_TAX / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(CRM.INTEREST_TAX - ROUND(CRM.INTEREST_TAX / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.rent_list LEFT JOIN LC_RENT_INCOME LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,MAX(PLAN_LIST) AS PLAN_LIST,MAX(HIRE_DATE) AS HIRE_DATE FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.CONTRACT_ID = lci.id LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) AS PLAN_DATE FROM LC_RENT_PLAN GROUP BY CONTRACT_ID,PLAN_LIST) LRP2 ON LRP2.CONTRACT_ID = LRI2.CONTRACT_ID AND LRP2.PLAN_LIST = LRI2.PLAN_LIST 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 LEFT JOIN CUSTOMER_LIST CL ON (CL.CUST_ID = DI.DISTRIBUTOR_CODING OR CL.CUST_ID = CIF.CUSTOMER_NUM) LEFT JOIN (SELECT f58 FROM voucher_v8 WHERE module_name LIKE '%确认未实现利息收入-季付%' GROUP BY F58)V8 ON V8.F58=CRM.ID WHERE LPI.BUSINESSTYPE = '2' AND lul.IS_MAIN = 'Y' AND LCI.LEAS_FORM='02' AND LCCT.INCOME_NUMBER_YEAR = 'income_3' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND V8.F58 IS NULL ";
}else if("PZ2019120400000151".equals(voucherNo)) {
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'手续费',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,IFNULL(CRM.FEE_TAX,0) AS MONEY,ROUND(IFNULL(CRM.FEE_TAX,0) / getTax(LCI.LEAS_FORM,'手续费',LCCT.START_DATE),2) AS MONEYNOTAX,IFNULL(CRM.FEE_TAX,0)- ROUND(IFNULL(CRM.FEE_TAX,0) / getTax(LCI.LEAS_FORM,'手续费',LCCT.START_DATE),2) AS TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LCI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = CRM.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_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 (SELECT f58 FROM voucher_v8 WHERE module_name LIKE '%月结-确认手续费-传统%' GROUP BY F58)V8 ON V8.F58=CRM.ID WHERE LCI.BUSINESSTYPE = '2' AND lul.IS_MAIN = 'Y' AND LCI.LEAS_FORM='02' AND IFNULL(CRM.FEE_TAX,0)>0 AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND lcct.HANDLING_CHARGE_MONEY_TYPE = '0020' AND V8.F58 IS NULL ";
}
/**
* 传统-直租
*/
// 月结--确认未实现利息收入-月付(传统)
if ("PZ2019071800000069".equals(voucherNo)) {
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,CASE WHEN (CL.CUST_NAME IS NOT NULL OR CL.CUST_NAME != '') THEN CRM.INTEREST_TAX WHEN (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CAST(CRM.RENT_LIST AS SIGNED) - CAST(IFNULL(LRI2.PLAN_LIST, 0) AS SIGNED)) <= 2 THEN CRM.INTEREST_TAX ELSE 0 END AS MONEY,ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(CRM.INTEREST_TAX - ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS TAX,(IFNULL(LRP.CORPUS, 0) - ROUND(IFNULL(LRP.CORPUS, 0) / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS CORPUS_TAX,((IFNULL(LRP.CORPUS, 0) - ROUND(IFNULL(LRP.CORPUS, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) + (IFNULL(CRM.INTEREST_TAX, 0) - ROUND(IFNULL(CRM.INTEREST_TAX, 0) / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2))) AS CORPUS_ADD_INTEREST_TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.rent_list LEFT JOIN LC_RENT_INCOME LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,MAX(PLAN_LIST) AS PLAN_LIST FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.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 LEFT JOIN CUSTOMER_LIST CL ON (CL.CUST_NAME = DI.DISTRIBUTOR_CODING OR CL.CUST_NAME = CIF.CUSTOMER_NUM) LEFT JOIN (SELECT f58 FROM voucher_v8 WHERE module_name LIKE '%确认未实现利息收入-月付%' GROUP BY F58)V8 ON V8.F58=CRM.ID WHERE LPI.BUSINESSTYPE = '2' AND lul.IS_MAIN = 'Y' AND LCI.LEAS_FORM='01' AND LCCT.INCOME_NUMBER_YEAR = 'income_1' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND (IFNULL(LRP.INTEREST, 0) - IFNULL(LRI.INTEREST, 0)) <> 0 AND V8.F58 IS NULL ";
// 月结--确认未实现利息收入-季付(传统)
}else if ("PZ2019071800000070".equals(voucherNo)) {
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,CASE WHEN (CL.CUST_NAME IS NOT NULL OR CL.CUST_NAME != '') THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST = 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST - LRI2.PLAN_LIST = 1) AND ((TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 1) OR (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 0)) THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST - LRI2.PLAN_LIST = 1) AND (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 2) AND (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 2) THEN ROUND(CRM.INTEREST_TAX * 2, 2) WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST-LRI2.PLAN_LIST<=1) AND ((TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 3) OR (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 0)) THEN CRM.INTEREST_TAX ELSE 0 END AS MONEY,ROUND(CRM.INTEREST_TAX / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(CRM.INTEREST_TAX - ROUND(CRM.INTEREST_TAX / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.rent_list LEFT JOIN LC_RENT_INCOME LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,MAX(PLAN_LIST) AS PLAN_LIST,MAX(HIRE_DATE) AS HIRE_DATE FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.CONTRACT_ID = lci.id LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) AS PLAN_DATE FROM LC_RENT_PLAN GROUP BY CONTRACT_ID,PLAN_LIST) LRP2 ON LRP2.CONTRACT_ID = LRI2.CONTRACT_ID AND LRP2.PLAN_LIST = LRI2.PLAN_LIST 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 LEFT JOIN CUSTOMER_LIST CL ON (CL.CUST_ID = DI.DISTRIBUTOR_CODING OR CL.CUST_ID = CIF.CUSTOMER_NUM) LEFT JOIN (SELECT f58 FROM voucher_v8 WHERE module_name LIKE '%确认未实现利息收入-季付%' GROUP BY F58)V8 ON V8.F58=CRM.ID WHERE LPI.BUSINESSTYPE = '2' AND lul.IS_MAIN = 'Y' AND LCI.LEAS_FORM='01' AND LCCT.INCOME_NUMBER_YEAR = 'income_3' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND V8.F58 IS NULL ";
}
/**
* 汽车类传统-回租
*/
// 月结--确认未实现利息收入-月付(汽车类传统)
if ("PZ2019072200000106".equals(voucherNo)) {
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,CASE WHEN (CL.CUST_NAME IS NOT NULL OR CL.CUST_NAME != '') THEN CRM.INTEREST_TAX WHEN (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CAST(CRM.RENT_LIST AS SIGNED) - CAST(IFNULL(LRI2.PLAN_LIST, 0) AS SIGNED)) <= 2 THEN CRM.INTEREST_TAX ELSE 0 END AS MONEY,ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(CRM.INTEREST_TAX - ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS TAX,(IFNULL(LRP.CORPUS,0)-ROUND(IFNULL(LRP.CORPUS,0)/getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS CORPUS_TAX,((IFNULL(LRP.CORPUS,0)-ROUND(IFNULL(LRP.CORPUS,0)/getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2))+(IFNULL(CRM.INTEREST_TAX,0)-ROUND(IFNULL(CRM.INTEREST_TAX,0)/getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2))) AS CORPUS_ADD_INTEREST_TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.rent_list LEFT JOIN LC_RENT_INCOME LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,MAX(PLAN_LIST) AS PLAN_LIST FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.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 LEFT JOIN CUSTOMER_LIST CL ON (CL.CUST_NAME = DI.DISTRIBUTOR_CODING OR CL.CUST_NAME = CIF.CUSTOMER_NUM) LEFT JOIN (SELECT f58 FROM voucher_v8 WHERE module_name LIKE '%确认未实现利息收入-月付%' GROUP BY F58)V8 ON V8.F58=CRM.ID WHERE LPI.BUSINESSTYPE = '3' AND lul.IS_MAIN = 'Y' AND LCI.LEAS_FORM='02' AND LCCT.INCOME_NUMBER_YEAR = 'income_1' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND (IFNULL(LRP.INTEREST, 0) - IFNULL(LRI.INTEREST, 0)) <> 0 AND V8.F58 IS NULL ";
// 月结--确认未实现利息收入-季付(汽车类传统)
}else if ("PZ2019072200000107".equals(voucherNo)) {
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,CASE WHEN (CL.CUST_NAME IS NOT NULL OR CL.CUST_NAME != '') THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST = 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST - LRI2.PLAN_LIST = 1) AND ((TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 1) OR (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 0)) THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST - LRI2.PLAN_LIST = 1) AND (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 2) AND (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 2) THEN ROUND(CRM.INTEREST_TAX * 2, 2) WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST-LRI2.PLAN_LIST<=1) AND ((TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 3) OR (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 0)) THEN CRM.INTEREST_TAX ELSE 0 END AS MONEY,ROUND(CRM.INTEREST_TAX / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(CRM.INTEREST_TAX - ROUND(CRM.INTEREST_TAX / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.rent_list LEFT JOIN LC_RENT_INCOME LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,MAX(PLAN_LIST) AS PLAN_LIST,MAX(HIRE_DATE) AS HIRE_DATE FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.CONTRACT_ID = lci.id LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) AS PLAN_DATE FROM LC_RENT_PLAN GROUP BY CONTRACT_ID,PLAN_LIST) LRP2 ON LRP2.CONTRACT_ID = LRI2.CONTRACT_ID AND LRP2.PLAN_LIST = LRI2.PLAN_LIST 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 LEFT JOIN CUSTOMER_LIST CL ON (CL.CUST_ID = DI.DISTRIBUTOR_CODING OR CL.CUST_ID = CIF.CUSTOMER_NUM) LEFT JOIN (SELECT f58 FROM voucher_v8 WHERE module_name LIKE '%确认未实现利息收入-季付%' GROUP BY F58)V8 ON V8.F58=CRM.ID WHERE LPI.BUSINESSTYPE = '3' AND lul.IS_MAIN = 'Y' AND LCI.LEAS_FORM='02' AND LCCT.INCOME_NUMBER_YEAR = 'income_3' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND V8.F58 IS NULL ";
// 月结-确认手续费收入(汽车类传统)
}else if("PZ2019120400000152".equals(voucherNo)) {
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'手续费',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,IFNULL(CRM.FEE_TAX,0) AS MONEY,ROUND(IFNULL(CRM.FEE_TAX,0) / getTax(LCI.LEAS_FORM,'手续费',LCCT.START_DATE),2) AS MONEYNOTAX,IFNULL(CRM.FEE_TAX,0)- ROUND(IFNULL(CRM.FEE_TAX,0) / getTax(LCI.LEAS_FORM,'手续费',LCCT.START_DATE),2) AS TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LCI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = CRM.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_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 (SELECT f58 FROM voucher_v8 WHERE module_name LIKE '%月结-确认手续费-汽车类传统%' GROUP BY F58)V8 ON V8.F58=CRM.ID WHERE LCI.BUSINESSTYPE = '3' AND lul.IS_MAIN = 'Y' AND LCI.LEAS_FORM='02' AND IFNULL(CRM.FEE_TAX,0)>0 AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND lcct.HANDLING_CHARGE_MONEY_TYPE = '0020' AND V8.F58 IS NULL ";
}
/**
* 汽车类传统-直租
*/
// 月结--确认未实现利息收入-月付(汽车类传统)
if ("PZ2019072300000144".equals(voucherNo)) {
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,CASE WHEN (CL.CUST_NAME IS NOT NULL OR CL.CUST_NAME != '') THEN CRM.INTEREST_TAX WHEN (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CAST(CRM.RENT_LIST AS SIGNED) - CAST(IFNULL(LRI2.PLAN_LIST, 0) AS SIGNED)) <= 2 THEN CRM.INTEREST_TAX ELSE 0 END AS MONEY,ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(CRM.INTEREST_TAX - ROUND(CRM.INTEREST_TAX / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS TAX,(IFNULL(LRP.CORPUS,0)-ROUND(IFNULL(LRP.CORPUS,0)/getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)) AS CORPUS_TAX,((IFNULL(LRP.CORPUS,0)-ROUND(IFNULL(LRP.CORPUS,0)/getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2))+(IFNULL(CRM.INTEREST_TAX,0)-ROUND(IFNULL(CRM.INTEREST_TAX,0)/getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2))) AS CORPUS_ADD_INTEREST_TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.rent_list LEFT JOIN LC_RENT_INCOME LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,MAX(PLAN_LIST) AS PLAN_LIST FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.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 LEFT JOIN CUSTOMER_LIST CL ON (CL.CUST_NAME = DI.DISTRIBUTOR_CODING OR CL.CUST_NAME = CIF.CUSTOMER_NUM) LEFT JOIN (SELECT f58 FROM voucher_v8 WHERE module_name LIKE '%确认未实现利息收入-月付%' GROUP BY F58)V8 ON V8.F58=CRM.ID WHERE LPI.BUSINESSTYPE = '3' AND lul.IS_MAIN = 'Y' AND LCI.LEAS_FORM='01' AND LCCT.INCOME_NUMBER_YEAR = 'income_1' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND (IFNULL(LRP.INTEREST, 0) - IFNULL(LRI.INTEREST, 0)) <> 0 AND V8.F58 IS NULL ";
// 月结--确认未实现利息收入-季付(汽车类传统)
}else if ("PZ2019072200000107".equals(voucherNo) || "PZ2019072300000145".equals(voucherNo)) {
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,CRM.ID,CASE WHEN (CL.CUST_NAME IS NOT NULL OR CL.CUST_NAME != '') THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST = 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST - LRI2.PLAN_LIST = 1) AND ((TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 1) OR (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 0)) THEN CRM.INTEREST_TAX WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST - LRI2.PLAN_LIST = 1) AND (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(LRI2.HIRE_DATE, '%Y-%m-%d'))= 2) AND (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 2) THEN ROUND(CRM.INTEREST_TAX * 2, 2) WHEN CRM.RENT_LIST != 1 AND (CL.CUST_NAME IS NULL OR CL.CUST_NAME = '') AND (CRM.RENT_LIST-LRI2.PLAN_LIST<=1) AND ((TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 3) OR (TIMESTAMPDIFF(MONTH,DATE_FORMAT(LRP2.PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d'))= 0)) THEN CRM.INTEREST_TAX ELSE 0 END AS MONEY,ROUND(CRM.INTEREST_TAX / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(CRM.INTEREST_TAX - ROUND(CRM.INTEREST_TAX / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS TAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,CRM.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = CRM.CONTRACT_ID AND LRP.PLAN_LIST = CRM.rent_list LEFT JOIN LC_RENT_INCOME LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID AND LRI.PLAN_LIST = LRP.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LRP.CONTRACT_ID = LCI.ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,MAX(PLAN_LIST) AS PLAN_LIST,MAX(HIRE_DATE) AS HIRE_DATE FROM LC_RENT_INCOME GROUP BY CONTRACT_ID) LRI2 ON LRI2.CONTRACT_ID = lci.id LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) AS PLAN_DATE FROM LC_RENT_PLAN GROUP BY CONTRACT_ID,PLAN_LIST) LRP2 ON LRP2.CONTRACT_ID = LRI2.CONTRACT_ID AND LRP2.PLAN_LIST = LRI2.PLAN_LIST 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 LEFT JOIN CUSTOMER_LIST CL ON (CL.CUST_ID = DI.DISTRIBUTOR_CODING OR CL.CUST_ID = CIF.CUSTOMER_NUM) LEFT JOIN (SELECT f58 FROM voucher_v8 WHERE module_name LIKE '%确认未实现利息收入-季付%' GROUP BY F58)V8 ON V8.F58=CRM.ID WHERE LPI.BUSINESSTYPE = '3' AND lul.IS_MAIN = 'Y' AND LCI.LEAS_FORM='01' AND LCCT.INCOME_NUMBER_YEAR = 'income_3' AND DATE_FORMAT(CRM.END_DATE, '%Y/%m') = DATE_FORMAT(NOW(), '%Y/%m') AND V8.F58 IS NULL ";
}
List<Map<String, String>> dataList = DataOperatorUtil.getDataBySql(Sqlca, sql, map);
CreateVoucherServiceImpl vs = new CreateVoucherServiceImpl();
String VOUCHER_TYPE = "1";// 凭证分类 金蝶
String userid = "yuejie";
for (int i = 0; i < dataList.size(); i++) {
MONEY = dataList.get(i).get("MONEY").toString();
double mon = Double.parseDouble(MONEY);
if (mon > 0) {
MONEYNOTAX = dataList.get(i).get("MONEYNOTAX");
TAX = dataList.get(i).get("TAX");
CORPUS_TAX = dataList.get(i).get("CORPUS_TAX");
CORPUS_ADD_INTEREST_TAX = dataList.get(i).get("CORPUS_ADD_INTEREST_TAX");
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();
CONTRACT_NUMBER = dataList.get(i).get("CONTRACT_NUMBER").toString();
PROJECT_NAME = dataList.get(i).get("PROJECT_NAME").toString();
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");
F58 = dataList.get(i).get("ID");
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);
if (mon > 0) {
MONEYNOTAX = dataList.get(i).get("MONEYNOTAX");
TAX = dataList.get(i).get("TAX");
CORPUS_TAX = dataList.get(i).get("CORPUS_TAX");
CORPUS_ADD_INTEREST_TAX = dataList.get(i).get("CORPUS_ADD_INTEREST_TAX");
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();
CONTRACT_NUMBER = dataList.get(i).get("CONTRACT_NUMBER").toString();
PROJECT_NAME = dataList.get(i).get("PROJECT_NAME").toString();
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");
F58 = dataList.get(i).get("ID");
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", TAX);
param.put("CORPUS_TAX",CORPUS_TAX);
param.put("CORPUS_ADD_INTEREST_TAX",CORPUS_ADD_INTEREST_TAX);
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("PROJECT_NAME", PROJECT_NAME);
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("VOUCHERNO", voucherNo);
param.put("F58", F58);
if (TAX_CODES != null) {
param.put("TAX_CODE", TAX_CODES.getAttribute("TAX_CODES").getString());
}
param.put("BUSINESSTYPE", "0604"); // 主营类型
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,Sqlca);
}
}
param.put("FACT_MONEY", MONEY);
param.put("INTERESTNOTAX", MONEYNOTAX);
param.put("TAX", TAX);
param.put("CORPUS_TAX",CORPUS_TAX);
param.put("CORPUS_ADD_INTEREST_TAX",CORPUS_ADD_INTEREST_TAX);
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("PROJECT_NAME", PROJECT_NAME);
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("VOUCHERNO", voucherNo);
param.put("F58", F58);
if (TAX_CODES != null) {
param.put("TAX_CODE", TAX_CODES.getAttribute("TAX_CODES").getString());
}
param.put("BUSINESSTYPE", "0604"); // 主营类型
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,Sqlca);
if (Sqlca != null) {
Sqlca.commit();
}
}
}
if (Sqlca != null) {
Sqlca.disConnect();
} catch (Exception e) {
e.printStackTrace();
}finally {
if (Sqlca != null) {
try {
Sqlca.disConnect();
} catch (JBOException e) {
e.printStackTrace();
}
Sqlca = null;
}
}
}
}

View File

@ -39,6 +39,8 @@ public class CreateVoucherToBeforeOnhire extends BaseBussiness {
String DISTRIBUTOR_NAME = null;
String CUSTOMERID = null;
String CUSTOMERNAME = null;
String CUSTOMERID2 = null;
String CUSTOMERNAME2 = null;
String CUSTOMERTYPE = null;
String BUSINESSTYPE = null;
String ACC_NUM = null;
@ -57,17 +59,22 @@ public class CreateVoucherToBeforeOnhire extends BaseBussiness {
}else {
tax_type="本金";
}
if (("PZ2018092500000156".equals(VOUCHERNO)) || ("PZ2018092500000157".equals(VOUCHERNO)) || ("PZ2018092500000158".equals(VOUCHERNO)) || ("PZ2019071800000032".equals(VOUCHERNO)) || ("PZ2019071800000033".equals(VOUCHERNO)) || ("PZ2019071800000034".equals(VOUCHERNO)) || ("PZ2019071800000035".equals(VOUCHERNO))) {
sql = "SELECT ROUND((getTax(lci.LEAS_FORM,'" + tax_type + "',LCCT.START_DATE)-1)*100,0) AS TAX_NUM,LFIT.FACT_MONEY AS MONEY,ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'" + tax_type + "',LCCT.START_DATE),2) AS MONEYNOTAX,(LFIT.FACT_MONEY - ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'" + tax_type + "',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(CASE WHEN (LFIT.ACCOUNTING_DATE IS NOT NULL OR LFIT.ACCOUNTING_DATE <> '') THEN LFIT.ACCOUNTING_DATE ELSE SYSDATE() END, '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(CASE WHEN (LFIT.FACT_DATE IS NOT NULL OR LFIT.FACT_DATE <> '') THEN LFIT.FACT_DATE ELSE SYSDATE() END, '%Y/%m/%d') AS FACT_DATE,LFIT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT.ACC_NUMBER FROM LC_FUND_INCOME_TEMP LFIT LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT.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 LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID WHERE LFIT.FEE_TYPE = :FEE_TYPE AND LPI.BUSINESSTYPE='2' AND lul.IS_MAIN='Y' AND LFIT.FLOWUNID = :FLOWUNID ";
} else if (("PZ2019072000000074".equals(VOUCHERNO)) || ("PZ2019072000000075".equals(VOUCHERNO)) || ("PZ2019072000000076".equals(VOUCHERNO)) || ("PZ2019072200000108".equals(VOUCHERNO)) || ("PZ2019072200000109".equals(VOUCHERNO)) || ("PZ2019072200000110".equals(VOUCHERNO)) || ("PZ2019072200000111".equals(VOUCHERNO))) {
sql = "SELECT ROUND((getTax(lci.LEAS_FORM,'" + tax_type + "',LCCT.START_DATE)-1)*100,0) AS TAX_NUM,LFIT.FACT_MONEY AS MONEY,ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'" + tax_type + "',LCCT.START_DATE),2) AS MONEYNOTAX,(LFIT.FACT_MONEY - ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'" + tax_type + "',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(CASE WHEN (LFIT.ACCOUNTING_DATE IS NOT NULL OR LFIT.ACCOUNTING_DATE <> '') THEN LFIT.ACCOUNTING_DATE ELSE SYSDATE() END, '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(CASE WHEN (LFIT.FACT_DATE IS NOT NULL OR LFIT.FACT_DATE <> '') THEN LFIT.FACT_DATE ELSE SYSDATE() END, '%Y/%m/%d') AS FACT_DATE,LFIT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT.ACC_NUMBER FROM LC_FUND_INCOME_TEMP LFIT LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT.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 LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID WHERE LFIT.FEE_TYPE = :FEE_TYPE AND LPI.BUSINESSTYPE='3' AND lul.IS_MAIN='Y' AND LFIT.FLOWUNID = :FLOWUNID ";
}
if (("PZ2019071800000033".equals(VOUCHERNO)) || ("PZ2019072200000109".equals(VOUCHERNO))) {
sql = sql + " AND (lcct.HANDLING_CHARGE_MONEY_TYPE='0010' OR lcct.HANDLING_CHARGE_MONEY_TYPE IS NULL OR lcct.HANDLING_CHARGE_MONEY_TYPE='')";
} else if (("PZ2019071800000034".equals(VOUCHERNO)) || ("PZ2019072200000110".equals(VOUCHERNO))) {
sql = sql + " AND lcct.HANDLING_CHARGE_MONEY_TYPE='0020' ";
}
// 传统
if("PZ2018092500000156".equals(VOUCHERNO) || "PZ2018092500000157".equals(VOUCHERNO) || "PZ2018092500000158".equals(VOUCHERNO) || "PZ2019071800000032".equals(VOUCHERNO) || "PZ2019071800000033".equals(VOUCHERNO) || "PZ2019071800000034".equals(VOUCHERNO) || "PZ2019071800000035".equals(VOUCHERNO) || "PZ2019120400000149".equals(VOUCHERNO)) {
//sql = "SELECT ROUND((getTax(lci.LEAS_FORM,'"+tax_type+"',LCCT.START_DATE)-1)*100,0) AS TAX_NUM,LFIT.FACT_MONEY AS MONEY,ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'"+tax_type+"',LCCT.START_DATE),2) AS MONEYNOTAX,(LFIT.FACT_MONEY - ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'"+tax_type+"',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(CASE WHEN (LFIT.ACCOUNTING_DATE IS NOT NULL OR LFIT.ACCOUNTING_DATE <> '') THEN LFIT.ACCOUNTING_DATE ELSE SYSDATE() END, '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(CASE WHEN (LFIT.FACT_DATE IS NOT NULL OR LFIT.FACT_DATE <> '') THEN LFIT.FACT_DATE ELSE SYSDATE() END, '%Y/%m/%d') AS FACT_DATE,LFIT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT.ACC_NUMBER FROM LC_FUND_INCOME_TEMP LFIT LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT.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 LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID WHERE LFIT.FEE_TYPE = :FEE_TYPE AND LPI.BUSINESSTYPE='2' AND lul.IS_MAIN='Y' AND LFIT.FLOWUNID = :FLOWUNID ";
sql = "SELECT ROUND((getTax(lci.LEAS_FORM,'"+tax_type+"',LCCT.START_DATE)-1)*100,0) AS TAX_NUM,LFIT.FACT_MONEY AS MONEY,ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'"+tax_type+"',LCCT.START_DATE),2) AS MONEYNOTAX,(LFIT.FACT_MONEY - ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'"+tax_type+"',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(CASE WHEN (LFIT.ACCOUNTING_DATE IS NOT NULL OR LFIT.ACCOUNTING_DATE <> '') THEN LFIT.ACCOUNTING_DATE ELSE SYSDATE() END,'%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(CASE WHEN (LFIT.FACT_DATE IS NOT NULL OR LFIT.FACT_DATE <> '') THEN LFIT.FACT_DATE ELSE SYSDATE() END,'%Y/%m/%d') AS FACT_DATE,LFIT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT.ACC_NUMBER,CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) ELSE 'APZL00000000CT' END AS CUSTOMERID2,CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) ELSE '传统B端待查客户' END AS CUSTOMERNAME2 FROM LC_FUND_INCOME_TEMP LFIT LEFT JOIN LC_EBANK LE ON LE.ID=LFIT.EBANK_NUMBER LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT.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 LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID WHERE LFIT.FEE_TYPE = :FEE_TYPE AND LPI.BUSINESSTYPE = '2' AND lul.IS_MAIN = 'Y' AND LFIT.FLOWUNID = :FLOWUNID ";
// 汽车类传统
}else if("PZ2019072000000074".equals(VOUCHERNO) || "PZ2019072000000075".equals(VOUCHERNO) || "PZ2019072000000076".equals(VOUCHERNO) || "PZ2019072200000108".equals(VOUCHERNO) || "PZ2019072200000109".equals(VOUCHERNO) || "PZ2019072200000110".equals(VOUCHERNO) || "PZ2019072200000111".equals(VOUCHERNO) || "PZ2019120400000150".equals(VOUCHERNO)) {
//sql = "SELECT ROUND((getTax(lci.LEAS_FORM,'"+tax_type+"',LCCT.START_DATE)-1)*100,0) AS TAX_NUM,LFIT.FACT_MONEY AS MONEY,ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'"+tax_type+"',LCCT.START_DATE),2) AS MONEYNOTAX,(LFIT.FACT_MONEY - ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'"+tax_type+"',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(CASE WHEN (LFIT.ACCOUNTING_DATE IS NOT NULL OR LFIT.ACCOUNTING_DATE <> '') THEN LFIT.ACCOUNTING_DATE ELSE SYSDATE() END, '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(CASE WHEN (LFIT.FACT_DATE IS NOT NULL OR LFIT.FACT_DATE <> '') THEN LFIT.FACT_DATE ELSE SYSDATE() END, '%Y/%m/%d') AS FACT_DATE,LFIT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT.ACC_NUMBER FROM LC_FUND_INCOME_TEMP LFIT LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT.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 LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID WHERE LFIT.FEE_TYPE = :FEE_TYPE AND LPI.BUSINESSTYPE='3' AND lul.IS_MAIN='Y' AND LFIT.FLOWUNID = :FLOWUNID ";
sql = "SELECT ROUND((getTax(lci.LEAS_FORM,'"+tax_type+"',LCCT.START_DATE)-1)*100,0) AS TAX_NUM,LFIT.FACT_MONEY AS MONEY,ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'"+tax_type+"',LCCT.START_DATE),2) AS MONEYNOTAX,(LFIT.FACT_MONEY - ROUND(LFIT.FACT_MONEY / getTax (LCI.LEAS_FORM,'"+tax_type+"',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(CASE WHEN (LFIT.ACCOUNTING_DATE IS NOT NULL OR LFIT.ACCOUNTING_DATE <> '') THEN LFIT.ACCOUNTING_DATE ELSE SYSDATE() END, '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(CASE WHEN (LFIT.FACT_DATE IS NOT NULL OR LFIT.FACT_DATE <> '') THEN LFIT.FACT_DATE ELSE SYSDATE() END, '%Y/%m/%d') AS FACT_DATE,LFIT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT.ACC_NUMBER,CASE WHEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMER_NUM FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) ELSE 'APZL00000000CT' END AS CUSTOMERID2,CASE WHEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) IS NOT NULL THEN (SELECT CUSTOMERNAME FROM CUSTOMER_INFO WHERE CUSTOMERID = LE.CUSTOMER_ID) ELSE '传统B端待查客户' END AS CUSTOMERNAME2 FROM LC_FUND_INCOME_TEMP LFIT LEFT JOIN LC_EBANK LE ON LE.ID=LFIT.EBANK_NUMBER LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT.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 LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID WHERE LFIT.FEE_TYPE = :FEE_TYPE AND LPI.BUSINESSTYPE='3' AND lul.IS_MAIN='Y' AND LFIT.FLOWUNID = :FLOWUNID ";
}
// 手续费判断一次性还是按月
if("PZ2019071800000033".equals(VOUCHERNO) || "PZ2019072200000109".equals(VOUCHERNO) || "PZ2018092500000157".equals(VOUCHERNO) || "PZ2019072000000075".equals(VOUCHERNO)) {
sql+=" AND (lcct.HANDLING_CHARGE_MONEY_TYPE='0010' OR lcct.HANDLING_CHARGE_MONEY_TYPE IS NULL OR lcct.HANDLING_CHARGE_MONEY_TYPE='')";
}else if("PZ2019071800000034".equals(VOUCHERNO) || "PZ2019072200000110".equals(VOUCHERNO) || "PZ2019120400000149".equals(VOUCHERNO) || "PZ2019120400000150".equals(VOUCHERNO)){
sql+=" AND lcct.HANDLING_CHARGE_MONEY_TYPE='0020' ";
}
// 查询sql, 将结果集封装到list集合中
List<Map<String, String>> dataList = DataOperatorUtil.getDataBySql(Sqlca, sql, map);
@ -94,6 +101,8 @@ public class CreateVoucherToBeforeOnhire extends BaseBussiness {
DISTRIBUTOR_NAME = dataList.get(i).get("DISTRIBUTOR_NAME");
CUSTOMERID = dataList.get(i).get("CUSTOMERID");
CUSTOMERNAME = dataList.get(i).get("CUSTOMERNAME");
CUSTOMERID2 = dataList.get(i).get("CUSTOMERID2");
CUSTOMERNAME2 = dataList.get(i).get("CUSTOMERNAME2");
CUSTOMERTYPE = dataList.get(i).get("CUSTOMERTYPE");
BUSINESSTYPE = dataList.get(i).get("BUSINESSTYPE");
TAX_NUM = dataList.get(i).get("TAX_NUM");
@ -116,6 +125,8 @@ public class CreateVoucherToBeforeOnhire extends BaseBussiness {
param.put("DISTRIBUTOR_NAME", DISTRIBUTOR_NAME);
param.put("CUSTID", CUSTOMERID);
param.put("CUSTNAME", CUSTOMERNAME);
param.put("CUSTID2", CUSTOMERID2);
param.put("CUSTNAME2", CUSTOMERNAME2);
param.put("CUSTOMERTYPE", CUSTOMERTYPE);
param.put("BUSINESSTYPE", BUSINESSTYPE);
if(TAX_CODES!=null) {
@ -125,7 +136,7 @@ public class CreateVoucherToBeforeOnhire extends BaseBussiness {
param.put("VOUCHERNO", VOUCHERNO);
// 收到客户手续费
if (("PZ2019071800000033".equals(VOUCHERNO)) || ("PZ2019071800000034".equals(VOUCHERNO)) || ("PZ2019072000000075".equals(VOUCHERNO)) || ("PZ2019072200000109".equals(VOUCHERNO)) || ("PZ2019072200000110".equals(VOUCHERNO))) {
if("PZ2019071800000033".equals(VOUCHERNO) || "PZ2019071800000034".equals(VOUCHERNO) || "PZ2018092500000157".equals(VOUCHERNO) || "PZ2019120400000149".equals(VOUCHERNO) || "PZ2019072000000075".equals(VOUCHERNO) || "PZ2019120400000150".equals(VOUCHERNO) || "PZ2019072200000109".equals(VOUCHERNO) || "PZ2019072200000110".equals(VOUCHERNO)){
param.put("CASHFLOW", "");// 现金流项目
param.put("BUSINESSTYPE", "0604");// 主营类型
}

View File

@ -25,7 +25,6 @@ import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.are.jbo.JBOTransaction;
import com.amarsoft.are.log.Log;
import com.amarsoft.awe.Configure;
import com.tenwa.comm.exception.BusinessException;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.quartz.StringUtil;
@ -81,7 +80,7 @@ public class CreateVoucherServiceImpl {
Map<String,String> param=new HashMap<String, String>();
param.put("FlowUnid", "FBO2017101600000061");
CreateVoucherServiceImpl vs=new CreateVoucherServiceImpl();
//CreateVoucherServiceImpl vs=new CreateVoucherServiceImpl();
//vs.createVoucher("","网银收款", "2017032800000009", "02", null, "admin", param, tx);
}
@ -102,7 +101,8 @@ public class CreateVoucherServiceImpl {
param.put("OWNED_COMPANY", owned);
param.put("PROJ_TYPE", projtype);
if(voucherType==null||"".equals(voucherType)){
voucherType=Configure.getInstance().getConfigure("VoucherType");
//voucherType=Configure.getInstance().getConfigure("VoucherType");
voucherType="1";
}
param.put("VOUCHER_TYPE",voucherType);
BizObject user=JBOFactory.createBizObjectQuery(USER_INFO.CLASS_NAME, "USERID='"+userid+"'").getSingleResult(false);
@ -129,9 +129,56 @@ public class CreateVoucherServiceImpl {
.setParameter("MODULAR_NUMBER",param.get("MODULAR_NUMBER")).setParameter("OWNED_COMPANY", param.get("OWNED_COMPANY")).setParameter("VOUCHER_TYPE",param.get("VOUCHER_TYPE"))
.setParameter("PROJ_TYPE", param.get("PROJ_TYPE")).setParameter("ID", param.get("voucher_id")).getSingleResult(false);
param.put("MODULAR_NUMBER", voucherConfig.getAttribute("MODULAR_NUMBER").getString());// 凭证名称
param.put("F49", voucherConfig.getAttribute("OWNED_COMPANY").getString());
param.put("F50", voucherConfig.getAttribute("OWNED_COMPANY").getString());
String VOUCHERNO = param.get("VOUCHERNO");
/*String CONTRACT_NUMBER = param.get("CONTRACT_NUMBER");
String CONTRACT_ID = param.get("CONTRACT_ID");
String SUBJECTID = param.get("SUBJECTID");
String SUBJECTNAME = param.get("SUBJECTNAME");
String OWN_NUMBER = "";
// 如果没有获取到主体信息 出部分特殊要求其它默认通过合同的id获取主体信息
if(SUBJECTID==null || "".equals(SUBJECTID) || SUBJECTNAME==null || "".equals(SUBJECTNAME)) {
if("PZ2018081600000120".equals(VOUCHERNO) || "PZ2018092500000155".equals(VOUCHERNO) || "PZ2019072000000071".equals(VOUCHERNO) || "PZ2019072000000072".equals(VOUCHERNO) || "PZ2019072000000073".equals(VOUCHERNO) || "PZ2018121800000005".equals(VOUCHERNO)) {
String OWN_ACCOUNT= param.get("OWN_ACCOUNT");
BizObject ZT = JBOFactory.createBizObjectQuery(LB_CONTRACT_INFO.CLASS_NAME,"SUBJECTNAME=:OWN_ACCOUNT").setParameter("OWN_ACCOUNT", OWN_ACCOUNT).getSingleResult(false);
SUBJECTID = ZT.getAttribute("SUBJECTID").getString();
SUBJECTNAME = ZT.getAttribute("SUBJECTNAME").getString();
if(SUBJECTNAME !=null && !"".equals(SUBJECTNAME)) {
BizObject BF = JBOFactory.createBizObjectQuery(OWN_INFO.CLASS_NAME,"OWN_NAME=:OWN_NAME").setParameter("OWN_NAME", SUBJECTNAME).getSingleResult(false);
OWN_NUMBER = BF.getAttribute("OWN_NUMBER").getString();
}
}else {
if(CONTRACT_ID!=null && !"".equals(CONTRACT_ID)) {
BizObject ZT = JBOFactory.createBizObjectQuery(LB_CONTRACT_INFO.CLASS_NAME,"ID=:ID").setParameter("ID", CONTRACT_ID).getSingleResult(false);
SUBJECTID = ZT.getAttribute("SUBJECTID").getString();
SUBJECTNAME = ZT.getAttribute("SUBJECTNAME").getString();
if(SUBJECTNAME !=null && !"".equals(SUBJECTNAME)) {
BizObject BF = JBOFactory.createBizObjectQuery(OWN_INFO.CLASS_NAME,"OWN_NAME=:OWN_NAME").setParameter("OWN_NAME", SUBJECTNAME).getSingleResult(false);
if(BF!=null && !"".equals(BF)) {
OWN_NUMBER = BF.getAttribute("OWN_NUMBER").getString();
}
}
}
if(SUBJECTID==null || "".equals(SUBJECTID) || SUBJECTNAME==null || "".equals(SUBJECTNAME)) {
BizObject ZT = JBOFactory.createBizObjectQuery(CODE_LIBRARY.CLASS_NAME,"itemno=:itemno").setParameter("itemno", "aa740e4111c111eaaa0000163e0e11e6").getSingleResult(false);
SUBJECTID = "aa740e4111c111eaaa0000163e0e11e6";
SUBJECTNAME = ZT.getAttribute("itemname").getString();
BizObject BF = JBOFactory.createBizObjectQuery(OWN_INFO.CLASS_NAME,"OWN_NAME=:OWN_NAME").setParameter("OWN_NAME", SUBJECTNAME).getSingleResult(false);
OWN_NUMBER = BF.getAttribute("OWN_NUMBER").getString();
}
}
}
if("PZ2018072100000032".equals(VOUCHERNO)) {
BizObject BF = JBOFactory.createBizObjectQuery(OWN_INFO.CLASS_NAME,"OWN_NAME=:OWN_NAME").setParameter("OWN_NAME", SUBJECTNAME).getSingleResult(false);
OWN_NUMBER = BF.getAttribute("OWN_NUMBER").getString();
}
param.put("F47", CONTRACT_NUMBER); // 合同编号
param.put("F48", OWN_NUMBER); // 账套出租人编号
param.put("F49", SUBJECTID); // 所属主体id
param.put("F50", SUBJECTNAME);// 所属主体名称
*/
param.put("F49", voucherConfig.getAttribute("OWNED_COMPANY").getString());
param.put("F50", voucherConfig.getAttribute("OWNED_COMPANY").getString());
//3加载默认默认属性库
Map<String,String> attr=this.getDefaultAttribute(tx,param.get("VOUCHER_TYPE"));
param.putAll(attr);
@ -257,7 +304,7 @@ public class CreateVoucherServiceImpl {
/**
* 传统实际付款银行客户获取
*/
if("PZ2018092500000159".equals(VOUCHERNO) || "PZ2018092500000169".equals(VOUCHERNO) || "PZ2019071800000036".equals(VOUCHERNO) || "PZ2019071800000037".equals(VOUCHERNO) || "PZ2019072000000077".equals(VOUCHERNO) || "PZ2019072000000081".equals(VOUCHERNO) || "PZ2019072200000112".equals(VOUCHERNO) || "PZ2019072200000117".equals(VOUCHERNO)) {
if("PZ2018092500000159".equals(VOUCHERNO) || "PZ2018092500000169".equals(VOUCHERNO) || "PZ2019071800000036".equals(VOUCHERNO) || "PZ2019071800000037".equals(VOUCHERNO) || "PZ2019072000000077".equals(VOUCHERNO) || "PZ2019072000000081".equals(VOUCHERNO) || "PZ2019072200000112".equals(VOUCHERNO) || "PZ2019072200000117".equals(VOUCHERNO) || "PZ2018072100000051".equals(VOUCHERNO)) {
if("100208".equals(SUBJECT_CODE)) {
BizObject OWN = JBOFactory.createBizObjectQuery(OWN_ACCOUNT.CLASS_NAME,"ACC_NUMBER=:ACC_NUMBER").setParameter("ACC_NUMBER", param.get("ACC_NUMBER")).getSingleResult(false);
String acc_title = OWN.getAttribute("acc_title").getString();
@ -363,16 +410,20 @@ public class CreateVoucherServiceImpl {
if("PZ2018072100000026".equals(VOUCHERNO) || "PZ2018072100000031".equals(VOUCHERNO) || "PZ2018072100000028".equals(VOUCHERNO) || "PZ2018072100000041".equals(VOUCHERNO) || "PZ2019070100000015".equals(VOUCHERNO) || "PZ2019070100000019".equals(VOUCHERNO) || "PZ2019070100000018".equals(VOUCHERNO) || "PZ2019070100000024".equals(VOUCHERNO)){
subData.put("CUSTID","APZL00000000DC");//虚拟客户
subData.put("CUSTNAME","汽车C端待查客户");//虚拟客户
}else if (("PZ2018081700000134".equals(VOUCHERNO)) || ("PZ2018081700000138".equals(VOUCHERNO)) || ("PZ2018072100000047".equals(VOUCHERNO)) || ("PZ2018081700000132".equals(VOUCHERNO)) || ("PZ2018081700000130".equals(VOUCHERNO)) || ("PZ2018081700000128".equals(VOUCHERNO)) || ("PZ2019071500000030".equals(VOUCHERNO)) || ("PZ2019071500000031".equals(VOUCHERNO))) {
}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("PZ2018072100000039".equals(VOUCHERNO) || "PZ2019070100000021".equals(VOUCHERNO) || "PZ2018072100000043".equals(VOUCHERNO) || "PZ2019070100000025".equals(VOUCHERNO)) {
}else if("PZ2018072100000039".equals(VOUCHERNO) || "PZ2019070100000021".equals(VOUCHERNO) || "PZ2018072100000043".equals(VOUCHERNO) || "PZ2019070100000025".equals(VOUCHERNO) || "PZ2019121600000162".equals(VOUCHERNO) || "PZ2019121600000163".equals(VOUCHERNO) || "PZ2019121700000164".equals(VOUCHERNO)) {
subData.put("CUSTID","APZL00000000DC");//虚拟客户
subData.put("CUSTNAME","汽车C端待查客户");//虚拟客户
// 起租前网银回款
}else if (("PZ2018092500000156".equals(VOUCHERNO)) || ("PZ2018092500000157".equals(VOUCHERNO)) || ("PZ2018092500000158".equals(VOUCHERNO)) || ("PZ2019071800000032".equals(VOUCHERNO)) || ("PZ2019071800000033".equals(VOUCHERNO)) || ("PZ2019071800000034".equals(VOUCHERNO)) || ("PZ2019071800000035".equals(VOUCHERNO)) || ("PZ2019072000000074".equals(VOUCHERNO)) || ("PZ2019072000000075".equals(VOUCHERNO)) || ("PZ2019072000000076".equals(VOUCHERNO)) || ("PZ2019072200000108".equals(VOUCHERNO)) || ("PZ2019072200000109".equals(VOUCHERNO)) || ("PZ2019072200000110".equals(VOUCHERNO)) || ("PZ2019072200000111".equals(VOUCHERNO))) {
}else if("PZ2018092500000156".equals(VOUCHERNO) || "PZ2018092500000158".equals(VOUCHERNO) || "PZ2019071800000032".equals(VOUCHERNO) || "PZ2019071800000033".equals(VOUCHERNO) || "PZ2019071800000034".equals(VOUCHERNO) || "PZ2019071800000035".equals(VOUCHERNO) || "PZ2019072000000074".equals(VOUCHERNO) || "PZ2019072000000076".equals(VOUCHERNO) || "PZ2019072200000108".equals(VOUCHERNO) || "PZ2019072200000109".equals(VOUCHERNO) || "PZ2019072200000110".equals(VOUCHERNO) || "PZ2019072200000111".equals(VOUCHERNO)) {
subData.put("CUSTID","APZL00000000CT");//虚拟客户
subData.put("CUSTNAME","传统B端待查客户");//虚拟客户
// 起租前网银回款-传统与汽车类传统手续费
}else if("PZ2018092500000157".equals(VOUCHERNO) || "PZ2019120400000149".equals(VOUCHERNO) || "PZ2019072000000075".equals(VOUCHERNO) || "PZ2019120400000150".equals(VOUCHERNO)) {
subData.put("CUSTID",param.get("CUSTID2"));//网银回款前网银选了客户就用网银的没有就用CT默认
subData.put("CUSTNAME",param.get("CUSTNAME2"));
// 传统-回款-资金
}else if("PZ2018092500000173".equals(VOUCHERNO) || "PZ2018092500000174".equals(VOUCHERNO) || "PZ2019071800000043".equals(VOUCHERNO) || "PZ2019071800000044".equals(VOUCHERNO) || "PZ2019072000000088".equals(VOUCHERNO) || "PZ2019072000000089".equals(VOUCHERNO) || "PZ2019072200000124".equals(VOUCHERNO) || "PZ2019072200000125".equals(VOUCHERNO) || "PZ2019073000000146".equals(VOUCHERNO) || "PZ2019073000000147".equals(VOUCHERNO)) {
subData.put("CUSTID","APZL00000000CT");//虚拟客户
@ -393,11 +444,16 @@ public class CreateVoucherServiceImpl {
subData.put("CUSTID","APZL00000000CT");//虚拟客户
subData.put("CUSTNAME","传统B端待查客户");//虚拟客户
// 网银核销 单笔网银第一次收租金客户为APZL00000000DC固定客户
}else if (("PZ2018080400000081".equals(VOUCHERNO)) || ("PZ2019070100000017".equals(VOUCHERNO)) || ("PZ2018072100000025".equals(VOUCHERNO)) || ("PZ2019070100000014".equals(VOUCHERNO))) {
}else if("PZ2018080400000081".equals(VOUCHERNO) || "PZ2019070100000017".equals(VOUCHERNO) || "PZ2018072100000025".equals(VOUCHERNO) || "PZ2019070100000014".equals(VOUCHERNO) || "PZ2019071500000030".equals(VOUCHERNO) || "PZ2019071500000031".equals(VOUCHERNO)){
String YES_OR_NO = param.get("YES_OR_NO");
if( "YES".equals(YES_OR_NO)){
String CUSTID2 = param.get("CUSTID2");
String CUSTNAME2 = param.get("CUSTNAME2");
if(YES_OR_NO==null || "YES".equals(YES_OR_NO)){
subData.put("CUSTID","APZL00000000DC");//虚拟账户
subData.put("CUSTNAME","汽车C端待查客户");//虚拟账户
}else if("NO".equals(YES_OR_NO)){
subData.put("CUSTID",CUSTID2);//网银客户
subData.put("CUSTNAME",CUSTNAME2);//网银客户
}
}
}else{
@ -434,7 +490,7 @@ public class CreateVoucherServiceImpl {
subData.put("CUSTNAME",dataTemp.get("DISTRIBUTOR_NAME"));//经销商名称
}
}*/
String LEAS_FORM = (String)param.get("LEAS_FORM");
// 起租-第一车贷, 购置融资租赁资产带固定编码
if("PZ2018073100000062".equals(VOUCHERNO)) {
if("3".equals(SORT_NUMBER)) {
@ -480,10 +536,15 @@ public class CreateVoucherServiceImpl {
*/
if("PZ2018072100000024".equals(VOUCHERNO) || "PZ2019070100000016".equals(VOUCHERNO)) {
String YES_OR_NO = param.get("YES_OR_NO");// 判断是否使用默认编码
String CUSTID2 = param.get("CUSTID2");
String CUSTNAME2 = param.get("CUSTNAME2");
if("YES".equals(YES_OR_NO) && "1".equals(SORT_NUMBER)){
subData.put("CUSTID","APZL00000000DC");//虚拟账户
subData.put("CUSTNAME","汽车C端待查客户");//虚拟账户
}else if("NO".equals(YES_OR_NO) && "1".equals(SORT_NUMBER)){
subData.put("CUSTID",CUSTID2);//虚拟账户
subData.put("CUSTNAME",CUSTNAME2);//虚拟账户
}
}
@ -556,7 +617,7 @@ public class CreateVoucherServiceImpl {
String sql = "select id from lv_voucher_loan where voucher_id=" + "'" + voucherConfigId + "'";
Map<String,String> param = new HashMap<String, String>();
List<Map<String,String>> list = DataOperatorUtil.getDataBySql(tx, sql, param);
for(Map ma:list){
for(Map<String,String> ma:list){
fromCondtion.clear();
otherProperty.clear();
fromCondtion = ma;

View File

@ -573,4 +573,12 @@ public interface LC_CALC_CONDITION{
* ±£ÏշѱÈÀý DOUBLE(22)<br>
*/
public static final String INSURANCE_PREMIUM_RATIO = "INSURANCE_PREMIUM_RATIO";
/**
* 联合方出资额 DOUBLE(22)<br>
*/
public static final String UNITE_MONEY = "UNITE_MONEY";
/**
* 联合方出资额比例 DOUBLE(22)<br>
*/
public static final String UNITE_MONEY_RATIO = "UNITE_MONEY_RATIO";
}

View File

@ -573,4 +573,12 @@ public interface LC_CALC_CONDITION_HIS{
* ±£ÏշѱÈÀý DOUBLE(22)<br>
*/
public static final String INSURANCE_PREMIUM_RATIO = "INSURANCE_PREMIUM_RATIO";
/**
* 联合方出资额 DOUBLE(22)<br>
*/
public static final String UNITE_MONEY = "UNITE_MONEY";
/**
* 联合方出资额比例 DOUBLE(22)<br>
*/
public static final String UNITE_MONEY_RATIO = "UNITE_MONEY_RATIO";
}

View File

@ -573,4 +573,12 @@ public interface LC_CALC_CONDITION_TEMP{
* ±£ÏշѱÈÀý DOUBLE(22)<br>
*/
public static final String INSURANCE_PREMIUM_RATIO = "INSURANCE_PREMIUM_RATIO";
/**
* 联合方出资额 DOUBLE(22)<br>
*/
public static final String UNITE_MONEY = "UNITE_MONEY";
/**
* 联合方出资额比例 DOUBLE(22)<br>
*/
public static final String UNITE_MONEY_RATIO = "UNITE_MONEY_RATIO";
}

View File

@ -577,4 +577,12 @@ public interface LC_CONTRACT_CONDITION{
* ±£ÏշѱÈÀý DOUBLE(22)<br>
*/
public static final String INSURANCE_PREMIUM_RATIO = "INSURANCE_PREMIUM_RATIO";
/**
* 联合方出资额 DOUBLE(22)<br>
*/
public static final String UNITE_MONEY = "UNITE_MONEY";
/**
* 联合方出资额比例 DOUBLE(22)<br>
*/
public static final String UNITE_MONEY_RATIO = "UNITE_MONEY_RATIO";
}

View File

@ -158,6 +158,10 @@ public interface LC_EBANK{
*/
public static final String UPDATETIME = "UPDATETIME";
/**
* Í˻ؽðî DOUBLE(22)<br>
*/
public static final String RETURN_MONEY = "RETURN_MONEY";
/**
* 交易时间 STRING(32)<br>
*/
public static final String FACT_TIME = "FACT_TIME";

View File

@ -157,4 +157,12 @@ public interface LC_EBANK_TEMP{
* 更新时间 STRING(32)<br>
*/
public static final String UPDATETIME = "UPDATETIME";
/**
* 退回金额 DOUBLE(22)<br>
*/
public static final String RETURN_MONEY = "RETURN_MONEY";
/**
* 业务类型 STRING(10)<br>
*/
public static final String BUSINESS_TYPE = "BUSINESS_TYPE";
}

View File

@ -577,4 +577,12 @@ public interface LC_PROJ_CONDITION{
* ±£ÏշѱÈÀý DOUBLE(22)<br>
*/
public static final String INSURANCE_PREMIUM_RATIO = "INSURANCE_PREMIUM_RATIO";
/**
* 联合方出资额 DOUBLE(22)<br>
*/
public static final String UNITE_MONEY = "UNITE_MONEY";
/**
* 联合方出资额比例 DOUBLE(22)<br>
*/
public static final String UNITE_MONEY_RATIO = "UNITE_MONEY_RATIO";
}

View File

@ -205,4 +205,8 @@ public interface LC_RENT_INCOME{
* ¿Û¿îÅú´ÎºÅ STRING(32)<br>
*/
public static final String SPARE_BATCH_NO = "SPARE_BATCH_NO";
/**
* 手续费方式 STRING(10)<br>
*/
public static final String CHARGE_WAY = "CHARGE_WAY";
}

View File

@ -213,4 +213,8 @@ public interface LC_RENT_INCOME_TEMP{
* ¿Û¿îÅú´ÎºÅ STRING(32)<br>
*/
public static final String SPARE_BATCH_NO = "SPARE_BATCH_NO";
/**
* 手续费方式 STRING(10)<br>
*/
public static final String CHARGE_WAY = "CHARGE_WAY";
}

View File

@ -181,4 +181,8 @@ public interface LC_RENT_PLAN{
* 分润给SP STRING(18)<br>
*/
public static final String INTEREST_sp = "INTEREST_sp";
/**
* 分润支付状态 STRING(2)<br>
*/
public static final String SPLITTING_STATUS = "SPLITTING_STATUS";
}

View File

@ -181,4 +181,8 @@ public interface LC_RENT_PLAN_HIS{
* 分润给SP STRING(18)<br>
*/
public static final String INTEREST_sp = "INTEREST_sp";
/**
* 分润支付状态 STRING(2)<br>
*/
public static final String SPLITTING_STATUS = "SPLITTING_STATUS";
}

View File

@ -181,4 +181,8 @@ public interface LC_RENT_PLAN_TEMP{
* 分润给SP STRING(18)<br>
*/
public static final String INTEREST_sp = "INTEREST_sp";
/**
* 分润支付状态 STRING(2)<br>
*/
public static final String SPLITTING_STATUS = "SPLITTING_STATUS";
}

View File

@ -93,4 +93,12 @@ public interface D_DEPOSITCHARGE_INFO_TEMP{
* ¾­ÏúÉÌÃû³Æ STRING(32)<br>
*/
public static final String DISTRIBUTOR_ACCOUNT_TEMP = "DISTRIBUTOR_ACCOUNT_TEMP";
/**
* Ö÷Ìåid STRING(32)<br>
*/
public static final String SUBJECTID = "SUBJECTID";
/**
* Ö÷ÌåÃû³Æ STRING(200)<br>
*/
public static final String SUBJECTNAME = "SUBJECTNAME";
}

View File

@ -89,4 +89,12 @@ public interface D_DEPOSITRETURN_INFO_TEMP{
* ÍË¿îÕ˺ŠSTRING(32)<br>
*/
public static final String refund_number = "refund_number";
/**
* Ö÷Ìåid STRING(32)<br>
*/
public static final String SUBJECTID = "SUBJECTID";
/**
* Ö÷ÌåÃû³Æ STRING(200)<br>
*/
public static final String SUBJECTNAME = "SUBJECTNAME";
}

View File

@ -37,6 +37,12 @@ public class CreateVoucherMonthSettlementMission implements Job {
vouchermanage.CreateVoucher("PZ2018071200000017");//月结手续费(按月分摊)
vouchermanage.CreateVoucher("PZ2018072100000048");//月结-确认贴息收入
/**
* 汽车-直租
*/
vouchermanage.CreateVoucher("PZ2019070100000028");//月结-确认未实现利息收入
vouchermanage.CreateVoucher("PZ2019070100000029");//月结手续费(按月分摊)
CreateVoucherMonthSettlementForTradition cmsft = new CreateVoucherMonthSettlementForTradition();
@ -45,13 +51,30 @@ public class CreateVoucherMonthSettlementMission implements Job {
*/
cmsft.CreateVoucher("PZ2018092500000183");//月结-确认未实现利息收入-月付(传统)
cmsft.CreateVoucher("PZ2018092500000184");//月结-确认未实现利息收入-季付(传统)
cmsft.CreateVoucher("PZ2019120400000151");//月结-确认手续费(传统)-按月分摊
/**
* 传统-直租
*/
cmsft.CreateVoucher("PZ2019071800000069");//月结-确认未实现利息收入-月付(传统)
cmsft.CreateVoucher("PZ2019071800000070");//月结-确认未实现利息收入-季付(传统)
/**
* 汽车类传统-回租
*/
cmsft.CreateVoucher("PZ2019072200000106");//月结-确认未实现利息收入-月付(汽车类传统)
cmsft.CreateVoucher("PZ2019072200000107");//月结-确认未实现利息收入-季付(汽车类传统)
cmsft.CreateVoucher("PZ2019120400000152");//月结-确认手续费(汽车类传统)-按月分摊
/**
* 汽车类传统-直租
*/
cmsft.CreateVoucher("PZ2019072300000144");//月结-确认未实现利息收入-月付(汽车类传统)
cmsft.CreateVoucher("PZ2019072300000145");//月结-确认未实现利息收入-季付(汽车类传统)
String startime2 = StringFunction.getTodayNow();
System.out.println("==================================已完成==================================");
System.out.println("==================================已完成==================================");
System.out.println("==================================已完成==================================");
System.out.println("==================================已完成================================");
System.out.println("==================================" + startime + "====" + startime2 + "====================================");
System.out.println("================================月结执行完毕================================");
System.out.println("===============开始时间:"+startime+"====结束时间: "+startime2+"===============");
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.CreateVoucherMonthSettlementMission", "success", "成功", curUserId);
} catch (Exception e) {
try {

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,57 @@
package com.tenwa.lease.app.quartzmession;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.awe.util.Transaction;
/**
* 1:动态池数总表跑批
* @author xiezhiwen
*/
public class DynamicPoolTotalRunBatch implements Job{
private static final Logger logger = LogManager.getLogger(DynamicPoolTotalRunBatch.class);// 引入logger日志
public void execute(JobExecutionContext arg0) throws JobExecutionException {
Transaction Sqlca=null;
try{
Sqlca = Transaction.createTransaction("als");
String create_time = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss").format(new Date());
// 删除当月跑批记录
String deleteSql="DELETE FROM LV_DYNAMIC_POOL_TOTAL WHERE DATE_FORMAT(CREATE_TIME,'%Y/%m')=DATE_FORMAT(NOW(),'%Y/%m')";
Sqlca.executeSQL(deleteSql);
// 将当月跑批数据插入静态池表
String insertSql="INSERT INTO LV_DYNAMIC_POOL_TOTAL(SELECT REPLACE(UUID(), '-', '') AS ID,DATE_FORMAT(NOW(),'%Y/%m/%d') AS F1,SUM(IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00)) AS F2,SUM(IFNULL(LRP2.ZC_LOAN_SURPLUS_MONEY,0.00)) AS F3,SUM(CASE WHEN VOC1.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F4,SUM(CASE WHEN VOC2.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F5,SUM(CASE WHEN VOC3.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F6,SUM(CASE WHEN VOC4.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F7,SUM(CASE WHEN VOC5.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F8,SUM(CASE WHEN VOC6.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F9,SUM(CASE WHEN VOC7.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F10,DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS CREATE_TIME FROM (SELECT CONTRACT_ID,MAX(FACT_DATE) AS FACT_DATE FROM LC_FUND_INCOME WHERE FEE_TYPE = 'feetype10' AND EBANK_STATUS = '05' AND DATE_FORMAT(FACT_DATE,'%Y/%m')<=DATE_FORMAT(NOW(),'%Y/%m') GROUP BY CONTRACT_ID) LFI LEFT JOIN (SELECT LRP.CONTRACT_ID,SUM(LRP.CORPUS)-SUM(IFNULL(LRI.CORPUS,0)) AS QB_LOAN_SURPLUS_MONEY FROM (SELECT CONTRACT_ID,SUM(CORPUS) AS CORPUS FROM LC_RENT_PLAN GROUP BY CONTRACT_ID) LRP LEFT JOIN (SELECT CONTRACT_ID,SUM(CORPUS) AS CORPUS,SUM(IFNULL(PENALTY,0)) AS PENALTY FROM LC_RENT_INCOME GROUP BY CONTRACT_ID)LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID GROUP BY LRP.CONTRACT_ID)LRP1 ON LRP1.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT LRP.CONTRACT_ID,SUM(LRP.CORPUS)-SUM(IFNULL(LRI.CORPUS,0)) AS ZC_LOAN_SURPLUS_MONEY FROM LC_RENT_PLAN LRP LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(CORPUS) AS CORPUS FROM LC_RENT_INCOME GROUP BY CONTRACT_ID,PLAN_LIST)LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID AND LRI.PLAN_LIST=LRP.PLAN_LIST WHERE DATE_FORMAT(LRP.PLAN_DATE,'%Y/%m/%d')>=DATE_FORMAT(NOW(),'%Y/%m/%d') AND LRP.CORPUS-IFNULL(LRI.CORPUS,0)<>0 AND NOT EXISTS(SELECT 1 FROM VI_OVERDUE_CONTRACT VOC WHERE VOC.CONTRACT_ID=LRP.CONTRACT_ID)GROUP BY LRP.CONTRACT_ID)LRP2 ON LRP2.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 1 AND 30 GROUP BY CONTRACT_ID)VOC1 ON VOC1.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 31 AND 60 GROUP BY CONTRACT_ID)VOC2 ON VOC2.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 61 AND 90 GROUP BY CONTRACT_ID)VOC3 ON VOC3.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 91 AND 120 GROUP BY CONTRACT_ID)VOC4 ON VOC4.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 121 AND 150 GROUP BY CONTRACT_ID)VOC5 ON VOC5.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 151 AND 180 GROUP BY CONTRACT_ID)VOC6 ON VOC6.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY>180 GROUP BY CONTRACT_ID)VOC7 ON VOC7.CONTRACT_ID=LRP1.CONTRACT_ID ) ";
int con = Sqlca.executeSQL(insertSql);
Sqlca.commit();
logger.info("动态池汇总数据跑批成功,《《《条数:"+con+"《《《《时间:"+create_time+"《《《"+insertSql);
logger.info("动态池汇总数据跑批成功,《《《条数:"+con+"《《《《时间:"+create_time+"《《《"+insertSql);
logger.info("动态池汇总数据跑批成功,《《《条数:"+con+"《《《《时间:"+create_time+"《《《"+insertSql);
}catch(Exception e){
logger.info("<<<<<<<<<<<<<<<<<<<<<<动态池汇总数据跑批定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<动态池汇总数据跑批定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<动态池汇总数据跑批定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>");
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null) {
try {
Sqlca.commit();
Sqlca.disConnect();
} catch (JBOException e) {
e.printStackTrace();
}
}
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -103,7 +103,7 @@ public class CreateFiveGradeDataAction {
newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.DEPOSITRATIO,BoDI.getAttribute("MARGIN_SCALE_SET"));
newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.AGREEMENT,BoDI.getAttribute("LIMIT_END_DATE"));
newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.TOTAL_FINANCING_AMOUNT,new BigDecimal(Double.parseDouble(FINANCING_AMOUNT_LOSS)+Double.parseDouble(FINANCING_AMOUNT_SUSPICIOUS)+Double.parseDouble(FINANCING_AMOUNT_SECONDARY)+Double.parseDouble(FINANCING_AMOUNT_ATTENTION)+Double.parseDouble(FINANCING_AMOUNT_NORMAL)).setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.THE_REMAINING_AMOUNT, new BigDecimal(Double.parseDouble(BoDI.getAttribute("TOTAL").getString()) - (Double.parseDouble(this.FINANCING_AMOUNT_LOSS) + Double.parseDouble(this.FINANCING_AMOUNT_SUSPICIOUS) + Double.parseDouble(this.FINANCING_AMOUNT_SECONDARY) + Double.parseDouble(this.FINANCING_AMOUNT_ATTENTION) + Double.parseDouble(this.FINANCING_AMOUNT_NORMAL))).setScale(2, 4).toPlainString());
newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.THE_REMAINING_AMOUNT,new BigDecimal(Double.parseDouble(BoDI.getAttribute("TOTAL").getString())-TOTAL_OUTSTANDING_PRINCIPAL).setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.TOTAL_OVERDUE_PRINCIPAL,new BigDecimal(TOTAL_OVERDUE_PRINCIPAL).setScale(2, BigDecimal.ROUND_HALF_UP));
newBo.setAttributeValue(LB_FIVEGRADEDETAILED_INFO.TOTAL_OVERDUE_INTEREST,new BigDecimal(TOTAL_OVERDUE_INTEREST).setScale(2, BigDecimal.ROUND_HALF_UP));