凭证相关--传统月结

This commit is contained in:
xiezhiwen 2019-04-16 18:54:46 +08:00
parent c6da28178e
commit c46aad45c4
2 changed files with 154 additions and 9 deletions

View File

@ -0,0 +1,138 @@
package com.tenwa.voucher.CreateVoucherProcess;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
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;
import com.tenwa.flow.baseBussion.BaseBussiness;
import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl;
/**
* 传统月结凭证
* @author xiezhiwen
*/
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 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 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,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(SYSDATE(), '%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 '%确认未实现利息收入-月付%') ";
}
// 月结--确认未实现利息收入-季付(传统)
if ("".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_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_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++) {
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");
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("FACT_MONEY",FEEMONEY);
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.disConnect();
}
}
}

View File

@ -9,6 +9,7 @@ import com.amarsoft.are.util.StringFunction;
import com.amarsoft.awe.util.Transaction;
import com.base.util.QuartzUtil;
import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherMonthSettlement;
import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherMonthSettlementForTradition;
public class CreateVoucherMonthSettlementMission implements Job {
@ -41,6 +42,21 @@ public class CreateVoucherMonthSettlementMission implements Job {
//vouchermanage.CreateVoucher("PZ2018072100000055");//日结税金--回租
//vouchermanage.CreateVoucher("PZ2018080200000063");//日结税金--直租
/**
* 传统月结凭证
* */
CreateVoucherMonthSettlementForTradition cmsft = new CreateVoucherMonthSettlementForTradition();
cmsft.CreateVoucher("PZ2018092500000183");//日结-确认未实现利息收入--回租
//vouchermanage.CreateVoucher("PZ2018100900000280");//日结-确认未实现利息收入--直租
cmsft.CreateVoucher("PZ2018092500000184");//日结-确认租金利息税金--回租
//vouchermanage.CreateVoucher("PZ2018100900000281");//日结-确认租金利息税金--直租
//vouchermanage.CreateVoucher("PZ2018100900000282");//月结-确认未实现利息收入--回租
//vouchermanage.CreateVoucher("PZ2018100900000283");//月结-确认未实现利息收入--直租
// 汽车类传统类日结-月结
/*vouchermanage.CreateVoucher("PZ2018092500000215");//日结-确认未实现利息收入--回租
vouchermanage.CreateVoucher("PZ2018100900000275");//日结-确认未实现利息收入--直租
@ -51,15 +67,6 @@ public class CreateVoucherMonthSettlementMission implements Job {
vouchermanage.CreateVoucher("PZ2018100900000278");//月结-确认未实现利息收入--回租
vouchermanage.CreateVoucher("PZ2018100900000279");//月结-确认未实现利息收入--直租
// 传统类日结-月结
vouchermanage.CreateVoucher("PZ2018092500000183");//日结-确认未实现利息收入--回租
vouchermanage.CreateVoucher("PZ2018100900000280");//日结-确认未实现利息收入--直租
vouchermanage.CreateVoucher("PZ2018092500000184");//日结-确认租金利息税金--回租
vouchermanage.CreateVoucher("PZ2018100900000281");//日结-确认租金利息税金--直租
vouchermanage.CreateVoucher("PZ2018100900000282");//月结-确认未实现利息收入--回租
vouchermanage.CreateVoucher("PZ2018100900000283");//月结-确认未实现利息收入--直租
*/
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.CreateVoucherMonthSettlementMission", "success", "成功", curUserId);
} catch (Exception e) {