Commit 36d38ab4 authored by data—王林芳's avatar data—王林芳

在贷-未处理负数Done,金额=放款-退款-还款

parent cb2d7b6f
......@@ -49,7 +49,7 @@ def zaidai(listen_time,user_plan_2016='repayment_plan_2016',user_plan_2017='repa
sql_pre_refund = '''
select product_no,-sum(refund_principle) pre_refund_principle from
qunaer_new.refund_detail
where refund_time < '%s' AND fund_code=1 AND flow_id is NULL AND refund_status = 1
where refund_time < '%s' AND fund_code=1 AND refund_status = 1
GROUP by 1
''' % listen_time
# ==观察点时间前的还款
......@@ -59,43 +59,30 @@ def zaidai(listen_time,user_plan_2016='repayment_plan_2016',user_plan_2017='repa
where repay_time < '%s' AND fund_code = 1 AND repay_status = 1
GROUP by 1
''' % listen_time
# ==观察点时间前的退款
sql_pre_repay2 = '''
select product_no,-sum(refund_principle) pre_repay_principle from
qunaer_new.refund_detail
where refund_time < '%s' AND fund_code = 1 and flow_id is not NULL AND refund_status = 1
GROUP by 1
''' % listen_time
##==观察点时间后的退款
sql_after_refund = '''
select t1.product_no ,-sum(refund_principle) after_refund_principle from
qunaer_new.refund_detail t1
JOIN qunaer_new.pay_detail t2 on t1.product_no = t2.product_no
where t1.refund_time >= '%s' AND t1.fund_code = 1 AND t1.flow_id is NULL AND t2.status = 1
where t1.refund_time >= '%s' AND t2.trans_time < '%s' AND t1.fund_code = 1 AND t2.status = 1 AND t1.refund_status =1
GROUP by 1
''' % (listen_time)
''' % (listen_time,listen_time)
##==观察点时间后的还款
sql_after_repay = '''
select t1.product_no ,sum(repay_principle) after_repay_principle from
qunaer_new.repay_detail t1
JOIN qunaer_new.pay_detail t2 on t1.product_no = t2.product_no
where t1.repay_time >= '%s' AND t1.fund_code = 1 AND t2.status=1 AND t1.repay_status = 1
GROUP by 1
''' % (listen_time)
##==观察点时间后的退款
sql_after_repay2 = '''
select t1.product_no ,-sum(refund_principle) after_repay_principle from
qunaer_new.refund_detail t1
JOIN qunaer_new.pay_detail t2 on t1.product_no = t2.product_no
where t1.refund_time >= '%s' AND t1.fund_code = 1 AND t1.flow_id is not NULL AND t2.status= 1 AND t1.refund_status = 1
where t1.repay_time >= '%s' AND t2.trans_time < '%s' AND t1.fund_code = 1 AND t2.status=1 AND t1.repay_status = 1
GROUP by 1
''' % (listen_time)
''' % (listen_time,listen_time)
##==未到期的,user_plan_2016
sql_after_deadline = '''
select t1.product_no,sum(principle) after_deadline
from %s t1
JOIN qunaer_new.pay_detail t2 on t1.product_no = t2.product_no
where t2.loan_time < '%s' AND t1.status = 1 AND t1.deadline >= '%s' AND t2.fund_code = 1
where t2.trans_time < '%s' AND t1.status = 1 AND t1.deadline >= '%s' AND t2.fund_code = 1
GROUP by 1
''' % (user_plan_2016,listen_time, listen_time)
##==未到期的,user_plan_2017
......@@ -103,17 +90,10 @@ def zaidai(listen_time,user_plan_2016='repayment_plan_2016',user_plan_2017='repa
select t1.product_no,sum(principle) after_deadline
from %s t1
JOIN qunaer_new.pay_detail t2 on t1.product_no = t2.product_no
where t2.loan_time < '%s' AND t1.status = 1 AND t1.deadline >= '%s' AND t1.fund_code = 1 AND t2.status = 1
where t2.trans_time < '%s' AND t1.status = 1 AND t1.deadline >= '%s' AND t1.fund_code = 1 AND t2.status = 1
GROUP by 1
''' % (user_plan_2017,listen_time, listen_time)
#==债转后的未到期的还款计划
sql_after_deadline_baoli = '''
select t1.product_no,sum(principle) after_deadline
from qunaer_new.repayment_plan_2017 t1
JOIN qunaer_new.baoli_pay_detail t2 on t1.product_no = t2.product_no
where t2.trans_time < '%s' AND t1.status = 1 AND t1.deadline >= '%s' AND t1.fund_code = 1
GROUP by 1
''' % (listen_time, listen_time)
# all 放款
df_loan = pd.read_sql(sql_loan, engine_qunaer)
df_loan_1 = pd.read_sql(sql_loan_2, engine_qunaer)
......@@ -121,19 +101,13 @@ def zaidai(listen_time,user_plan_2016='repayment_plan_2016',user_plan_2017='repa
#== 观察点前的退还款
df_pre_refund = pd.read_sql(sql_pre_refund, engine_qunaer)
df_pre_repay = pd.read_sql(sql_pre_repay, engine_qunaer)
df_pre_repay2 = pd.read_sql(sql_pre_repay2, engine_qunaer)
df_pre_repay = pd.concat([df_pre_repay, df_pre_repay2], ignore_index=True)
# == 观察点后的退还款
df_after_refund = pd.read_sql(sql_after_refund, engine_qunaer)
df_after_repay = pd.read_sql(sql_after_repay, engine_qunaer)
df_after_repay2 = pd.read_sql(sql_after_repay2, engine_qunaer)
df_after_repay = pd.concat([df_after_repay, df_after_repay2], ignore_index=True)
#未到期的
df_after_deadline = pd.read_sql(sql_after_deadline, engine_qunaer)
df_after_deadline_2016 = pd.read_sql(sql_after_deadline, engine_qunaer)
df_after_deadline_2017 = pd.read_sql(sql_after_deadline_2017, engine_qunaer)
df_after_deadline_baoli = pd.read_sql(sql_after_deadline_baoli, engine_qunaer)
df_after_deadline = pd.concat([df_after_deadline, df_after_deadline_2017, df_after_deadline_baoli],
ignore_index=True)
df_after_deadline = pd.concat([df_after_deadline_2016, df_after_deadline_2017,],ignore_index=True)
df_after_deadline = df_after_deadline.groupby(['product_no'])['after_deadline'].sum().reset_index()
#==合并
df = pd.merge(df_loan, df_pre_refund, on='product_no', how='left')
......@@ -143,6 +117,8 @@ def zaidai(listen_time,user_plan_2016='repayment_plan_2016',user_plan_2017='repa
df = pd.merge(df, df_after_deadline, on='product_no', how='left')
df.fillna(0, inplace=True)
df['zaidai'] = np.round(df['loan_amount'] - df['pre_refund_principle'] - df['pre_repay_principle'], 2)
#== 剔除在贷为 0 的数据
df=df.ix[df.zaidai != 0]
df['贷后还款'] = np.round(df['after_refund_principle'] + df['after_repay_principle'] + df['after_deadline'], 2)
df['剩余'] = np.round(
df['loan_amount'] - df['pre_refund_principle'] - df['pre_repay_principle'] - df['after_refund_principle'] - df[
......
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