提前结清凭证生成重复修复及微信消息推送

This commit is contained in:
xiezhiwen 2019-11-13 10:57:45 +08:00
parent f18cbd4035
commit c6aad7efce
5 changed files with 361 additions and 9 deletions

2
config/Wechat.properties Normal file
View File

@ -0,0 +1,2 @@
# 微信推送消息接口路径
WechatURL=http://wx.tenwa.com.cn/wxapi/template/send

View File

@ -57,6 +57,9 @@ public class SerialNumberUtil {
public static synchronized String getVoucherPCNumber(JBOTransaction tx) throws Exception{
return SerialNumberUtil.getSerialNumber("AP{year}{month}{day}-{maxOrderNumber}",3,null, "ƾ֤½Ó¿ÚÅú´Î", null, tx);
}
public static synchronized String getWechatBatchNumber(JBOTransaction tx) throws Exception{
return SerialNumberUtil.getSerialNumber("AP{year}{month}{day}-{maxOrderNumber}",3,null, "微信接口批次", null, tx);
}
//ÅôÔªapply_id
public static synchronized String getPengyuanNumber(JBOTransaction tx) throws Exception{
return SerialNumberUtil.getSerialNumber("{year}{month}{day}{maxOrderNumber}",9,null, "ÅôÔªapply_id", null, tx);

View File

@ -71,31 +71,31 @@ public class CreateVoucherContractTerminate {
// 调整未实现利息收入
if("PZ2018072100000045".equals(VOUCHERNO)){
//sql="SELECT IFNULL(LRPT.INTEREST, 0) AS MONEY,ROUND(IFNULL(LRPT.INTEREST, 0) / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(LRPT.INTEREST, 0) - ROUND(IFNULL(LRPT.INTEREST, 0) / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE DATE_FORMAT(LRPT.PLAN_DATE,'%Y/%m/%d') >= DATE_FORMAT(LCRAT.PAYDAY_ADJUST,'%Y/%m/%d')GROUP BY LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 LCRAT.FLOWUNID = :FLOWUNID ";
sql="SELECT IFNULL(LRPT.INTEREST, 0) AS MONEY,ROUND(IFNULL(LRPT.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(LRPT.INTEREST, 0) - ROUND(IFNULL(LRPT.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN LC_EBANK_TEMP LE ON LE.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m/%d') >= DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') GROUP BY LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 IFNULL(LRPT.INTEREST, 0)>0 AND LCRAT.FLOWUNID = :FLOWUNID ";
//sql="SELECT IFNULL(LRPT.INTEREST, 0) AS MONEY,ROUND(IFNULL(LRPT.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(LRPT.INTEREST, 0) - ROUND(IFNULL(LRPT.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN LC_EBANK_TEMP LE ON LE.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m/%d') >= DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') GROUP BY LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 IFNULL(LRPT.INTEREST, 0)>0 AND LCRAT.FLOWUNID = :FLOWUNID ";
sql="SELECT IFNULL(LRPT.INTEREST, 0) AS MONEY,ROUND(IFNULL(LRPT.INTEREST, 0) / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(LRPT.INTEREST, 0) - ROUND(IFNULL(LRPT.INTEREST, 0) / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID,MAX(FACT_DATE) AS FACT_DATE FROM LC_EBANK_TEMP GROUP BY FLOWUNID) LE ON LE.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m/%d') >= DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') GROUP BY LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 IFNULL(LRPT.INTEREST, 0) > 0 AND LCRAT.FLOWUNID = :FLOWUNID";
// 收到的逾期租金
}else if("PZ2018081700000127".equals(VOUCHERNO)) {
//sql="SELECT IFNULL(LRPT.RENT, 0)-IFNULL(LRI.RENT,0) AS MONEY,IFNULL(LRPT.CORPUS, 0)-IFNULL(LRI.CORPUS,0) AS MONEYNOTAX,IFNULL(LRPT.INTEREST, 0)-IFNULL(LRI.INTEREST,0) AS MONEYTAX,DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.FLOWUNID,LRPT.CONTRACT_ID,SUM(LRPT.RENT) RENT,SUM(LRPT.CORPUS) CORPUS,SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE DATE_FORMAT(LRPT.PLAN_DATE,'%Y/%m/%d') <DATE_FORMAT(LCRAT.PAYDAY_ADJUST,'%Y/%m/%d')GROUP BY LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID,SUM(LRI.RENT) RENT,SUM(LRI.CORPUS) CORPUS,SUM(LRI.INTEREST) INTEREST FROM LC_RENT_INCOME LRI GROUP BY LRI.CONTRACT_ID)LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 LCRAT.FLOWUNID = :FLOWUNID ";
sql="SELECT IFNULL(LRPT.RENT, 0) - IFNULL(LRI.RENT, 0) AS MONEY,IFNULL(LRPT.CORPUS, 0) - IFNULL(LRI.CORPUS, 0) AS MONEYNOTAX,IFNULL(LRPT.INTEREST, 0) - IFNULL(LRI.INTEREST, 0) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN LC_EBANK_TEMP LE ON LE.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.FLOWUNID,LRPT.CONTRACT_ID,SUM(LRPT.RENT) RENT,SUM(LRPT.CORPUS) CORPUS,SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m/%d') < DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') GROUP BY LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID,SUM(LRI.RENT) RENT,SUM(LRI.CORPUS) CORPUS,SUM(LRI.INTEREST) INTEREST FROM LC_RENT_INCOME LRI GROUP BY LRI.CONTRACT_ID) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 (IFNULL(LRPT.RENT, 0) - IFNULL(LRI.RENT, 0))>0 AND LCRAT.FLOWUNID = :FLOWUNID ";
//sql="SELECT IFNULL(LRPT.RENT, 0) - IFNULL(LRI.RENT, 0) AS MONEY,IFNULL(LRPT.CORPUS, 0) - IFNULL(LRI.CORPUS, 0) AS MONEYNOTAX,IFNULL(LRPT.INTEREST, 0) - IFNULL(LRI.INTEREST, 0) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN LC_EBANK_TEMP LE ON LE.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.FLOWUNID,LRPT.CONTRACT_ID,SUM(LRPT.RENT) RENT,SUM(LRPT.CORPUS) CORPUS,SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m/%d') < DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') GROUP BY LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID,SUM(LRI.RENT) RENT,SUM(LRI.CORPUS) CORPUS,SUM(LRI.INTEREST) INTEREST FROM LC_RENT_INCOME LRI GROUP BY LRI.CONTRACT_ID) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 (IFNULL(LRPT.RENT, 0) - IFNULL(LRI.RENT, 0))>0 AND LCRAT.FLOWUNID = :FLOWUNID ";
sql="SELECT IFNULL(LRPT.RENT, 0) - IFNULL(LRI.RENT, 0) AS MONEY,IFNULL(LRPT.CORPUS, 0) - IFNULL(LRI.CORPUS, 0) AS MONEYNOTAX,IFNULL(LRPT.INTEREST, 0) - IFNULL(LRI.INTEREST, 0) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID,MAX(FACT_DATE) AS FACT_DATE FROM LC_EBANK_TEMP GROUP BY FLOWUNID) LE ON LE.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.FLOWUNID,LRPT.CONTRACT_ID,SUM(LRPT.RENT) RENT,SUM(LRPT.CORPUS) CORPUS,SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m/%d') < DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') GROUP BY LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID,SUM(LRI.RENT) RENT,SUM(LRI.CORPUS) CORPUS,SUM(LRI.INTEREST) INTEREST FROM LC_RENT_INCOME LRI GROUP BY LRI.CONTRACT_ID) LRI ON LRI.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 (IFNULL(LRPT.RENT, 0) - IFNULL(LRI.RENT, 0))>0 AND LCRAT.FLOWUNID = :FLOWUNID ";
// 将当月利息转收入
}else if("PZ2018081700000129".equals(VOUCHERNO)) {
//sql="SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE)-1)*100,0) AS TAX_NUM,IFNULL(LRPT.INTEREST, 0)-IFNULL(LRI.INTEREST, 0)AS MONEY,ROUND(IFNULL(LRPT.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)-ROUND(IFNULL(LRI.INTEREST, 0)/getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(LRPT.INTEREST, 0) - ROUND(IFNULL(LRPT.INTEREST, 0)/getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) -(IFNULL(LRI.INTEREST, 0) - ROUND(IFNULL(LRI.INTEREST, 0)/getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.PLAN_LIST,SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m') = DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m') AND DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m/%d') < DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') GROUP BY LRPT.CONTRACT_ID,LRPT.PLAN_LIST ) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID,LRI.PLAN_LIST,SUM(LRI.INTEREST) INTEREST FROM LC_RENT_INCOME LRI GROUP BY LRI.CONTRACT_ID,LRI.PLAN_LIST ) LRI ON LRI.CONTRACT_ID = LRPT.CONTRACT_ID AND LRI.PLAN_LIST=LRPT.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 LCRAT.FLOWUNID = :FLOWUNID ";
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LRPT.INTEREST, 0) - IFNULL(LRI.INTEREST, 0) AS MONEY,ROUND(IFNULL(LRPT.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) - ROUND(IFNULL(LRI.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(LRPT.INTEREST, 0) - ROUND(IFNULL(LRPT.INTEREST, 0) / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) - (IFNULL(LRI.INTEREST, 0) - ROUND(IFNULL(LRI.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN LC_EBANK_TEMP LE ON LE.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.PLAN_LIST,SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m') = DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m') AND DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m/%d') < DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') GROUP BY LRPT.CONTRACT_ID,LRPT.PLAN_LIST) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID,LRI.PLAN_LIST,SUM(LRI.INTEREST) INTEREST FROM LC_RENT_INCOME LRI GROUP BY LRI.CONTRACT_ID,LRI.PLAN_LIST) LRI ON LRI.CONTRACT_ID = LRPT.CONTRACT_ID AND LRI.PLAN_LIST = LRPT.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 (IFNULL(LRPT.INTEREST, 0) - IFNULL(LRI.INTEREST, 0))>0 AND LCRAT.FLOWUNID = :FLOWUNID ";
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'租息',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,IFNULL(LRPT.INTEREST, 0) - IFNULL(LRI.INTEREST, 0) AS MONEY,ROUND(IFNULL(LRPT.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) - ROUND(IFNULL(LRI.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(LRPT.INTEREST, 0) - ROUND(IFNULL(LRPT.INTEREST, 0) / getTax (LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) - (IFNULL(LRI.INTEREST, 0) - ROUND(IFNULL(LRI.INTEREST, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID,MAX(FACT_DATE) AS FACT_DATE FROM LC_EBANK_TEMP GROUP BY FLOWUNID) LE ON LE.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LRPT.FLOWUNID = LCRAT.FLOWUNID AND LRPT.PAYMENT_NUMBER = LCRAT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRP ON LRP.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.PLAN_LIST,SUM(LRPT.INTEREST) AS INTEREST FROM LC_RENT_PLAN LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER WHERE DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m') = DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m') AND DATE_FORMAT(LRPT.PLAN_DATE, '%Y/%m/%d') < DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') GROUP BY LRPT.CONTRACT_ID,LRPT.PLAN_LIST) LRPT ON LRPT.CONTRACT_ID = LRP.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID,LRI.PLAN_LIST,SUM(LRI.INTEREST) INTEREST FROM LC_RENT_INCOME LRI GROUP BY LRI.CONTRACT_ID,LRI.PLAN_LIST) LRI ON LRI.CONTRACT_ID = LRPT.CONTRACT_ID AND LRI.PLAN_LIST = LRPT.PLAN_LIST LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 (IFNULL(LRPT.INTEREST, 0) - IFNULL(LRI.INTEREST, 0))>0 AND LCRAT.FLOWUNID = :FLOWUNID ";
// 收到的提前还款剩余本金
}else if("PZ2018081700000136".equals(VOUCHERNO)) {
//sql="SELECT IFNULL(LCRAT.OTHER_OUT, 0) AS MONEY,(IFNULL(LCRAT.CORPUS_OVERAGE, 0) - IFNULL(LCRAT.OTHER_OUT, 0)) AS MONEYNOTAX,IFNULL(LCRAT.CORPUS_OVERAGE, 0) AS MONEYTAX,DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID)LRPT ON LRPT.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 LCRAT.FLOWUNID = :FLOWUNID ";
sql="SELECT IFNULL(LCRAT.OTHER_OUT, 0) AS MONEY,(IFNULL(LCRAT.CORPUS_OVERAGE, 0) - IFNULL(LCRAT.OTHER_OUT, 0)) AS MONEYNOTAX,IFNULL(LCRAT.CORPUS_OVERAGE, 0) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN LC_EBANK_TEMP LE ON LE.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRPT ON LRPT.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 IFNULL(LCRAT.CORPUS_OVERAGE, 0)>0 AND LCRAT.FLOWUNID = :FLOWUNID ";
sql="SELECT IFNULL(LCRAT.OTHER_OUT, 0) AS MONEY,(IFNULL(LCRAT.CORPUS_OVERAGE, 0) - IFNULL(LCRAT.OTHER_OUT, 0)) AS MONEYNOTAX,IFNULL(LCRAT.CORPUS_OVERAGE, 0) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID,MAX(FACT_DATE) AS FACT_DATE FROM LC_EBANK_TEMP GROUP BY FLOWUNID) LE ON LE.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRPT ON LRPT.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 IFNULL(LCRAT.CORPUS_OVERAGE, 0)>0 AND LCRAT.FLOWUNID = :FLOWUNID ";
// 确认贴息收入
}else if("PZ2018072100000046".equals(VOUCHERNO)) {
//sql="SELECT IFNULL(CRM.DISCOUNT,0) AS MONEY,ROUND(IFNULL(CRM.DISCOUNT,0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(CRM.DISCOUNT,0) - ROUND(IFNULL(CRM.DISCOUNT,0)/getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT MAX(LRPT.FLOWUNID) FLOWUNID,CRM.CONTRACT_ID,SUM(IFNULL(CRM.DISCOUNT, 0)) AS DISCOUNT FROM CONTRACT_RENT_MONTH CRM LEFT JOIN (SELECT LRPT.FLOWUNID,LRPT.CONTRACT_ID,MAX(LCRAT.PAYDAY_ADJUST) PAYDAY_ADJUST FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.FLOWUNID=LRPT.FLOWUNID AND LCRAT.PAYMENT_NUMBER=LRPT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID)LRPT ON LRPT.CONTRACT_ID=CRM.CONTRACT_ID WHERE DATE_FORMAT(CRM.END_DATE,'%Y%m')>=DATE_FORMAT(LRPT.PAYDAY_ADJUST,'%Y%m')GROUP BY CRM.CONTRACT_ID)CRM ON CRM.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = CRM.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 LCRAT.FLOWUNID = :FLOWUNID ";
sql="SELECT IFNULL(CRM.DISCOUNT, 0) AS MONEY,ROUND(IFNULL(CRM.DISCOUNT, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(CRM.DISCOUNT, 0) - ROUND(IFNULL(CRM.DISCOUNT, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN LC_EBANK_TEMP LE ON LE.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN (SELECT MAX(LRPT.FLOWUNID) FLOWUNID,CRM.CONTRACT_ID,SUM(IFNULL(CRM.DISCOUNT, 0)) AS DISCOUNT FROM CONTRACT_RENT_MONTH CRM LEFT JOIN (SELECT LRPT.FLOWUNID,LRPT.CONTRACT_ID,MAX(LCRAT.PAYDAY_ADJUST) PAYDAY_ADJUST FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.FLOWUNID = LRPT.FLOWUNID AND LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = CRM.CONTRACT_ID WHERE DATE_FORMAT(CRM.END_DATE, '%Y%m') >= DATE_FORMAT(LRPT.PAYDAY_ADJUST, '%Y%m') GROUP BY CRM.CONTRACT_ID) CRM ON CRM.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = CRM.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 IFNULL(CRM.DISCOUNT, 0)>0 AND LCRAT.FLOWUNID = :FLOWUNID ";
sql="SELECT IFNULL(CRM.DISCOUNT, 0) AS MONEY,ROUND(IFNULL(CRM.DISCOUNT, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(CRM.DISCOUNT, 0) - ROUND(IFNULL(CRM.DISCOUNT, 0) / getTax(LCI.LEAS_FORM,'租息',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID,MAX(FACT_DATE) AS FACT_DATE FROM LC_EBANK_TEMP GROUP BY FLOWUNID) LE ON LE.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN (SELECT MAX(LRPT.FLOWUNID) FLOWUNID,CRM.CONTRACT_ID,SUM(IFNULL(CRM.DISCOUNT, 0)) AS DISCOUNT FROM CONTRACT_RENT_MONTH CRM LEFT JOIN (SELECT LRPT.FLOWUNID,LRPT.CONTRACT_ID,MAX(LCRAT.PAYDAY_ADJUST) PAYDAY_ADJUST FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.FLOWUNID = LRPT.FLOWUNID AND LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = CRM.CONTRACT_ID WHERE DATE_FORMAT(CRM.END_DATE, '%Y%m') >= DATE_FORMAT(LRPT.PAYDAY_ADJUST, '%Y%m') GROUP BY CRM.CONTRACT_ID) CRM ON CRM.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = CRM.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 IFNULL(CRM.DISCOUNT, 0)>0 AND LCRAT.FLOWUNID = :FLOWUNID ";
// 确认手续费
}else if("PZ2018081700000122".equals(VOUCHERNO)) {
//sql="SELECT IFNULL(CRM.FEE, 0) AS MONEY,ROUND(IFNULL(CRM.FEE, 0)/getTax(LCI.LEAS_FORM,'手续费',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(CRM.FEE, 0) - ROUND(IFNULL(CRM.FEE, 0)/getTax(LCI.LEAS_FORM,'手续费',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT MAX(LRPT.FLOWUNID) FLOWUNID,CRM.CONTRACT_ID,SUM(IFNULL(CRM.FEE, 0)) AS FEE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN (SELECT LRPT.FLOWUNID,LRPT.CONTRACT_ID,MAX(LCRAT.PAYDAY_ADJUST) PAYDAY_ADJUST FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.FLOWUNID = LRPT.FLOWUNID AND LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = CRM.CONTRACT_ID WHERE DATE_FORMAT(CRM.END_DATE, '%Y%m') >= DATE_FORMAT(LRPT.PAYDAY_ADJUST, '%Y%m') GROUP BY CRM.CONTRACT_ID) CRM ON CRM.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = CRM.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 LCRAT.FLOWUNID = :FLOWUNID ";
sql="SELECT IFNULL(CRM.FEE, 0) AS MONEY,ROUND(IFNULL(CRM.FEE, 0) / getTax(LCI.LEAS_FORM,'手续费',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(CRM.FEE, 0) - ROUND(IFNULL(CRM.FEE, 0) / getTax(LCI.LEAS_FORM,'手续费',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN LC_EBANK_TEMP LE ON LE.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN (SELECT MAX(LRPT.FLOWUNID) FLOWUNID,CRM.CONTRACT_ID,SUM(IFNULL(CRM.FEE, 0)) AS FEE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN (SELECT LRPT.FLOWUNID,LRPT.CONTRACT_ID,MAX(LCRAT.PAYDAY_ADJUST) PAYDAY_ADJUST FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.FLOWUNID = LRPT.FLOWUNID AND LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = CRM.CONTRACT_ID WHERE DATE_FORMAT(CRM.END_DATE, '%Y%m') >= DATE_FORMAT(LRPT.PAYDAY_ADJUST, '%Y%m') GROUP BY CRM.CONTRACT_ID) CRM ON CRM.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = CRM.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 IFNULL(CRM.FEE, 0)>0 AND LCRAT.FLOWUNID = :FLOWUNID ";
sql="SELECT IFNULL(CRM.FEE, 0) AS MONEY,ROUND(IFNULL(CRM.FEE, 0) / getTax(LCI.LEAS_FORM,'手续费',LCCT.START_DATE),2) AS MONEYNOTAX,(IFNULL(CRM.FEE, 0) - ROUND(IFNULL(CRM.FEE, 0) / getTax(LCI.LEAS_FORM,'手续费',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID,MAX(FACT_DATE) AS FACT_DATE FROM LC_EBANK_TEMP GROUP BY FLOWUNID) LE ON LE.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN (SELECT MAX(LRPT.FLOWUNID) FLOWUNID,CRM.CONTRACT_ID,SUM(IFNULL(CRM.FEE, 0)) AS FEE FROM CONTRACT_RENT_MONTH CRM LEFT JOIN (SELECT LRPT.FLOWUNID,LRPT.CONTRACT_ID,MAX(LCRAT.PAYDAY_ADJUST) PAYDAY_ADJUST FROM LC_RENT_PLAN_TEMP LRPT LEFT JOIN LC_FUND_RENT_ADJUST_TEMP LCRAT ON LCRAT.FLOWUNID = LRPT.FLOWUNID AND LCRAT.PAYMENT_NUMBER = LRPT.PAYMENT_NUMBER GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRPT ON LRPT.CONTRACT_ID = CRM.CONTRACT_ID WHERE DATE_FORMAT(CRM.END_DATE, '%Y%m') >= DATE_FORMAT(LRPT.PAYDAY_ADJUST, '%Y%m') GROUP BY CRM.CONTRACT_ID) CRM ON CRM.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = CRM.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 IFNULL(CRM.FEE, 0)>0 AND LCRAT.FLOWUNID = :FLOWUNID ";
}else {
//sql="SELECT ROUND((getTax(lci.LEAS_FORM,'"+taxType+"',LCCT.START_DATE)-1)*100,0) AS TAX_NUM,"+date1+" AS MONEY,ROUND("+date1+"/getTax(LCI.LEAS_FORM,'"+taxType+"',LCCT.START_DATE),2) AS MONEYNOTAX,("+date1+" - ROUND("+date1+"/getTax(LCI.LEAS_FORM,'"+taxType+"',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LCRAT.PAYDAY_ADJUST, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRPT ON LRPT.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 LCRAT.FLOWUNID = :FLOWUNID ";
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'"+taxType+"',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,"+date1+" AS MONEY,ROUND("+date1+" / getTax(LCI.LEAS_FORM,'"+taxType+"',LCCT.START_DATE),2) AS MONEYNOTAX,("+date1+" - ROUND("+date1+" / getTax(LCI.LEAS_FORM,'"+taxType+"',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN LC_EBANK_TEMP LE ON LE.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRPT ON LRPT.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 "+date1+">0 AND LCRAT.FLOWUNID = :FLOWUNID ";
sql="SELECT ROUND((getTax(lci.LEAS_FORM,'"+taxType+"',LCCT.START_DATE) - 1) * 100,0) AS TAX_NUM,"+date1+" AS MONEY,ROUND("+date1+" / getTax(LCI.LEAS_FORM,'"+taxType+"',LCCT.START_DATE),2) AS MONEYNOTAX,("+date1+" - ROUND("+date1+" / getTax(LCI.LEAS_FORM,'"+taxType+"',LCCT.START_DATE),2)) AS MONEYTAX,DATE_FORMAT(NOW(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(LE.FACT_DATE, '%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_FUND_RENT_ADJUST_TEMP LCRAT LEFT JOIN (SELECT FLOWUNID,MAX(FACT_DATE) AS FACT_DATE FROM LC_EBANK_TEMP GROUP BY FLOWUNID) LE ON LE.FLOWUNID=LCRAT.FLOWUNID LEFT JOIN (SELECT LRPT.CONTRACT_ID,LRPT.FLOWUNID FROM LC_RENT_PLAN_TEMP LRPT GROUP BY LRPT.FLOWUNID,LRPT.CONTRACT_ID) LRPT ON LRPT.FLOWUNID = LCRAT.FLOWUNID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.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 "+date1+">0 AND LCRAT.FLOWUNID = :FLOWUNID ";
}
// 执行SQL, 获取结果集

View File

@ -0,0 +1,49 @@
package com.tenwa.httpclient.resources;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
/**
* 1: ΢ÐÅÍÆËÍÏûÏ¢ÅäÖÃ
*/
public class WechatPropertiesUtil {
private static String CONFIG_FILE_NAME = "/Wechat.properties";
private static final Map<String, String> configMap = new HashMap<String, String>();
public static String getConfigValue(String propertyName) {
if (0 == configMap.size()) {
FileInputStream fis = null;
try {
fis = new FileInputStream(URLDecoder.decode(Thread.currentThread().getContextClassLoader().getResource(CONFIG_FILE_NAME).getFile(),"UTF-8"));
Properties pro = new Properties();
pro.load(fis);
for (Object key : pro.keySet()) {
String valString = pro.get(key).toString().trim();
String keyString = key.toString();
configMap.put(keyString, valString);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (null != fis) {
fis.close();
fis = null;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
return configMap.get(propertyName);
}
public static void main(String[] args) {
System.out.println(WechatPropertiesUtil.getConfigValue("WechatMenuURL"));
}
}

View File

@ -0,0 +1,298 @@
package com.tenwa.lease.app.quartzmession;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import com.alibaba.fastjson.JSONObject;
import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.awe.dw.ui.page.body.imp.Integer;
import com.amarsoft.awe.util.ASResultSet;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.dict.als.cache.CacheLoaderFactory;
import com.tenwa.httpclient.resources.WechatPropertiesUtil;
import com.tenwa.util.SerialNumberUtil;
/**
* 1:微信公众号信息推送
* @author xiezhiwen
*/
public class WechatMessagePush implements Job{
private static final Logger logger = LogManager.getLogger(WechatMessagePush.class);// 引入logger日志
public void execute(JobExecutionContext arg0) throws JobExecutionException {
Transaction Sqlca=null;
try{
Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
// 执行还款消息推送
String result1 = RefundRemindPush(Sqlca);
String result2 = OverdueRefundRemindPush(Sqlca);
Sqlca.commit();
logger.info("还款提醒发送状态<<<<<<<<<<<<<: "+result1);
logger.info("逾期还款提醒发送状态<<<<<<<<<<: "+result2);
}catch(Exception e){
logger.info("<<<<<<<<<<<<<<<<<<<<<<微信推送定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<微信推送定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<<<<<<<<微信推送定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
try {
Sqlca.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}finally {
if(Sqlca!=null) {
try {
Sqlca.commit();
Sqlca.disConnect();
} catch (JBOException e) {
e.printStackTrace();
}
}
}
}
/**
* 1: 还款提醒发送
* @return
* @throws Exception
*/
public String RefundRemindPush(Transaction Sqlca) throws Exception {
// 定义全局对象
String contract_number=null;// 合同名称
String customer_num=null; // 客户编码
String cust_name=null; // 客户名称
String plan_list=null; // 客户名称
String mobile=null; // 手机号
String contract_id=null; // 合同id
String customer_id=null; // 客户id
String openid=null; // 微信标识
String link=null; // 详情链接
String type="1"; // 类型
String keyword1=null;// 还款日期
String keyword2=null;// 还款期次
String keyword3=null;// 还款金额
String uuid=null; // 记录表id
String first="尊敬的用户您好,您的本期还款信息如下:";// 内容头
String remark="祝您工作顺利。"; // 备注
String updSql="";
String insertSql="";
String msgid =null;
String result="推送成功";
String batch=SerialNumberUtil.getWechatBatchNumber(Sqlca);
int con=0;
// 查询所有需要发送还款提醒的数据
String selSql="SELECT CI.CUSTOMERNAME AS CUST_NAME,WUI.MOBILE_,WUI.CERTID_,LCI.CONTRACT_NUMBER,CI.CUSTOMER_NUM,LRP.PLAN_LIST,LCI.ID AS CONTRACT_ID,CI.CUSTOMERID,WUI.OPENID,CONCAT('/wechat/menu?type=payments&id=',LCI.CONTRACT_NUMBER) AS LINK,CONCAT(CONVERT(YEAR(LRP.PLAN_DATE), CHAR),'年',CONVERT(MONTH(LRP.PLAN_DATE), CHAR),'月',CONVERT(DAY(LRP.PLAN_DATE), CHAR),'日') AS KEYWORD1,CONCAT('第',LRP.PLAN_LIST,'期') KEYWORD2,CONCAT(LRP.RENT,'元') KEYWORD3 FROM WECHAT_USER_INFO WUI LEFT JOIN CUSTOMER_INFO CI ON CI.CERTID = WUI.CERTID_ LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CUSTOMER_ID = CI.CUSTOMERID AND LUL.IS_MAIN = 'Y' LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LUL.CONTRACT_ID AND LCI.CONTRACT_STATUS = '31' LEFT JOIN LC_RENT_PLAN LRP ON LRP.CONTRACT_ID = LCI.ID WHERE WUI.BINDING_STATUS='Y' AND TIMESTAMPDIFF(DAY,DATE_FORMAT(NOW(), '%Y-%m-%d'),DATE_FORMAT(LRP.PLAN_DATE, '%Y-%m-%d')) = 3 AND NOT EXISTS (SELECT 1 FROM WECHAT_MESSAGE_RECORD WHERE OPENID = WUI.OPENID AND SEND_TYPE='1' AND CONTRACT_NUMBER=LCI.CONTRACT_NUMBER AND PLAN_LIST=LRP.PLAN_LIST AND SEND_STATUS = 'Y') LIMIT 0,50000 ";
ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
// 循环, 逐条发送---如果数据量过大, 超出微信限制, 用此优化
//new Thread(new Runnable() {
// public void run() {
// try {
// Thread.sleep(500);
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
//}).start();
while(rs.next()) {
// 获取接口推送所需数据
con++;
uuid = UUID.randomUUID().toString().replace("-", "");
openid=rs.getString("openid");
link=rs.getString("link");
keyword1=rs.getString("keyword1");
keyword2=rs.getString("keyword2");
keyword3=rs.getString("keyword3");
contract_number=rs.getString("contract_number");
customer_num=rs.getString("customer_num");
cust_name=rs.getString("cust_name");
mobile=rs.getString("mobile_");
plan_list=rs.getString("plan_list");
contract_id=rs.getString("contract_id");
customer_id=rs.getString("customerid");
// 查寻当条是否是历史失败的
selSql="SELECT openid FROM wechat_message_record WHERE OPENID='"+openid+"' AND CONTRACT_NUMBER='"+contract_number+"' AND PLAN_LIST='"+plan_list+"' AND SEND_TYPE='1'";
ASResultSet rs1 = Sqlca.getASResultSet(new SqlObject(selSql));
if(!rs1.next()) {
insertSql="INSERT INTO WECHAT_MESSAGE_RECORD(ID,BATCH,OPENID,CONTRACT_NUMBER,CUSTOMER_NUM,CUST_NAME,PLAN_LIST,MODILE,SEND_DATE,SEND_TYPE,SEND_CONTENT,SEND_STATUS,CONTRACT_ID,CUSTOMER_ID) VALUES('"+uuid+"',CONCAT('"+batch+"','-','"+con+"'),'"+openid+"','"+contract_number+"','"+customer_num+"','"+cust_name+"','"+plan_list+"','"+mobile+"',DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'),'1',CONCAT('"+first+"','还款日期: ','"+keyword1+"',',还款期数: ','"+keyword2+"',',还款金额: ','"+keyword3+"',', ','"+remark+"'),'N','"+contract_id+"','"+customer_id+"')";
Sqlca.executeSQL(new SqlObject(insertSql));
}
try {
msgid = WechatMessagePush.WechatPush(openid,link,type,first,keyword1,keyword2,keyword3,remark);
System.out.println(con);
} catch (Exception e) {
result="推送失败";
e.printStackTrace();
}
// 成功改状态, 失败改时间
if(msgid!=null) {
updSql="UPDATE wechat_message_record SET MSGID='"+msgid+"',SEND_DATE=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'),SEND_STATUS='Y' WHERE OPENID='"+openid+"' AND CONTRACT_NUMBER='"+contract_number+"' AND PLAN_LIST='"+plan_list+"' AND SEND_TYPE='1'";
Sqlca.executeSQL(new SqlObject(updSql));
}else {
result="推送失败";
updSql="UPDATE wechat_message_record SET SEND_DATE=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'),SEND_STATUS='N' WHERE OPENID='"+openid+"' AND CONTRACT_NUMBER='"+contract_number+"' AND PLAN_LIST='"+plan_list+"' AND SEND_TYPE='1'";
Sqlca.executeSQL(new SqlObject(updSql));
}
}
return result+String.valueOf(con);
}
/**
* 2: 逾期 还款提醒发送
* @return
* @throws Exception
*/
public String OverdueRefundRemindPush(Transaction Sqlca) throws Exception {
// 定义全局对象
String contract_number=null;// 合同名称
String customer_num=null; // 客户编码
String cust_name=null; // 客户名称
String plan_list=null; // 客户名称
String mobile=null; // 手机号
String contract_id=null; // 合同id
String customer_id=null; // 客户id
String openid=null; // 微信标识
String link=null; // 详情链接
String type="1"; // 类型
String keyword1=null; // 还款日期
String keyword2=null; // 应还金额
String keyword3=null; // 逾期金额
String keyword4=null; // 罚息金额
String uuid=null; // 记录表id
String first="亲爱的用户您好,您本期应还金额尚未归还,以下是您的账单信息:"; // 内容头
String remark="XX提醒您逾期会产生逾期费用请尽快还款如需帮助请您致电客服123456."; // 备注
String updSql="";
String insertSql="";
String msgid =null;
String result="推送成功";
String batch=SerialNumberUtil.getWechatBatchNumber(Sqlca);
int con=0;
// 查询所有需要发送还款提醒的数据
String selSql="SELECT CI.CUSTOMERNAME AS CUST_NAME,WUI.MOBILE_,WUI.CERTID_,LCI.CONTRACT_NUMBER,CI.CUSTOMER_NUM,LRP.PLAN_LIST,LCI.ID AS CONTRACT_ID,CI.CUSTOMERID,WUI.OPENID,CONCAT('/wechat/menu?type=payments&id=',LCI.CONTRACT_NUMBER) AS LINK,CONCAT(CONVERT(YEAR(LRP.PLAN_DATE), CHAR),'年',CONVERT(MONTH(LRP.PLAN_DATE), CHAR),'月',CONVERT(DAY(LRP.PLAN_DATE), CHAR),'日') AS KEYWORD1,CONCAT(ROUND((LRP.RENT + IFNULL(getRentPenalty (LRP.PAYMENT_NUMBER,LRP.PLAN_LIST,DATE_FORMAT(NOW(), '%y/%m/%d')),0) - IFNULL(LRI.RENT, 0) - IFNULL(LRI.PENALTY, 0)),2),'元') AS KEYWORD2,CONCAT((LRP.RENT-IFNULL(LRI.RENT,0)), '元') AS KEYWORD3,CONCAT(ROUND(IFNULL(getRentPenalty (LRP.PAYMENT_NUMBER,LRP.PLAN_LIST,DATE_FORMAT(NOW(), '%y/%m/%d')),0),2),'元') AS KEYWORD4 FROM WECHAT_USER_INFO WUI LEFT JOIN CUSTOMER_INFO CI ON CI.CERTID = WUI.CERTID_ LEFT JOIN LB_UNION_LESSEE LUL ON LUL.CUSTOMER_ID = CI.CUSTOMERID AND LUL.IS_MAIN = 'Y' LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LUL.CONTRACT_ID AND LCI.CONTRACT_STATUS = '31' LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,MAX(PLAN_DATE) AS PLAN_DATE,MAX(PAYMENT_NUMBER) AS PAYMENT_NUMBER,SUM(RENT) AS RENT,SUM(IFNULL(PENALTY,0)) AS PENALTY FROM LC_RENT_PLAN WHERE TIMESTAMPDIFF(DAY,DATE_FORMAT(PLAN_DATE, '%Y-%m-%d'),DATE_FORMAT(NOW(), '%Y-%m-%d')) >= 3 GROUP BY CONTRACT_ID,PLAN_LIST)LRP ON LRP.CONTRACT_ID=LCI.ID LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(RENT) AS RENT,SUM(IFNULL(PENALTY,0)) AS PENALTY FROM LC_RENT_INCOME GROUP BY CONTRACT_ID,PLAN_LIST)LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID AND LRI.PLAN_LIST=LRP.PLAN_LIST WHERE WUI.BINDING_STATUS='Y' AND (IFNULL(LRP.RENT,0)+IFNULL(LRP.PENALTY,0)-IFNULL(LRI.RENT,0)-IFNULL(LRI.PENALTY,0))<>0 AND NOT EXISTS (SELECT 1 FROM WECHAT_MESSAGE_RECORD WHERE OPENID = WUI.OPENID AND SEND_TYPE='2' AND CONTRACT_NUMBER = LCI.CONTRACT_NUMBER AND PLAN_LIST = LRP.PLAN_LIST AND SEND_STATUS = 'Y') LIMIT 0,50000 ";
ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
// 循环, 逐条发送
while(rs.next()) {
con++;
// 获取接口推送所需数据
uuid = UUID.randomUUID().toString().replace("-", "");
openid=rs.getString("openid");
link=rs.getString("link");
keyword1=rs.getString("keyword1");
keyword2=rs.getString("keyword2");
keyword3=rs.getString("keyword3");
keyword4=rs.getString("keyword4");
contract_number=rs.getString("contract_number");
customer_num=rs.getString("customer_num");
cust_name=rs.getString("cust_name");
mobile=rs.getString("mobile_");
plan_list=rs.getString("plan_list");
contract_id=rs.getString("contract_id");
customer_id=rs.getString("customerid");
// 查寻当条是否是历史失败的
selSql="SELECT openid FROM wechat_message_record WHERE OPENID='"+openid+"' AND CONTRACT_NUMBER='"+contract_number+"' AND PLAN_LIST='"+plan_list+"' AND SEND_TYPE='1'";
ASResultSet rs1 = Sqlca.getASResultSet(new SqlObject(selSql));
if(!rs1.next()) {
insertSql="INSERT INTO WECHAT_MESSAGE_RECORD(ID,BATCH,OPENID,CONTRACT_NUMBER,CUSTOMER_NUM,CUST_NAME,PLAN_LIST,MODILE,SEND_DATE,SEND_TYPE,SEND_CONTENT,SEND_STATUS,CONTRACT_ID,CUSTOMER_ID) VALUES('"+uuid+"',CONCAT('"+batch+"','-','"+con+"'),'"+openid+"','"+contract_number+"','"+customer_num+"','"+cust_name+"','"+plan_list+"','"+mobile+"',DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'),'2',CONCAT('"+first+"','还款日期: ','"+keyword1+"',',还款金额: ','"+keyword2+"',',逾期金额: ','"+keyword3+"',',罚息金额: ','"+keyword4+"','','"+remark+"'),'N','"+contract_id+"','"+customer_id+"')";
Sqlca.executeSQL(new SqlObject(insertSql));
}
try {
msgid = WechatMessagePush.WechatPush(openid,link,type,first,keyword1,keyword2,keyword3,remark);
System.out.println(con);
} catch (Exception e) {
result="推送失败";
e.printStackTrace();
}
// 成功改状态, 失败改时间
if(msgid!=null) {
updSql="UPDATE wechat_message_record SET MSGID='"+msgid+"',SEND_DATE=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'),SEND_STATUS='Y' WHERE OPENID='"+openid+"' AND CONTRACT_NUMBER='"+contract_number+"' AND PLAN_LIST='"+plan_list+"' AND SEND_TYPE='2'";
Sqlca.executeSQL(new SqlObject(updSql));
}else {
result="推送失败";
updSql="UPDATE wechat_message_record SET SEND_DATE=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'),SEND_STATUS='N' WHERE OPENID='"+openid+"' AND CONTRACT_NUMBER='"+contract_number+"' AND PLAN_LIST='"+plan_list+"' AND SEND_TYPE='2'";
Sqlca.executeSQL(new SqlObject(updSql));
}
}
return result+String.valueOf(con);
}
/**
* 3: 调用消息推送接口
*/
public synchronized static String WechatPush(String openid,String link,String type,String first,String keyword1,String keyword2,String keyword3,String remark) throws Exception {
String strURL = WechatPropertiesUtil.getConfigValue("WechatURL");
URL url = new URL(strURL);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
httpConn.setRequestProperty("Content-Type", "application/json");
httpConn.setRequestMethod("POST");
httpConn.connect();
OutputStreamWriter out = new OutputStreamWriter(httpConn.getOutputStream(), "UTF-8");
// 发送请求参数
JSONObject json = new JSONObject();
json.put("openid", openid);// 微信的uuid
json.put("type", type);// 推送类型
json.put("link", link);// 推送详情的连接,绑定成功的推送参数为空
JSONObject data = new JSONObject();
data.put("first", first);// 推送的头部
data.put("keyword1", keyword1);// 关键字1
data.put("keyword2", keyword2);// 关键字2
data.put("remark", remark);// 备注
json.put("data", data);
out.write(json.toString());
out.flush();
out.close();
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(httpConn.getInputStream()));
} catch (Exception e) {
e.printStackTrace();
logger.info("<<<<<<<<<<<<<<<获取回执信息失败>>>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<获取回执信息失败>>>>>>>>>>>>>>>>>>>");
logger.info("<<<<<<<<<<<<<<<获取回执信息失败>>>>>>>>>>>>>>>>>>>");
throw new Exception("推送失败!");
}
String line;
StringBuffer buffer = new StringBuffer();
while ((line = reader.readLine()) != null) {
buffer.append(line);
}
reader.close();
httpConn.disconnect();
logger.info("微信接口返回信息" + buffer.toString());
JSONObject resultjson = JSONObject.parseObject(buffer.toString());
String msgid = null;
if (resultjson.get("errcode").toString().equals("0")) {// 推送成功
msgid = resultjson.get("msgid").toString();
} else {// 推送失败
throw new Exception("推送失败");
}
return msgid;
}
}