凭证相关--传统放款凭证

This commit is contained in:
xiezhiwen 2019-02-21 14:35:14 +08:00
parent d8f52a38de
commit 57e3e44168
4 changed files with 40 additions and 49 deletions

View File

@ -12,6 +12,7 @@ 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;
@ -28,12 +29,9 @@ public class CreateVoucherActualPaymentTradition extends BaseBussiness{
Map<String,String> map=new HashMap<String, String>();
Map<String,String> param=new HashMap<String, String>();
// 定义全局对象
String EQUIP=null; // 设备款
String EQUIPNOTAX=null; // 设备款(不含税)
String EQUIPTAX=null; // 设备款(税金)
String OTHER_MONEY=null; // 其他款
String OTHERNOTAX=null; // 其它金额(不含税)
String OTHERTAX=null; // 其它金额(税金)
String MONEY=null; // 差额放款中-购置融资租赁资产-传统租赁资产里面的--首付款
String INTERESTNOTAX=null; // 差额放款中-购置融资租赁资产-传统租赁资产里面的--保证金
String TAX=null; // 差额放款中-购置融资租赁资产-传统租赁资产里面的--手续费
String EQUIP_OTHER=null; // 设备款+其他
String FIRST_PAYMENT=null; // 首付款
String GUARANTY=null; // 保证金
@ -56,19 +54,19 @@ public class CreateVoucherActualPaymentTradition extends BaseBussiness{
String ACC_NUMBER=null; // 银行账号
String sql="";
sql="SELECT IFNULL(LFIT1.EQUIP, 0) AS EQUIP,IFNULL(ROUND(LFIT1.EQUIP / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2),0) AS EQUIPNOTAX,IFNULL(LFIT1.EQUIP - ROUND(LFIT1.EQUIP / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2),0) AS EQUIPTAX,IFNULL(LFIT2.OTHER_MONEY, 0) AS OTHER_MONEY,IFNULL(ROUND(LFIT2.OTHER_MONEY / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2),0) AS OTHERNOTAX,IFNULL(LFIT2.OTHER_MONEY - ROUND(LFIT2.OTHER_MONEY / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2),0) AS OTHERTAX,IFNULL((LFIT1.EQUIP + LFIT2.OTHER_MONEY),0) AS EQUIP_OTHER,IFNULL(LFIT3.FIRST_PAYMENT, 0) AS FIRST_PAYMENT,IFNULL(LFIT4.GUARANTY, 0) AS GUARANTY,IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) AS HANDLING_CHARGE_MONEY,IFNULL(ROUND(LFIT5.HANDLING_CHARGE_MONEY / getTax (LCI.LEAS_FORM,'手续费',LCCT.START_DATE),2),0) AS HANDLING_CHARGE_MONEY_NOTAX,IFNULL((LFIT5.HANDLING_CHARGE_MONEY - ROUND(LFIT5.HANDLING_CHARGE_MONEY / getTax (LCI.LEAS_FORM,'手续费',LCCT.START_DATE),2)),0) AS HANDLING_CHARGE_MONEY_TAX,IFNULL((LFIT1.EQUIP + LFIT2.OTHER_MONEY - LFIT3.FIRST_PAYMENT - LFIT4.GUARANTY - LFIT5.HANDLING_CHARGE_MONEY),0) AS OTHERS_MATH,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%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 FROM LC_CALC_CONDITION_TEMP LCCT LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,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 ON LFIT1.FLOWUNID = LCCT.FLOWUNID LEFT JOIN (SELECT FLOWUNID,FACT_MONEY AS OTHER_MONEY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype29') LFIT2 ON LFIT2.FLOWUNID = LFIT1.FLOWUNID LEFT JOIN (SELECT FLOWUNID,FACT_MONEY AS FIRST_PAYMENT,SETTLE_METHOD FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype5') LFIT3 ON LFIT3.FLOWUNID = LFIT1.FLOWUNID LEFT JOIN (SELECT FLOWUNID,FACT_MONEY AS GUARANTY,SETTLE_METHOD FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype2') LFIT4 ON LFIT4.FLOWUNID = LFIT1.FLOWUNID LEFT JOIN (SELECT FLOWUNID,FACT_MONEY AS HANDLING_CHARGE_MONEY,SETTLE_METHOD FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype1') LFIT5 ON LFIT5.FLOWUNID = LFIT1.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT1.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 LCCT.FLOWUNID = :FLOWUNID ";
sql="SELECT CASE WHEN LFIT3.FIRST_PAYMENT IS NULL THEN LCCT.FIRST_PAYMENT ELSE 0.00 END AS MONEY,CASE WHEN LFIT4.GUARANTY IS NULL THEN LCCT.CAUTION_MONEY ELSE 0.00 END AS INTERESTNOTAX,CASE WHEN LFIT5.HANDLING_CHARGE_MONEY IS NULL THEN LCCT.CAUTION_MONEY ELSE 0.00 END AS TAX,IFNULL(LFIT1.EQUIP,0)+ IFNULL(LFIT2.OTHER_MONEY,0) AS EQUIP_OTHER,CASE WHEN LFIT3.FIRST_PAYMENT IS NULL THEN LCCT.FIRST_PAYMENT ELSE IFNULL(LFIT3.FIRST_PAYMENT, 0) END AS FIRST_PAYMENT,CASE WHEN LFIT4.GUARANTY IS NULL THEN LCCT.CAUTION_MONEY ELSE IFNULL(LFIT4.GUARANTY, 0) END AS GUARANTY,CASE WHEN LFIT5.HANDLING_CHARGE_MONEY IS NULL THEN LCCT.CAUTION_MONEY ELSE IFNULL(LFIT5.HANDLING_CHARGE_MONEY, 0) END AS HANDLING_CHARGE_MONEY,CASE WHEN LFIT5.HANDLING_CHARGE_MONEY IS NULL THEN IFNULL(ROUND(LCCT.CAUTION_MONEY / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2),0) ELSE IFNULL(ROUND(LFIT5.HANDLING_CHARGE_MONEY / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2),0) END AS HANDLING_CHARGE_MONEY_NOTAX,CASE WHEN LFIT5.HANDLING_CHARGE_MONEY IS NULL THEN IFNULL((LCCT.CAUTION_MONEY - ROUND(LCCT.CAUTION_MONEY/getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)),0) ELSE IFNULL((LFIT5.HANDLING_CHARGE_MONEY - ROUND(LFIT5.HANDLING_CHARGE_MONEY / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)),0) END AS HANDLING_CHARGE_MONEY_TAX,IFNULL(LFIT1.EQUIP,0) + IFNULL(LFIT2.OTHER_MONEY,0) - (CASE WHEN LFIT3.FIRST_PAYMENT IS NULL THEN LCCT.FIRST_PAYMENT ELSE 0.00 END)- (CASE WHEN LFIT4.GUARANTY IS NULL THEN LCCT.CAUTION_MONEY ELSE 0.00 END ) - (CASE WHEN LFIT5.HANDLING_CHARGE_MONEY IS NULL THEN LCCT.CAUTION_MONEY ELSE 0.00 END) AS OTHERS_MATH,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%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 FROM LC_CALC_CONDITION_TEMP LCCT LEFT JOIN (SELECT FLOWUNID,CONTRACT_ID,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 ON LFIT1.FLOWUNID = LCCT.FLOWUNID LEFT JOIN (SELECT FLOWUNID,SUM(FACT_MONEY) AS OTHER_MONEY FROM LC_FUND_INCOME_TEMP WHERE FEE_TYPE = 'feetype29' GROUP BY FLOWUNID) LFIT2 ON LFIT2.FLOWUNID = LFIT1.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT1.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,SUM(FACT_MONEY) AS FIRST_PAYMENT FROM LC_FUND_INCOME WHERE FEE_TYPE = 'feetype5' GROUP BY CONTRACT_ID) LFIT3 ON LFIT3.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,SUM(FACT_MONEY) AS GUARANTY FROM LC_FUND_INCOME WHERE FEE_TYPE = 'feetype2' GROUP BY CONTRACT_ID) LFIT4 ON LFIT4.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT CONTRACT_ID,SUM(FACT_MONEY) AS HANDLING_CHARGE_MONEY FROM LC_FUND_INCOME WHERE FEE_TYPE = 'feetype1' GROUP BY CONTRACT_ID) LFIT5 ON LFIT5.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 LCCT.FLOWUNID = :FLOWUNID ";
// 非差额放款部分
if("PZ2018092500000161".equals(VOUCHERNO)){
sql+=" AND (LFIT3.SETTLE_METHOD !='settlemethod11' OR LFIT3.SETTLE_METHOD IS NULL) AND (LFIT4.SETTLE_METHOD !='settlemethod11' OR LFIT4.SETTLE_METHOD IS NULL) AND (LFIT5.SETTLE_METHOD !='settlemethod11' OR LFIT5.SETTLE_METHOD IS NULL)";
}else if("PZ2018092500000162".equals(VOUCHERNO) || "PZ2018092500000163".equals(VOUCHERNO)) {// 差额-经销商支付的预付款(首付)/给经销商放款-首付冲抵--回租
sql+=" AND LFIT3.SETTLE_METHOD='settlemethod11'";
}else if("PZ2018092500000164".equals(VOUCHERNO) || "PZ2018092500000165".equals(VOUCHERNO)) {// 客户记录保证金/给经销商放款-保证金冲抵
sql+=" AND LFIT4.SETTLE_METHOD='settlemethod11'";
}else if("PZ2018092500000166".equals(VOUCHERNO) || "PZ2018092500000167".equals(VOUCHERNO)) {// 收到客户手续费 / 给经销商放款-手续费冲抵
sql+=" AND LFIT5.SETTLE_METHOD='settlemethod11'";
}else if("PZ2018092500000169".equals(VOUCHERNO) || "PZ2018092600000233".equals(VOUCHERNO)) {// 给经销商放款-差额放款
sql+=" AND (LFIT3.SETTLE_METHOD ='settlemethod11' OR LFIT4.SETTLE_METHOD ='settlemethod11' OR LFIT5.SETTLE_METHOD ='settlemethod11')";
// 非差额放款部分--购置融资租赁资产-传统租赁资产(判断首付款&&保证金&&手续费是否已经回款)
if("PZ2018092500000159".equals(VOUCHERNO)){
sql+="AND (LFIT3.FIRST_PAYMENT IS NOT NULL AND LFIT4.GUARANTY IS NOT NULL AND LFIT5.HANDLING_CHARGE_MONEY IS NOT NULL)";
}else if("PZ2018092500000162".equals(VOUCHERNO)) {// 差额-经销商支付的预付款(首付)
sql+=" AND LFIT3.FIRST_PAYMENT IS NULL";
}else if("PZ2018092500000164".equals(VOUCHERNO)) {// 客户记录保证金
sql+=" AND LFIT4.GUARANTY IS NULL";
}else if("PZ2018092500000166".equals(VOUCHERNO)) {// 收到客户手续费
sql+=" AND LFIT5.HANDLING_CHARGE_MONEY IS NULL";
}else if("PZ2018092500000169".equals(VOUCHERNO)) {// 给经销商放款-差额放款
sql+=" AND (LFIT3.FIRST_PAYMENT IS NULL OR LFIT4.GUARANTY IS NULL OR LFIT5.HANDLING_CHARGE_MONEY IS NULL) ";
}
param.clear();
map.put("FLOWUNID", FlowUnid);
@ -84,12 +82,9 @@ public class CreateVoucherActualPaymentTradition extends BaseBussiness{
String userid ="admin";
for (int i=0;i<dataList.size();i++){
EQUIP=dataList.get(i).get("EQUIP");// 设备款
EQUIPNOTAX=dataList.get(i).get("EQUIPNOTAX");// 设备款(不含税)
EQUIPTAX=dataList.get(i).get("EQUIPTAX");// 设备款(税金)
OTHER_MONEY=dataList.get(i).get("OTHER_MONEY");// 其他金额
OTHERNOTAX=dataList.get(i).get("OTHERNOTAX");// 其他金额(不含税)
OTHERTAX=dataList.get(i).get("OTHERTAX");// 其他金额(税金)
MONEY=dataList.get(i).get("MONEY");//差额放款中-购置融资租赁资产-传统租赁资产里面的--首付款
INTERESTNOTAX=dataList.get(i).get("INTERESTNOTAX");//差额放款中-购置融资租赁资产-传统租赁资产里面的--保证金
TAX=dataList.get(i).get("TAX");//差额放款中-购置融资租赁资产-传统租赁资产里面的--手续费
EQUIP_OTHER=dataList.get(i).get("EQUIP_OTHER");// 设备款+其他
FIRST_PAYMENT=dataList.get(i).get("FIRST_PAYMENT");// 首付款
GUARANTY=dataList.get(i).get("GUARANTY");// 保证金
@ -112,12 +107,9 @@ public class CreateVoucherActualPaymentTradition extends BaseBussiness{
ACC_NUMBER=dataList.get(i).get("ACC_NUMBER");// 银行账号
// 将数据封装到定义好的map集合中
param.put("EQUIP",EQUIP);
param.put("EQUIPNOTAX",EQUIPNOTAX);
param.put("EQUIPTAX",EQUIPTAX);
param.put("OTHER_MONEY",OTHER_MONEY);
param.put("OTHERNOTAX",OTHERNOTAX);
param.put("OTHERTAX",OTHERTAX);
param.put("FACT_MONEY",MONEY);
param.put("INTERESTNOTAX",INTERESTNOTAX);
param.put("TAX",TAX);
param.put("EQUIP_OTHER",EQUIP_OTHER);
param.put("FIRST_PAYMENT",FIRST_PAYMENT);
param.put("GUARANTY",GUARANTY);
@ -150,7 +142,7 @@ public class CreateVoucherActualPaymentTradition extends BaseBussiness{
}
// 给供应商放款-非差额放款/给经销商放款-差额放款, 用来判断集团内外的现金流辅助项
if("PZ2018092500000161".equals(VOUCHERNO) || "PZ2018092500000169".equals(VOUCHERNO)) {
if("PZ2018092500000159".equals(VOUCHERNO) || "PZ2018092500000169".equals(VOUCHERNO)) {
if(cust_list != null) {// 集团内
param.put("CASHFLOW", "11212");// 现金流项目
}else {// 集团外

View File

@ -15,37 +15,38 @@ public class ContractActualPaymentTraditionVoucher extends BaseBussiness {
CreateVoucherActualPaymentTradition cvap = new CreateVoucherActualPaymentTradition();
// 差额放款和非差额放款共有部分
cvap.CreateVoucher(FlowUnid, "PZ2018092500000159"); // 购置融资租赁资产-传统租赁资产--回租
cvap.CreateVoucher(FlowUnid, "PZ2018092600000223"); // 购置融资租赁资产-传统租赁资产--直租
cvap.CreateVoucher(FlowUnid, "PZ2018092500000159"); // 购置融资租赁资产-传统租赁资产--回租 --差额放款
// cvap.CreateVoucher(FlowUnid, "PZ2018092600000223"); // 购置融资租赁资产-传统租赁资产--直租
cvap.CreateVoucher(FlowUnid, "PZ2018092500000160"); // 购置融资租赁资产-其他--回租
cvap.CreateVoucher(FlowUnid, "PZ2018092600000224"); // 购置融资租赁资产-其他--直租
//cvap.CreateVoucher(FlowUnid, "PZ2018092500000160"); // 购置融资租赁资产-其他--回租
//cvap.CreateVoucher(FlowUnid, "PZ2018092600000224"); // 购置融资租赁资产-其他--直租
// 非差额放款部分
cvap.CreateVoucher(FlowUnid, "PZ2018092500000161"); // 给经销商放款-非差额放款--回租
cvap.CreateVoucher(FlowUnid, "PZ2018092600000225"); // 给经销商放款-非差额放款--直租
//cvap.CreateVoucher(FlowUnid, "PZ2018092500000161"); // 给经销商放款-非差额放款--回租
//cvap.CreateVoucher(FlowUnid, "PZ2018092600000225"); // 给经销商放款-非差额放款--直租
// 差额放款部分
cvap.CreateVoucher(FlowUnid, "PZ2018092500000162"); // 经销商支付的预付款(首付)--回租
cvap.CreateVoucher(FlowUnid, "PZ2018092600000226"); // 经销商支付的预付款(首付)--直租
//cvap.CreateVoucher(FlowUnid, "PZ2018092600000226"); // 经销商支付的预付款(首付)--直租
cvap.CreateVoucher(FlowUnid, "PZ2018092500000163"); // 给经销商放款-首付冲抵--回租
cvap.CreateVoucher(FlowUnid, "PZ2018092600000227"); // 给经销商放款-首付冲抵--直租
//cvap.CreateVoucher(FlowUnid, "PZ2018092500000163"); // 给经销商放款-首付冲抵--回租
//cvap.CreateVoucher(FlowUnid, "PZ2018092600000227"); // 给经销商放款-首付冲抵--直租
cvap.CreateVoucher(FlowUnid, "PZ2018092500000164"); // 客户记录保证金--回租
cvap.CreateVoucher(FlowUnid, "PZ2018092600000229"); // 客户记录保证金--直租
//cvap.CreateVoucher(FlowUnid, "PZ2018092600000229"); // 客户记录保证金--直租
cvap.CreateVoucher(FlowUnid, "PZ2018092500000165"); // 给经销商放款-保证金冲抵--回租
cvap.CreateVoucher(FlowUnid, "PZ2018092600000230"); // 给经销商放款-保证金冲抵--直租
//cvap.CreateVoucher(FlowUnid, "PZ2018092500000165"); // 给经销商放款-保证金冲抵--回租
//cvap.CreateVoucher(FlowUnid, "PZ2018092600000230"); // 给经销商放款-保证金冲抵--直租
cvap.CreateVoucher(FlowUnid, "PZ2018092500000166"); // 收到客户手续费--回租
cvap.CreateVoucher(FlowUnid, "PZ2018092600000231"); // 收到客户手续费--直租
//cvap.CreateVoucher(FlowUnid, "PZ2018092600000231"); // 收到客户手续费--直租
cvap.CreateVoucher(FlowUnid, "PZ2018092500000167"); // 给经销商放款-手续费冲抵--回租
cvap.CreateVoucher(FlowUnid, "PZ2018092600000232"); // 给经销商放款-手续费冲抵--直租
//cvap.CreateVoucher(FlowUnid, "PZ2018092500000167"); // 给经销商放款-手续费冲抵--回租
//cvap.CreateVoucher(FlowUnid, "PZ2018092600000232"); // 给经销商放款-手续费冲抵--直租
cvap.CreateVoucher(FlowUnid, "PZ2018092500000169"); // 给经销商放款-差额放款--回租
cvap.CreateVoucher(FlowUnid, "PZ2018092600000233"); // 给经销商放款-差额放款--直租
//cvap.CreateVoucher(FlowUnid, "PZ2018092600000233"); // 给经销商放款-差额放款--直租
return "true";
}
}

View File

@ -14,7 +14,6 @@ public class ContractGetMoneyToMoneyNoTax implements VoucherJavaParamService{
public Map<String, String> getJavaParam(JBOTransaction tx,Map<String, String> param,Map<String, String> subData) throws BusinessException {
Map<String,String>returnValue=new HashMap<String,String>();
returnValue.putAll(param);
returnValue.put("FUNDTYPE","02");
returnValue.put("MONEY",param.get("INTERESTNOTAX"));
return returnValue;
}

View File

@ -14,7 +14,6 @@ public class ContractGetMoneyToMoneyTax implements VoucherJavaParamService{
public Map<String, String> getJavaParam(JBOTransaction tx,Map<String, String> param,Map<String, String> subData) throws BusinessException {
Map<String,String>returnValue=new HashMap<String,String>();
returnValue.putAll(param);
returnValue.put("FUNDTYPE","02");
returnValue.put("MONEY",param.get("TAX"));
return returnValue;
}