代码提交

This commit is contained in:
xiezhiwen 2021-09-17 17:14:44 +08:00
parent 579aa3c35f
commit ed0c035ae2
4 changed files with 165 additions and 1 deletions

View File

@ -30,6 +30,7 @@ public class CreateVoucherDepositDeductionToMoney extends BaseBussiness {
String MONEYNOTAX = null;
String MONEYTAX = null;
String CORPUS_ADD_INTEREST_TAX = null;
String INTERESTNOTAX = null;
String DEDITMONEY_NOTAX = null;
String CORPUS = null;
String INTEREST = null;
@ -52,7 +53,7 @@ public class CreateVoucherDepositDeductionToMoney extends BaseBussiness {
// 保证金抵扣
if("PZ2018072100000053".equals(VOUCHERNO) || "PZ2019070100000026".equals(VOUCHERNO)){
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(LRIT.PENALTY / getTax (LCI.LEAS_FORM,'±¾½ð',LCCT.START_DATE),2),0) AS MONEYNOTAX,IFNULL((LRIT.PENALTY - ROUND(LRIT.PENALTY / getTax (LCI.LEAS_FORM,'±¾½ð',LCCT.START_DATE),2)),0) AS MONEYTAX,'0.00' AS DEDITMONEY_NOTAX,IFNULL(LRIT.CORPUS, 0) AS CORPUS,IFNULL(LRIT.INTEREST, 0) AS INTEREST,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LCCT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE FROM LC_CALC_CONDITION LCCT LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LCCT.CONTRACT_ID LEFT JOIN (SELECT SUM(LRIT.CORPUS) CORPUS,SUM(LRIT.INTEREST) INTEREST,SUM(LRIT.PENALTY) PENALTY,LRIT.FLOWUNID,LRIT.CONTRACT_ID FROM LC_RENT_INCOME_TEMP LRIT WHERE LRIT.SETTLE_METHOD = 'settlemethod7' GROUP BY lrit.FLOWUNID,LRIT.CONTRACT_ID) LRIT ON LRIT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT SUM(LFIT.FACT_MONEY) FACT_MONEY,lfit.contract_id FROM LC_FUND_INCOME_TEMP LFIT WHERE LFIT.FEE_TYPE = 'feetype16' AND LFIT.SETTLE_METHOD = 'settlemethod7' GROUP BY lfit.contract_id) LFIT 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 WHERE lul.IS_MAIN='Y' AND LCI.BUSINESSTYPE='1' AND LUL.IS_MAIN = 'Y' AND LRIT.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(LRIT.PENALTY / getTax (LCI.LEAS_FORM,'±¾½ð',LCCT.START_DATE),2),0) AS MONEYNOTAX, IFNULL((LRIT.PENALTY - ROUND(LRIT.PENALTY / getTax (LCI.LEAS_FORM,'±¾½ð',LCCT.START_DATE),2)),0)+IFNULL(IFNULL(LRIT.INTEREST, 0)-ROUND(IFNULL(LRIT.INTEREST, 0)/GETTAX(LCI.LEAS_FORM,'×âÏ¢',LCCT.START_DATE),2),0) AS MONEYTAX, '0.00' AS DEDITMONEY_NOTAX, IFNULL(LRIT.CORPUS, 0) AS CORPUS, IFNULL(LRIT.INTEREST, 0) AS INTEREST, IFNULL(ROUND(IFNULL(LRIT.INTEREST, 0)/GETTAX(LCI.LEAS_FORM,'×âÏ¢',LCCT.START_DATE),2),0) AS INTEREST_NOTAX, 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, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM LC_CALC_CONDITION LCCT LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LCCT.CONTRACT_ID LEFT JOIN (SELECT SUM(LRIT.CORPUS) CORPUS, SUM(LRIT.INTEREST) INTEREST, SUM(LRIT.PENALTY) PENALTY, LRIT.FLOWUNID, LRIT.CONTRACT_ID FROM LC_RENT_INCOME_TEMP LRIT WHERE LRIT.SETTLE_METHOD = 'settlemethod7' GROUP BY lrit.FLOWUNID, LRIT.CONTRACT_ID) LRIT ON LRIT.CONTRACT_ID = LCI.ID LEFT JOIN (SELECT SUM(LFIT.FACT_MONEY) FACT_MONEY, lfit.contract_id FROM LC_FUND_INCOME_TEMP LFIT WHERE LFIT.FEE_TYPE = 'feetype16' AND LFIT.SETTLE_METHOD = 'settlemethod7' GROUP BY lfit.contract_id) LFIT 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 WHERE lul.IS_MAIN = 'Y' AND LCI.BUSINESSTYPE = '1' AND LUL.IS_MAIN = 'Y' AND LRIT.FLOWUNID = :FLOWUNID";
// 确认未实现利息收入-抵扣租金利息
}else if("PZ2019070100000027".equals(VOUCHERNO)){
sql = "SELECT ROUND((getTax (lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LRIT.INTEREST, 0) AS MONEY,IFNULL(ROUND(LRIT.INTEREST / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2),0) AS MONEYNOTAX, IFNULL((LRIT.CORPUS - ROUND(LRIT.CORPUS / getTax(LCI.LEAS_FORM,'本金',LCCT.START_DATE),2)),0) AS MONEYTAX,((IFNULL(LRIT.CORPUS, 0) - ROUND(IFNULL(LRIT.CORPUS, 0) / getTax (LCI.LEAS_FORM,'本金',LCCT.START_DATE),2))+(IFNULL(LRIT.INTEREST, 0) - ROUND(IFNULL(LRIT.INTEREST, 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,LCCT.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 FROM (SELECT SUM(LRIT.CORPUS) CORPUS,SUM(LRIT.INTEREST) INTEREST,SUM(LRIT.PENALTY) PENALTY,LRIT.FLOWUNID,LRIT.CONTRACT_ID,LRIT.PLAN_LIST FROM LC_RENT_INCOME_TEMP LRIT WHERE LRIT.SETTLE_METHOD = 'settlemethod7' GROUP BY LRIT.FLOWUNID,LRIT.CONTRACT_ID,LRIT.PLAN_LIST) 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=LRP.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 LCI.BUSINESSTYPE = '1' AND LUL.IS_MAIN = 'Y' AND DATE_FORMAT(NOW(),'%Y%m')=DATE_FORMAT(LRP.PLAN_DATE,'%Y%m') AND LRIT.FLOWUNID = :FLOWUNID ";
@ -74,6 +75,7 @@ public class CreateVoucherDepositDeductionToMoney extends BaseBussiness {
DEDITMONEY_NOTAX = dataList.get(i).get("DEDITMONEY_NOTAX");
CORPUS = dataList.get(i).get("CORPUS");
INTEREST = dataList.get(i).get("INTEREST");
INTERESTNOTAX = dataList.get(i).get("INTEREST_NOTAX");
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");
@ -100,6 +102,7 @@ public class CreateVoucherDepositDeductionToMoney extends BaseBussiness {
param.put("DEDITMONEY_NOTAX", DEDITMONEY_NOTAX);
param.put("CORPUS", CORPUS);
param.put("INTEREST", INTEREST);
param.put("INTERESTNOTAX", INTERESTNOTAX);
param.put("ACCOUNT_DATE", ACCOUNT_DATE);
param.put("FACT_DATE", FACT_DATE);
param.put("CONTRACT_ID", CONTRACT_ID);
@ -111,6 +114,7 @@ public class CreateVoucherDepositDeductionToMoney extends BaseBussiness {
param.put("CUSTID", CUSTID);
param.put("CUSTNAME", CUSTNAME);
param.put("CUSTOMERTYPE", CUSTOMERTYPE);
param.put("VOUCHERNO", VOUCHERNO);
param.put("BUSINESSTYPE", "0603");
param.put("FlowUnid", FlowUnid);
if(TAX_CODES!=null) {

View File

@ -0,0 +1,131 @@
package com.tenwa.voucher.CreateVoucherProcess;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jbo.voucher.LV_VOUCHER_CONFIG;
import jbo.voucher.TAX_CODE;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.awe.util.Transaction;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl;
public class CreateVoucherDepositDeductionToMoney2 {
public String CreateVoucher(String VOUCHERNO,String userid,Transaction Sqlca,String DEDUCTION_ID) throws Exception {
Map<String, String> map = new HashMap<String, String>();
Map<String, String> param = new HashMap<String, String>();
CreateVoucherServiceImpl vs = new CreateVoucherServiceImpl();
String VOUCHER_TYPE = "1";
String F58=null;
String MONEY = null;
String MONEYNOTAX = null;
String MONEYTAX = null;
String CORPUS_ADD_INTEREST_TAX = null;
String INTERESTNOTAX = null;
String DEDITMONEY_NOTAX = null;
String CORPUS = null;
String INTEREST = 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 CUSTID = null;
String CUSTNAME = null;
String CUSTOMERTYPE = null;
String TAX_NUM = null;
String sql = "";
param.clear();
map.put("DEDUCTION_ID", DEDUCTION_ID);
// 保证金自动抵扣
if("PZ2021091700000031".equals(VOUCHERNO) || "PZ2021091700000032".equals(VOUCHERNO)){
sql = "SELECT LRI.ID AS F58,ROUND((getTax (lci.LEAS_FORM,'本金',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM, IFNULL(LRI.RENT, 0)+IFNULL(LRI.PENALTY , 0) AS MONEY, IFNULL(IFNULL(LRI.INTEREST, 0) - ROUND(IFNULL(LRI.INTEREST, 0) / GETTAX (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2),0) AS MONEYTAX, IFNULL(LRI.CORPUS, 0) AS CORPUS, IFNULL(LRI.INTEREST, 0) AS INTEREST, IFNULL(ROUND(IFNULL(LRI.INTEREST, 0) / GETTAX (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2),0) AS INTEREST_NOTAX, 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, CIF.CUSTOMER_NUM AS CUSTOMERID, CIF.CUSTOMERNAME, CIF.CUSTOMERTYPE, LPI.BUSINESSTYPE FROM LC_RENT_INCOME LRI LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.PAYMENT_NUMBER=LRI.PAYMENT_NUMBER LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LCCT.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 lul.IS_MAIN = 'Y' AND LCI.BUSINESSTYPE = '1' AND LUL.IS_MAIN = 'Y' AND LRI.DEDUCTION_ID=:DEDUCTION_ID";
}
// 查询sql, 将结果集封装到list集合中
List<Map<String, String>> dataList = DataOperatorUtil.getDataBySql(Sqlca, sql, map);
//遍历获取结果集, 将结果写入map中
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);
// 判断有金额, 封装值到map中
if (Math.abs(mon) > 0) {
MONEYNOTAX = dataList.get(i).get("MONEYNOTAX");
MONEYTAX = dataList.get(i).get("MONEYTAX");
CORPUS_ADD_INTEREST_TAX = dataList.get(i).get("CORPUS_ADD_INTEREST_TAX");
DEDITMONEY_NOTAX = dataList.get(i).get("DEDITMONEY_NOTAX");
CORPUS = dataList.get(i).get("CORPUS");
INTEREST = dataList.get(i).get("INTEREST");
INTERESTNOTAX = dataList.get(i).get("INTEREST_NOTAX");
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");
CONTRACT_NUMBER = dataList.get(i).get("CONTRACT_NUMBER");
PROJECT_NAME = dataList.get(i).get("PROJECT_NAME");
leas_form = dataList.get(i).get("LEAS_FORM");
DISTRIBUTOR_ID = dataList.get(i).get("DISTRIBUTOR_ID");
DISTRIBUTOR_NAME = dataList.get(i).get("DISTRIBUTOR_NAME");
CUSTID = dataList.get(i).get("CUSTOMERID");
CUSTNAME = dataList.get(i).get("CUSTOMERNAME");
CUSTOMERTYPE = dataList.get(i).get("CUSTOMERTYPE");
TAX_NUM = dataList.get(i).get("TAX_NUM");
F58 = dataList.get(i).get("F58");
// 通过税率获取编码
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("CORPUS_ADD_INTEREST_TAX", CORPUS_ADD_INTEREST_TAX);
param.put("DEDITMONEY_NOTAX", DEDITMONEY_NOTAX);
param.put("CORPUS", CORPUS);
param.put("INTEREST", INTEREST);
param.put("INTERESTNOTAX", INTERESTNOTAX);
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("CUSTID", CUSTID);
param.put("CUSTNAME", CUSTNAME);
param.put("CUSTOMERTYPE", CUSTOMERTYPE);
param.put("VOUCHERNO", VOUCHERNO);
param.put("BUSINESSTYPE", "0603");
param.put("F58", F58);
if(TAX_CODES!=null) {
param.put("TAX_CODE",TAX_CODES.getAttribute("TAX_CODES").getString());
}
map.clear();
map.put("PROJ_TYPE", leas_form);
map.put("VOUCHER_NO", VOUCHERNO);
// 根据map中的参数, 查询LV_VOUCHER_CONFIG表数据
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);
}
}
}
String sMessage = "true";
return sMessage;
}
}

View File

@ -502,6 +502,26 @@ public class CreateVoucherServiceImpl {
subData.putAll(this.getAuxiliaryData(tx, param,subData,sub.getAttribute("AUXILIARY_TYPE").getString()));
}
/**
* 保证金抵扣业务类型配置
*/
if("PZ2018072100000053".equals(VOUCHERNO) || "PZ2019070100000026".equals(VOUCHERNO)) {
if("3".equals(SORT_NUMBER)) {
subData.put("BUSINESSTYPE", "0604");
}
if("4".equals(SORT_NUMBER)) {
subData.put("BUSINESSTYPE", "0602");
}
if("5".equals(SORT_NUMBER)) {
subData.put("BUSINESSTYPE", "0603");
}
}
if("PZ2021091700000031".equals(VOUCHERNO) || "PZ2021091700000032".equals(VOUCHERNO)) {
if("3".equals(SORT_NUMBER)) {
subData.put("BUSINESSTYPE", "0604");
}
}
/*// 需要带经销商编码的在此匹配
if("PZ2018092500000156".equals(VOUCHERNO) || "PZ2019072000000074".equals(VOUCHERNO) || "PZ2018092500000164".equals(VOUCHERNO) || "PZ2019072000000079".equals(VOUCHERNO) || "PZ2019072200000108".equals(VOUCHERNO) || "PZ2019072200000114".equals(VOUCHERNO)) {
if("2".equals(SORT_NUMBER)) {

View File

@ -9,6 +9,8 @@ import java.util.UUID;
import com.base.util.DateUtil;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherDepositDeductionToMoney2;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@ -143,6 +145,13 @@ public class MarginDeduction implements Job{
lrp.setAttributeValue("COLLECT_MSG","±£Ö¤½ðµÖ¿Û");
lrpBm.saveObject(lrp);
}
/**
* Éú³Éƾ֤
*/
CreateVoucherDepositDeductionToMoney2 cddm = new CreateVoucherDepositDeductionToMoney2();
cddm.CreateVoucher("PZ2021091700000031", "admin", Sqlca,fundIncomeId);
cddm.CreateVoucher("PZ2021091700000032", "admin", Sqlca,fundIncomeId);
}
}