Commit f21ad4ea authored by data—王林芳's avatar data—王林芳

Merge remote-tracking branch 'origin/master'

Conflicts:
	审计第二阶段/现金贷/现金贷-每月到期本金利息.py
parents 017b38c6 1e004421
# -*- coding:utf-8 -*-
# Author: Perry_Zhu
import sys
import pandas as pd
from sqlalchemy import create_engine
import pyexcelerate
reload(sys)
sys.setdefaultencoding('utf8')
max_limit = 800000
# 注意修改数据源
engine_new_transaction = create_engine(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/new_transaction?charset=utf8',
echo=True)
path = u'E:/审计出表/11月份开始使用表数据/11月份白条出表/'
query_loan = """
SELECT tt.order_no 产品编号,tt.term_no 期数,tt.fund_name 资金方,max(tt.loan_paid_at) 放款时间,
max(tt.repaid_at)实还时间,tt.flow_id 流水号,tt.total_amount 账单金额 FROM (
SELECT
t4.order_no,
r.term_no,
t2.fund_name,
DATE(t4.loan_paid_at) loan_paid_at,
date(r.repaid_at) repaid_at,
r.flow_id ,
b.total_amount
FROM
baitiao_audit.baitiao_order t4
JOIN baitiao_audit.fund_corp t2 ON t4.funding_corp_id = t2.id AND t4.is_active = 1 AND t4.funding_corp_id = 5
JOIN new_transaction.bt_funding_repayment_record r ON r.ref_id = t4.ref_id
JOIN baitiao_audit.account_type t3 ON r.principal_account = t3.account_type
JOIN baitiao_audit.baitiao_finance_record b ON r.finance_record_id = b.batch_no AND b.type = 1
WHERE
t4.loan_paid_at>='%s'
AND t4.loan_paid_at<'%s'
UNION all
SELECT
t4.order_no,
r.term_no,
t2.fund_name,
DATE(t4.train_cancel_at) loan_paid_at,
date(r.repaid_at) repaid_at,
r.flow_id ,
b.total_amount
FROM
baitiao_audit.baitiao_order t4
JOIN baitiao_audit.fund_corp t2 ON t4.funding_corp_id = t2.id AND t4.is_active = -2 AND t4.funding_corp_id = 5
JOIN new_transaction.bt_funding_repayment_record r ON r.ref_id = t4.ref_id
JOIN baitiao_audit.account_type t3 ON r.principal_account = t3.account_type
JOIN baitiao_audit.baitiao_finance_record b ON r.finance_record_id = b.batch_no AND b.type = 1
WHERE
t4.loan_paid_at>='%s'
AND t4.loan_paid_at<'%s'
)tt
GROUP BY 1,2
"""
query_repay_principal = """
SELECT
r.order_no 产品编号,
r.term_no 期数,
sum(r.principal) 实还本金
FROM
bt_funding_repayment_record r
WHERE
r.repaid_at >='%s'
AND r.repaid_at <'%s'
AND r.refund_status!=3
and r.order_no is not null
GROUP BY 1,2
"""
query_repay_interest = """
select tt.order_no 产品编号,tt.term_no 期数,sum(tt.interest) 实还利息 from(
SELECT
r.order_no,
r.term_no,
r.interest
FROM
bt_funding_repayment_record r
WHERE
r.refund_status!=3
and r.order_no is not null
AND r.repaid_at >='%s'
AND r.repaid_at <'%s'
UNION ALL
SELECT
r.order_no,
r.term_no,
r.interest
FROM
bt_funding_repayment_record r
WHERE
r.refund_status=3
AND r.interest_account!=3
and r.order_no is not null
AND r.repaid_at >='%s'
AND r.repaid_at <'%s'
)tt
GROUP BY 1,2
"""
# query_repay_discount = """
# SELECT
# r.order_no 产品编号,
# r.term_no 期数,
# sum(r.discount) 实还贴息
# FROM
# bt_funding_repayment_record r
# WHERE
# r.refund_status!=3
# and r.order_no is not null
# AND r.repaid_at >='%s'
# AND r.repaid_at <'%s'
# GROUP BY 1,2
# """
query_repay_discount = """
SELECT
r.order_no 产品编号,
r.term_no 期数,
sum(r.discount) 实还贴息
FROM
bt_funding_repayment_record r
WHERE
r.refund_status!=3
and r.order_no is not null
AND r.discount_repaid_at >='%s'
AND r.discount_repaid_at <'%s'
GROUP BY 1,2
"""
start_time = '2017-08-01'
end_time = '2017-11-01'
def tj():
df_loan_all = pd.read_sql(query_loan % (start_time, end_time, start_time, end_time), engine_new_transaction)
df_loan_all[u'产品编号'] = df_loan_all[u'产品编号'].astype(str)
df_loan_all[u'期数'] = df_loan_all[u'期数'].astype(int)
df_p = pd.read_sql(query_repay_principal % (start_time, end_time), engine_new_transaction)
df_p[u'产品编号'] = df_p[u'产品编号'].astype(str)
df_p[u'期数'] = df_p[u'期数'].astype(int)
print df_p[u'实还本金'].sum()
# 实还本金
df_i = pd.read_sql(query_repay_interest % (start_time, end_time, start_time, end_time), engine_new_transaction)
df_i[u'产品编号'] = df_i[u'产品编号'].astype(str)
df_i[u'期数'] = df_i[u'期数'].astype(int)
# 实还利息
df_i = df_i[[u'产品编号', u'期数', u'实还利息']]
df_d = pd.read_sql(query_repay_discount % (start_time, end_time), engine_new_transaction)
df_d[u'产品编号'] = df_d[u'产品编号'].astype(str)
df_d[u'期数'] = df_d[u'期数'].astype(int)
# 实还贴息
df_d = df_d[[u'产品编号', u'期数', u'实还贴息']]
df = pd.concat([df_p, df_i, df_d], ignore_index=True, axis=0)
df.fillna(0, inplace=True)
# df_t1 = df.groupby([u'产品编号', u'期数'])[u'实还本金'].sum().reset_index()
# df_t2 = df.groupby([u'产品编号', u'期数'])[u'实还利息'].sum().reset_index()
# df_t3 = df.groupby([u'产品编号', u'期数'])[u'实还贴息'].sum().reset_index()
# df_1 = pd.merge(df_t1, df_t2, on=[u'产品编号', u'期数'], how='outer')
# df_t = pd.merge(df_1, df_t3, on=[u'产品编号', u'期数'], how='outer')
df_t = df.groupby([u'产品编号', u'期数'])[u'实还本金', u'实还利息', u'实还贴息'].agg('sum').reset_index()
df = pd.merge(df_loan_all, df_t, on=[u'产品编号', u'期数'])
df.loc[df[u'流水号'].duplicated(), [u'账单金额']] = 0
df[u'实还总额'] = df[u'实还本金'] + df[u'实还利息']
df = df[[u'资金方', u'产品编号', u'放款时间', u'期数', u'实还时间', u'实还总额', u'实还本金', u'实还利息', u'流水号', u'账单金额']]
# df.to_excel(path + u'直投白条还资金方明细-2017-10.xlsx', index=None)
df.to_excel(path + u'人工控制-直投白条还资金方(按实还时间)-2017-10.xlsx', index=None)
all_wb = pyexcelerate.Workbook()
for i in xrange(0, len(df), max_limit):
temp = df[i:i + max_limit]
temp_list = temp.values.tolist()
temp_list.insert(0, temp.columns.tolist())
all_wb.new_sheet(str(int(i / max_limit + 1)), data=temp_list)
all_wb.save(path + u'人工控制-普通白条-直投还资金方表(2017-10).xlsx')
tj()
# -*- coding:utf-8 -*-
# Author: Perry_Zhu
import sys
import pandas as pd
from sqlalchemy import create_engine
import pyexcelerate
max_limit = 800000
reload(sys)
sys.setdefaultencoding('utf8')
# 注意修改数据源
engine_new_transaction = create_engine(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/new_transaction?charset=utf8',
echo=True)
path = u'E:/审计出表/11月份开始使用表数据/11月份白条出表/'
query_repay_principal = """
SELECT
t2.fund_name 资金方,
r.order_no 产品编号,
r.term_no,
t4.loan_paid_at 放款时间,
t4.funding_loan_amount 放款金额,
DATE(r.refund_time) 客户退单日,
DATE(r.repaid_at) 退还给资金方日,
sum(r.principal) 退款本金,
r.flow_id 流水号,
b.total_amount 账单金额
FROM
bt_funding_repayment_record r
JOIN baitiao_audit.fund_corp t2 ON r.funding_code = t2.id
JOIN baitiao_audit.account_type t3 ON r.principal_account = t3.account_type AND r.refund_status=3
JOIN baitiao_audit.baitiao_order t4 ON r.ref_id=t4.ref_id
JOIN baitiao_audit.baitiao_finance_record b ON r.finance_record_id=b.batch_no AND b.type=1
WHERE r.repaid_at >='%s'
AND r.repaid_at <'%s'
GROUP BY 2,3
"""
query_repay_interest = """
SELECT
r.order_no 产品编号,
r.term_no,
sum(ifnull(r.interest,0)) 退款利息
FROM
bt_funding_repayment_record r
WHERE
r.refund_status=3
AND r.interest_account=3
AND r.repaid_at >='%s'
AND r.repaid_at <'%s'
GROUP BY 1,2
"""
# query_repay_discount = """
# SELECT
# r.order_no 产品编号,
# r.term_no,
# sum(ifnull(r.discount,0)) 退款贴息
# FROM
# bt_funding_repayment_record r
# WHERE
# r.refund_status=3
# AND r.repaid_at >='%s'
# AND r.repaid_at <'%s'
# GROUP BY 1,2
# """
query_repay_discount = """
SELECT
r.order_no 产品编号,
r.term_no,
sum(ifnull(r.discount,0)) 退款贴息
FROM
bt_funding_repayment_record r
WHERE
r.refund_status=3
AND r.discount_repaid_at >='%s'
AND r.discount_repaid_at <'%s'
GROUP BY 1,2
"""
start_time = '2017-08-01'
end_time = '2017-11-01'
def tj():
df_p = pd.read_sql(query_repay_principal % (start_time, end_time), engine_new_transaction)
df_i = pd.read_sql(query_repay_interest % (start_time, end_time), engine_new_transaction)
df_d = pd.read_sql(query_repay_discount % (start_time, end_time), engine_new_transaction)
df_p[u'产品编号'] = df_p[u'产品编号'].astype(str)
df_p.term_no = df_p.term_no.astype(int)
df_i[u'产品编号'] = df_i[u'产品编号'].astype(str)
df_i.term_no = df_i.term_no.astype(int)
df_d[u'产品编号'] = df_d[u'产品编号'].astype(str)
df_d.term_no = df_d.term_no.astype(int)
df_t = pd.merge(df_p, df_i, on=[u'产品编号', 'term_no'], how='left')
df = pd.merge(df_t, df_d, on=[u'产品编号', 'term_no'], how='left')
df.loc[df[u'流水号'].duplicated(), [u'账单金额']] = 0
df.fillna(0, inplace=True)
df[u'退款总额'] = df[u'退款本金'] + df[u'退款利息']
df = df[
[u'资金方', u'产品编号', u'放款时间', u'放款金额', u'客户退单日', u'退还给资金方日', u'退款总额', u'退款本金', u'退款利息', u'流水号', u'账单金额']]
# df.to_excel(path + u'直投白条退资金方款明细-2017-10.xlsx', index=None)
# df.to_excel(path + u'人工控制-直投白条退资金方款明细-2017-10.xlsx', index=None)
all_wb = pyexcelerate.Workbook()
for i in xrange(0, len(df), max_limit):
temp = df[i:i + max_limit]
temp_list = temp.values.tolist()
temp_list.insert(0, temp.columns.tolist())
all_wb.new_sheet(str(int(i / max_limit + 1)), data=temp_list)
all_wb.save(path + u'人工控制-普通白条-直投退资金方表(2017-10).xlsx')
tj()
......@@ -13,12 +13,12 @@ pd.options.mode.chained_assignment = None
max_limit = 800000
import os
path = u'd:/Users/Desktop/test/'
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/?charset=utf8',
path = u'E:/审计出表/11月份开始使用表数据/11月份现金贷出表/'
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/?charset=utf8',
echo=False).connect()
def faster_sql_reader(sql):
cmdstr = 'mysql -h172.16.3.201 -uinternal_r -pArbNgtvlJzZHXsEu -P3306 -e "%s" > %s'
cmdstr = 'mysql -h172.16.4.60 -uinternal_r -pArbNgtvlJzZHXsEu -P3306 -e "%s" > %s'
file_name = 'test.txt'
path_file = os.path.join(os.getcwd(), file_name)
exe_sql = cmdstr % (sql.replace('`',''), path_file)
......@@ -45,8 +45,8 @@ sql_repay_frr_2 = '''
sum(urp.principle) 'principle',
sum(urp.interest) 'interest'
FROM all_back_0930.user_repayment_plan urp
JOIN all_back_0930.loan_manifest lm ON lm.ref_id = urp.ref_id
FROM new_transaction.user_repayment_plan urp
JOIN audit.loan_manifest lm ON lm.ref_id = urp.ref_id
WHERE lm.loan_paid_at>='%s' AND loan_paid_at<'%s'
AND urp.fund_code IN (210,270,310,320,410,430)
GROUP BY 1,2
......@@ -63,7 +63,7 @@ sql_repay_frr_3 = '''
sum(frp.interest) 'interest'
FROM audit.funding_repayment_plan frp
JOIN all_back_0930.loan_manifest lm ON lm.ref_id = frp.ref_id
JOIN audit.loan_manifest lm ON lm.ref_id = frp.ref_id
WHERE lm.loan_paid_at>='%s' AND loan_paid_at<'%s'
AND lm.funding_code NOT IN (210,270,310,320,410,430)
GROUP BY 1,2
......@@ -75,10 +75,10 @@ SELECT t1.real_loan_id loan_id,date(lm.loan_paid_at) 'loan_paid_at',t1.ref_id,t1
t2.principle-t2.mitigate_principle 'repay_prin',t2.interest-t2.mitigate_interest 'repay_intes',
ifnull(t2.`service_fee`-t2.mitigate_service_fee,0) 'repay_fee',IFNULL(t2.`punish`-t2.mitigate_collection_relief, 0) 'repay_due',
t2.remain_income 'remain',t2.repay_channel,t6.order_id AS 'flow_no',t6.amount 'bank_amount',t1.service_fee 'service_fee',t1.required_repayment 'required_repayment'
FROM audit_temp.xjd_repay_plan_repay_record_ref t2
JOIN all_back_0930.user_repayment_plan t1 ON t1.id=t2.plan_id
JOIN all_back_0930.repay_record_online t6 ON t2.record_id=t6.id AND t2.repay_channel = t6.pay_approach
JOIN all_back_0930.loan_manifest lm ON lm.ref_id = t1.ref_id
FROM new_transaction.xjd_repay_plan_repay_record_ref t2
JOIN new_transaction.user_repayment_plan t1 ON t1.id=t2.plan_id
JOIN new_transaction.repay_record_online t6 ON t2.record_id=t6.id AND t2.repay_channel = t6.pay_approach
JOIN audit.loan_manifest lm ON lm.ref_id = t1.ref_id
WHERE lm.loan_paid_at >= '%s' AND lm.loan_paid_at < '%s'
'''
......@@ -88,10 +88,10 @@ SELECT t1.real_loan_id loan_id,date(lm.loan_paid_at) 'loan_paid_at',t1.ref_id,t1
t2.principle-t2.mitigate_principle 'repay_prin',t2.interest-t2.mitigate_interest 'repay_intes',
ifnull(t2.`service_fee`-t2.mitigate_service_fee,0) 'repay_fee',IFNULL(t2.`punish`-t2.mitigate_collection_relief, 0) 'repay_due',
t2.remain_income 'remain',t2.repay_channel,t6.business_flow 'flow_no',t6.income 'bank_amount',t1.service_fee 'service_fee',t1.required_repayment 'required_repayment'
FROM audit_temp.xjd_repay_plan_repay_record_ref t2
JOIN all_back_0930.`user_repayment_plan` t1 ON t1.id=t2.plan_id
JOIN all_back_0930.`offline_alipay_record` t6 ON t2.record_id=t6.id AND t2.repay_channel = 13
JOIN all_back_0930.loan_manifest lm ON lm.ref_id = t1.ref_id
FROM new_transaction.xjd_repay_plan_repay_record_ref t2
JOIN new_transaction.`user_repayment_plan` t1 ON t1.id=t2.plan_id
JOIN new_transaction.`offline_alipay_record` t6 ON t2.record_id=t6.id AND t2.repay_channel = 13
JOIN audit.loan_manifest lm ON lm.ref_id = t1.ref_id
WHERE lm.loan_paid_at >= '%s' AND lm.loan_paid_at < '%s'
'''
......@@ -101,10 +101,10 @@ SELECT t1.real_loan_id loan_id,date(lm.loan_paid_at) 'loan_paid_at',t1.ref_id,t1
t2.principle-t2.mitigate_principle 'repay_prin',t2.interest-t2.mitigate_interest 'repay_intes',
ifnull(t2.`service_fee`-t2.mitigate_service_fee,0) 'repay_fee',IFNULL(t2.`punish`-t2.mitigate_collection_relief, 0) 'repay_due',
t2.remain_income 'remain',t2.repay_channel,t6.transfer_amount 'bank_amount',t1.service_fee 'service_fee',t1.required_repayment 'required_repayment'
FROM audit_temp.xjd_repay_plan_repay_record_ref t2
JOIN all_back_0930.`user_repayment_plan` t1 ON t1.id=t2.plan_id
JOIN all_back_0930.loan_manifest lm ON lm.ref_id = t1.ref_id
JOIN all_back_0930.`offline_bank_repay_record` t6 ON t2.record_id=t6.id AND t2.repay_channel IN (14,15,16)
FROM new_transaction.xjd_repay_plan_repay_record_ref t2
JOIN new_transaction.`user_repayment_plan` t1 ON t1.id=t2.plan_id
JOIN audit.loan_manifest lm ON lm.ref_id = t1.ref_id
JOIN new_transaction.`offline_bank_repay_record` t6 ON t2.record_id=t6.id AND t2.repay_channel IN (14,15,16)
WHERE lm.loan_paid_at >= '%s' AND lm.loan_paid_at < '%s'
'''
......@@ -194,12 +194,12 @@ def handle_hk(year, month):
temp_list = temp.values.tolist()
temp_list.insert(0, temp.columns.tolist())
all_wb.new_sheet(str(int(i / max_limit + 1)), data=temp_list)
all_wb.save(path + u'人工控制-现金贷-客户实还表-测试(%d-%02d).xlsx' % (start_time.year, start_time.month))
all_wb.save(path + u'人工控制-现金贷-客户实还表(%d-%02d).xlsx' % (start_time.year, start_time.month))
if __name__ == '__main__':
year = [2017]
month = range(9, 10, 1)
month = range(10, 11, 1)
for year, month in product(year, month):
print '____%d__%d' % (year, month)
......
......@@ -13,7 +13,7 @@ max_limit = 800000
import os
path = u'E:/审计出表/人工控制/现金贷-还款表-1010版本/'
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/?charset=utf8',
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/?charset=utf8',
echo=False).connect()
'''
......
......@@ -25,14 +25,15 @@ import os
# loan_manifest.is_active in (1,-2)
# 需要先进行数据的获取,需要时间较长,sql_repay_all中xrd.repaid_at同样需要修改
# sql_contract_no需要每月进行修改
path = u'1020_files/'
path = u'E:/审计出表/非去哪儿白条-客户实还表-1023版/'
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/audit?charset=utf8',
path = u'E:/审计出表/11月份开始使用表数据/11月份现金贷出表/'
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/audit?charset=utf8',
echo=False).connect()
def faster_sql_reader(sql):
cmdstr = 'mysql -h172.16.3.201 -uinternal_r -pArbNgtvlJzZHXsEu -P3306 -e "%s" > %s'
cmdstr = 'mysql -h172.16.4.60 -uinternal_r -pArbNgtvlJzZHXsEu -P3306 -e "%s" > %s'
file_name = 'test.txt'
path_file = os.path.join(os.getcwd(), file_name)
exe_sql = cmdstr % (sql.replace('`',''), path_file)
......@@ -48,7 +49,7 @@ def faster_sql_reader(sql):
sql_fund = '''
select frp.ref_id,frp.term_no 'term_no',date(frp.deadline) 'deadline',frp.principle+ifnull(frp.interest,0) 'prin_interes'
from audit.funding_repayment_plan frp
where frp.deadline >= '2017-01-01'
where frp.deadline >= '2017-10-01'
'''
df_fund = faster_sql_reader(sql_fund)
df_fund.rename(columns={'term_no':u'应还期数','deadline':u'应还资金方时间','prin_interes':u'应还资金方本息'},inplace=True)
......@@ -58,13 +59,13 @@ df_fund.rename(columns={'term_no':u'应还期数','deadline':u'应还资金方
#此部分不需要进行修改
sql_contract_no = '''
select ref_id,contract_no
from basic.loan_class_contract_1002 lco
from basic.loan_class_contract_201711 lco
'''
#10月05日修改为basic.loan_class_contract_1002
df_contract_no = faster_sql_reader(sql_contract_no)
sql_fund_name = '''
sql_fund_name = '''
select funding_code,name '资金方'
from basic.funding_corp
'''
......@@ -81,9 +82,9 @@ def mc_pay(year, month):
urp.term_no 'term_no',
sum(xrprrr.principle-IFNULL(xrprrr.mitigate_principle,0)+xrprrr.interest-IFNULL(xrprrr.mitigate_interest,0)) 'principle_interes',
sum(xrprrr.service_fee-IFNULL(xrprrr.mitigate_service_fee,0)) 'service_fee'
from audit_temp.xjd_repay_plan_repay_record_ref_0831 xrprrr
join all_back_0831.user_repayment_plan urp on xrprrr.plan_id = urp.id
join all_back_0831.loan_manifest lm on lm.ref_id = urp.ref_id
from new_transaction.xjd_repay_plan_repay_record_ref xrprrr
join new_transaction.user_repayment_plan urp on xrprrr.plan_id = urp.id
join audit.loan_manifest lm on lm.ref_id = urp.ref_id
where lm.loan_paid_at>='%s' and lm.loan_paid_at<'%s'
group by 1,2
''' %(start_time,end_time)
......@@ -168,7 +169,7 @@ def mc_pay(year, month):
temp_list = temp.values.tolist()
temp_list.insert(0,temp.columns.tolist())
all_wb.new_sheet(str(int(i/max_limit + 1)),data=temp_list)
all_wb.save(path+u'人工控制-现金贷-放款表_测试(%d-%02d).xlsx' %(start_time.year,start_time.month))
all_wb.save(path+u'人工控制-现金贷-放款表(%d-%02d).xlsx' %(start_time.year,start_time.month))
# if len(df_pay) > max_limit:
......@@ -180,7 +181,7 @@ def mc_pay(year, month):
if __name__ == '__main__':
year = [2017]
month = range(1, 2, 1)
month = range(10, 11, 1)
for year, month in product(year, month):
mc_pay(year, month)
......@@ -52,7 +52,7 @@ import os
# 需要先进行数据的获取,需要时间较长,sql_repay_all中xrd.repaid_at同样需要修改
path = u'E:/审计出表/人工控制/现金贷-放款表/'
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/audit?charset=utf8',
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/audit?charset=utf8',
echo=False).connect()
#
# #使用时先要修改 deadline,如果出9月份的,deadline > = 2017-09-01即可
......
......@@ -14,7 +14,7 @@ pd.options.mode.chained_assignment = None
#此路径为服务器路径专用
# path = u'./hanzhenghui/'
path = u'E:/审计出表/人工控制/现金贷-还资金方表-1010版本/'
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/?charset=utf8',
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/?charset=utf8',
echo=False).connect()
max_limit = 800000
......
......@@ -13,16 +13,16 @@ sys.setdefaultencoding("utf-8")
pd.options.mode.chained_assignment = None
#此路径为服务器路径专用
path = u'E:/审计出表/人工控制/现金贷-还资金方表-1010版本/'
path = u'E:/审计出表/11月份开始使用表数据/11月份现金贷出表/'
# path = u'E:/审计出表/人工控制/现金贷-还资金方表-1010版本/'
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/?charset=utf8',
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/?charset=utf8',
echo=False).connect()
max_limit = 800000
def faster_sql_reader(sql):
cmdstr = 'mysql -h172.16.3.201 -uinternal_r -pArbNgtvlJzZHXsEu -P3306 -e "%s" > %s'
cmdstr = 'mysql -h172.16.4.60 -uinternal_r -pArbNgtvlJzZHXsEu -P3306 -e "%s" > %s'
file_name = 'test.txt'
path_file = os.path.join(os.getcwd(), file_name)
exe_sql = cmdstr % (sql.replace('`',''), path_file)
......@@ -37,7 +37,7 @@ def faster_sql_reader(sql):
sql_lm = '''
select ref_id,loan_id,funding_code,date(loan_paid_at) 'loan_paid_at',contract_term 'contract_term'
from all_back_0831.loan_manifest lm
from audit.loan_manifest lm
where loan_paid_at>='%s' and loan_paid_at <'%s'
and is_active in (1, -2)
'''
......@@ -56,8 +56,8 @@ sql_repay_frr_2 = '''
urp.term_no 'term_no',
date(urp.deadline) 'deadline',
urp.principle+urp.interest 'prin_intere'
from all_back_0831.user_repayment_plan urp
join all_back_0831.loan_manifest lm on lm.ref_id = urp.ref_id
from new_transaction.user_repayment_plan urp
join audit.loan_manifest lm on lm.ref_id = urp.ref_id
where lm.loan_paid_at>='%s' and loan_paid_at<'%s'
and urp.fund_code in (210,270,310,320,410,430)
GROUP BY 1,2
......@@ -72,7 +72,7 @@ sql_repay_frr_3 = '''
frp.interest+frp.principle 'prin_intere'
from audit.funding_repayment_plan frp
join all_back_0831.loan_manifest lm on lm.ref_id = frp.ref_id
join audit.loan_manifest lm on lm.ref_id = frp.ref_id
WHERE lm.loan_paid_at>='%s' and loan_paid_at<'%s'
and lm.funding_code not in (210,270,310,320,410,430)
GROUP BY 1,2
......@@ -89,8 +89,8 @@ sql_refund = '''
frr.flow_id 'flow_id',
frr.term_no 'term_no'
FROM
all_back_0831.funding_repayment_record frr
join all_back_0831.loan_manifest lm on lm.ref_id = frr.ref_id
audit.funding_repayment_record frr
join audit.loan_manifest lm on lm.ref_id = frr.ref_id
JOIN basic.funding_corp fc ON fc.funding_code = frr.funding_code
WHERE lm.loan_paid_at>='%s'
and lm.loan_paid_at <'%s'
......@@ -185,7 +185,7 @@ def refund(year,month):
temp_list = temp.values.tolist()
temp_list.insert(0, temp.columns.tolist())
all_wb.new_sheet(str(int(i / max_limit + 1)), data=temp_list)
all_wb.save(path + u'人工控制-现金贷—还资金方表-V4(%d-%02d).xlsx' % (start_time.year, start_time.month))
all_wb.save(path + u'人工控制-现金贷—还资金方表(%d-%02d).xlsx' % (start_time.year, start_time.month))
# if len(df) > max_limit:
# for i in xrange(0, len(df), max_limit):
......@@ -196,7 +196,7 @@ def refund(year,month):
if __name__ == '__main__':
year = [2017]
month = range(4, 5, 1)
month = range(10, 11, 1)
for year, month in product(year, month):
print('-----------%s-%s begins') %(year,month)
......
......@@ -19,27 +19,27 @@ max_limit = 900000
注意 is_active = 1 的订单
使用之前需要先修改时间点,sql_query_flowid中的 t1.repaid_at,比如出9月份的表,t1.repaid_at<'2017-10-01'
'''
path = u'E:/审计出表/人工控制/现金贷-银行流水相关/'
engine_new_transaction = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/?charset=utf8',
path = u'E:/审计出表/11月份开始使用表数据/11月份现金贷出表/'
engine_new_transaction = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/?charset=utf8',
echo=False).connect()
# 还资金方流水明细--1
sql_query_flowid = """
SELECT DISTINCT t1.flow_id flow_id
FROM all_back_0930.funding_repayment_record t1
JOIN all_back_0930.loan_manifest t2 ON t1.ref_id = t2.ref_id AND t2.is_active = 1
FROM audit.funding_repayment_record t1
JOIN audit.loan_manifest t2 ON t1.ref_id = t2.ref_id AND t2.is_active = 1
AND t2.loan_paid_at >= '%s' AND t2.loan_paid_at < '%s'
AND t1.repaid_at < '2017-10-01' AND t1.lkb_to_fund_type = 2 AND t1.lkb2fund_id IS NOT NULL
AND t1.repaid_at < '2017-11-01' AND t1.lkb_to_fund_type = 2 AND t1.lkb2fund_id IS NOT NULL
"""
# 流水明细对应的实还资金方表
sql_query_detail = """
SELECT t1.loan_id,t2.`name` '资金方',date(t3.loan_paid_at) '放款时间',t1.term_no '期数',date(t1.repaid_at) '实还时间',t1.current_repayment '实还总额',
t1.principle '实还本金',t1.interest '实还利息',t1.flow_id '流水号'
FROM all_back_0930.funding_repayment_record t1
FROM audit.funding_repayment_record t1
JOIN new_transaction.funding_corp t2 ON t1.funding_code = t2.id
JOIN all_back_0930.loan_manifest t3 ON t1.ref_id = t3.ref_id AND t3.is_active =1 AND t1.lkb_to_fund_type = 2 AND t1.flow_id IN %s
JOIN audit.loan_manifest t3 ON t1.ref_id = t3.ref_id AND t3.is_active =1 AND t1.lkb_to_fund_type = 2 AND t1.flow_id IN %s
"""
'''
......@@ -110,7 +110,7 @@ if __name__ == '__main__':
# handle(2016, 12)
# pool = mtp.Pool(processes=6)
for year in [2017]:
for month in range(9,10,1):
for month in range(10,11,1):
handle(year,month)
# handle(year, month)
# pool.apply_async(handle, (year, month))
......
......@@ -22,15 +22,15 @@ pd.options.mode.chained_assignment = None
#
file_path = u'E:/审计出表/去哪儿/'
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/audit?charset=utf8',
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/audit?charset=utf8',
echo=False).connect()
def xjd_principle_interest():
sql_quaer_2016 = '''
SELECT
fc.fund_name 资金方,
YEAR (t2.trans_time) 放款年,
MONTH (t2.trans_time) 放款月,
YEAR (t2.loan_time) 放款年,
MONTH (t2.loan_time) 放款月,
YEAR (t1.deadline) 到期年,
MONTH (t1.deadline) 到期月,
sum(t1.principle) 客户应还本金,
......@@ -38,7 +38,7 @@ def xjd_principle_interest():
FROM
qunaer_new.repayment_plan_2016 t1
JOIN qunaer_new.pay_detail t2 ON t1.product_no = t2.product_no
JOIN qunaer_new.fund_corp fc ON fc.fund_code = t1.fund_code
JOIN qunaer_new.fund_corp fc ON fc.fund_code = t2.fund_code
where t1.status in (1,2)
GROUP BY
1,2,3,4,5;
......@@ -47,8 +47,8 @@ def xjd_principle_interest():
sql_quaer_2017 = '''
SELECT
fc.fund_name 资金方,
YEAR (t2.trans_time) 放款年,
MONTH (t2.trans_time) 放款月,
YEAR (t2.loan_time) 放款年,
MONTH (t2.loan_time) 放款月,
YEAR (t1.deadline) 到期年,
MONTH (t1.deadline) 到期月,
sum(t1.principle) 客户应还本金,
......@@ -56,37 +56,38 @@ def xjd_principle_interest():
FROM
qunaer_new.repayment_plan_2017 t1
JOIN qunaer_new.pay_detail t2 ON t1.product_no = t2.product_no
JOIN qunaer_new.fund_corp fc ON fc.fund_code = t1.fund_code
where t1.status in (1,2) AND t2.status = 1
JOIN qunaer_new.fund_corp fc ON fc.fund_code = t2.fund_code
where t1.status in (1,2) and t2.status = 1
GROUP BY
1,2,3,4,5;
'''
sql_quaer_baoli = '''
SELECT
fc.fund_name 资金方,
YEAR (t2.trans_time) 放款年,
MONTH (t2.trans_time) 放款月,
'保理' 资金方,
YEAR (t2.loan_time) 放款年,
MONTH (t2.loan_time) 放款月,
YEAR (t1.deadline) 到期年,
MONTH (t1.deadline) 到期月,
sum(t1.principle) 客户应还本金,
sum(t1.fee_amount) 客户应还利息
FROM
qunaer_new.baoli_repayment_plan t1
JOIN qunaer_new.pay_detail t2 ON t1.product_no = t2.product_no
JOIN qunaer_new.fund_corp fc ON fc.fund_code = t1.fund_code
qunaer_new.repayment_plan_2017 t1
JOIN qunaer_new.baoli_pay_detail t2 ON t1.product_no = t2.product_no and t1.fund_code = 1
JOIN qunaer_new.fund_corp fc ON fc.fund_code = t2.fund_code
WHERE t1.status IN (1,2) AND t2.status = 1
GROUP BY
1,2,3,4,5;
1,2,3,4,5;
'''
df_quaer_2016 = pd.read_sql(sql_quaer_2016,engine_xjd)
df_quaer_2017 = pd.read_sql(sql_quaer_2017,engine_xjd)
df_quaer_baoli = pd.read_sql(sql_quaer_baoli,engine_xjd)
df_quaer_all = pd.concat([df_quaer_2016,df_quaer_2017,df_quaer_baoli],ignore_index=True)
df_quaer_all = pd.concat([df_quaer_2016,df_quaer_baoli,df_quaer_2017],ignore_index=True)
df_quaer_all.loc[df_quaer_all[u'资金方']==u'保理',u'客户应还利息'] = 0
df_quaer_all.to_excel(file_path+u'去哪儿-每月到期本金利息-trans_time版本.xlsx',index=False)
df_quaer_all.to_excel(file_path+u'去哪儿-每月到期本金利息-11月份V2.xlsx',index=False)
if __name__ == '__main__':
print '--------main begin'
......
......@@ -9,7 +9,7 @@ from sqlalchemy import create_engine
reload(sys)
sys.setdefaultencoding('utf8')
engine_audit = create_engine('mysql+mysqldb://yulong:ohVU1nPITynSZwR2@172.16.3.201:3306/audit?charset=utf8',
engine_audit = create_engine('mysql+mysqldb://yulong:ohVU1nPITynSZwR2@172.16.4.60:3306/audit?charset=utf8',
echo=True)
query_repay = """
......
......@@ -21,8 +21,8 @@ pd.options.mode.chained_assignment = None
# 出来的表为汇总表
#
file_path = u'E:/'
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/audit?charset=utf8',
file_path = u'E:/审计出表/现金贷-放款表(1月份-6月份)-当前库/'
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/audit?charset=utf8',
echo=False).connect()
def xjd_principle_interest():
......@@ -38,7 +38,7 @@ def xjd_principle_interest():
SUM(plan.interest) 客户应还利息
FROM
new_transaction.user_repayment_plan plan
JOIN audit.loan_manifest loan ON plan.ref_id = loan.ref_id
JOIN basic.loan_manifest loan ON plan.ref_id = loan.ref_id
JOIN basic.loan_class_contract_1002 class ON class.ref_id = loan.ref_id
JOIN basic.funding_corp fund ON fund.funding_code = loan.funding_code
WHERE
......
......@@ -27,7 +27,7 @@ sys.setdefaultencoding('utf8')
path = u'E:/审计出表/现金贷-放款表(1月份-6月份)-当前库/'
engine_new_transaction = create_engine(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/new_mashang?charset=utf8',
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/new_mashang?charset=utf8',
echo=True)
sql_query_detail = '''
......
......@@ -25,10 +25,10 @@ pd.options.mode.chained_assignment = None
#
path = u'E:/审计出表/11月份开始使用表数据/11月份现金贷出表/'
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/?charset=utf8',
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/?charset=utf8',
echo=False).connect()
def faster_sql_reader(sql):
cmdstr = 'mysql -h172.16.3.201 -uinternal_r -pArbNgtvlJzZHXsEu -P3306 -e "%s" > %s'
cmdstr = 'mysql -h172.16.4.60 -uinternal_r -pArbNgtvlJzZHXsEu -P3306 -e "%s" > %s'
file_name = 'test.txt'
path_file = os.path.join(os.getcwd(), file_name)
exe_sql = cmdstr % (sql.replace('`',''), path_file)
......@@ -92,10 +92,11 @@ def pay(year, month):
'dunjiao_service_fee':u'趸交服务费'},inplace=True)
df_lm = df_lm.fillna(0)
df_lm = df_lm[[u'资金方',u'loan_id',u'放款日期',u'放款金额',u'本金债权',u'一次性手续费(QG)',u'一次性手续费(点滴)',u'趸交服务费',u'贷款总期数',u'每期手续费',u'月利率',u'放款渠道',u'渠道流水号']]
print '---------%s_%s' % (year, month)
print "放款金额是:" + str(sum(df_lm[u'放款金额'])),u" 趸交服务费"+str(sum(df_lm[u'趸交服务费']))
all_wb = pyexcelerate.Workbook()
for i in xrange(0, len(df_lm), max_limit):
temp = df_lm[i:i + max_limit]
......
......@@ -26,7 +26,7 @@ pd.options.mode.chained_assignment = None
file_path = u'E:/审计出表/现金贷-放款表(1月份-6月份)-当前库/'
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/?charset=utf8',
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/?charset=utf8',
echo=False).connect()
def dunjiao(year,month):
......
......@@ -27,7 +27,7 @@ sys.setdefaultencoding('utf8')
path = u'E:/审计出表/现金贷-还款表(1月份-6月份)/'
engine_new_transaction = create_engine(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/?charset=utf8',
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/?charset=utf8',
echo=True)
sql_query_detail = '''
......
......@@ -14,12 +14,11 @@ sys.setdefaultencoding("utf-8")
pd.options.mode.chained_assignment = None
def faster_sql_reader(sql):
cmdstr = 'mysql -h172.16.3.201 -uinternal_r -pArbNgtvlJzZHXsEu -P3306 -e "%s" > %s'
cmdstr = 'mysql -h172.16.4.60 -uinternal_r -pArbNgtvlJzZHXsEu -P3306 -e "%s" > %s'
file_name = 'test.txt'
path_file = os.path.join(os.getcwd(), file_name)
exe_sql = cmdstr % (sql.replace('`',''), path_file)
exe_sql = exe_sql.replace('\t','').replace('\n',' ')
print exe_sql
os.system(exe_sql)
try:
df = pd.read_csv(path_file, sep='\t',encoding='utf-8')
......@@ -40,7 +39,7 @@ def faster_sql_reader(sql):
# 趸交服务费需要添加到这个表里
#
file_path = u'E:/审计出表/11月份开始使用表数据/11月份现金贷出表/'
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/audit?charset=utf8',
engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/audit?charset=utf8',
echo=False).connect()
read_fund_sql = '''
SELECT funding_code fund_corp_id,name fund_name FROM basic.funding_corp
......@@ -59,10 +58,10 @@ SELECT t1.fund_code,t2.repay_channel,t1.real_loan_id loan_id,t3.contract_term,da
t6.bill_time repaid_at,
t2.ref_amount,t2.principle-t2.mitigate_principle real_principle,t2.interest-t2.mitigate_interest real_interest,
ifnull(t2.`service_fee`-t2.mitigate_service_fee,0) real_service_fee,IFNULL(t2.`punish`-t2.mitigate_collection_relief, 0) real_punish,t2.remain_income,t6.order_id AS 'business_flow'
FROM audit_temp.`xjd_repay_plan_repay_record_ref` t2
JOIN audit_temp.`user_repayment_plan` t1 ON t1.id=t2.plan_id
FROM all_back_0731.`xjd_repay_plan_repay_record_ref_0731` t2
JOIN all_back_0731.`user_repayment_plan` t1 ON t1.id=t2.plan_id
JOIN all_back_0731.`loan_manifest` t3 ON t1.ref_id=t3.ref_id
JOIN audit_temp.repay_record_online t6 ON t2.record_id=t6.id AND t2.repay_channel = t6.pay_approach
JOIN all_back_0731.repay_record_online t6 ON t2.record_id=t6.id AND t2.repay_channel = t6.pay_approach
LEFT JOIN new_transaction.xjd_dunjiao_plan xdp ON xdp.loan_id = t1.real_loan_id
WHERE t6.bill_time >= '%s' AND t6.bill_time < '%s'
'''
......@@ -73,8 +72,8 @@ SELECT t1.fund_code,t2.repay_channel,t1.real_loan_id loan_id,t3.contract_term,da
t6.transfer_time repaid_at,
t2.ref_amount,t2.principle-t2.mitigate_principle real_principle,t2.interest-t2.mitigate_interest real_interest,
ifnull(t2.`service_fee`-t2.mitigate_service_fee,0) real_service_fee,ifnull(t2.`punish`-t2.mitigate_collection_relief,0) real_punish,t2.remain_income,t6.business_flow
FROM audit_temp.`xjd_repay_plan_repay_record_ref_0731` t2
JOIN audit_temp.`user_repayment_plan` t1 ON t1.id=t2.plan_id
FROM all_back_0731.`xjd_repay_plan_repay_record_ref_0731` t2
JOIN all_back_0731.`user_repayment_plan` t1 ON t1.id=t2.plan_id
JOIN all_back_0731.`loan_manifest` t3 ON t1.ref_id=t3.ref_id
JOIN all_back_0731.`offline_alipay_record` t6 ON t2.record_id=t6.id AND t2.repay_channel = 13
WHERE t6.transfer_time >= '%s' AND t6.transfer_time < '%s'
......@@ -86,8 +85,8 @@ SELECT t1.fund_code,t2.repay_channel,t1.real_loan_id loan_id,t3.contract_term,da
t6.transfer_time repaid_at,
t2.ref_amount,t2.principle-t2.mitigate_principle real_principle,t2.interest-t2.mitigate_interest real_interest,
ifnull(t2.`service_fee`-t2.mitigate_service_fee,0) real_service_fee,ifnull(t2.`punish`-t2.mitigate_collection_relief,0) real_punish,t2.remain_income
FROM audit_temp.`xjd_repay_plan_repay_record_ref` t2
JOIN audit_temp.`user_repayment_plan` t1 ON t1.id=t2.plan_id
FROM all_back_0731.`xjd_repay_plan_repay_record_ref_0731` t2
JOIN all_back_0731.`user_repayment_plan` t1 ON t1.id=t2.plan_id
JOIN all_back_0731.`loan_manifest` t3 ON t1.ref_id=t3.ref_id
JOIN all_back_0731.`offline_bank_repay_record` t6 ON t2.record_id=t6.id AND t2.repay_channel IN (14,15,16)
WHERE t6.transfer_time >= '%s' AND t6.transfer_time < '%s'
......@@ -109,11 +108,11 @@ def dunjiao(year, month):
rech.approach_name '还款渠道'
FROM
new_transaction.xjd_dunjiao_plan dj
join all_back_0930.loan_manifest lm on lm.loan_id = dj.loan_id
join all_back_0731.loan_manifest lm on lm.loan_id = dj.loan_id
join basic.funding_corp fc on fc.funding_code = lm.funding_code
join new_transaction.xjd_dunjiao_plan_ref xdpr on xdpr.plan_id = dj.id
join new_transaction.repay_channel rech on rech.id = xdpr.repay_channel
join all_back_0930.repay_record_online rro on rro.id = xdpr.record_id
join all_back_0731.repay_record_online rro on rro.id = xdpr.record_id
WHERE
dj.xyqb_repaid_at >= '%s'
......@@ -149,7 +148,7 @@ def handle_hk(year, month):
df.rename(
columns={'fund_name': u'资金方',
'contract_term': u'放款期数', 'term_no': u'当期数',
'contract_term': u'放款期数', 'term_no': u'当期数',
'repaid_at': u'实还款日', 'ref_amount': u'实还金额',
'real_principle': u'实还本金', 'real_interest': u'实还利息', 'real_service_fee': u'实还服务费',
'real_punish': u'实还罚息', 'remain_income': u'其他收益', 'approach_name': u'还款渠道', 'business_flow': u'渠道流水号'}, inplace=True)
......@@ -160,6 +159,8 @@ def handle_hk(year, month):
df_dunjiao = dunjiao(year,month)
df = pd.concat([df,df_dunjiao],axis=0)
df = df.fillna(0)
df = df[[u'资金方',u'loan_id',u'放款期数',u'当期期数',u'实还款日',u'实还金额',u'实还本金',u'实还利息',u'实还服务费',u'实还罚息',u'其他收益',u'还款渠道',u'渠道流水号']]
print '___%s-%s' % (year, month)
print(u'实还金额:', str(sum(df[u'实还金额'])))
......@@ -178,7 +179,7 @@ def handle_hk(year, month):
if __name__ == '__main__':
year = [2017]
month = range(9, 10, 1)
month = range(1, 5, 1)
for year, month in product(year, month):
handle_hk(year, month)
......@@ -6,7 +6,7 @@ import numpy as np
con_all_back = create_engine(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/?charset=utf8', echo=False)
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/?charset=utf8', echo=False)
sql_query_xjd = """SELECT
oar.id "支付宝id",
......
......@@ -19,10 +19,11 @@ pd.options.mode.chained_assignment = None
# user_bt_repayment_plan,baitiao_order,fund_corp
# 注意事项:
# 出来的表为汇总表
#
# 笑脸直投应还本金会有140的差距,是由于下单后使用红包金额导致。查询代码:
# SELECT SUM(funding_loan_amount),SUM(real_loan_amount) FROM baitiao_order WHERE funding_corp_id=5 AND funding_loan_amount!=real_loan_amount;
file_path = u'E:/审计出表/非去哪儿白条-放款表(1月份-6月份)/'
engine_bt = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/audit?charset=utf8',
engine_bt = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/audit?charset=utf8',
echo=False).connect()
def bt_principle_interest():
......@@ -48,8 +49,8 @@ def bt_principle_interest():
sql_bt_refund = '''
SELECT
fc.fund_name 资金方,
YEAR (bo.train_cancel_at) 放款年,
MONTH (bo.train_cancel_at) 放款月,
YEAR (bo.loan_paid_at) 放款年,
MONTH (bo.loan_paid_at) 放款月,
YEAR (plan.deadline) 到期年,
MONTH (plan.deadline) 到期月,
sum(plan.principle) 客户应还本金,
......@@ -59,7 +60,7 @@ def bt_principle_interest():
JOIN baitiao_audit.baitiao_order bo ON bo.ref_id = plan.ref_id
JOIN baitiao_audit.fund_corp fc ON fc.id = bo.funding_corp_id
WHERE
bo.is_active IN (-2) AND bo.funding_corp_id = 1
bo.is_active IN (-2) AND bo.funding_corp_id in (1,5) AND bo.train_cancel_at<'2017-11-01'
GROUP BY
1,2,3,4,5;
'''
......@@ -75,7 +76,8 @@ def bt_principle_interest():
0 客户应还利息
from baitiao_audit.baitiao_order t1
join baitiao_audit.fund_corp fc ON fc.id = t1.funding_corp_id
where t1.baitiao_type=1;
where t1.baitiao_type=1
GROUP BY 1,2,3,4,5;
'''
df_bt = pd.read_sql(sql_bt,engine_bt)
......@@ -83,7 +85,11 @@ def bt_principle_interest():
df_cash = pd.read_sql(sql_cash_bt,engine_bt)
df = pd.concat([df_bt,df_bt_refund,df_cash],ignore_index=True)
df.to_excel(file_path+u'非去哪儿白条每月到期本金利息-V6.xlsx',index=False)
df.fillna(0,inplace=True)
result = df.groupby([u'资金方',u'放款年',u'放款月',u'到期年',u'到期月'])[u'客户应还本金',u'客户应还利息'].sum().reset_index()
result.to_excel(file_path+u'非去哪儿白条每月到期本金利息-V7.xlsx',index=False)
df.to_excel(file_path+u'非去哪儿白条每月到期本金利息明细版本-V7.xlsx',index=False)
if __name__ == '__main__':
print '--------main begin'
......
......@@ -45,7 +45,7 @@ GROUP BY DATE(t1.repaid_at)
# 客户正常还款+逾期还款,按照还款时间统计即可
sql_hk_online_zc = '''
SELECT DATE(t5.bill_time) day_hk ,sum(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) zc_real_all
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s AND t1.repay_channel != 13
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no
JOIN new_transaction.repay_record_online t5 ON t1.record_id = t5.id AND t1.repay_channel = t5.pay_approach and DATE(t5.bill_time) = DATE(t4.deadline)
......@@ -56,7 +56,7 @@ GROUP by 1
# 线上还款-逾期还款
sql_hk_online_yq = '''
SELECT DATE(t5.bill_time) day_hk, sum(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) yq_real_all
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s AND t1.repay_channel != 13
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no
JOIN new_transaction.repay_record_online t5 ON t1.record_id = t5.id AND t1.repay_channel = t5.pay_approach and DATE(t5.bill_time) > DATE(t4.deadline)
......@@ -67,7 +67,7 @@ GROUP by 1
sql_online_tq = '''
SELECT DATE(t4.deadline) deadline, sum(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) tq_amount
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s AND t1.repay_channel != 13
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no AND (t4.settle_status = 0 OR t4.repaid_at<"2017-05-01" )
join audit.loan_manifest t5 on t3.ref_id = t5.ref_id
......@@ -78,7 +78,7 @@ GROUP BY 1
sql_online_settle_tq = '''
SELECT DATE(t4.settle_date) repaid_at, SUM(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) settle_tq_amount
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s AND t1.repay_channel != 13
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no AND t4.settle_status = 1
join audit.loan_manifest t5 on t3.ref_id = t5.ref_id
......@@ -90,7 +90,7 @@ GROUP BY 1
# 支付宝正常还款
sql_hk_ali_zc = '''
SELECT DATE(t2.transfer_time) day_hk, sum(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) zc_real_all
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
join new_transaction.offline_alipay_record t2 on t1.record_id = t2.id and t1.repay_channel = 13 and t2.transfer_time >= '%s' and t2.transfer_time < '%s'
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no and DATE(t2.transfer_time) = DATE(t4.deadline)
......@@ -101,7 +101,7 @@ GROUP by 1
# 支付宝还款--逾期还款
sql_hk_ali_yq = '''
SELECT DATE(t2.transfer_time) day_hk, sum(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) yq_real_all
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
join new_transaction.offline_alipay_record t2 on t1.record_id = t2.id and t1.repay_channel = 13 and t2.transfer_time >= '%s' and t2.transfer_time < '%s'
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no and DATE(t2.transfer_time) > DATE(t4.deadline)
......@@ -113,7 +113,7 @@ GROUP by 1
sql_ali_tq = '''
SELECT DATE (t4.deadline) deadline, SUM(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) tq_amount
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
join new_transaction.offline_alipay_record t2 on t1.record_id = t2.id and t1.repay_channel = 13 and t2.transfer_time < '%s'
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no AND (t4.settle_status = 0 OR t4.repaid_at<"2017-05-01" ) AND DATE(t2.transfer_time) < DATE(t4.deadline)
......@@ -123,7 +123,7 @@ GROUP BY 1
sql_ali_settle_tq = '''
SELECT DATE(t4.settle_date) repaid_at, SUM(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) settle_tq_amount
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
join new_transaction.offline_alipay_record t2 on t1.record_id = t2.id and t1.repay_channel = 13 and t2.transfer_time < '%s'
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no AND t4.settle_status = 1
......@@ -225,29 +225,29 @@ def hr_table(fund_code, fund_name, start_time, end_time, truncate_start_time, tr
# 晋商2【funding_code 300】 9月份的还资金方 包含应还日deadline在 8月31号 10月 1 2 3 4 号的数据
if __name__ == '__main__':
fund_code_map = {
(150, u'华融'): {
"start_time": datetime.date(2017, 5, 1)
, "end_time": datetime.date(2017, 10, 1)
, "deadline": datetime.date(2017, 10, 1)
, "truncate_start_time": datetime.date(2017, 5, 1)
, "truncate_end_time": datetime.date(2017, 10, 1)
}
# (150, u'华融'): {
# "start_time": datetime.date(2017, 4, 29)
# "start_time": datetime.date(2017, 5, 1)
# , "end_time": datetime.date(2017, 10, 1)
# , "deadline": datetime.date(2017, 10, 1)
# , "truncate_start_time": datetime.date(2017, 5, 1)
# , "truncate_end_time": datetime.date(2017, 10, 1)
# }
# ,
# (300, u'晋商2'): {
# "start_time": datetime.date(2017, 9, 1)
# },
# (150, u'华融'): {
# "start_time": datetime.date(2017, 4, 29)
# , "end_time": datetime.date(2017, 10, 1)
# , "deadline": datetime.date(2017, 10, 1)
# , "start_deadline": datetime.date(2017, 9, 1)
# , "truncate_start_time": datetime.date(2017, 9, 1)
# , "truncate_start_time": datetime.date(2017, 5, 1)
# , "truncate_end_time": datetime.date(2017, 10, 1)
# }
# ,
(300, u'晋商2'): {
"start_time": datetime.date(2017, 9, 1)
, "end_time": datetime.date(2017, 10, 1)
, "deadline": datetime.date(2017, 10, 1)
, "start_deadline": datetime.date(2017, 9, 1)
, "truncate_start_time": datetime.date(2017, 9, 1)
, "truncate_end_time": datetime.date(2017, 10, 1)
}
}
try:
......
......@@ -45,7 +45,7 @@ GROUP BY DATE(t1.repaid_at)
# 客户正常还款+逾期还款,按照还款时间统计即可
sql_hk_online_zc = '''
SELECT DATE(t3.xyqb_repaid_at) day_hk ,sum(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) zc_real_all
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s AND t1.repay_channel != 13
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no and DATE(t3.xyqb_repaid_at) = DATE(t4.deadline)
AND t3.xyqb_repaid_at >= '%s' and t3.xyqb_repaid_at < '%s'
......@@ -56,7 +56,7 @@ GROUP by 1
# 线上还款-逾期还款
sql_hk_online_yq = '''
SELECT DATE(t3.xyqb_repaid_at) day_hk, sum(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) yq_real_all
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s AND t1.repay_channel != 13
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no and DATE(t3.xyqb_repaid_at) > DATE(t4.deadline)
AND t3.xyqb_repaid_at >= '%s' and t3.xyqb_repaid_at < '%s'
......@@ -67,7 +67,7 @@ GROUP by 1
sql_online_tq = '''
SELECT DATE(t4.deadline) deadline, sum(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) tq_amount
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s AND t1.repay_channel != 13
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no AND (t4.settle_status = 0 OR t4.repaid_at<"2017-05-01" ) AND t3.xyqb_repaid_at < '%s' AND DATE(t3.xyqb_repaid_at) < DATE(t4.deadline)
join audit.loan_manifest t5 on t3.ref_id = t5.ref_id
......@@ -78,7 +78,7 @@ GROUP BY 1
sql_online_settle_tq = '''
SELECT DATE(t4.settle_date) repaid_at, SUM(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) settle_tq_amount
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s AND t1.repay_channel != 13 AND t3.xyqb_repaid_at < '%s'
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no AND t4.settle_status = 1
join audit.loan_manifest t5 on t3.ref_id = t5.ref_id
......@@ -90,7 +90,7 @@ GROUP BY 1
# 支付宝正常还款
sql_hk_ali_zc = '''
SELECT DATE(t2.transfer_time) day_hk, sum(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) zc_real_all
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
join new_transaction.offline_alipay_record t2 on t1.record_id = t2.id and t1.repay_channel = 13 and t2.transfer_time >= '%s' and t2.transfer_time < '%s'
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no and DATE(t2.transfer_time) = DATE(t4.deadline)
......@@ -101,7 +101,7 @@ GROUP by 1
# 支付宝还款--逾期还款
sql_hk_ali_yq = '''
SELECT DATE(t2.transfer_time) day_hk, sum(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) yq_real_all
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
join new_transaction.offline_alipay_record t2 on t1.record_id = t2.id and t1.repay_channel = 13 and t2.transfer_time >= '%s' and t2.transfer_time < '%s'
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no and DATE(t2.transfer_time) > DATE(t4.deadline)
......@@ -113,7 +113,7 @@ GROUP by 1
sql_ali_tq = '''
SELECT DATE (t4.deadline) deadline, SUM(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) tq_amount
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
join new_transaction.offline_alipay_record t2 on t1.record_id = t2.id and t1.repay_channel = 13 and t2.transfer_time < '%s'
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no AND (t4.settle_status = 0 OR t4.repaid_at<"2017-05-01" ) AND DATE(t2.transfer_time) < DATE(t4.deadline)
......@@ -123,7 +123,7 @@ GROUP BY 1
sql_ali_settle_tq = '''
SELECT DATE(t4.settle_date) repaid_at, SUM(t1.`principle`+t1.`interest`-t1.`mitigate_principle`-t1.`mitigate_interest`) settle_tq_amount
FROM new_transaction.`xjd_repay_plan_repay_record_ref` t1
FROM `xjd_repay_plan_repay_record_ref` t1
join new_transaction.offline_alipay_record t2 on t1.record_id = t2.id and t1.repay_channel = 13 and t2.transfer_time < '%s'
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id and t3.fund_code = %s
JOIN audit.funding_repayment_record t4 ON t4.ref_id = t3.ref_id AND t4.term_no = t3.term_no AND t4.settle_status = 1
......@@ -239,15 +239,15 @@ if __name__ == '__main__':
# , "truncate_start_time": datetime.date(2017, 5, 1)
# , "truncate_end_time": datetime.date(2017, 10, 1)
# }
# ,
# (300, u'晋商2'): {
# "start_time": datetime.date(2017, 9, 1)
# , "end_time": datetime.date(2017, 10, 1)
# , "deadline": datetime.date(2017, 10, 1)
# , "start_deadline": datetime.date(2017, 9, 1)
# , "truncate_start_time": datetime.date(2017, 9, 1)
# , "truncate_end_time": datetime.date(2017, 10, 1)
# }
,
(300, u'晋商2'): {
"start_time": datetime.date(2017, 9, 1)
, "end_time": datetime.date(2017, 10, 1)
, "deadline": datetime.date(2017, 10, 1)
, "start_deadline": datetime.date(2017, 9, 1)
, "truncate_start_time": datetime.date(2017, 9, 1)
, "truncate_end_time": datetime.date(2017, 10, 1)
}
}
try:
......
......@@ -17,12 +17,12 @@ engine_new_transaction = create_engine(
echo=True)
# 渤海 160, 270, 310,320, 410 都不需要出赔付表
path = u'C:\\Users\\wangbo\\Desktop\\十月份对账\\按日展开每日赔付_bill_time_loan_paid_at\\'
path = u'C:\\Users\\wangbo\\Desktop\\十月份对账\\1020按日展开每日赔付_bill_time_loan_paid_at\\'
'''
1、应还资金方本息
'''
sql_fund = '''
select id fund_code,name fund_name from new_transaction.funding_corp WHERE id IN (240)
select id fund_code,name fund_name from new_transaction.funding_corp WHERE id NOT IN (160, 270, 310,320, 410)
'''
sql_repay_channel = '''
select id repay_channel , approach_name channel_name FROM new_transaction.`repay_channel`
......
......@@ -17,12 +17,12 @@ engine_new_transaction = create_engine(
echo=True)
# 渤海 160, 270, 310,320, 410 都不需要出赔付表
path = u'C:\\Users\\wangbo\\Desktop\\十月份对账\\按日展开每日赔付_loan_paid_at\\'
path = u'C:\\Users\\wangbo\\Desktop\\十月份对账\\1020按日展开每日赔付_loan_paid_at\\'
'''
1、应还资金方本息
'''
sql_fund = '''
select id fund_code,name fund_name from new_transaction.funding_corp WHERE id IN (240)
select id fund_code,name fund_name from new_transaction.funding_corp WHERE id NOT IN (160, 270, 310,320, 410)
'''
sql_repay_channel = '''
select id repay_channel , approach_name channel_name FROM new_transaction.`repay_channel`
......
......@@ -27,7 +27,7 @@ SELECT deadline ,repaid_at ,principle,interest,funding_code,loan_id,term_no,ref_
# 部分应还资金方取客户的应还
sql_query_user_fund = """
SELECT deadline,xyqb_repaid_at repaid_at,principle,interest,fund_code funding_code,real_loan_id loan_id,term_no,ref_id FROM new_transaction.user_repayment_plan
WHERE fund_code IN (270, 310, 320, 210, 365, 350,290, 330, 340, 390,410,420)
WHERE fund_code IN (210, 365, 350, 290, 330, 340,390,410,1,2,3,4,5,70,135,141,420,480,465,365,270,310,320,410)
"""
# 客户等级
......@@ -64,7 +64,7 @@ JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id
sql_query_repay_online = """
SELECT
DATE(t3.deadline) deadline,
DATE(t3.bill_time) repaid_at,
DATE(t2.bill_time) repaid_at,
(t1.principle-t1.mitigate_principle) principle,
(t1.interest-t1.mitigate_interest) interest,
t3.fund_code funding_code,
......@@ -74,8 +74,9 @@ SELECT
FROM
new_transaction.`xjd_repay_plan_repay_record_ref` t1
JOIN new_transaction.`user_repayment_plan` t3 ON t1.plan_id = t3.id AND t1.repay_channel IN (1,2,4,6,8,9,10,11,12,20,21,25)
AND t3.bill_time >= '%s'
AND t3.bill_time < '%s'
join new_transaction.repay_record_online t2 on t1.record_id = t2.id and t1.repay_channel = t2.pay_approach
AND t2.bill_time >= '%s'
AND t2.bill_time < '%s'
"""
# 查询银行还款
......@@ -118,6 +119,7 @@ AND repay_date < '%s'
"""
sql_arrays = {"sql_query_fund": sql_query_user_fund
, "sql_query_user_fund": sql_query_user_fund
, "sql_query_loan_manifest": sql_query_loan_manifest
......@@ -128,6 +130,12 @@ sql_arrays = {"sql_query_fund": sql_query_user_fund
}
sql_arrays = {
"sql_query_user_fund": sql_query_user_fund
}
for key in sql_arrays.iterkeys():
......
......@@ -27,8 +27,8 @@ SELECT
(t3.service_fee-t3.mitigate_service_fee) '实还服务费',
t4.repaid_at '还款时间',
t5.approach_name '还款渠道',
t6.`name` '资金方'
t6.`name` '资金方',
t3.remain_income '其他收益'
FROM
loan_manifest t1
JOIN user_repayment_plan t2 ON t1.ref_id = t2.ref_id AND t1.funding_code in (%s)
......
......@@ -24,7 +24,7 @@ path = u'C:\\Users\\wangbo\\Desktop\\11月份对账\\赔付表数据\\'
1、应还资金方本息
'''
sql_fund = '''
select funding_code fund_code,name fund_name from basic.funding_corp WHERE funding_code IN (270, 310,320, 410)
select funding_code fund_code,name fund_name from basic.funding_corp WHERE funding_code IN (480)
'''
sql_repay_channel = '''
select id repay_channel , approach_name channel_name FROM new_transaction.`repay_channel`
......
This diff is collapsed.
# -*- 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')
# 说明文档 :http://confluence.quantgroup.cn/pages/viewpage.action?pageId=4446042
# 查询条件 代偿,充值提现,追偿
engine_payment_center = create_engine(
'mysql+mysqldb://bowang:in78u6ytgbhj56r@192.168.4.6:8066/payment_center?charset=utf8',
echo=False)
sql_query_compensation = """
SELECT amount,channel_serial_no,merchant_order_no,merchant_repay_order_no,updated_at FROM hf_compensatory WHERE is_active=1 AND status=3;
"""
sql_query_history = """
SELECT amount,channel_serial_number,merchant_order_no,order_id,updated_at,event_type,event_status FROM hf_event_status_history WHERE is_success=1 AND (event_type=6 OR (event_type=4 AND event_status=3))
"""
df_compensation = pd.read_sql(sql=sql_query_compensation,con=engine_payment_center)
......@@ -22,13 +22,14 @@ sql_query_xjd = """SELECT
xrprrr.remain_income "remain_income",
urp.xyqb_repaid_at "还款确认时间",
urp.id "被确认的plan_id",
fc.`name` "资金方"
fc.`name` "资金方",
xrprrr.id "xjd_ref_id"
FROM
new_transaction.xjd_repay_plan_repay_record_ref xrprrr
LEFT JOIN all_back_0831.xjd_repay_plan_repay_record_ref t2 ON xrprrr.id = t2.id
JOIN new_transaction.offline_alipay_record oar ON xrprrr.record_id = oar.id
AND oar.transfer_time < "2017-09-01"
JOIN new_transaction.user_repayment_plan urp ON urp.id = xrprrr.plan_id
xjd_repay_plan_repay_record_ref xrprrr
LEFT JOIN all_back_0930.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-10-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
xrprrr.repay_channel = 13
......@@ -55,11 +56,11 @@ sql_query_baitiao = """SELECT
urp.id "被确认的plan_id",
fcp.fund_name "资金方"
FROM
new_transaction.baitiao_repay_plan_repay_record_ref xrprrr
LEFT JOIN all_back_0831.baitiao_repay_plan_repay_record_ref t2 ON xrprrr.id = t2.id
JOIN new_transaction.offline_alipay_record oar ON xrprrr.record_id = oar.id
AND oar.transfer_time < "2017-09-01"
JOIN new_transaction.user_bt_repayment_plan urp ON urp.id = xrprrr.plan_id
baitiao_repay_plan_repay_record_ref xrprrr
LEFT JOIN all_back_0930.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-07-01"
JOIN user_bt_repayment_plan urp ON urp.id = xrprrr.plan_id
JOIN baitiao_audit.baitiao_order bor ON urp.ref_id = bor.ref_id
JOIN baitiao_audit.fund_corp fcp ON bor.funding_corp_id = fcp.id
WHERE
......
# -*- coding:utf-8 -*-
# Author: WuKong
import sys
import datetime
from urllib import quote_plus as urlquote
import itertools
import pandas as pd
from sqlalchemy import create_engine
import multiprocessing as mtp
import os
reload(sys)
sys.setdefaultencoding('utf8')
# 正式库,只能用途 读账户!!!
engine_urge_dispatcher = create_engine(
'mysql+mysqldb://cuishou_pro_rw:%sUI@172.16.90.39:3306/urge_dispatcher?charset=utf8' % urlquote('%789uijhktyghn%'),
echo=True)
engine_urge_xyqb = create_engine(
'mysql+mysqldb://bowang:in78u6ytgbhj56r@192.168.4.6:8066/xyqb?charset=utf8',
echo=True)
# 查询催收库中 所有已还款数据
sql_query_dispathcer = u"""
SELECT debtor_user_id,repay_plan_id,loan_order_id,repay_status FROM debt_cash_loan_item WHERE repay_status=3
"""
df_dispatcher = pd.read_sql(sql=sql_query_dispathcer,con=engine_urge_dispatcher)
plan_id_list = df_dispatcher.repay_plan_id.astype(int).tolist()
# 查询xyqb中 未还款
sql_query_xyqb_plan = u"""
SELECT id FROM repayment_plan WHERE repayment_status!=3 AND id in %s
"""
no_repay_ids = []
for i in range(0, len(plan_id_list), 5000):
plan_ids = plan_id_list[i:i+5000]
df_xyqb_no_repay = pd.read_sql(sql=sql_query_xyqb_plan % (str(tuple(plan_ids)).replace(',)', ')'),), con=engine_urge_xyqb)
if len(df_xyqb_no_repay) > 0:
no_repay_ids.extend(df_xyqb_no_repay.id.astype(int).tolist())
df_dispatcher.repay_plan_id = df_dispatcher.repay_plan_id.astype(int)
df_unormal_dispatcher = df_dispatcher.ix[df_dispatcher.repay_plan_id.isin(no_repay_ids)]
df_unormal_dispatcher = df_unormal_dispatcher[['repay_plan_id']]
df_unormal_dispatcher.to_excel('.\unomarl_data.xlsx', columns=df_unormal_dispatcher.columns, index=None, encoding='utf8')
......@@ -26,6 +26,7 @@ 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.fillna(0, 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
......@@ -12,7 +12,7 @@ select t1.funding_code, t3.class '风险等级', year(t1.loan_paid_at) '放款
year(t2.deadline) '到期年',month(t2.deadline) '到期月',sum(t2.principle) '客户应还本金',sum(t2.interest) '客户应还利息'
from audit.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>='2017-01-01' and t1.loan_paid_at<'2017-10-01'
on t1.ref_id = t2.ref_id and t1.is_active in (1,-2) and t1.loan_paid_at>='2017-01-01' and t1.loan_paid_at<'2017-11-01'
inner join test_mzh.loan_class_contract_1002 t3
on t1.ref_id = t3.ref_id
group by 1,2,3,4,5,6
......
......@@ -29,7 +29,7 @@ SELECT id,`approach_name` FROM new_transaction.`repay_channel`
'''
engine_new_transaction = engine_new_transaction = create_engine(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/audit_temp?charset=utf8',
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/new_transaction?charset=utf8',
echo=True)
df_fund = pd.read_sql(read_fund_sql, con=engine_new_transaction)
......@@ -37,20 +37,20 @@ df_approach = pd.read_sql(read_repay_sql, engine_new_transaction)
df_approach['id'] = df_approach['id'].astype(int)
path = './'
# AND t1.id NOT in (17978225,17978223,17978227,17978229,17978231,17978233,17978235,17978237,17978239,17978241,17978243,17978245,17978247,17978249,17978251,17978253,17978255,17978257,17978259,17978267,17978265,17978263,17978261,17978269,17978271,17978273,17978275,17978277,17978279,17978281,17978283,17978285,17978287,17978289,17978291,17978293,17978297,17978295,17978299,17978301,17978303,17978305,17978307,17978309,17978311,17978313,17978315,17978317,17978319,17978321,17978323,17978325,17978327,17978329,17978331,17978333,17978335,17978337,17978339,17978341,17978343,17978345,17978347,17978349,17978351,17978353,17978355,17978357,17978359,17978361,17978363,17978365,17978367,17978369,17978371,17978373,17978375,17978377,17978381,17978379,17978383,17978385,17978387,17978389,17978391,17978393,17978395,17978397,17978405,17978399,17978401,17978403,17978407,17978409,17978413,17978411,17978415,17978417,17978419,17978421,17978423,17978425,17978427,17978429,17978431,17978433,17978435,17978437,17978439,17978441,17978443,17978445,17978447,17978453,17978449,17978451,17978455,17978457,17978459,17978461,17978463,17978465,17978467,17978469,17978471,17978473,17978475,17978477,17978479,17978481,17978483,17978485,17978487,17978489,17978491,17978493,17978495,17978497,17978499,17978501,17978503,17978505,17978507,17978509,17688805,17978511,17978513,17978515,17978517,17978519,17978521,17978523,17978525,17978527,17978529,17978531,17688803,17978533,17978535,17978537,17978539,17978543,17978541,17978545,17978547,17978549,17978553,17978551,17978555,17978557,17978559,17978561,17978563,17978565,17978573,17978567,17978569,17978571,17978575,17978577,17978579,17978581,17978585,17978587,17978583,17978589,17978591,17978593,17978595,17978597,17978599,17978601,17978605,17978603,17978607,17978609,17978611,17978613,17978615,17978617,17978619,17978621,17978623,17978625,17978627,17978629,17978633,17978631,17978635,17978637,17978639,17978641,17978643,17978645,17978647,17978649,17978651,17978653,17978655,17978657,17978659,17978661,17978663,17978665,17978667,17978669,17978671,17978673,17978675,17978677,17978679,17978681,17978683,17978685,17978687,17978689,17978691,17978693,17978209,17978695,17948017,17978205,17978781,17978783,17978697,17978699,17978701,17978703,17978793,17978789,17978791,17978705,17978707,17978709,17978711,17978713,17978715,17978717,17978719,17978721,17978723,17978725,17978727,17978729,17978731,17978733,17978735,17978737,17978739,17978741,17978743,17978745,17978747,17978749,17978751,17978753,17978755,17978757,17978759,17978761,17978763,17978765,17978767,17978769,17978771,17978773,17978775,17978777,17978779,19732901,19732903,19732905,19732909,19732907,19732915,19732913,19732917,19732911,19732919,19732921,19732923,19732925,19732927,19732929,19732931,19732933,19732935,19732937,19733029,19732939,19732941,19732949,19732943,19732945,19732947,19732951,19732959,19732955,19732963,19732957,19732961,19732953,19732967,19732965,19732969,19732971,19732973,19733025,19733027,19732975,19732977,19732979,19732981,19732983,19732985,19732987,19732989,19732991,19732993,19732995,19732997,19732999,19733001,19733003,19733005,19733007,19733009,19733031,19733033,19733035,19733011,19733013,19733015,19733017,19733021,19733019,19733023,21613351,21613339,21613341,21613343,21613393,21613359,21613361)
################################################
# 收客户还款汇总
def hk_hz():
sql_alipay = """select year(t8.loan_paid_at) l_year,month(t8.loan_paid_at) l_month, year(t3.transfer_time) r_year, month(t3.transfer_time) r_month, t6.name funding_name, t7.approach_name, sum(t1.ref_amount) 总额, sum(t1.principle) 本金, sum(t1.interest) 利息, sum(t1.service_fee) 服务费,
sum(t1.collection_relief) 催收减免, -- sum(t1.red_package_fee) 实还红包减免,
sum(t1.punish) 逾期罚款收益, sum(t1.remain_income) 其他收益, sum(mitigate_principle) 减免本金, sum(mitigate_interest) 减免利息, sum(mitigate_service_fee) 减免服务费, sum(mitigate_collection_relief) 减免罚息, 0 剩余未还服务费
from all_back_0731.xjd_repay_plan_repay_record_ref t1
sum(t1.punish) 逾期罚款收益, sum(t1.remain_income) 其他收益, sum(mitigate_principle) 减免本金, sum(mitigate_interest) 减免利息, sum(mitigate_service_fee) 减免服务费, sum(mitigate_collection_relief) 减免罚息, SUM(t1.residual_service_fee) 剩余未还服务费
from xjd_repay_plan_repay_record_ref t1
join user_repayment_plan t2 on t2.id = t1.plan_id
join basic.funding_corp t6 on t2.fund_code=t6.funding_code
join new_transaction.repay_channel t7 on t1.repay_channel = t7.id
join audit.loan_manifest t8 on t8.ref_id = t2.ref_id
join all_back_0731.offline_alipay_record t3 on t1.repay_channel =13 and t3.id = t1.record_id AND t1.id NOT in (17978225,17978223,17978227,17978229,17978231,17978233,17978235,17978237,17978239,17978241,17978243,17978245,17978247,17978249,17978251,17978253,17978255,17978257,17978259,17978267,17978265,17978263,17978261,17978269,17978271,17978273,17978275,17978277,17978279,17978281,17978283,17978285,17978287,17978289,17978291,17978293,17978297,17978295,17978299,17978301,17978303,17978305,17978307,17978309,17978311,17978313,17978315,17978317,17978319,17978321,17978323,17978325,17978327,17978329,17978331,17978333,17978335,17978337,17978339,17978341,17978343,17978345,17978347,17978349,17978351,17978353,17978355,17978357,17978359,17978361,17978363,17978365,17978367,17978369,17978371,17978373,17978375,17978377,17978381,17978379,17978383,17978385,17978387,17978389,17978391,17978393,17978395,17978397,17978405,17978399,17978401,17978403,17978407,17978409,17978413,17978411,17978415,17978417,17978419,17978421,17978423,17978425,17978427,17978429,17978431,17978433,17978435,17978437,17978439,17978441,17978443,17978445,17978447,17978453,17978449,17978451,17978455,17978457,17978459,17978461,17978463,17978465,17978467,17978469,17978471,17978473,17978475,17978477,17978479,17978481,17978483,17978485,17978487,17978489,17978491,17978493,17978495,17978497,17978499,17978501,17978503,17978505,17978507,17978509,17688805,17978511,17978513,17978515,17978517,17978519,17978521,17978523,17978525,17978527,17978529,17978531,17688803,17978533,17978535,17978537,17978539,17978543,17978541,17978545,17978547,17978549,17978553,17978551,17978555,17978557,17978559,17978561,17978563,17978565,17978573,17978567,17978569,17978571,17978575,17978577,17978579,17978581,17978585,17978587,17978583,17978589,17978591,17978593,17978595,17978597,17978599,17978601,17978605,17978603,17978607,17978609,17978611,17978613,17978615,17978617,17978619,17978621,17978623,17978625,17978627,17978629,17978633,17978631,17978635,17978637,17978639,17978641,17978643,17978645,17978647,17978649,17978651,17978653,17978655,17978657,17978659,17978661,17978663,17978665,17978667,17978669,17978671,17978673,17978675,17978677,17978679,17978681,17978683,17978685,17978687,17978689,17978691,17978693,17978209,17978695,17948017,17978205,17978781,17978783,17978697,17978699,17978701,17978703,17978793,17978789,17978791,17978705,17978707,17978709,17978711,17978713,17978715,17978717,17978719,17978721,17978723,17978725,17978727,17978729,17978731,17978733,17978735,17978737,17978739,17978741,17978743,17978745,17978747,17978749,17978751,17978753,17978755,17978757,17978759,17978761,17978763,17978765,17978767,17978769,17978771,17978773,17978775,17978777,17978779)
join new_transaction.offline_alipay_record t3 on t1.repay_channel =13 and t3.id = t1.record_id
group by 1,2,3,4,5,6"""
df_alipay = pd.read_sql(sql=sql_alipay, con=engine_new_transaction)
......@@ -105,13 +105,14 @@ GROUP BY
df_dunjiao = pd.read_sql(sql=sql_dunjiao_serivce_fee, con=engine_new_transaction)
df = pd.concat([df_alipay, df_bank, df_online], ignore_index=True)
# df = pd.concat([df_alipay], ignore_index=True)
df = pd.merge(df, df_dunjiao, how='left', on=['l_year', 'l_month', 'r_year', 'r_month', 'funding_name', 'approach_name'])
df[u'实还趸收服务费'].fillna(value=0, inplace=True)
df[u'总额'] = df[u'总额']+df[u'实还趸收服务费']
df.sort_values(['l_year', 'l_month', 'r_year', 'r_month', 'funding_name', 'approach_name'], inplace=True)
df.rename(columns={'l_year': '放款年', 'l_month': '放款月', 'r_year': '还款年', 'r_month': '还款月', 'funding_name': '资金方',
'approach_name': '收款账户'}, inplace=True)
excel_file = pd.ExcelWriter(path + u'现金贷还款表汇总.xlsx')
excel_file = pd.ExcelWriter(path + u'现金贷还款表汇总_new.xlsx')
df.to_excel(excel_file, 'Sheet1',
columns=['放款年', '放款月', '还款年', '还款月', '资金方', '收款账户', '总额', '本金', '利息', '服务费', '催收减免', '逾期罚款收益', '其他收益',
'减免本金', '减免利息', '减免服务费', '减免罚息','剩余未还服务费', '实还趸收服务费'], index=None)
......
......@@ -58,7 +58,7 @@ engine_new_transaction = engine_new_transaction = create_engine(
if __name__ == '__main__':
start_time = datetime.datetime(2017, 1, 1, 0, 0, 0)
end_time = datetime.datetime(2017, 10, 1, 0, 0, 0)
end_time = datetime.datetime(2017, 11, 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'实还量化派逾期费',
......
......@@ -34,7 +34,7 @@ chunksize = 5000
sql_plan_id = '''
SELECT t2.id plan_id FROM user_repayment_plan t2 WHERE id IN (17818535,14951401,13183085,16775621,16023121,18481649,18478739,18239129,16135315,14459209,15815947,16793909,17317973,16647695,16779713,16960183,16862699,20435587,17356583,16947229,15048301,18538103,16853759,16723967,17990615,17992793,17992907,17995541,17996099,17999693,17917967,18001511,17939003,17939735,19348913)
SELECT t2.id plan_id FROM user_repayment_plan t2 WHERE id IN (17939003,18001511,17999693,19348913,17992793,17992907,17990615,17939735,17995541,17917967,17996099,13183085,17818535,14951401,16775621,16793909,18538103,15048301,17317973,16862699,16779713,16947229,16853759,16723967,17356583,16960183,16647695,20435587,16023121,14459209,16135315,18239129,15815947,18478739,18481649)
'''
#
......
......@@ -30,23 +30,22 @@ engine_audit = create_engine('mysql+mysqldb://bo.wang:#mn89453YU9io80@172.16.3.2
# SELECT t2.id FROM red_packet_detail t1 LEFT JOIN user_repayment_plan t2 ON t1.ref_id=t2.ref_id AND t1.term_no=t2.term_no WHERE xyqb_repaid_at>="2017-06-01" AND xyqb_repaid_at<"2017-07-01"
# ) group by plan_id
# '''
#AND t2.current_repayment = 0
# sql_plan_ref = """
# SELECT
# sum(ref_amount) repay_amount,
# plan_id
# FROM
# xjd_repay_plan_repay_record_ref t1
# JOIN user_repayment_plan t2 ON t1.plan_id = t2.id
# WHERE
#
# t2.xyqb_repaid_at >= "2017-10-01"
# AND t2.xyqb_repaid_at < "2017-11-10"
# AND t2.repay_status = 3
#
# GROUP BY
# t1.plan_id
# """
# AND t2.current_repayment = 0
sql_plan_ref = """
SELECT
sum(ref_amount) repay_amount,
plan_id
FROM
xjd_repay_plan_repay_record_ref t1
JOIN user_repayment_plan t2 ON t1.plan_id = t2.id
WHERE
t2.xyqb_repaid_at >= "2017-10-01"
AND t2.xyqb_repaid_at < "2017-11-10"
AND t2.repay_status = 3
GROUP BY
t1.plan_id
"""
#
# sql_1 = """
#
......@@ -74,8 +73,10 @@ engine_audit = create_engine('mysql+mysqldb://bo.wang:#mn89453YU9io80@172.16.3.2
# 89647
# 9892093
sql_plan_ref='''
select sum(ref_amount) repay_amount,plan_id from xjd_repay_plan_repay_record_ref where plan_id in (17818535,14951401,13183085,16775621,16023121,18481649,18478739,18239129,16135315,14459209,15815947,16793909,17317973,16647695,16779713,16960183,16862699,20435587,17356583,16947229,15048301,18538103,16853759,16723967,17990615,17992793,17992907,17995541,17996099,17999693,17917967,18001511,17939003,17939735,19348913) GROUP BY plan_id
select sum(ref_amount) repay_amount,plan_id from xjd_repay_plan_repay_record_ref where plan_id in (17939003,18001511,17999693,19348913,17992793,17992907,17990615,17939735,17995541,17917967,17996099,13183085,17818535,14951401,16775621,16793909,18538103,15048301,17317973,16862699,16779713,16947229,16853759,16723967,17356583,16960183,16647695,20435587,16023121,14459209,16135315,18239129,15815947,18478739,18481649) GROUP BY plan_id
'''
# (4775015,13699135,4864585,10403491,14023021,10832639,12008815,10853291,4301879,13287685,11573917,4779607,13742293,10365019,11553475,14580895,12916795,13911511,8994139,11487055,11817439,15644719,4247083,10332679,15760377,11571775,13895353,11606641,15754995,11561665,15606439,13014299,13807459,10282111,12515395,4780291,13902949,4761541,10559023,14415019,10959971,10745407,9378703,14444797,15615711,11220653,13920001,13545217,4683485,10769671,14287729,15828507,9069751,14755609,16963339,10735015,11533387,15840135,12034657,15721821,14555149,14144305,10868297,13308733,14156563,15736779,15742785,14163055,10768735,15735681,10857341,12266897,13606735,11571493,15742479,6206467,14147245,9038713,13380133,15737133,16187587,9077323,17104759,16156489,4843837,16164091,13381843,13379551,13383283,16211215,9112873,13383301,13382461,11043875,8973289,14035141,11016569,10369021,10984583,10655257,12855109,15657103,6206851,11364493,15080977,15628705,13634233,11060357,16474093,14008321,10712905,15617629,10511893,13267477,13839097,13588795,13311103,15749865,15727101,15747999,13909609,14003449,10755181,13932175,13585117,15739185,10731211,13038637,15655039,15760299,15101515,10637431,17040421,9358441,16983085,9125593,15736347,18349033,11246465,15835545,12989767,15613143,16891159,10730821,11557201,15835221,18337705,11456947,18332905,18330301,11657689,15560943,15840597,9078805,11428417,18336817,18319051,18329899,16242301,18330175,18328963,11230439,9080923,11510455,11507503,18327277,13961989,15339693,15338487,15333801,14600089,14599243,14585713,14519131,11649391,14583841,11740909,11759611,14581057,14581435,11852725,11749825,11792365,14477329,11829133,17987269,9207991,11765539,9179101,11742745,15844209,15942117,15863913,15864495,15868065,15923661,14478625,15919335,14528929,11727331,15869787,15866655,11835961,11788261,14528851,15917187,15869685,14526817,14464321,15870609,15862899,14484025,15841887,14583295,11813413,12046555,14344813,14339473,11942425,11953711,12013771,12059689,14163529,14425939,14401057,14394619,14400925,14395297,14381095,11858641,14448967,14392471,14388925,14434507,14451847,11994727,14462455,10247353,14165653,12096001,14436001,14452903,14435929,14300245,11989483,14375929,11941081,14395837,14402641,14394949,12028513,12092737,12077305,14387665,14374897,14254213,14380267,14374801,12056881,12016279,16039467,15991737,16065501,14318995,12022261,16056645,14318845,16044039,14312893,10091581,16051917,16038549,14319841,11924791,16040697,16046283,14445013,11902843,14390497,14163811,16030701,14449345,15970761,11880889,14127847,15785175,14135347,14120623,14123209,15796251,15784791,15792123,12153235,12099055,12112669,14207431,14190289,14184163,18368707,18382999,18369991,18379243,18364357,18320899,18368389,18370969,18367063,18370237,18373267,18382483)
# (17939003,18001511,17999693,19348913,17992793,17992907,17990615,17939735,17995541,17917967,17996099,13183085,17818535,14951401,16775621,16793909,18538103,15048301,17317973,16862699,16779713,16947229,16853759,16723967,17356583,16960183,16647695,20435587,16023121,14459209,16135315,18239129,15815947,18478739,18481649)
sql_user_plan = """select id plan_id,ref_id,term_no, principle, interest, service_fee, should_punish,repay_status from user_repayment_plan where id in %s """
......
......@@ -59,6 +59,50 @@ OR t1.mitigate_interest != t2.mitigate_interest
OR t1.mitigate_principle !=t2.mitigate_principle
OR t1.remain_income != t2.remain_income
"""
# 检查放款金额和本金之和是否相等
sql_check_loan_total_principal = """
SELECT
temp_table.id,
temp_table.principle,
temp_table.interest,
temp_table.repayment_plan_id,
temp_table.total_principle,
t3.contract_loan_amount,
t3.ref_id
FROM
audit.loan_manifest t3
JOIN (
SELECT
t1.ref_id,
t2.id,
t2.principle,
t2.interest,
t2.repayment_plan_id,
sum(t2.principle) total_principle
FROM
audit.loan_manifest t1
JOIN user_repayment_plan t2 ON t1.ref_id = t2.ref_id
WHERE
t1.is_active IN (1 ,- 2)
AND t1.loan_paid_at >= "2017-10-01"
AND t1.loan_paid_at < "2017-11-01"
GROUP BY
t1.ref_id
) AS temp_table ON t3.ref_id = temp_table.ref_id AND abs(t3.contract_loan_amount-temp_table.total_principle)!=0
"""
# 检查是否有不合理的remain
sql_check_remain = """
SELECT
t1.fund_code,
t2.*
FROM
user_repayment_plan t1
JOIN xjd_repay_plan_repay_record_ref t2 ON t1.id = t2.plan_id
WHERE
(t1.fund_code!=300 AND t1.fund_code!=340)
AND t1.xyqb_repaid_at >= "2017-10-01" AND t2.remain_income>0;
"""
sql_check_sql_ref_5 = """
SELECT * FROM xjd_repay_plan_repay_record_ref t1 JOIN repay_record_online t2 ON t1.record_id=t2.id AND t1.repay_channel=t2.pay_approach GROUP BY t1.record_id HAVING ROUND(SUM(t1.ref_amount) - t2.amount,2) <> 0
"""
......
# -*- coding:utf-8 -*-
# Author: WuKong
import sys
import datetime
import itertools
import pandas as pd
from sqlalchemy import create_engine
import multiprocessing as mtp
import os
reload(sys)
sys.setdefaultencoding('utf8')
engine_audit = create_engine(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/audit?charset=utf8',
echo=True)
engine_payment_center = create_engine(
'mysql+mysqldb://bowang:in78u6ytgbhj56r@192.168.4.6:8066/payment_center?charset=utf8',
echo=False)
engine_xyqb = create_engine(
'mysql+mysqldb://bowang:in78u6ytgbhj56r@192.168.4.6:8066/xyqb?charset=utf8',
echo=False)
sql_audit_loan = """
SELECT ref_id ,loan_id,contract_loan_amount,DATE(loan_paid_at) FROM loan_manifest WHERE funding_code=420
"""
sql_xyqb_loan = """
SELECT loan_application_history_id loan_id,DATE(loan_paid_at),contract_loan_amount FROM loan_application_manifest_history WHERE funding_corp_id =420 AND transaction_status in (2,5) AND loan_paid_at<"2017-11-01"
"""
df_audit_loan = pd.read_sql(sql=sql_audit_loan,con=engine_audit)
df_xyqb_loan = pd.read_sql(sql=sql_xyqb_loan,con=engine_xyqb)
\ No newline at end of file
# -*- coding:utf-8 -*-
# Author: Perry_Zhu
import sys
import pandas as pd
from sqlalchemy import create_engine
reload(sys)
sys.setdefaultencoding('utf8')
# 注意修改数据源
engine_new_transaction = create_engine(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/new_transaction?charset=utf8',
echo=True)
path = u'E:/数据汇总/白条/还资金方/2017-10/'
query_loan = """
SELECT tt.order_no 产品编号,tt.term_no 期数,tt.fund_name 资金方,max(tt.loan_paid_at) 放款时间,
max(tt.repaid_at)实还时间,tt.flow_id 流水号,tt.total_amount 账单金额 FROM (
SELECT
t4.order_no,
r.term_no,
t2.fund_name,
DATE(t4.loan_paid_at) loan_paid_at,
date(r.repaid_at) repaid_at,
r.flow_id ,
b.total_amount
FROM
baitiao_audit.baitiao_order t4
JOIN baitiao_audit.fund_corp t2 ON t4.funding_corp_id = t2.id AND t4.is_active = 1 AND t4.funding_corp_id = 5
JOIN new_transaction.bt_funding_repayment_record r ON r.ref_id = t4.ref_id
JOIN baitiao_audit.account_type t3 ON r.principal_account = t3.account_type
JOIN baitiao_audit.baitiao_finance_record b ON r.finance_record_id = b.batch_no AND b.type = 1
WHERE
t4.loan_paid_at>='%s'
AND t4.loan_paid_at<'%s'
UNION all
SELECT
t4.order_no,
r.term_no,
t2.fund_name,
DATE(t4.train_cancel_at) loan_paid_at,
date(r.repaid_at) repaid_at,
r.flow_id ,
b.total_amount
FROM
baitiao_audit.baitiao_order t4
JOIN baitiao_audit.fund_corp t2 ON t4.funding_corp_id = t2.id AND t4.is_active = -2 AND t4.funding_corp_id = 5
JOIN new_transaction.bt_funding_repayment_record r ON r.ref_id = t4.ref_id
JOIN baitiao_audit.account_type t3 ON r.principal_account = t3.account_type
JOIN baitiao_audit.baitiao_finance_record b ON r.finance_record_id = b.batch_no AND b.type = 1
WHERE
t4.loan_paid_at>='%s'
AND t4.loan_paid_at<'%s'
)tt
GROUP BY 1,2
"""
query_repay_principal = """
SELECT
r.order_no 产品编号,
r.term_no 期数,
sum(r.principal) 实还本金
FROM
bt_funding_repayment_record r
WHERE
r.repaid_at >='%s'
AND r.repaid_at <'%s'
AND r.refund_status!=3
and r.order_no is not null
GROUP BY 1,2
"""
query_repay_interest = """
select tt.order_no 产品编号,tt.term_no 期数,sum(tt.interest) 实还利息 from(
SELECT
r.order_no,
r.term_no,
r.interest
FROM
bt_funding_repayment_record r
WHERE
r.refund_status!=3
and r.order_no is not null
AND r.repaid_at >='%s'
AND r.repaid_at <'%s'
UNION ALL
SELECT
r.order_no,
r.term_no,
r.interest
FROM
bt_funding_repayment_record r
WHERE
r.refund_status=3
AND r.interest_account!=3
and r.order_no is not null
AND r.repaid_at >='%s'
AND r.repaid_at <'%s'
)tt
GROUP BY 1,2
"""
# query_repay_discount = """
# SELECT
# r.order_no 产品编号,
# r.term_no 期数,
# sum(r.discount) 实还贴息
# FROM
# bt_funding_repayment_record r
# WHERE
# r.refund_status!=3
# and r.order_no is not null
# AND r.repaid_at >='%s'
# AND r.repaid_at <'%s'
# GROUP BY 1,2
# """
query_repay_discount = """
SELECT
r.order_no 产品编号,
r.term_no 期数,
sum(r.discount) 实还贴息
FROM
bt_funding_repayment_record r
WHERE
r.refund_status!=3
and r.order_no is not null
AND r.discount_repaid_at >='%s'
AND r.discount_repaid_at <'%s'
GROUP BY 1,2
"""
start_time = '2017-08-01'
end_time = '2017-11-01'
def tj():
df_loan_all = pd.read_sql(query_loan % (start_time, end_time, start_time, end_time), engine_new_transaction)
df_loan_all[u'产品编号'] = df_loan_all[u'产品编号'].astype(str)
df_loan_all[u'期数'] = df_loan_all[u'期数'].astype(int)
df_p = pd.read_sql(query_repay_principal % (start_time, end_time), engine_new_transaction)
df_p[u'产品编号'] = df_p[u'产品编号'].astype(str)
df_p[u'期数'] = df_p[u'期数'].astype(int)
print df_p[u'实还本金'].sum()
# 实还本金
df_i = pd.read_sql(query_repay_interest % (start_time, end_time, start_time, end_time), engine_new_transaction)
df_i[u'产品编号'] = df_i[u'产品编号'].astype(str)
df_i[u'期数'] = df_i[u'期数'].astype(int)
# 实还利息
df_i = df_i[[u'产品编号', u'期数', u'实还利息']]
df_d = pd.read_sql(query_repay_discount % (start_time, end_time), engine_new_transaction)
df_d[u'产品编号'] = df_d[u'产品编号'].astype(str)
df_d[u'期数'] = df_d[u'期数'].astype(int)
# 实还贴息
df_d = df_d[[u'产品编号', u'期数', u'实还贴息']]
df = pd.concat([df_p, df_i, df_d], ignore_index=True, axis=0)
df.fillna(0, inplace=True)
# df_t1 = df.groupby([u'产品编号', u'期数'])[u'实还本金'].sum().reset_index()
# df_t2 = df.groupby([u'产品编号', u'期数'])[u'实还利息'].sum().reset_index()
# df_t3 = df.groupby([u'产品编号', u'期数'])[u'实还贴息'].sum().reset_index()
# df_1 = pd.merge(df_t1, df_t2, on=[u'产品编号', u'期数'], how='outer')
# df_t = pd.merge(df_1, df_t3, on=[u'产品编号', u'期数'], how='outer')
df_t = df.groupby([u'产品编号', u'期数'])[u'实还本金', u'实还利息', u'实还贴息'].agg('sum').reset_index()
df = pd.merge(df_loan_all, df_t, on=[u'产品编号', u'期数'])
df.loc[df[u'流水号'].duplicated(), [u'账单金额']] = 0
df[u'实还总额'] = df[u'实还本金'] + df[u'实还利息']
df = df[[u'资金方', u'产品编号', u'放款时间', u'期数', u'实还时间', u'实还总额', u'实还本金', u'实还利息', u'流水号', u'账单金额']]
# df.to_excel(path + u'直投白条还资金方明细-2017-10.xlsx', index=None)
df.to_excel(path + u'人工控制-直投白条还资金方(按实还时间)-2017-10.xlsx', index=None)
tj()
# -*- coding:utf-8 -*-
# Author: Perry_Zhu
import datetime
import multiprocessing as mtp
import sys
from itertools import product
import pandas as pd
from dateutil.relativedelta import relativedelta
from sqlalchemy import create_engine
reload(sys)
sys.setdefaultencoding('utf8')
# 注意修改数据源
engine_new_transaction = create_engine(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/new_transaction?charset=utf8',
echo=True)
path = u'E:/数据汇总/白条/还资金方/2017-10/'
query_repay_principal = """
SELECT
t2.fund_name 资金方,
r.order_no 产品编号,
r.term_no,
t4.loan_paid_at 放款时间,
t4.funding_loan_amount 放款金额,
DATE(r.refund_time) 客户退单日,
DATE(r.repaid_at) 退还给资金方日,
sum(r.principal) 退款本金,
r.flow_id 流水号,
b.total_amount 账单金额
FROM
bt_funding_repayment_record r
JOIN baitiao_audit.fund_corp t2 ON r.funding_code = t2.id
JOIN baitiao_audit.account_type t3 ON r.principal_account = t3.account_type AND r.refund_status=3
JOIN baitiao_audit.baitiao_order t4 ON r.ref_id=t4.ref_id
JOIN baitiao_audit.baitiao_finance_record b ON r.finance_record_id=b.batch_no AND b.type=1
WHERE r.repaid_at >='%s'
AND r.repaid_at <'%s'
GROUP BY 2,3
"""
query_repay_interest = """
SELECT
r.order_no 产品编号,
r.term_no,
sum(ifnull(r.interest,0)) 退款利息
FROM
bt_funding_repayment_record r
WHERE
r.refund_status=3
AND r.interest_account=3
AND r.repaid_at >='%s'
AND r.repaid_at <'%s'
GROUP BY 1,2
"""
# query_repay_discount = """
# SELECT
# r.order_no 产品编号,
# r.term_no,
# sum(ifnull(r.discount,0)) 退款贴息
# FROM
# bt_funding_repayment_record r
# WHERE
# r.refund_status=3
# AND r.repaid_at >='%s'
# AND r.repaid_at <'%s'
# GROUP BY 1,2
# """
query_repay_discount = """
SELECT
r.order_no 产品编号,
r.term_no,
sum(ifnull(r.discount,0)) 退款贴息
FROM
bt_funding_repayment_record r
WHERE
r.refund_status=3
AND r.discount_repaid_at >='%s'
AND r.discount_repaid_at <'%s'
GROUP BY 1,2
"""
start_time = '2017-08-01'
end_time = '2017-11-01'
def tj():
df_p = pd.read_sql(query_repay_principal % (start_time, end_time), engine_new_transaction)
df_i = pd.read_sql(query_repay_interest % (start_time, end_time), engine_new_transaction)
df_d = pd.read_sql(query_repay_discount % (start_time, end_time), engine_new_transaction)
df_p[u'产品编号'] = df_p[u'产品编号'].astype(str)
df_p.term_no = df_p.term_no.astype(int)
df_i[u'产品编号'] = df_i[u'产品编号'].astype(str)
df_i.term_no = df_i.term_no.astype(int)
df_d[u'产品编号'] = df_d[u'产品编号'].astype(str)
df_d.term_no = df_d.term_no.astype(int)
df_t = pd.merge(df_p, df_i, on=[u'产品编号', 'term_no'], how='left')
df = pd.merge(df_t, df_d, on=[u'产品编号', 'term_no'], how='left')
df.loc[df[u'流水号'].duplicated(), [u'账单金额']] = 0
df.fillna(0, inplace=True)
df[u'退款总额'] = df[u'退款本金'] + df[u'退款利息']
df = df[
[u'资金方', u'产品编号', u'放款时间', u'放款金额', u'客户退单日', u'退还给资金方日', u'退款总额', u'退款本金', u'退款利息', u'流水号', u'账单金额']]
# df.to_excel(path + u'直投白条退资金方款明细-2017-10.xlsx', index=None)
df.to_excel(path + u'人工控制-直投白条退资金方款明细-2017-10.xlsx', index=None)
tj()
# coding: utf-8
# Author: Perry_Zhu
import sys
stdout = sys.stdout
......
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