Commit 3948774a authored by Data-王博's avatar Data-王博

赔付表

parent 18f97449
This diff is collapsed.
......@@ -9,32 +9,30 @@ con_all_back = create_engine(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/new_transaction?charset=utf8', echo=False)
sql_query_xjd = """SELECT oar.id "支付宝id",
sql_query_xjd = """SELECT
oar.id "支付宝id",
oar.business_flow "支付宝流水号",
oar.income "支付宝转账金额",
oar.transfer_time "支付宝转账时间",
xrprrr.ref_amount "支付宝关联还款计划金额",
xrprrr.principle-xrprrr.mitigate_principle "实还本金",
xrprrr.interest-xrprrr.mitigate_interest "实还利息",
xrprrr.service_fee-xrprrr.mitigate_service_fee "实还服务费",
xrprrr.punish-xrprrr.mitigate_collection_relief "实还罚息",
xrprrr.remain_income "remain_income",
xrprrr.principle - xrprrr.mitigate_principle "实还本金",
xrprrr.interest - xrprrr.mitigate_interest "实还利息",
xrprrr.service_fee - xrprrr.mitigate_service_fee "实还服务费",
xrprrr.punish - xrprrr.mitigate_collection_relief "实还罚息",
xrprrr.remain_income "remain_income",
urp.xyqb_repaid_at "还款确认时间",
urp.id "被确认的plan_id",
fc.`name` "资金方"
FROM offline_alipay_record oar LEFT JOIN xjd_repay_plan_repay_record_ref xrprrr ON oar.id = xrprrr.record_id
AND xrprrr.repay_channel = 13
LEFT JOIN user_repayment_plan urp ON xrprrr.plan_id = urp.id LEFT JOIN funding_corp fc ON urp.fund_code=fc.id WHERE urp.id IN (
SELECT urp.id FROM
offline_alipay_record oar
LEFT JOIN xjd_repay_plan_repay_record_ref xrprrr ON oar.id = xrprrr.record_id
AND xrprrr.repay_channel = 13
LEFT JOIN user_repayment_plan urp ON xrprrr.plan_id = urp.id
fc.`name` "资金方"
FROM
xjd_repay_plan_repay_record_ref xrprrr
LEFT JOIN all_back_0731.xjd_repay_plan_repay_record_ref t2 ON xrprrr.id = t2.id
JOIN offline_alipay_record oar ON xrprrr.record_id = oar.id
AND oar.transfer_time < "2017-08-01"
JOIN user_repayment_plan urp ON urp.id = xrprrr.plan_id
JOIN basic.funding_corp fc ON urp.fund_code = fc.funding_code
WHERE
urp.xyqb_repaid_at >= "2017-07-01"
AND urp.xyqb_repaid_at < "2017-08-01"
AND oar.transfer_time < "2017-07-01"
) ORDER BY urp.id
xrprrr.repay_channel = 13
AND t2.id IS NULL ORDER BY urp.id
"""
df_xjd_diff = pd.read_sql(sql=sql_query_xjd, con=con_all_back)
......@@ -55,24 +53,14 @@ sql_query_baitiao = """SELECT
urp.biz_repaid_at "还款确认时间",
urp.id "被确认的plan_id"
FROM
offline_alipay_record oar
LEFT JOIN baitiao_repay_plan_repay_record_ref xrprrr ON oar.id = xrprrr.record_id
AND xrprrr.repay_channel = 13
LEFT JOIN user_bt_repayment_plan urp ON xrprrr.plan_id = urp.id
baitiao_repay_plan_repay_record_ref xrprrr
LEFT JOIN all_back_0731.baitiao_repay_plan_repay_record_ref t2 ON xrprrr.id = t2.id
JOIN offline_alipay_record oar ON xrprrr.record_id = oar.id
AND oar.transfer_time < "2017-08-01"
JOIN user_bt_repayment_plan urp ON urp.id = xrprrr.plan_id
WHERE
urp.id IN (
SELECT
urp.id
FROM
offline_alipay_record oar
LEFT JOIN baitiao_repay_plan_repay_record_ref xrprrr ON oar.id = xrprrr.record_id
AND xrprrr.repay_channel = 13
LEFT JOIN user_bt_repayment_plan urp ON xrprrr.plan_id = urp.id
WHERE
urp.biz_repaid_at >= "2017-07-01"
AND urp.biz_repaid_at < "2017-08-01"
AND oar.transfer_time < "2017-07-01"
)
xrprrr.repay_channel = 13
AND t2.id IS NULL
ORDER BY
urp.id
"""
......
# -*- coding: utf-8 -*-
import os
import sys
import datetime
import threading
from itertools import product
from threading import Thread
import pandas as pd
from dateutil.relativedelta import relativedelta
from sqlalchemy import create_engine
import multiprocessing as mtp
reload(sys)
sys.setdefaultencoding('utf8')
'''
1、出新马上的还款表,基于new_ms_transaction 还款表,没有期数之分
2、按照月份出表
'''
#-------------------数据配置开始--------------------------------
#文件生成的路劲
path='./'
# 出表的还款年份
years = [2015,2016]
# 出表的还款月份
months = [1,2,3,4,5,6,7,8,9,10,11,12]
# new_ms_transaction + new_ms_pay 等新马上表所在的数据库名字,根据具体的情况,进行配置
db_name='new_transaction'
# 读取的数据库 源
engine_new_transaction = engine_new_transaction = create_engine(
'mysql+mysqldb://yulong_rw:TouBStYwN8wkdxVt@172.16.3.201:3306/new_transaction?charset=utf8',
echo=True)
#-------------------数据配置完毕--------------------------------
# 新马上还款记录
sql_1='''
SELECT '新马上' fund_name,t1.loan_id,t1.loan_paid_at,t2.amount,t1.repay_amt,t1.repay_principle,t1.repay_intrest,t1.fund_service_fee,t1.late_fee,t1.service_fee,t1.penalty_fee
,t1.repay_date
FROM %s.`new_ms_transaction` t1
JOIN %s.`new_ms_pay` t2 ON t1.loan_id = t2.loan_id
where t1.repay_date >= '%s' and t1.repay_date < '%s'
'''
if __name__ == '__main__':
for year, month in product(years, months):
start_time = datetime.datetime(year, month, 1, 0, 0, 0)
end_time = start_time + relativedelta(months=+1)
df=pd.read_sql(sql_1 % (db_name,db_name,start_time,end_time),engine_new_transaction)
if len(df) <=0:
continue
df.rename(columns={'loan_id':'放款id','loan_paid_at':'放款时间','repay_date':'实还款日','amount':'放款金额',
'repay_principle':'实还本金','repay_intrest':'实还利息','fund_service_fee':'实还资金方服务费',
'service_fee':'实还量化派服务费','penalty_fee':'逾期费','late_fee':'滞纳金','fund_name':'资金方',
'repay_amt':'实还款'},inplace=True)
df.to_excel(path + str(year) + '_' + str(month) + '.xlsx', columns=df.columns, index=None, encoding='utf8')
# -*- encoding: utf8 -*-
from __future__ import unicode_literals
import pandas as pd
from sqlalchemy import create_engine
import sys
reload(sys)
sys.setdefaultencoding('utf8')
engine_audit = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/audit?charset=utf8', echo=True)
df_fund_corp = pd.read_sql(sql="select funding_code, name '资金方' from basic.funding_corp", con=engine_audit)
df_loan_account = pd.read_sql(sql="select id loan_account_id, accountName '放款账户' from audit.loan_account", con=engine_audit)
df_repay_channel = pd.read_sql(sql="select id repay_channel_id, approach_name '收款账户' from new_transaction.repay_channel", con=engine_audit)
excel_file = pd.ExcelWriter('放款数据汇总核对表.xlsx')
################################################
# 放款表汇总
sql = """
select year(t1.loan_paid_at) '年', month(t1.loan_paid_at) '月', funding_code , loan_account_id , sum(t1.real_loan_amount) '放款金额', sum(t1.contract_loan_amount) '本金债权',
sum(t1.qg_one_time_service_fee) '一次性扣除手续费QG', sum(t1.funding_one_time_service_fee) ' 一次性扣除手续费点滴',SUM(t2.qg_one_time_service_fee) '应扣趸收服务费' from loan_manifest t1 LEFT JOIN new_transaction.xjd_dunjiao_plan t2 ON t1.ref_id = t2.ref_id where t1.is_active in (1,-2)
group by 1,2,3,4;
"""
df = pd.read_sql(sql=sql, con=engine_audit)
df['funding_code'] = df['funding_code'].astype(int)
df['loan_account_id'] = df['loan_account_id'].astype(int)
df = df.merge(df_fund_corp, on='funding_code', how='left').merge(df_loan_account, on='loan_account_id', how='left')
df.drop(['funding_code', 'loan_account_id'], axis=1, inplace=True)
# df.to_excel(u'放款表汇总.xlsx', index=None)
df.to_excel(excel_file, '放款表汇总', columns=['年', '月', '资金方', '放款账户', '放款金额', '本金债权', '一次性扣除手续费QG', '一次性扣除手续费点滴','应扣趸收服务费'], index=None)
excel_file.save()
\ No newline at end of file
# -*- encoding: utf8 -*-
from __future__ import unicode_literals
import pandas as pd
from sqlalchemy import create_engine
import sys
reload(sys)
sys.setdefaultencoding('utf8')
engine_audit = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/all_back_0830?charset=utf8', echo=True)
df_fund_corp = pd.read_sql(sql="select funding_code, name '资金方' from basic.funding_corp", con=engine_audit)
df_loan_account = pd.read_sql(sql="select id loan_account_id, accountName '放款账户' from audit.loan_account", con=engine_audit)
df_repay_channel = pd.read_sql(sql="select id repay_channel_id, approach_name '收款账户' from new_transaction.repay_channel", con=engine_audit)
excel_file = pd.ExcelWriter('放款数据汇总加等级表.xlsx')
################################################
# 放款表汇总
sql = """
select year(t1.loan_paid_at) '放款年', month(t1.loan_paid_at) '放款月', funding_code , loan_account_id ,lc.class '风险等级(ABCD)', sum(t1.real_loan_amount) '放款金额', sum(t1.contract_loan_amount) '本金债权',
sum(t1.qg_one_time_service_fee) '一次性扣除手续费QG', sum(t1.funding_one_time_service_fee) ' 一次性扣除手续费点滴',SUM(t2.qg_one_time_service_fee) '应扣趸收服务费'
from loan_manifest t1 JOIN test_mzh.loan_class_0912 lc ON t1.ref_id = lc.ref_id LEFT JOIN new_transaction.xjd_dunjiao_plan t2 ON t1.ref_id = t2.ref_id
where t1.is_active in (1,-2) AND t1.loan_paid_at>="2017-01-01" AND t1.loan_paid_at<"2017-09-01"
group by 1,2,3,4,5;
"""
df = pd.read_sql(sql=sql, con=engine_audit)
df['funding_code'] = df['funding_code'].astype(int)
df['loan_account_id'] = df['loan_account_id'].astype(int)
df = df.merge(df_fund_corp, on='funding_code', how='left').merge(df_loan_account, on='loan_account_id', how='left')
df.drop(['funding_code', 'loan_account_id'], axis=1, inplace=True)
# df.to_excel(u'放款表汇总.xlsx', index=None)
df.to_excel(excel_file, '放款表汇总', columns=['放款年', '放款月', '资金方', '放款账户', '放款金额', '本金债权', '一次性扣除手续费QG', '一次性扣除手续费点滴','风险等级(ABCD)','应扣趸收服务费'], index=None)
excel_file.save()
\ No newline at end of file
# encoding: utf8
import pandas as pd
from sqlalchemy import create_engine
engine_audit = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/all_back_0430?charset=utf8', echo=True)
df_fund_corp = pd.read_sql(sql="select funding_code, name '资金方' from basic.funding_corp", con=engine_audit)
sql = """
select t1.funding_code, t3.class '风险等级', year(t1.loan_paid_at) '放款年', month(t1.loan_paid_at) '放款月',
year(t2.deadline) '到期年',month(t2.deadline) '到期月',sum(t2.principle) '客户应还本金',sum(t2.interest) '客户应还利息'
from loan_manifest t1
inner join user_repayment_plan t2
on t1.ref_id = t2.ref_id and t1.is_active in (1,-2) and t1.loan_paid_at>='2015-01-01' and t1.loan_paid_at<'2017-01-01'
inner join test_mzh.loan_class_0912 t3
on t1.ref_id = t3.ref_id
group by 1,2,3,4,5,6
"""
path_out = u'./'
excel_file = pd.ExcelWriter(u'现金贷应收本金利息汇总.xlsx')
df = pd.read_sql(sql=sql, con=engine_audit)
df['funding_code'] = df['funding_code'].astype(int)
df = df.merge(df_fund_corp, on='funding_code', how='left')
df.drop(['funding_code'], axis=1, inplace=True)
df.to_excel(excel_file, columns=[u'资金方', u'风险等级', u'放款年', u'放款月', u'到期年', u'到期月',u'客户应还本金', u'客户应还利息'], index=None)
excel_file.save()
\ No newline at end of file
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
# -*- coding: utf-8 -*-
import os
import sys
import datetime
import threading
from itertools import product
from threading import Thread
import pandas as pd
from dateutil.relativedelta import relativedelta
from sqlalchemy import create_engine
import multiprocessing as mtp
reload(sys)
sys.setdefaultencoding('utf8')
path='./'
sql_query_detail='''
SELECT
'阳光徽商' fund_name,
t2.loan_id,
t2.loan_paid_at,
t1.repay_date,
t2.real_loan_amount,
t1.actual_principle,
t1.actual_interest,
t1.actual_qg_service_fee,
t1.actual_repay_amount,
t1.actual_fund_overdue_interest ,
t1.actual_qg_overdue_interest ,
t1.actual_compound_interest
FROM
yg_huishang_repay_term t1
JOIN audit.loan_manifest t2 ON t1.ref_id = t2.ref_id WHERE repay_date>="%s" AND repay_date<"%s"
'''
sql_query_summary='''
SELECT
'阳光徽商' fund_name,
sum(t1.actual_principle) summary_principle,
sum(t1.actual_interest) summary_interest,
sum(t1.actual_qg_service_fee) summary_qg_service_fee,
sum(t1.actual_repay_amount) summary_repay_amount,
sum(t1.actual_fund_overdue_interest) summary_fund_overdue_interest,
sum(t1.actual_qg_overdue_interest ) summary_qg_overdue_interest,
sum(t1.actual_compound_interest) summary_compound_interest,
YEAR (repay_date) repay_year,
MONTH (repay_date) repay_month
FROM
yg_huishang_repay_term t1 WHERE repay_date>="%s" AND repay_date<"%s" GROUP BY YEAR(repay_date),MONTH(repay_date)
'''
engine_new_transaction = engine_new_transaction = create_engine(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/test?charset=utf8',
echo=True)
if __name__ == '__main__':
start_time = datetime.datetime(2017, 1, 1, 0, 0, 0)
end_time = datetime.datetime(2017, 9, 1, 0, 0, 0)
df=pd.read_sql(sql_query_detail % (start_time,end_time),engine_new_transaction)
df.rename(columns={'loan_id':u'放款id','loan_paid_at':u'放款时间','repay_date':u'实还款日','real_loan_amount':u'放款金额',
'actual_principle':u'实还本金','actual_interest':u'实还利息','actual_qg_service_fee':u'实还服务费','actual_qg_overdue_interest':u'实还量化派逾期费',
'actual_fund_overdue_interest':u'实还资金方逾期费','actual_compound_interest':u'实还复利','fund_name':u'资金方','actual_repay_amount':u'实还款'},inplace=True)
df.to_excel(path + u'阳光徽商还款明细' + '.xlsx', columns=df.columns, index=None, encoding='utf8')
df_summary = pd.read_sql(sql=sql_query_summary % (start_time,end_time),con=engine_new_transaction)
df_summary.rename(columns={'repay_year': u'年','repay_month': u'月',
'summary_principle': u'实还本金', 'summary_interest': u'实还利息', 'summary_qg_service_fee': u'实还服务费',
'summary_qg_overdue_interest': u'实还量化派逾期费',
'summary_fund_overdue_interest': u'实还资金方逾期费','summary_compound_interest':u'实还复利', 'fund_name': u'资金方', 'summary_repay_amount': u'实还款'},
inplace=True)
df_summary.to_excel(path + u'阳光徽商还款汇总' + '.xlsx', columns=df_summary.columns, index=None, encoding='utf8')
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment