This commit is contained in:
王思川 2022-06-16 20:27:09 +08:00
commit 85697bec05
4 changed files with 87 additions and 75 deletions

View File

@ -616,4 +616,3 @@ class BasicBusinessInfoImpl(object):
business_job.create() business_job.create()
guarantee_business_info() guarantee_business_info()

View File

@ -715,7 +715,7 @@ class BusinessInfo(SpecObject):
"total": "合计" "total": "合计"
} }
company_name = ValidateAttr(field='company_name', type=str) company_name = ValidateAttr(field='company_name', type=str, default=None)
cid = ValidateAttr(field='cid', type=str) cid = ValidateAttr(field='cid', type=str)
customerinfo = ValidateAttr(field='customerinfo', instance_list=CustomerInfo) customerinfo = ValidateAttr(field='customerinfo', instance_list=CustomerInfo)
regional_distribution = ValidateAttr(field='regional_distribution', instance_list=RegionalDistribution) regional_distribution = ValidateAttr(field='regional_distribution', instance_list=RegionalDistribution)

View File

@ -88,12 +88,15 @@ class DragRiskInfoFromTYC(DataProcess):
total = 0 total = 0
if final_case['终本案件']: if final_case['终本案件']:
for item in final_case['终本案件']['result']: for item in final_case['终本案件']['result']:
tuptime_newest = time.localtime(item['caseFinalTime'] / 1000) try:
begin_date = datetime.strptime(time.strftime("%Y-%m-%d", tuptime_newest), '%Y-%m-%d').year tuptime_newest = time.localtime(item['caseFinalTime'] / 1000)
curr_date = datetime.strptime(self.target.report_date, '%Y-%m-%d').year begin_date = datetime.strptime(time.strftime("%Y-%m-%d", tuptime_newest), '%Y-%m-%d').year
minus_date = curr_date - begin_date curr_date = datetime.strptime(self.target.report_date, '%Y-%m-%d').year
if 0 <= minus_date <= 3: minus_date = curr_date - begin_date
total += 1 if 0 <= minus_date <= 3:
total += 1
except TypeError:
continue
return total return total
def consumption_restriction_quantity(): def consumption_restriction_quantity():
@ -106,12 +109,15 @@ class DragRiskInfoFromTYC(DataProcess):
total = 0 total = 0
if executed['限制消费令']: if executed['限制消费令']:
for item in executed['限制消费令']['result']: for item in executed['限制消费令']['result']:
tuptime_newest = time.localtime(item['publishDate'] / 1000) try:
begin_date = datetime.strptime(time.strftime("%Y-%m-%d", tuptime_newest), '%Y-%m-%d').year tuptime_newest = time.localtime(item['publishDate'] / 1000)
curr_date = datetime.strptime(self.target.report_date, '%Y-%m-%d').year begin_date = datetime.strptime(time.strftime("%Y-%m-%d", tuptime_newest), '%Y-%m-%d').year
minus_date = curr_date - begin_date curr_date = datetime.strptime(self.target.report_date, '%Y-%m-%d').year
if 0 <= minus_date <= 3: minus_date = curr_date - begin_date
total += 1 if 0 <= minus_date <= 3:
total += 1
except TypeError:
continue
return total return total
def penalties_quantity(): def penalties_quantity():
@ -313,11 +319,11 @@ class ProcessBusinessInfo(DataProcess):
condition_03 = item['担保开始日期'][:4] == year_ condition_03 = item['担保开始日期'][:4] == year_
if condition_01 and condition_02: if condition_01 and condition_02:
# 年末余额开始日期应小于等于此年度结束日期应该小于此年度的12月31日 # 年末余额开始日期应小于等于此年度结束日期应该小于此年度的12月31日
regional_['年末在保余额'] += item['担保余额(万元)'] regional_['年末在保余额'] += 0 if item['担保余额(万元)'] is None else item['担保余额(万元)']
regional_['年末在保责任余额'] += item['责任担保余额(万元)'] regional_['年末在保责任余额'] += 0 if item['责任担保余额(万元)'] is None else item['责任担保余额(万元)']
if condition_03: if condition_03:
regional_['当年新增在保余额'] += item['担保余额(万元)'] regional_['当年新增在保余额'] += 0 if item['担保余额(万元)'] is None else item['担保余额(万元)']
regional_['当年新增在保责任余额'] += item['责任担保余额(万元)'] regional_['当年新增在保责任余额'] += 0 if item['责任担保余额(万元)'] is None else item['责任担保余额(万元)']
# 行业分布 # 行业分布
for industry_ in industry_list: for industry_ in industry_list:
@ -332,11 +338,11 @@ class ProcessBusinessInfo(DataProcess):
condition_03 = item['担保开始日期'][:4] == year_ condition_03 = item['担保开始日期'][:4] == year_
if condition_01 and condition_02: if condition_01 and condition_02:
# 年末余额开始日期应小于等于此年度结束日期应该小于此年度的12月31日 # 年末余额开始日期应小于等于此年度结束日期应该小于此年度的12月31日
industry_['年末在保余额'] += item['担保余额(万元)'] industry_['年末在保余额'] += 0 if item['担保余额(万元)'] is None else item['担保余额(万元)']
industry_['年末在保责任余额'] += item['责任担保余额(万元)'] industry_['年末在保责任余额'] += 0 if item['责任担保余额(万元)'] is None else item['责任担保余额(万元)']
if condition_03: if condition_03:
industry_['当年新增在保余额'] += item['担保余额(万元)'] industry_['当年新增在保余额'] += 0 if item['担保余额(万元)'] is None else item['担保余额(万元)']
industry_['当年新增在保责任余额'] += item['责任担保余额(万元)'] industry_['当年新增在保责任余额'] += 0 if item['责任担保余额(万元)'] is None else item['责任担保余额(万元)']
except KeyError: except KeyError:
continue continue
@ -344,38 +350,41 @@ class ProcessBusinessInfo(DataProcess):
for balance_ in balance_list: for balance_ in balance_list:
for year_ in year_index: for year_ in year_index:
if year_ == balance_['报告期'][:4]: if year_ == balance_['报告期'][:4]:
if item['担保余额(万元)'] <= 100: if item['担保余额(万元)']:
balance_['100万以下含100万']['担保户数'] += 1 if item['担保余额(万元)'] <= 100:
balance_['100万以下含100万']['担保笔数'] += 1 balance_['100万以下含100万']['担保户数'] += 1
balance_['100万以下含100万']['担保责任余额'] += item['担保余额(万元)'] balance_['100万以下含100万']['担保笔数'] += 1
elif item['担保余额(万元)'] <= 500: balance_['100万以下含100万']['担保责任余额'] += 0 if item['担保余额(万元)'] is None else item['担保余额(万元)']
balance_['500万以下含500万']['担保户数'] += 1 elif item['担保余额(万元)'] <= 500:
balance_['500万以下含500万']['担保笔数'] += 1 balance_['500万以下含500万']['担保户数'] += 1
balance_['500万以下含500万']['担保责任余额'] += item['担保余额(万元)'] balance_['500万以下含500万']['担保笔数'] += 1
elif item['担保余额(万元)'] <= 1000: balance_['500万以下含500万']['担保责任余额'] += 0 if item['担保余额(万元)'] is None else item['担保余额(万元)']
balance_['500-1000万含1000万']['担保户数'] += 1 elif item['担保余额(万元)'] <= 1000:
balance_['500-1000万含1000万']['担保笔数'] += 1 balance_['500-1000万含1000万']['担保户数'] += 1
balance_['500-1000万含1000万']['担保责任余额'] += item['担保余额(万元)'] balance_['500-1000万含1000万']['担保笔数'] += 1
elif item['担保余额(万元)'] <= 3000: balance_['500-1000万含1000万']['担保责任余额'] += 0 if item['担保余额(万元)'] is None else item['担保余额(万元)']
balance_['1000-3000万含3000万']['担保户数'] += 1 elif item['担保余额(万元)'] <= 3000:
balance_['1000-3000万含3000万']['担保笔数'] += 1 balance_['1000-3000万含3000万']['担保户数'] += 1
balance_['1000-3000万含3000万']['担保责任余额'] += item['担保余额(万元)'] balance_['1000-3000万含3000万']['担保笔数'] += 1
elif item['担保余额(万元)'] <= 5000: balance_['1000-3000万含3000万']['担保责任余额'] += 0 if item['担保余额(万元)'] is None else item['担保余额(万元)']
balance_['3000-5000万含5000万']['担保户数'] += 1 elif item['担保余额(万元)'] <= 5000:
balance_['3000-5000万含5000万']['担保笔数'] += 1 balance_['3000-5000万含5000万']['担保户数'] += 1
balance_['3000-5000万含5000万']['担保责任余额'] += item['担保余额(万元)'] balance_['3000-5000万含5000万']['担保笔数'] += 1
elif item['担保余额(万元)'] <= 8000: balance_['3000-5000万含5000万']['担保责任余额'] += 0 if item['担保余额(万元)'] is None else item['担保余额(万元)']
balance_['5000-8000万含8000万']['担保户数'] += 1 elif item['担保余额(万元)'] <= 8000:
balance_['5000-8000万含8000万']['担保笔数'] += 1 balance_['5000-8000万含8000万']['担保户数'] += 1
balance_['5000-8000万含8000万']['担保责任余额'] += item['担保余额(万元)'] balance_['5000-8000万含8000万']['担保笔数'] += 1
elif item['担保余额(万元)'] <= 10000: balance_['5000-8000万含8000万']['担保责任余额'] += 0 if item['担保余额(万元)'] is None else item['担保余额(万元)']
balance_['8000-10000万含10000万']['担保户数'] += 1 elif item['担保余额(万元)'] <= 10000:
balance_['8000-10000万含10000万']['担保笔数'] += 1 balance_['8000-10000万含10000万']['担保户数'] += 1
balance_['8000-10000万含10000万']['担保责任余额'] += item['担保余额(万元)'] balance_['8000-10000万含10000万']['担保笔数'] += 1
elif item['担保余额(万元)'] > 10000: balance_['8000-10000万含10000万']['担保责任余额'] += 0 if item['担保余额(万元)'] is None else item['担保余额(万元)']
balance_['10000万以上']['担保户数'] += 1 elif item['担保余额(万元)'] > 10000:
balance_['10000万以上']['担保笔数'] += 1 balance_['10000万以上']['担保户数'] += 1
balance_['10000万以上']['担保责任余额'] += item['担保余额(万元)'] balance_['10000万以上']['担保笔数'] += 1
balance_['10000万以上']['担保责任余额'] += item['担保余额(万元)']
else:
continue
# 处理区域分布 # 处理区域分布
for index in range(len(regional_list)): for index in range(len(regional_list)):
@ -443,29 +452,33 @@ class ProcessBusinessInfo(DataProcess):
industry_data = data['行业分布'] industry_data = data['行业分布']
amount_data = data['担保金额分布'] amount_data = data['担保金额分布']
DB_GUA.insert_many_data( if customer_data:
'企业数据', DB_GUA.insert_many_data(
'担保数据-客户信息', '企业数据',
[item for item in customer_data] '担保数据-客户信息',
) [item for item in customer_data]
)
DB_GUA.insert_many_data( if regional_data:
'企业数据', DB_GUA.insert_many_data(
'担保数据-区域分布', '企业数据',
[item for item in regional_data] '担保数据-区域分布',
) [item for item in regional_data]
)
DB_GUA.insert_many_data( if industry_data:
'企业数据', DB_GUA.insert_many_data(
'担保数据-行业分布', '企业数据',
[item for item in industry_data] '担保数据-行业分布',
) [item for item in industry_data]
)
DB_GUA.insert_many_data( if amount_data:
'企业数据', DB_GUA.insert_many_data(
'担保数据-担保金额分布', '企业数据',
[item for item in amount_data] '担保数据-担保金额分布',
) [item for item in amount_data]
)
class BusinessInfoDataJob(BusinessInfo): class BusinessInfoDataJob(BusinessInfo):

View File

@ -11,7 +11,7 @@ class RatingResultImpl(object):
@staticmethod @staticmethod
def search(**kwargs): def search(**kwargs):
condition = {"信用级别": kwargs['level']} if isinstance(kwargs['level'], float) else {} condition = {"信用级别": kwargs['level'], "评级状态": "完成"} if isinstance(kwargs['level'], float) else {"评级状态": "完成"}
total = DB_GUA.find_all_data_with_count( total = DB_GUA.find_all_data_with_count(
"评级数据", "评级数据",
"评级记录", "评级记录",