From 3cfb054a0610ad9c76b889303f8c36c3e1b22faa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BD=AD=E6=A3=AE?= Date: Mon, 10 Jan 2022 15:33:04 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=A7=A3=E5=86=B3=E6=9F=90=E4=BA=9B?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=8D=E5=AD=98=E5=9C=A8=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rating/scripts/report/company_profile.py | 70 +++++++++++---------- rating/scripts/report/esg_evaluation.py | 42 +++++++------ rating/scripts/report/financial_analysis.py | 44 ++++++++----- 3 files changed, 88 insertions(+), 68 deletions(-) diff --git a/rating/scripts/report/company_profile.py b/rating/scripts/report/company_profile.py index 9a3c9e8..37ed985 100644 --- a/rating/scripts/report/company_profile.py +++ b/rating/scripts/report/company_profile.py @@ -203,14 +203,12 @@ def outbound_investment(param): # Returns result = list() - - if data_01 is None: - part_01 = dict() + part_01 = dict() + if not data_01: part_01['desribe'] = '截至{}年,未查询到该公司对外投资相关信息。'.format(data_02['资产负债表'][0]['报告期'][:4]) result.append(part_01) else: def para_01(): - part_01 = dict() # 年限 part_01['year_03'] = data_02['资产负债表'][0]['报告期'][:4] @@ -240,7 +238,8 @@ def outbound_investment(param): industry = calculate_amount(data_01['result'])['industry'] industry_amount = calculate_list(industry) top_3_industry = sorted(industry_amount.items(), key=lambda x: x[1], reverse=True) - industry_result = calculate_tuple(top_3_industry, data_01['result'], float(part_01['investment_total_amount']), + industry_result = calculate_tuple(top_3_industry, data_01['result'], + float(part_01['investment_total_amount']), 'industry') part_01['top_3_industry'] = industry_result['industry'] # 行业集中度 @@ -377,7 +376,7 @@ def intellectual_property(param): part_01['date'] = date def patent(): - if data_01 is None: + if data_01 is None or not data_01: # 专利数量 part_01['patent_number'] = '0' # 三种类型专利数量 @@ -422,7 +421,7 @@ def intellectual_property(param): part_02['date'] = date def copyrights(): - if data_02 is None: + if data_02 is None or not data_02: part_02['copyrights_number'] = '0' part_02['copyrights_number_three_year'] = '0' else: @@ -490,6 +489,7 @@ def qualification_honor_manufacturing(param): '食品安全管理体系认证', '食品安全管理体系认证证书', 'CE认证', '日本PSE认证', 'CE认证证书'] qi_tep = ['CE认证', '日本PSE认证', 'CE认证证书'] qf_tep = ['中国著名品牌', '中国驰名品牌', '中国行业最具影响力品牌'] + all_tep = qh_tep + qn_tep + qi_tep + qf_tep # Returns result = list() @@ -538,13 +538,14 @@ def qualification_honor_manufacturing(param): part_02['Qualification_image'] = '公司品牌知名度较低,市场形象一般,不太利于业务开展。' def para_03(): - insert_data = list() - insert_data.append(item['certificateName']) - insert_data.append(item['certNo']) - insert_data.append(item['startDate']) - insert_data.append(None if len(item['endDate']) == 0 else item['endDate']) - insert_data = judge_list(insert_data) - part_03.append(insert_data) + if item['certificateName'] in all_tep: + insert_data = list() + insert_data.append(item['certificateName']) + insert_data.append(item['certNo']) + insert_data.append(item['startDate']) + insert_data.append(None if len(item['endDate']) == 0 else item['endDate']) + insert_data = judge_list(insert_data) + part_03.append(insert_data) if len(data) == 0: part_01 = '无数据' @@ -560,7 +561,6 @@ def qualification_honor_manufacturing(param): return result -# 待测试 def qualification_honor_infomation(param): """ 资质荣誉-信息技术业 @@ -583,7 +583,7 @@ def qualification_honor_infomation(param): '安全技术防范系统设计、施工、维修资格证', '计算机信息系统安全专用产品销售许可证', '国家秘密载体复制许可证', '信息安全风险评估服务资质认证', '涉密信息系统集成资质证书', '软件开发乙级', '网络安全专用产品', '设置空间电台审批'] qf_tep = ['中国著名品牌', '中国驰名品牌', '中国行业最具影响力品牌', 'AAA级中国著名品牌', 'AAA级中国品牌建设实践百名创新优秀人'] - + all_tep = cs_tep + qh_tep + yy_tep + gy_tep + jc_tep + js_tep + xx_tep + qf_tep # Returns result = list() part_01 = dict() @@ -630,13 +630,14 @@ def qualification_honor_infomation(param): qua_list_03.append(item['certificateName']) def para_04(): - insert_data = list() - insert_data.append(item['certificateName']) - insert_data.append(item['certNo']) - insert_data.append(item['startDate']) - insert_data.append(None if len(item['endDate']) == 0 else item['endDate']) - insert_data = judge_list(insert_data) - part_04.append(insert_data) + if item['certificateName'] in all_tep: + insert_data = list() + insert_data.append(item['certificateName']) + insert_data.append(item['certNo']) + insert_data.append(item['startDate']) + insert_data.append(None if len(item['endDate']) == 0 else item['endDate']) + insert_data = judge_list(insert_data) + part_04.append(insert_data) if len(data) == 0: part_01 = '经查询,公司无技术、服务资质或品牌等方面的荣誉资质。' @@ -651,14 +652,15 @@ def qualification_honor_infomation(param): # 判断第一段 # 列表大于0,为第一段加上第二句描述语句 if len(qua_list_01) > 0: - describe = '、'.join(qua_list_01) + s = '、'.join(qua_list_01) + describe = '企业被评为{}。'.format(s) part_01['describe'].append(describe) # 总体数据列表等于2,加上最后一句描述 if len(part_01['describe']) == 2: part_01['describe'].append('属于新一代信息技术业企业。') if len(part_01['describe']) > 0: # 将数据解析成第一段描述语句的字符串 - part_01['describe'] = ''.join(part_01['qualification']) + part_01['describe'] = ''.join(part_01['describe']) else: part_01['describe'] = '无数据' result.append(part_01) @@ -671,8 +673,8 @@ def qualification_honor_infomation(param): describe = '公司拥有较强的软件和信息技术服务能力,具有{}项应用软件产品、{}项工业软件产品、{}项检测认定、{}项信息系统建设和维护、' \ '{}项信息系统安全服务等相关资质。' part_02['describe'] = describe.format(qua_list_02['qua_num_01'], qua_list_02['qua_num_02'], - qua_list_02['qua_num_03'], qua_list_02['qua_num_04'], - qua_list_02['qua_num_05']) + qua_list_02['qua_num_03'], qua_list_02['qua_num_04'], + qua_list_02['qua_num_05']) else: part_02['describe'] = '无数据' result.append(part_02) @@ -685,12 +687,12 @@ def qualification_honor_infomation(param): part_03['describe'] = '无数据' result.append(part_03) result.append(part_04) - # 最后判断前三段是否都为无数据 - if result[0]['describe'] == '无数据' and result[1]['describe'] == '无数据' and result[2]['describe'] == '无数据': - result = list() - part_01 = dict() - part_01['describe'] = '无数据' - result.append(part_01) + # 最后判断前三段是否都为无数据 + if result[0]['describe'] == '无数据' and result[1]['describe'] == '无数据' and result[2]['describe'] == '无数据': + result = list() + part_01 = dict() + part_01['describe'] = '无数据' + result.append(part_01) return result @@ -747,4 +749,4 @@ def financing_information(param): result.append(part_02) result.append(part_03) result.append(part_04) - return result \ No newline at end of file + return result diff --git a/rating/scripts/report/esg_evaluation.py b/rating/scripts/report/esg_evaluation.py index 0dbf7df..e78936a 100644 --- a/rating/scripts/report/esg_evaluation.py +++ b/rating/scripts/report/esg_evaluation.py @@ -67,15 +67,18 @@ def environmental_governance_manufacturing(param): def para_02(): part_02 = dict() - part_02['Qualification_number'] = 0 - for item in data_02['result']: - if item['certificateName'] in ep: - part_02['Qualification_number'] += 1 - if part_02['Qualification_number'] > 0: - part_02['Qualification_number'] = '截至{year03}末,公司获得' \ - '{Qualification_number}项环保领域相关认证资' \ - '质。'.format(year03=date, - Qualification_number=part_02['Qualification_number']) + if data_02: + part_02['Qualification_number'] = 0 + for item in data_02['result']: + if item['certificateName'] in ep: + part_02['Qualification_number'] += 1 + if part_02['Qualification_number'] > 0: + part_02['Qualification_number'] = '截至{year03}末,公司获得' \ + '{Qualification_number}项环保领域相关认证资' \ + '质。'.format(year03=date, + Qualification_number=part_02['Qualification_number']) + else: + part_02['Qualification_number'] = '截至{year03}末,公司未获得环保领域相关认证资质。'.format(year03=date) else: part_02['Qualification_number'] = '截至{year03}末,公司未获得环保领域相关认证资质。'.format(year03=date) return part_02 @@ -146,15 +149,18 @@ def environmental_governance_infomation(param): def para_02(): part_02 = dict() - part_02['Qualification_number'] = 0 - for item in data_02['result']: - if item['certificateName'] in ep: - part_02['Qualification_number'] += 1 - if part_02['Qualification_number'] > 0: - part_02['Qualification_number'] = '截至{year03}末,公司获得' \ - '{Qualification_number}项环保领域相关认证资' \ - '质。'.format(year03=date, - Qualification_number=part_02['Qualification_number']) + if data_02: + part_02['Qualification_number'] = 0 + for item in data_02['result']: + if item['certificateName'] in ep: + part_02['Qualification_number'] += 1 + if part_02['Qualification_number'] > 0: + part_02['Qualification_number'] = '截至{year03}末,公司获得' \ + '{Qualification_number}项环保领域相关认证资' \ + '质。'.format(year03=date, + Qualification_number=part_02['Qualification_number']) + else: + part_02['Qualification_number'] = '截至{year03}末,公司未获得环保领域相关认证资质。'.format(year03=date) else: part_02['Qualification_number'] = '截至{year03}末,公司未获得环保领域相关认证资质。'.format(year03=date) return part_02 diff --git a/rating/scripts/report/financial_analysis.py b/rating/scripts/report/financial_analysis.py index 308720a..cfe3581 100644 --- a/rating/scripts/report/financial_analysis.py +++ b/rating/scripts/report/financial_analysis.py @@ -112,17 +112,23 @@ def profitability_infomation(param): part_03['date'] = data_01['财务填报']['利润表'][1]['报告期'][:4] # 净资产收益率 part_03['return_on_net_assets_analysis'] = str(data_03[1]['净资产收益率']) - # 是否高于平均水平 - if data_03[1]['净资产收益率'] > 4.7: - part_03['high_low_01'] = '高于' - else: + try: + # 是否高于平均水平 + if data_03[1]['净资产收益率'] > 4.7: + part_03['high_low_01'] = '高于' + else: + part_03['high_low_01'] = '低于' + except TypeError: part_03['high_low_01'] = '低于' # 总资产报酬率 part_03['return_on_total_assets_analysis'] = str(data_03[1]['总资产报酬率']) - # 是否高于平均水平 - if data_03[1]['总资产报酬率'] > 2.7: - part_03['high_low_02'] = '高于' - else: + try: + # 是否高于平均水平 + if data_03[1]['总资产报酬率'] > 2.7: + part_03['high_low_02'] = '高于' + else: + part_03['high_low_02'] = '低于' + except TypeError: part_03['high_low_02'] = '低于' return part_03 @@ -228,17 +234,23 @@ def asset_quality_infomation(param): part_01['date'] = data_01['财务填报']['利润表'][1]['报告期'][:4] # 应收账款周转率 part_01['account_turnover_analysis'] = str(data_03[1]['应收账款周转率']) - # 是否高于平均水平 - if data_03[1]['应收账款周转率'] > 0.4: - part_01['high_low_01'] = '高' - else: + try: + # 是否高于平均水平 + if data_03[1]['应收账款周转率'] > 0.4: + part_01['high_low_01'] = '高' + else: + part_01['high_low_01'] = '低' + except TypeError: part_01['high_low_01'] = '低' # 总资产周转率 part_01['total_assets_turnover_analysis'] = str(data_03[1]['总资产周转率']) - # 是否高于平均水平 - if data_03[1]['总资产周转率'] > 3.9: - part_01['high_low_02'] = '高于' - else: + try: + # 是否高于平均水平 + if data_03[1]['总资产周转率'] > 3.9: + part_01['high_low_02'] = '高于' + else: + part_01['high_low_02'] = '低于' + except TypeError: part_01['high_low_02'] = '低于' return part_01