凭证相关-网银回款租金凭证

This commit is contained in:
xiezhiwen 2019-03-25 11:51:23 +08:00
parent 8a5eab4db4
commit 74b5a56b21
3 changed files with 73 additions and 34 deletions

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.CreateVoucherRentIncome;
/**
* 网银收款流程结束后生成相应的凭证
* @author xiezhiwen
@ -35,9 +36,11 @@ public class IncomeVoucher extends BaseBussiness {
//cvci.CreateVoucher(FlowUnid, "PZ2018080400000103", "feetype27");//确认贴息收入--直租
//CreateVoucherRentIncome cvri=new CreateVoucherRentIncome();
//cvri.CreateVoucher(FlowUnid,"PZ2018081600000120");//网银收款转预收--回租
//cvri.CreateVoucher(FlowUnid,"PZ2018081600000121");//网银收款转预收--直租
CreateVoucherRentIncome cvri=new CreateVoucherRentIncome();
cvri.CreateVoucher(FlowUnid,"PZ2018072100000024",userid);//回款-收到的租金(网银)--当月(回租)
cvri.CreateVoucher(FlowUnid,"PZ2018080400000081",userid);//回款-收到的租金(网银)--跨月(回租)
cvri.CreateVoucher(FlowUnid,"PZ2018072100000025",userid);//回款-收到的逾期利息(网银)--(回租)
return "true";
}

View File

@ -5,9 +5,11 @@ import java.util.List;
import java.util.Map;
import jbo.voucher.LV_VOUCHER_CONFIG;
import jbo.voucher.TAX_CODE;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.dict.als.cache.CacheLoaderFactory;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
@ -15,8 +17,7 @@ import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl;
public class CreateVoucherRentIncome {
public void CreateVoucher(String flowunid,String VOUCHERNO){
public void CreateVoucher(String flowunid,String VOUCHERNO,String userid){
Transaction Sqlca =null;
try{
Map<String,String> map=new HashMap<String, String>();
@ -25,6 +26,9 @@ public class CreateVoucherRentIncome {
String MONEY=null;
String MONEYNOTAX=null;
String MONEYTAX=null;
String RENTMONEY=null;
String CORPUS=null;
String INTEREST=null;
String ACCOUNT_DATE=null;
String FACT_DATE=null;
String CONTRACT_ID=null;
@ -33,29 +37,38 @@ public class CreateVoucherRentIncome {
String leas_form=null;
String DISTRIBUTOR_ID=null;
String DISTRIBUTOR_NAME=null;
String CARID=null;
String CARMODEL=null;
String CUSTID=null;
String CUSTNAME=null;
String CUSTOMERTYPE=null;
String BUSINESSTYPE=null;
String ACC_NUM=null;
String TAX_NUM=null;
String sql="";
param.clear();
map.clear();
map.put("FLOWUNID", flowunid);
if("PZ2018081600000120".equals(VOUCHERNO)||"PZ2018081600000121".equals(VOUCHERNO)){
sql= "SELECT lr.MONEY , DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(),'%Y/%m/%d') AS FACT_DATE,Lr.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,Lr.FLOWUNID,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,lr.own_number FROM (SELECT rent+penalty-INTEREST_ADJUST AS money ,contract_id,flowunid,own_number FROM LC_rent_INCOME_temp UNION ALL SELECT fact_money,contract_id,flowunid,acc_number FROM LC_fund_INCOME_temp) lr LEFT JOIN LB_CONTRACT_INFO LCI ON Lr.CONTRACT_ID=LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO=LCI.DISTRIBUTOR_ID LEFT JOIN LB_EQUIPMENT_CAR LEC ON LEC.CONTRACT_ID=LCI.ID LEFT JOIN lb_union_lessee lul ON lul.contract_id=lci.id LEFT JOIN customer_info cif ON cif.customerid=lul.customer_id LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE Lr.FLOWUNID=:FLOWUNID";
// 回款-收到的租金(网银)--当月(回租)
if("PZ2018072100000024".equals(VOUCHERNO)){
sql= "SELECT ROUND((getTax (lci.LEAS_FORM,'租金',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LRIT.INTEREST, 0) AS MONEY,ROUND(IFNULL(LRIT.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(LRIT.INTEREST, 0) - ROUND(IFNULL(LRIT.INTEREST, 0) /getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS MONEYTAX,IFNULL(LRIT.RENT,0) AS RENTMONEY,IFNULL(LRIT.CORPUS,0) AS CORPUS,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LCCT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,DI.F_I_TYPE,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = LRIT.CONTRACT_ID AND lrp.plan_list = lrit.plan_list LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRIT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND LUL.IS_MAIN='Y' AND DATE_FORMAT(NOW(), '%Y-%m') = DATE_FORMAT(lrp.plan_date, '%Y-%m') AND LRIT.FLOWUNID = :FLOWUNID ";
// 回款-收到的租金(网银)--跨月(回租)
}else if("PZ2018080400000081".equals(VOUCHERNO)){
sql= "SELECT ROUND((getTax (lci.LEAS_FORM,'租金',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LRIT.INTEREST, 0) AS MONEY,ROUND(IFNULL(LRIT.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(LRIT.INTEREST, 0) - ROUND(IFNULL(LRIT.INTEREST, 0) /getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS MONEYTAX,IFNULL(LRIT.RENT,0) AS RENTMONEY,IFNULL(LRIT.CORPUS,0) AS CORPUS,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LCCT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,DI.F_I_TYPE,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = LRIT.CONTRACT_ID AND lrp.plan_list = lrit.plan_list LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRIT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND LUL.IS_MAIN='Y' AND DATE_FORMAT(NOW(), '%Y-%m') > DATE_FORMAT(lrp.plan_date, '%Y-%m') AND LRIT.FLOWUNID = :FLOWUNID ";
// 回款-收到的逾期利息(网银)--(回租)
}else if("PZ2018072100000025".equals(VOUCHERNO)) {
sql= "SELECT ROUND((getTax (lci.LEAS_FORM,'逾期利息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LRIT.PENALTY, 0) AS MONEY,ROUND(IFNULL(LRIT.PENALTY, 0) / getTax (LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(LRIT.PENALTY, 0) - ROUND(IFNULL(LRIT.PENALTY, 0) / getTax (LCI.LEAS_FORM,'逾期利息',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LCCT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,DI.F_I_TYPE,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM LC_RENT_INCOME_TEMP LRIT LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRIT.CONTRACT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CONTRACT_ID = LCI.ID LEFT JOIN CUSTOMER_INFO CIF ON CIF.CUSTOMERID = LUL.CUSTOMER_ID LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID WHERE LPI.BUSINESSTYPE = '1' AND LUL.IS_MAIN='Y' AND LRIT.FLOWUNID = :FLOWUNID ";
}
List<Map<String,String>> dataList=DataOperatorUtil.getDataBySql(Sqlca, sql, map);
CreateVoucherServiceImpl vs=new CreateVoucherServiceImpl();
String VOUCHER_TYPE="1";// ƾ֤·ÖÀà ½ðµû
String userid ="admin";
for (int i=0;i<dataList.size();i++){
MONEY=dataList.get(i).get("MONEY").toString();
if("".equals(MONEY)||MONEY==null) MONEY="0.00";
double mon=Double.parseDouble(MONEY);
if(Math.abs(mon)>0){
MONEYNOTAX=dataList.get(i).get("MONEYNOTAX").toString();
MONEYTAX=dataList.get(i).get("MONEYTAX").toString();
RENTMONEY=dataList.get(i).get("RENTMONEY").toString();
CORPUS=dataList.get(i).get("CORPUS").toString();
ACCOUNT_DATE=dataList.get(i).get("ACCOUNT_DATE").toString();
FACT_DATE =dataList.get(i).get("FACT_DATE").toString();
CONTRACT_ID=dataList.get(i).get("CONTRACT_ID").toString();
@ -64,15 +77,22 @@ public class CreateVoucherRentIncome {
leas_form=dataList.get(i).get("LEAS_FORM").toString();
DISTRIBUTOR_ID=dataList.get(i).get("DISTRIBUTOR_ID");
DISTRIBUTOR_NAME=dataList.get(i).get("DISTRIBUTOR_NAME");
CARID=dataList.get(i).get("CARID");
CARMODEL=dataList.get(i).get("MODEL");
CUSTID=dataList.get(i).get("CUSTOMERID");
CUSTNAME=dataList.get(i).get("CUSTOMERNAME");
CUSTOMERTYPE=dataList.get(i).get("CUSTOMERTYPE");
BUSINESSTYPE=dataList.get(i).get("BUSINESSTYPE");
ACC_NUM=dataList.get(i).get("OWN_NUMBER");
TAX_NUM=dataList.get(i).get("TAX_NUM");
// 通过税率获取编码
BizObject TAX_CODES=null;
if(TAX_NUM!=null && !"".equals(TAX_NUM)) {
TAX_CODES=JBOFactory.createBizObjectQuery(TAX_CODE.CLASS_NAME,"TAX_NUMBER='"+TAX_NUM+"'").getSingleResult(false);
}
param.put("FACT_MONEY",MONEY);
param.put("INTERESTNOTAX",MONEYNOTAX);
param.put("TAX",MONEYTAX);
param.put("RENTMONEY",RENTMONEY);
param.put("CORPUS",CORPUS);
param.put("ACCOUNT_DATE",ACCOUNT_DATE);
param.put("FACT_DATE",FACT_DATE);
param.put("CONTRACT_ID",CONTRACT_ID);
@ -81,25 +101,25 @@ public class CreateVoucherRentIncome {
param.put("LEAS_FORM",leas_form);
param.put("DISTRIBUTOR_ID",DISTRIBUTOR_ID);
param.put("DISTRIBUTOR_NAME",DISTRIBUTOR_NAME);
param.put("CARID",CARID);
param.put("CARMODEL",CARMODEL);
param.put("CUSTID",CUSTID);
param.put("CUSTNAME",CUSTNAME);
param.put("CUSTOMERTYPE",CUSTOMERTYPE);
param.put("BUSINESSTYPE",BUSINESSTYPE);
param.put("ACC_NUMBER",ACC_NUM);
param.put("VOUCHERNO",VOUCHERNO);
if(TAX_CODES!=null) {
param.put("TAX_CODE",TAX_CODES.getAttribute("TAX_CODES").getString());
}
if("1".equals(BUSINESSTYPE)){
param.put("LEASFORMASSET", "04"); // 融资租赁资产
param.put("DEPT", "02"); // 部门
if("03".equals(CUSTOMERTYPE)){ // 如果是个人业务
param.put("LEASINCOMEFORM", "02"); // C端
}else if("01".equals(CUSTOMERTYPE)){
param.put("LEASINCOMEFORM", "01"); // B端
}
if("PZ2018072100000024".equals(VOUCHERNO)) {
param.put("BUSINESSTYPE", "0604");// 主营类型
}
// 收到的逾期利息
if("PZ2018072100000025".equals(VOUCHERNO)) {
param.put("BUSINESSTYPE", "0603");// 主营类型
}
param.put("CASHFLOW", "");// 现金流项目
}
//param.put("FUNDTYPE", ""); // 主营类型
param.put("BUSINESSTYPE", "06");
map.clear();
map.put("PROJ_TYPE", leas_form);
@ -108,14 +128,20 @@ public class CreateVoucherRentIncome {
if(vouch!=null){
vs.createVoucher(vouch.getAttribute("id").getString(),vouch.getAttribute("MODULAR_NUMBER").getString(), vouch.getAttribute("OWNED_COMPANY").getString(), leas_form, VOUCHER_TYPE, userid,param, Sqlca);
}}
}
}
}
if(Sqlca!=null){
Sqlca.commit();
}
}catch (Exception e){
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally{
if(Sqlca!=null){

View File

@ -360,7 +360,7 @@ public class CreateVoucherServiceImpl {
}else if("PZ2018081700000134".equals(VOUCHERNO) || "PZ2018081700000138".equals(VOUCHERNO) || "PZ2018072100000047".equals(VOUCHERNO) || "PZ2018081700000132".equals(VOUCHERNO) || "PZ2018081700000130".equals(VOUCHERNO) || "PZ2018081700000128".equals(VOUCHERNO)){
subData.put("CUSTID","APZL00000000DC");//虚拟客户
subData.put("CUSTNAME","汽车C端待查客户");//虚拟客户
}else if("PZ2018072100000038".equals(VOUCHERNO) || "PZ2018072100000039".equals(VOUCHERNO) || "PZ2018072100000043".equals(VOUCHERNO)) {
}else if("PZ2018072100000038".equals(VOUCHERNO) || "PZ2018072100000039".equals(VOUCHERNO) || "PZ2018072100000043".equals(VOUCHERNO) || "PZ2018072100000025".equals(VOUCHERNO) || "PZ2018080400000081".equals(VOUCHERNO)) {
subData.put("CUSTID","APZL00000000DC");//虚拟客户
subData.put("CUSTNAME","汽车C端待查客户");//虚拟客户
// 起租前网银回款
@ -467,6 +467,16 @@ public class CreateVoucherServiceImpl {
}
}
/**
* 网银回款收到的租金, 当月的设置默认客户信息
*/
if("PZ2018072100000024".equals(VOUCHERNO)) {
if("1".equals(SORT_NUMBER)) {
subData.put("CUSTID","APZL00000000DC");//虚拟账户
subData.put("CUSTNAME","汽车C端待查客户");//虚拟账户
}
}
subData.put("SORT_NUMBER", SORT_NUMBER);
list.add(subData);
}