diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMonthSettlementForTradition.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMonthSettlementForTradition.java new file mode 100644 index 000000000..fbbcc977b --- /dev/null +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMonthSettlementForTradition.java @@ -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 map = new HashMap(); + Map param = new HashMap(); + // 定义全局变量 + 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> 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(); + } + } +} diff --git a/src_tenwa/com/tenwa/lease/app/quartzmession/CreateVoucherMonthSettlementMission.java b/src_tenwa/com/tenwa/lease/app/quartzmession/CreateVoucherMonthSettlementMission.java index 4a33d7ad8..458011c39 100644 --- a/src_tenwa/com/tenwa/lease/app/quartzmession/CreateVoucherMonthSettlementMission.java +++ b/src_tenwa/com/tenwa/lease/app/quartzmession/CreateVoucherMonthSettlementMission.java @@ -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) {